明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2183|回复: 9

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

[复制链接]
发表于 2004-6-7 17:46:00 | 显示全部楼层 |阅读模式
我是这样来做的 Dim entry As AcadEntity
For Each entry In acadDoc.ModelSpace 。。。 Next 如果知道了其中想要获得对象的名称,能有快速获得这个对象的方法么? 谢谢!
发表于 2004-6-7 18:36:00 | 显示全部楼层
有智能提示的
 楼主| 发表于 2004-6-7 21:44:00 | 显示全部楼层

你好,谢谢你的回答!

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


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


请问有更好的方法么?


谢谢!
发表于 2004-6-7 21:58:00 | 显示全部楼层
用选择集+过滤器。
 楼主| 发表于 2004-6-8 17:52:00 | 显示全部楼层

不好意思,再问一下

我这样来写的 Dim oSelectionSet As AcadSelectionSet
Dim aFilterType(0) As Integer
Dim aFilterData(0) As Variant
Dim aCorner1(0 To 2) As Double
Dim aCorner2(0 To 2) As Double

aCorner1(0) = -10000: aCorner1(1) = -10000: aCorner1(2) = 0
aCorner2(0) = 10000: aCorner2(1) = 10000: aCorner2(2) = 0


Set oSelectionSet = acadDoc.SelectionSets.Add("SS4")

aFilterType(0) = 0
aFilterData(0) = "Block Reference"
aFilterType(1) = 2
aFilterData(1) = "tb*"
oSelectionSet.Select acSelectionSetAll, aCorner1, aCorner2, aFilterType, aFilterData
总是获得不了我想要的Block Reference,获得其它的Text,Line没有问题, aFilterData(0) = "Block Reference"到底该怎么写呢?我试过很多种写法了 谢谢!
发表于 2004-6-8 18:26:00 | 显示全部楼层
"Insert"
 楼主| 发表于 2004-6-9 21:13:00 | 显示全部楼层

已经好使了,

感谢大家的回答:)
发表于 2004-6-10 12:51:00 | 显示全部楼层
高手很多哦
 楼主| 发表于 2004-7-7 17:51:00 | 显示全部楼层

再问一下

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


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


谢谢!
发表于 2004-7-7 17:55:00 | 显示全部楼层
命令行输入


(entget(car(entsel)))


查看对象的DXF组码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-28 03:46 , Processed in 0.199120 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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