|
- ;wzg 修改于20150417
- (defun c:plsd ( / en HH:delLwpolyPt1)
- ;;示例(HH:delLwpolyPt1 (car(setq en(entsel))) (cadr en)) By 自贡黄明儒
- (defun HH:delLwpolyPt1 (en p / ENT L1 L2 P1)
- (setq ENT (entget en))
- (setq p (vlax-curve-getclosestpointto en (trans p 1 0)))
- (setq p1 (HH:PickClosePt en p)) ;离p最近的顶点
- (setq p1 (list 10 (car p1) (cadr p1)))
- (setq L2 (cdr (member p1 ent))) ;后段
- (setq L1 (reverse (cdr (member p1 (reverse ent))))) ;前段
- (entmod (append L1 L2))
- )
- ;;164.19 [功能] 多段线所点击点最近的一个顶点 By 自贡黄明儒
- ;;示例(HH:PickClosePt (car(setq en(entsel))) (cadr en))
- (defun HH:PickClosePt (obj p / N P1 P2 PP)
- (setq pp (vlax-curve-getclosestpointto obj (trans p 1 0))
- n (fix (vlax-curve-getparamatpoint obj pp))
- )
- (setq p1 (vlax-curve-getPointAtParam obj n))
- (setq p2 (vlax-curve-getPointAtParam obj (1+ n)))
- (if (< (distance pp p1) (distance pp p2))
- p1 p2
- )
- )
- ;;---------------------------
- (initget " ")
- (setq en (entsel "\n点击要删除的多线段顶点..."))
- (cond
- ((= en "")nil)
- ((and en(wcmatch(cdr(assoc 0(entget(car en))))"LWPOLYLINE"))
- (HH:delLwpolyPt1 (car en) (cadr en))
- (c:plsd)
- )
- (t (c:plsd))
- )
- (princ)
- )
复制代码
|
|