多段线顶点问题
大家好,祝大家圣诞快乐,新年快乐。
只是一个简单的问题,我相信几分钟内就能回答。
当看到最近在这里发布的一个问题(关于在高尔夫球场上标记点…)时,我在考虑如何解决这个问题,并考虑使用用户绘制的多段线的顶点。
为了进行实验,我给自己画了一条多段线(附加),并对其执行entget操作,以查看它将返回什么。
结果如下:
((-1 . <Entity name: 7ef62ed8>)
(0 . "LWPOLYLINE")<<--- Entity Type
(330 . <Entity name: 7ef53cc0>)
(5 . "2DC3")
(100 . "AcDbEntity")
(67 . 0)
(410 . "Model")<<--- Tab Name
(8 . "3")<<--- Layer Name
(100 . "AcDbPolyline")
(90 . 4)
(70 . 0)
(43 . 0.0)
(38 . 0.0)
(39 . 0.0)
(10 0.0 0.0)<<--- First Vertex (Start Point)
(40 . 0.0) <<--- Starting Thickness for First Segment
(41 . 0.0)<<--- Ending Thickness for First Segment
(42 . 0.0)
(10 10.0 0.0) <<--- Second Vertex
(40 . 0.0)
(41 . 0.0)
(42 . 0.0)
(10 10.0 10.0)<<--- Third Vertex
(40 . 0.0)
(41 . 0.0)
(42 . 0.0)
(10 0.0 10.0)<<--- Fourth Vertex (End Point)
(40 . 0.0)
(41 . 0.0)
(42 . 0.0)
(210 0.0 0.0 1.0))
删除所有非10组:
(defun c:test (/ ent Vertex)
(setq ent (entget (car (entsel))))
(setq Vertex (cdr (assoc 10 ent)))
(princ)
) ;_end defun
删除每个列表的第一个成员“
Command: (setq plDxf(entget(car(entsel))))
Select object: ((-1 . <Entity name: 7efa3368>) (0 . "LWPOLYLINE") (330 .
<Entity name: 7efa1cf8>) (5 . "1AD") (100 . "AcDbEntity") (67 . 0) (410 .
"Model") (8 . "0") (100 . "AcDbPolyline") (90 . 4) (70 . 0) (43 . 0.0) (38 .
0.0) (39 . 0.0) (10 0.0 0.0) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10 10.0 0.0) (40
. 0.0) (41 . 0.0) (42 . 0.0) (10 10.0 10.0) (40 . 0.0) (41 . 0.0) (42 . 0.0)
(10 0.0 10.0) (40 . 0.0) (41 . 0.0) (42 . 0.0) (210 0.0 0.0 1.0))
或者立即:
Command: (setq lst10(vl-remove-if '(lambda(x)(/= 10(car x)))plDxf))
((10 0.0 0.0) (10 10.0 0.0) (10 10.0 10.0) (10 0.0 10.0)) 谢谢你的回复,阿斯米-我从中学到了很多。
但是,我注意到这只适用于这个例子——例如,如果我有带坐标的顶点:
(1.0 5.0 0.0)
(2.0 6.0 0.0)
(3.0 7.0 0.0)
我该如何处理这种情况?
是否没有通用函数来处理同一DXF组码的多次出现?
谢谢你的帮助,非常感谢。 它将适用于每个LW多段线。 啊,对不起,我误读了你上一篇文章-当你删除DXF 10代码。很抱歉
谢谢你的帮助! 这可能会让你感兴趣。。。
http://www.theswamp.org/index.php?topic=23951.0 谢谢lpseifert,
这很有趣! 这将返回列表中键的值列表。正是为了应对这种情况。
你将不得不为每一个额外的编码等。
-大卫 很好,大卫,
简单有效。不错的一个
谢谢 我可能在这里遗漏了什么,但可以从多段线中获取点并将其保存为pt1、pt2、pt3。。。。这样就可以在另一个命令中使用?
哇!这是一条古老的线索-让我回到我开始学习这一切的时候。。
至于你的问题,所有的点数据都在结果列表中,因此你可以从中分配变量。
但我会用不同的方法,使用vlax curve getPointatParam,因为你有更多的控制。
页:
[1]
2