立即注册 登录
晓东CAD家园-论坛 返回首页

eachy的个人空间 http://bbs.xdcad.net/?14 [收藏] [复制] [分享] [RSS]

日志

修剪穿过 Circle 和 text 的线

已有 130 次阅读2013-5-6 17:38 |个人分类:Lisp

     
;;http://www.xdcad.net/forum/showthread.php?s=&threadid=562316
(defun c:tt (/ ss ssl i obj p1 p2 s1 sl m l ipts pts p)
(princ "\nselect circle text ....")
(if (setq ss (ssget '((0 . "circle,text"))))
(progn
(if (< (getvar "osmode") 13684)
(setvar "osmode" (+ (getvar "osmode") 13684))
)
(command ".undo" "be")
(setq ssl (sslength ss)
i -1
)
(repeat ssl
(setq e (ssname ss (setq i (1+ i)))
obj (vlax-ename->vla-object e)
)
(vla-getboundingbox obj 'bp 'up)
(setq p1 (safearray-value bp)
p2 (safearray-value up)
)
(if (setq s1 (ssget "_c" p1 p2 '((0 . "line,lwpolyline"))))
(progn
(setq sl (sslength s1)
m -1
)
(command ".trim" (list e p1) "")
(repeat sl
(setq l (ssname s1 (setq m (1+ m)))
ipts (safearray-value
(variant-value
(vla-intersectwith
obj
(vlax-ename->vla-object l)
0
)
)
)
)
(if ipts
(progn (while ipts
(setq pts (cons
(list (car ipts) (cadr ipts) (caddr ipts))
pts
)
ipts (cdddr ipts)
)
)
(setq p (mapcar '(lambda (x) (/ x (length pts)))
(apply 'mapcar (cons '+ pts))
)
pts nil
)
(command (list l p))
)
)
)
(command "")
)
)
)
(command ".undo" "end")
)
)
(princ)
)

路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-5-14 02:48 , Processed in 0.189786 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

返回顶部