habakay 发表于 2022-7-6 22:09:02

匹配选择的成员

你好
我想在选择集中标记文本对象,并将其发送到excel,如下所示。我如何匹配这些文本?你有什么建议吗?
 
...........A.B
1.公里=0+120。。。40565平方米
2.公里=0+122。。。43288平方米
3.公里=0+140。。。54556平方米
4.公里=0+160。。。35632平方米
5.公里=0+180。。。44373平方米
...

RICVBA 发表于 2022-7-6 22:20:17

你的意思是要匹配文本对象,文本字符串以“KM”开头或以“m2”结尾,不是吗?

habakay 发表于 2022-7-6 22:28:08


KM=0+120.000属于4.0565 m2
KM=0+122.000属于4.3288 m2
KM=0+140.000属于5.4556 m2
KM=0+160.000属于3.5632 m2。。。

RICVBA 发表于 2022-7-6 22:37:31

必须有某种规则允许程序理解哪个“KM…”与“…m2”字符串关联的字符串
例如:
-“配对”文本对象共享同一层,这不同于任何其他“配对”文本对象
-两个成对文本对象的相对位置始终相同(X和/或Y坐标的相同差)
-其他

BIGAL 发表于 2022-7-6 22:45:52

两步找到文本KM=0+120.000,然后你可以得到它的插入点,第二步是使用SSGET和“W”选项一个大约大小的窗口来找到m2文本。这个窗口基于第一个找到的文本的插入点,你也可以有额外的过滤器,这样它只能找到某一层上的文本。
 
 
如果没有样例dwg,则无法执行更多操作

habakay 发表于 2022-7-6 22:52:05

 
谢谢你的建议。我也试着用坐标求解。
 
 
谢谢比格尔。我对AutoCAD VBA有点陌生。我以前没有使用SSGET。我附上。dwg文件。如果你能举个小例子,我会很高兴的。
样品rar公司

BIGAL 发表于 2022-7-6 22:54:33

请发布dwg或zip非Rar文件。

habakay 发表于 2022-7-6 23:05:07

好啊我发布了图纸。
ENKESİTLER。图纸

MSasu 发表于 2022-7-6 23:14:27

请注意,SSGET是一个AutoLISP函数,而不是VBA函数。在VBA中,应首先注册选择集,然后定义:
Set selSetAll = ThisDrawing.SelectionSets.Add("SS1")
selSetAll.Select Mode := acSelectionSetAll
页: [1]
查看完整版本: 匹配选择的成员