yajis_narif 发表于 2022-7-6 09:33:15

块之间的距离

你好!!
我需要帮助plz,很抱歉我的英语很差,所以
我有一个相同块的4个图形(我使用插入)
例如,这是我的插页:
 
((-1 . ) (0.“插入”)(330.名称:7ef05cf8>)(5.“22F”)(100.“AcDbEntity”)(67.0)(410.“Model”)(8。
“LE420”)(62.4)(100。“AcDbBlockReference”)(2。“drawing1”)(10 21643.4
8501.78 0.0) (41 . 1.0) (42 . 1.0) (43 . 1.0) (50 . 0.0) (70 . 0) (71 . 0) (44
. 0.0) (45 . 0.0) (210 0.0 0.0 1.0))
 
因此,为了获得bloc“drawing1”的DXF代码,我使用tblsearch:
 
(setq y(entget(cdr(assoc-2(tblsearch“block”“drawing1”))))))
 
它返回4个块之一的XDF代码:
 
((-1 . ) (0.“LWPOLYLINE”)(330.7ef074f0>)(5.255”)(100.“AcDbEntity”)(67.0)(8.“drwing1”)(62.4)
(100.“AcDbPolyline”)(90.4)(70.1)(43.0.0)(38.0.0)(39.0.0)(10
210.0 210.0) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10 3101.0 210.0) (40 .
0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10 3101.0 3089.0) (40 . 0.0) (41 . 0.0)
(42 . 0.0) (91 . 0) (10 210.0 3089.0) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0)
(210 0.0 0.0 1.0))
 
问题是我想计算块1和块2之间的距离,所以我需要蚀刻块的LWPOLYLINE的坐标
 
Plzz你能帮我吗??
非常感谢。

JohnM 发表于 2022-7-6 09:53:36

dxf代码10具有LW多段线的顶点位置
您可以使用foreach函数将其拉出

yajis_narif 发表于 2022-7-6 09:58:40

是的,我做了,但我只得到了一个块的LWPOLYLINE坐标,我不知道如何得到所有块的LWPOLYLINE坐标
谢谢你,约翰

JohnM 发表于 2022-7-6 10:17:24

将ssget函数与过滤器一起使用以获取块
例如:(setq ss(ssget’((0。“INSERT”)(2。“drawing1”))(未测试,但关闭)
然后循环选择集以拉出每个多段线

Lee Mac 发表于 2022-7-6 10:25:36

雅吉语,
 
您需要将块定义(在WCS中以零旋转、1:1比例定义)中的LW多段线转换为每个插入(可变旋转、可变比例,在插入的OCS中定义)。这可以通过使用变换矩阵来实现。
 
在程序中执行这种转换的示例可以在这里和这里找到。
 
HTH公司

yajis_narif 发表于 2022-7-6 10:40:23

hii
谢谢你,李
但是我是autolisp plz的初学者,你能解释更多我不懂的地方吗
 
谢谢你的帮助
页: [1]
查看完整版本: 块之间的距离