将块添加到多段线
大家好,我可以通过lisp将块作为附件添加到多段线吗?
我想选择所有多段线,然后在选定的多段线处插入一个块。
谢谢你的帮助。
测试添加块。图纸 当被要求指定数字类型B并键入块的名称时,可以使用measue或devide命令 莫斯塔法,
首先,您需要修改块的插入点
处于箭头的尖端。
其次,可以使用vlax曲线函数来获取多段线的中点。
(defun c:test ()
(while(setq ent (car (entsel "\nSelect polyline:")))
(setq d (/ (vlax-curve-getDistAtParam ent (vlax-curve-getEndParam ent)) 2.0)
p (vlax-curve-getPointAtDist ent d)
)
(vl-cmdf "._insert" "WIRE-TYPE" p "" "" "")
)
)
ymg公司 感谢ymg3的回复,我不知道是否可以修改lisp以使用ssget函数插入块。
这个帖子可能会有帮助。
http://www.cadtutor.net/forum/showthread.php?48143-LISP查找多条直线的中点&p=327737&viewfull=1#post327737
(defun c:test (/ d e i p ss)
(prompt "\nSelect polyline: ")
(while(setq ss (ssget '((0 . "LWPOLYLINE")(8 . "00-BT-PA-WIRE"))))
(repeat (setq i (sslength ss))
(setq e (ssname ss (setq i (1- i)))
d (/ (vlax-curve-getDistAtParam e (vlax-curve-getEndParam e)) 2.0)
p (vlax-curve-getPointAtDist e d)
)
(vl-cmdf "._insert" "WIRE-TYPE" p "" "" "")
)
(prompt "\nSelect polyline: ")
)
(princ)
)
莫斯塔法,
你是资深会员,我相信你能做到。
一定要研究代码,试着理解发生了什么。
Mostafa Autocad帮助的目的是,如果您在lisp下查找ssget并使用选择过滤器,您将很快找到答案。ssget的一部分是了解如何选择过滤器,这些可能相当复杂。键入图层颜色线型x值。 谢谢你的努力,
谢谢你的关心让我学习,我真的很努力,但我是外地,然后我请你做它来学习。
再次感谢。 好啊
比加尔我知道ssget安静,但缺少的部分是我真的尝试学习感谢比加尔的兴趣。 用点选择点,你也可以用它。它的优点是街区可以坐在你想坐的地方。它不依赖于:实体类型、图层、颜色等,
3 莫斯塔法,
在重复循环开始时,我们将变量i设置为选择集的长度(repeat(setq i(sslength ss))
然后在循环中,我们读取构成选择集的每个ename,从索引i减1处的最后一个ename开始。
每次循环都会减少1。
假设你的sslength等于5。所以你读了ename(ssname ss 4)。。3.2.1 ad最终为0。
ymg公司
页:
[1]
2