AutoLISP在梁上墙载计算中的应用__墨水学术,论文发表,发表论文,(3)
分类:推荐论文 时间:关注:(1)
nbsp;)
)
(setq window_p (getreal))
(if (= window_p nil)
(setq window_p *window_p0*)
(setq *window_p0* window_p)
)
;;;公式计算部分
(setq wall_area (* wall_l wall_h))
(setq window_area (* window_b window_h))
(setq Qw (/ (+ (* (- wall_area window_area) wall_p)
(* window_area window_p)
)
wall_l
)
)
;;;标注输出部分(梁上墙载的输出结果已四舍五入为整数)
(setq txt_ag (angle wall_p1 wall_p2))
(setq tp1 (polar wall_p1 txt_ag (* wall_l 500.0)))
(setq txt_p (polar tp1 (+ txt_ag (/ pi 2.0)) 100.0))
(setq txt_ag (/ (* 180.0 txt_ag) pi))
(setq ltchk (tblsearch "LTYPE" "continuous"))
(if (not ltchk)
(command "-linetype" "l" "continuous" "acad" "")
)
(setq laychk (tblsearch "LAYER" "梁荷载"))
(if (not laychk)
(command "-layer" "new" "梁荷载" "l" "continuous"
"梁荷载" "c" "red" "梁荷载" ""
)
)
(setvar "clayer" "梁荷载")
(setq Qw_t (strcat (rtos Qw 2 0) "(" (rtos *wall_p0* 2 1) ")"))
(setvar "plinewid" 50.0)
(setvar "osmode" 0)
(command "PLINE" wall_p1 wall_p2 "")
(command "_text" "j" "c" txt_p 300.0 txt_ag Qw_t)
;;;恢复系统变量
(setvar "plinewid" pw_old)
(setvar "osmode" osm_old)
(setvar "clayer" lay_old)
(princ)
)
(princ "\n梁上墙载计算程序已加载,启动命令:LZJS")
;;;----------------------源程序结束----------------------------
使用该程序的方法:将“源程序开始”和“源程序结束”之间的所有内容输入到记事本中,保存为“LZJS.LSP”文件。运行AutoCAD,打开建筑平面图,把“LZJS.LSP”文件加载进来,键入“LZJS”命令就可以启动本程序。
三、本方法的优点
下图为使用本程序计