明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2189|回复: 6

[求助]新手请教vba查询或得到图元

[复制链接]
发表于 2010-11-24 22:38:00 | 显示全部楼层 |阅读模式

想做个判断  比如 图纸中已经有 某某块  或者某某图层  就运行a命令  没有就运行 b。

 

想知道如何判断某个图层是否存在    或者得到固定名称块的数量。

 

请高手赐教啊~

发表于 2010-11-25 00:52:00 | 显示全部楼层

抄了一段autocad的帮助文件

图层和线型排序
 
 

用户可以遍历 Layers 和 Linetypes 集合来查找图形中的所有图层和线型。

遍历 Layers 集合

以下代码遍历 Layers 集合,以合并图形中所有图层的名称,然后将这些名称显示在消息框中。

Sub Ch4_IteratingLayers()
 Dim layerNames As String
 Dim entry As AcadLayer
 layerNames = ""
 For Each entry In ThisDrawing.Layers
 layerNames = layerNames + entry.Name + vbCrLf
 Next
 MsgBox "The layers in this drawing are: " + _
 vbCrLf + layerNames
End Sub
 楼主| 发表于 2010-11-25 17:58:00 | 显示全部楼层

好的  谢楼上  不知有没有和 lisp里面一样 类似 tblsearch 的功能  直接输入图层名称查询地。。。。

发表于 2010-11-27 10:22:00 | 显示全部楼层
我想查询出一个CAD图纸中的所有圆的圆心坐标和半径
发表于 2010-11-27 11:51:00 | 显示全部楼层

这个,也引用一段啊

 

为选择集指定单一选择条件

以下代码提示用户选择要包含在选择集中的对象,但仅当选择的对象是 Circle 时才将其添加到选择集中:

Sub Ch4_FilterMtext()
 Dim sstext As AcadSelectionSet
 Dim FilterType(0) As Integer
 Dim FilterData(0) As Variant
 Set sstext = ThisDrawing.SelectionSets.Add("SS2")
 FilterType(0) = 0
 FilterData(0) = "Circle"
 sstext.SelectOnScreen FilterType, FilterData
End Sub
发表于 2010-12-10 19:32:10 | 显示全部楼层
看看,学习了
发表于 2010-12-10 23:31:12 | 显示全部楼层
如何判断某个图层是否存在?
用错误机制
on error resume next

set lay = thisdrawing.Layers("01")
if err then
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 20:22 , Processed in 0.152534 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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