Alleria 发表于 2004-6-7 17:46:00

请问使用VBA如何快速从一个DWG文件中获得数据呢?

我是这样来做的


                Dim entry As AcadEntity<BR>                                For Each entry In acadDoc.ModelSpace


                                                                。。。


                                Next


如果知道了其中想要获得对象的名称,能有快速获得这个对象的方法么?


谢谢!

myfreemind 发表于 2004-6-7 18:36:00

有智能提示的

Alleria 发表于 2004-6-7 21:44:00

你好,谢谢你的回答!

不过,这一过程我主要是用VB编写一个控件来进行的,然后在网页中调用,


我想在文件中找到的对象是个BLOCKREFERENCE,如果处理的文件很多,文件中的对象也很多的话,用我那种查找的方式很慢!


请问有更好的方法么?


谢谢!

mccad 发表于 2004-6-7 21:58:00

用选择集+过滤器。

Alleria 发表于 2004-6-8 17:52:00

不好意思,再问一下

我这样来写的


                       Dim oSelectionSet As AcadSelectionSet<BR>                       Dim aFilterType(0) As Integer<BR>                       Dim aFilterData(0) As Variant<BR>                       Dim aCorner1(0 To 2) As Double<BR>                       Dim aCorner2(0 To 2) As Double<BR>                       <BR>                       aCorner1(0) = -10000: aCorner1(1) = -10000: aCorner1(2) = 0<BR>                       aCorner2(0) = 10000: aCorner2(1) = 10000: aCorner2(2) = 0<BR>                       <BR>                       <BR>                       Set oSelectionSet = acadDoc.SelectionSets.Add("SS4")<BR>               <BR>                       aFilterType(0) = 0<BR>                       aFilterData(0) = "Block Reference"<BR>                       aFilterType(1) = 2<BR>                       aFilterData(1) = "tb*"<BR>                       oSelectionSet.Select acSelectionSetAll, aCorner1, aCorner2, aFilterType, aFilterData<BR>


总是获得不了我想要的Block Reference,获得其它的Text,Line没有问题,


aFilterData(0) = "Block Reference"到底该怎么写呢?我试过很多种写法了:(


谢谢!<BR>

雪山飞狐_lzh 发表于 2004-6-8 18:26:00

"Insert"

Alleria 发表于 2004-6-9 21:13:00

已经好使了,

感谢大家的回答:)

libetterma 发表于 2004-6-10 12:51:00

高手很多哦

Alleria 发表于 2004-7-7 17:51:00

再问一下

查找PolyLine的时候,过滤条件中对象的类型该写什么呢?


哪里有这种对照的详细说明呢?


谢谢!

雪山飞狐_lzh 发表于 2004-7-7 17:55:00

命令行输入


(entget(car(entsel)))


查看对象的DXF组码
页: [1]
查看完整版本: 请问使用VBA如何快速从一个DWG文件中获得数据呢?