lisp取消选集选中状态_求高人改改这段代码autocaD的lisp代码,原代码要点击两次才能选中相连所有直线,能否改成点击一次就选中...

(vl-load-com)(defungotonexten(enpt/boxen2en2lstepispss)(setqbox(*(/(getvar"pickbox")(cadr(getvar"screensize")))(getvar"viewsize")))(setqss(ssget"c"(mapcar'-pt(listboxbox)...

(vl-load-com)

(defun gotonexten (en pt / box en2 en2lst ep i sp ss)

(setq box (* (/ (getvar "pickbox") (cadr (getvar "screensize")))

(getvar "viewsize")

)

)

(setq ss (ssget "c"

(mapcar '- pt (list box box))

(mapcar '+ pt (list box box))

)

)

(if ss

(progn

(ssdel en ss)

(setq i 0)

(while (setq en2 (ssname ss i))

(setq i (1+ i))

(setq

sp (vl-catch-all-apply 'vlax-curve-getStartPoint (list en2))

)

(if (listp sp)

(progn (setq ep (vlax-curve-getEndPoint en2))

(cond ((equal sp pt 1e-8)

(setq en2lst (cons (list en2 ep) en2lst))

)

((equal ep pt 1e-8)

(setq en2lst (cons (list en2 sp) en2lst))

)

)

)

)

)

)

)

en2lst

)

;;选择连续线c:ss -----fsxm 2007/01/29

(defun c:ss (/ en enp ept spt ss addnext)

(if (and (setq enp (entsel))

(ssget (cadr enp) '((0 . "*line,arc,circle,ellipse")))

)

(progn

(setq en (car enp))

(setq spt (vlax-curve-getStartPoint en))

(setq ept (vlax-curve-getendPoint en))

(setq ss (ssadd))

(ssadd en ss)

(defun addnext (en pt / next)

(if (setq next (gotonexten en pt))

(foreach a next

(if (not (ssmemb (car a) ss))

(progn (ssadd (car a) ss)

(apply 'addnext a)

)

)

)

)

)

(addnext en spt)

(addnext en ept)

(if (= 0 (getvar "cmdactive"))

(sssetfirst nil ss)

)

ss

(jion)

)

(progn

(princ "\n未选取对象或选取了非curve类型对象!")

(princ)

)

)

)

(defun jion(/ ss s)

(setq ss (ssget '((-4 . "

(0 . "LINE")(0 . "ARC")

(-4 . "")

(-4 . "OR>")))

)

(while ss

(setq s (ssname ss 0))

(if (or (= "LINE" (cdr (assoc 0 (entget s))))

(= "ARC" (cdr (assoc 0 (entget s))))

)

(command "pedit" s "y" "j" "p" "" "x")

(command "pedit" s "j" "p" "" "x")

)

(setq ss (ssget "p"))

)

(princ)

)

或者解释一下每句命令的意思也行,多谢了。

展开

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值