计算闭合多边形内的块数
你好,朋友们我需要一个lisp来计算闭合多段线内的所有块。我不知道写Lisp程序。
任何帮助都将受到高度赞赏
谢谢 试试这个:
(defun c:Test (/ s sn l i d lst p a b j k)
;; Tharwat 19.12. 2015 ;;
(princ "\nPick a LWpolyline ...")
(if (setq s (ssget "_+.:S:E" '((0 . "LWPOLYLINE"))))
(progn (setq l (vlax-curve-getdistatparam
(setq sn (ssname s 0))
(fix (vlax-curve-getendparam sn))
)
i (/ l 1000.)
d i
)
(repeat 1000
(setq lst (cons (vlax-curve-getpointatdist sn i) lst)
i (+ i d)
)
)
(vla-getboundingbox (vlax-ename->vla-object sn) 'j 'k)
(if (and j k)
(progn
(vla-ZoomWindow
(vlax-get-acad-object)
j
k
)
(sssetfirst nil (ssget "_CP" lst '((0 . "INSERT"))))
)
)
)
)
(princ)
)(vl-load-com) Tharwat a alternative ssget“wp”lst I use a library function for the pline cords make lst then as per your code check for insert。在另一种ssget“wp”lst中,我使用库函数来制作pline跳线,然后根据您的代码检查插入。
2年前有一篇文章是关于普林的《寻找一切》。 此lisp选择多段线内的所有块,而不是计数块。但我找到了我想要的lisp。谢谢大家 选择块后,只需按Ctrl+1或按以下方式进行替换:
替换此:
(sssetfirst nil (ssget "_CP" lst '((0 . "INSERT"))))
(if (setq ss (ssget "_CP" lst '((0 . "INSERT"))))
(princ (strcat "\nNumber of Blocks: [ " (itoa (sslength ss)) " ]."))
)并定位变量“ss” 或者您可以使用此实用程序自动量化选择。
页:
[1]