等宽倒角 圆角
2006CAD对等宽多线段和直线 倒角圆角 后 会将最终的多线段的宽度设为之前多线段宽度,新版CAD取消了这个功能,本来想是什么变量控制,但似乎没找到。于是写了个 等宽倒角和等宽圆角,倒角后,线宽会随最先选择的多线段宽度等宽倒角.LSP序号代码
01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
;等宽倒角
(defun C:EF_CHAMFER ( / e ename pt edata echo)
(setq echo (getvar 'cmdecho))
(if (and (setq e (entsel))
(setq pt (cadr e))
(setq ename (car e))
(setq edata (entget ename))
(setvar 'cmdecho 1)
)
(if (and (= (cdr (assoc 0 edata)) "LWPOLYLINE")
(setq w (cdr (assoc 43 edata)))
)
(progn
(command "CHAMFER" (vlax-curve-getClosestPointTo ename pt))
(while (/= 0 (getvar 'CMDACTIVE)) (command pause))
(command "PEDIT" ename "W" w "")
(setvar 'cmdecho echo)
)
(progn
(command "CHAMFER" e)
(setvar 'cmdecho echo)
)
)
)
(princ)
)
等宽圆角.LSP
序号代码
01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
;等宽圆角
(defun C:EF_FILLET ( / e ename edata echo pt)
(setq echo (getvar 'cmdecho))
(if (and (setq e (entsel))
(setq pt (cadr e))
(setq ename (car e))
(setq edata (entget ename))
(setvar 'cmdecho 1)
)
(if (and (= (cdr (assoc 0 edata)) "LWPOLYLINE")
(setq w (cdr (assoc 43 edata)))
)
(progn
(command "FILLET" (vlax-curve-getClosestPointTo ename pt))
(while (/= 0 (getvar 'CMDACTIVE)) (command pause))
(command "PEDIT" ename "W" w "")
(setvar 'cmdecho echo)
)
(progn
(command "FILLET" e)
(setvar 'cmdecho echo)
)
)
)
(princ)
)
学习收藏了 似乎 (command "CHAMFER") (command "fillet") 就可以了不用写这么多了 找好久了,谢谢 666666666666666666666666
页:
[1]