- 积分
- 214
- 明经币
- 个
- 注册时间
- 2011-9-3
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
本帖最后由 cadauto 于 2011-9-20 23:41 编辑
画平面图时,我想用一个程序來开墻身缺口,于是写了这个,
現在是先求墻身的兩個點, 打开缺口後, 再输入墻身的左上角点來完成墻身的封闭,
有否方法來简化這步骤呢?
(defun c:bk (/ ss len ab p1 p2 p3 p4 pt hh index xos an ab bb cc dd clay nlay )
(setvar "cmdecho" 0 )
(setq xos (getvar "osmode" ))
(setq clay (getvar "clayer" ))
(setq ss (ssget))
(setq len (sslength ss))
(setq index 0 )
(setq p1 (getpoint "\n左下角点:"))
(setq p2 (getpoint "\n右下角点:"))
(setq an (angle p1 p2 ))
(repeat len
(setq ab (ssname ss index))
(command "break" ab p1 p2 )
(setq index (+ index 1))
(princ)
)
(setq pt (getpoint "\n左上角点:"))
(setq hh (distance p1 pt))
(setvar "osmode" 0 )
(setq cc (entget ab))
(setq dd (assoc 8 cc))
(setq nlay (cdr dd))
(setvar "clayer" nlay)
(setq p3 (polar p1 (+ an (/ pi 2 )) hh ))
(setq p4 (polar p2 (+ an (/ pi 2 )) hh ))
(command "line" p1 p3 "" )
(command "line" p2 p4 "" )
(setvar "osmode" xos )
(setvar "clayer" clay )
(princ)
)
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
x
|