明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1887|回复: 5

请教单行和多行文本的问题?

[复制链接]
发表于 2005-7-11 09:33:00 | 显示全部楼层 |阅读模式

本人查了许多资料、用了许多方法都没能求解,请高手指教了,谢谢!

最近在用VBA编一个小工具,但有两个问题无法解决:

1、使用“选择”方法去选择图形中的图元,如何进行过滤得到单行文本和多行文本,其它图元被过滤掉?

2、如何求得单行文本和多行文本在图中的座标值,即返回X轴和Y轴、Z轴的具体数值给一个变量。

请给出具体的代码,谢了!

 楼主| 发表于 2005-7-11 12:07:00 | 显示全部楼层
好象比较难,看来得版主出马了
发表于 2005-7-11 15:30:00 | 显示全部楼层

1、

On Error Resume Next
Dim ss As AcadSelectionSet
ThisDrawing.SelectionSets("Test").Delete
Set ss = ThisDrawing.SelectionSets.Add("Test")
Dim ft(0) As Integer, fd(0)
ft(0) = 0: fd(0) = "*Text"
ss.Select acSelectionSetAll, , , ft, fd

2、

[WEB]http://www.vba.cn/object/acad2004/idh_insertionpoint.htm[/WEB]
 楼主| 发表于 2005-7-11 17:02:00 | 显示全部楼层
本帖最后由 作者 于 2005-7-12 15:22:39 编辑

谢谢!第一个问题本人刚从“明经杂志2001-2期”中看到了解决办法(就是楼下的兄弟所介绍的那样),不过比版主的要复杂一点,但对以后的应用更有帮助,且扩展功能更强。不过追求更简节的程序是我们努力的目标!呵呵!

发表于 2005-7-11 17:13:00 | 显示全部楼层

Sub test()
On Error Resume Next
Dim ss As AcadSelectionSet
ThisDrawing.SelectionSets("Test").Delete
Set ss = ThisDrawing.SelectionSets.Add("Test")
Dim ft(3) As Integer, fd(3)
ft(0) = -4: fd(0) = "<or"
ft(1) = 0: fd(1) = "TEXT"
ft(2) = 0: fd(2) = "MTEXT"
ft(3) = -4: fd(3) = "or>"
ss.Select acSelectionSetAll, , , ft, fd
MsgBox ss.Count
End Sub

此为多重过滤设置,可以加入其他条件

发表于 2005-7-11 23:21:00 | 显示全部楼层

ft(0) = 0: fd(0) = "*Text"
和你的过滤器效果是一样的

ft(0) = 0: fd(0) = "Text,MText"

也可,你的复杂了一点

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-27 12:54 , Processed in 0.243366 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表