推荐于2016-02-18 · 知道合伙人软件行家
关注
展开全部
(defun C:HSJX ( / #os1 @p1 @p2 L ang @p3);;画三角形
(setvar "cmdecho" 0)
(setvar "blipmode" 0)
(setq #os1 (getvar "OSMODE");;提取捕捉设置
@p1 (getpoint "\n请选择第一点")
@p2 nil
)
(if (/= @p1 nil) (setq @p2 (getpoint @p1 "\n请选择第二点")) )
(if (/= @p2 nil)
(progn
(setq L (distance @p1 @p2)
ang (angle @p1 @p2)
@p3 (polar @p1 (+ ang (/ pi 3)) L)
)
(setvar "osmode" 0);;关闭捕捉否则绘图不准确
(command "LINE" @p1 @p2 @p3 "C");;绘制第一个正三角形
(repeat 2;;循环几次就绘制多少个三角形
(setq L (* L 0.5);;梁边为一半
@p1 (polar @p1 ang L);;第一点为中点
ang (+ ang (/ pi 3));;角度增加60°
@p2 (polar @p1 ang L);;取得第二点
@p3 (polar @p1 (+ ang (/ pi 3)) L);;取得第三点
)
(command "LINE" @p1 @p2 @p3 "C")
);;绘制两个三角形
(setvar "osmode" #os1);;还原捕捉设置
)
)
(prin1)
);;以上程序复制到记事本,以(HSJX.lsp)命名,加载到autocad就可以使用
(setvar "cmdecho" 0)
(setvar "blipmode" 0)
(setq #os1 (getvar "OSMODE");;提取捕捉设置
@p1 (getpoint "\n请选择第一点")
@p2 nil
)
(if (/= @p1 nil) (setq @p2 (getpoint @p1 "\n请选择第二点")) )
(if (/= @p2 nil)
(progn
(setq L (distance @p1 @p2)
ang (angle @p1 @p2)
@p3 (polar @p1 (+ ang (/ pi 3)) L)
)
(setvar "osmode" 0);;关闭捕捉否则绘图不准确
(command "LINE" @p1 @p2 @p3 "C");;绘制第一个正三角形
(repeat 2;;循环几次就绘制多少个三角形
(setq L (* L 0.5);;梁边为一半
@p1 (polar @p1 ang L);;第一点为中点
ang (+ ang (/ pi 3));;角度增加60°
@p2 (polar @p1 ang L);;取得第二点
@p3 (polar @p1 (+ ang (/ pi 3)) L);;取得第三点
)
(command "LINE" @p1 @p2 @p3 "C")
);;绘制两个三角形
(setvar "osmode" #os1);;还原捕捉设置
)
)
(prin1)
);;以上程序复制到记事本,以(HSJX.lsp)命名,加载到autocad就可以使用
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询