|
- ;;;多段线或直线增加顶点,直线转为多线段
- ;wzg 修改于20150417
- (defun c:pljd ( / en en2 oldce HH:LwAddVertex)
- ;;164.34 [功能] 多段线增加顶点 By 自贡黄明儒
- ;;示例(HH:LwAddVertex (car(setq en(entsel))) (cadr en))
- (defun HH:LwAddVertex (en pt / GR N PP LwAddVertex)
- ;;增加一个顶点
- (defun LwAddVertex (obj index pt bugle sw ew)
- (vlax-invoke obj 'addvertex index pt)
- (vla-setbulge obj index bugle)
- (vla-setwidth obj index sw ew)
- )
- (setq pp (vlax-curve-getClosestPointTo en (trans pt 1 0)))
- (setq n (fix (vlax-curve-getParamAtPoint en pp)))
- (setq obj (vlax-ename->vla-object en))
- (vla-GetWidth obj n 'sw 'ew)
- (setq pp (getpoint "\n 指定新增点 "))
- (setq pp (mapcar '+ '(0 0) pp))
- (vl-catch-all-apply 'LwAddVertex (list obj (1+ n) pp 0 sw sw))
- )
- ;;---------------------------
- (initget " ")
- (setq en (entsel "\n选择直线或多线段要加点的子段..."))
- (cond
- ((= en "")nil)
- ((and en
- (wcmatch(cdr(assoc 0(entget(car en))))"LWPOLYLINE")
- )
- (HH:LwAddVertex (car en) (cadr en))
- (c:pljd)
- )
- ((and en
- (wcmatch(cdr(assoc 0 (entget (car en))))"LINE")
- )
- (setq oldce (getvar "PEDITACCEPT"))
- (setvar "PEDITACCEPT" 1)
- (command "pedit" en "W" "0" "")
- (setvar "PEDITACCEPT" oldce)
- (setvar "cmdecho" 1)
- (setq en2 (entlast))
- (HH:LwAddVertex en2 (cadr en))
- (c:pljd)
- )
- (t (c:pljd))
- )
- (princ)
- )
复制代码
|
评分
-
查看全部评分
|