您的当前位置:首页正文

CAD VBA的块和参照过滤方法

来源:汇意旅游网
共享一下 CAD-VBA中,屏幕选择集中对块参照的过滤方法,供参考:

''''''''''''''''''''''''''''''''''''''''''''''''''' Dim melem As AcadEntity

Dim selsetCollection As AcadSelectionSets '定义选择集集合 Dim i,j As Long Dim ent As Object

' '''''''''''''''''''查找图形中的每个选择集,是否已存在 Set selsetCollection = ThisDrawing.SelectionSets i = 0 j = 0

For Each FilterSet In selsetCollection

If \"xxx\" = FilterSet.Name Then’’’’”xxx”为自己想用的选择集名 j = 1 Exit For End If i = i + 1 Next

If j = 0 Then

Set FilterSet = ThisDrawing.SelectionSets.Add(\"xxx\") Else

FilterSet.Clear

End If

‘’’’’’’定义过滤器数组,设定过滤参数 Dim sFilterType(1) As Integer Dim sFilterData(1) As Variant sFilterType(0) = 100

sFilterData(0) = \"AcDbBlockReference\" sFilterType(1) = 2 sFilterData(1) = \"~ \"

FilterSet.SelectOnScreen sFilterType, sFilterData

‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ 另附DXF组码表,以便对上段程式的理解;

DXF下表列出了组码或组码范围以及组码值的解释。在此表中,“固定”表明组码始终具有相同的用途。如果组码不固定,则其用途取决于上下文。关于此表中使用的缩写和格式方面的信息。

按数字次序排列的组码 组码 说明 -5 APP:永久反应器链 -4 APP:条件运算符(仅与 ssget 一起使用) -3 APP:扩展数据 (XDATA) 标记(固定) -2 -1 0 1 2 3-4 5 6 7 8 9 APP:图元名参照(固定) APP:图元名。每次打开图形时,图元名都会发生变化,从不保存(固定) 表示图元类型的字符串(固定) 图元的主文字值 名称(属性标记、块名等) 其他文字或名称值 图元句柄;最多 16 个十六进制数字的字符串(固定) 线型名(固定) 文字样式名(固定) 图层名(固定) DXF:变量名称标识符(仅在 DXF 文件的 HEADER 段中使用) 主要点;直线或文字图元的起点、圆的圆心,等等 DXF:主要点的 X 值(后跟 Y 和 Z 值代码 20 和 30) APP:三维点(三个实数的列表) 其他点 10 11-18 DXF:其他点的 X 值(后跟 Y 值代码 21-28 和 Z 值代码 31-38) APP:三维点(三个实数的列表) 20, 30 DXF:主要点的 Y 值和 Z 值 21-28, DXF:其他点的 Y 值和 Z 值 31-37 38 DXF:如果非零,则为图元的标高 39 如果非零,则为图元的厚度(固定) 40-48 双精度浮点值(文字高度、缩放比例等) 48 线型比例;双精度浮点标量值;默认值适用于所有图元类型 重复的双精度浮点值。一个图元的可变长度表(例如,LTYPE 表中的虚49 线长度)中可能会出现多个 49 组。7x 组始终出现在第一个 49 组之前,用以指定表的长度 角度(在 DXF 文件中以度为单位,在 AutoLISP 和 ObjectARX 应用程50-58 序中以弧度为单位) 图元可见性;整数值;未赋值或值为 0 时表示可见;值为 1 时表示不60 可见 62 颜色号(固定) 66 “图元跟随”标志(固定) 67 空间 — 模型空间或图纸空间(固定) APP:指示视口是处于打开状态但在屏幕上完全不可见,还是未激活或68 处于关闭状态 69 APP:视口标识号 70-78 整数值,例如重复计数、标志位或模式 90-99 32 位整数值 子类数据标记(将派生类名作为字符串)从其他具体类派生的所有对象和图元类必须具有此标记。子类数据标记用于分离由同一对象的继承链中的不同类定义的数据。 100 对于从 ObjectARX 派生的每个不同的具体类的 DXF 名称来说,这是必须满足的额外要求 控制字符串,后跟“{<任意名称>”或“}”。与扩展数据 1002 组码类似,不同之处在于当字符串以“{”开始时,其后可跟任意字符串,字符串的解释取决于应用程序。唯一允许的另外一个控制字符串是作为组结束符的“}”。除了执行图形核查操作期间外,AutoCAD 不会解释这些字符串。它们供应用程序使用 DIMVAR 符号表条目的对象句柄 UCS 原点(仅当将代码 72 设置为 1 时才显示) DXF:X 值;APP:三维点 UCS X 轴(仅当将代码 72 设置为 1 时才显示) 111 DXF:X 值;APP:三维矢量 UCS Y 轴(仅当将代码 72 设置为 1 时才显示) 112 DXF:X 值;APP:三维矢量 120-122 DXF:UCS 原点的 Y 值,UCS X 轴和 UCS Y 轴 130-132 DXF:UCS 原点的 Z 值,UCS X 轴和 UCS Y 轴 140-149 双精度浮点值(例如点、标高和 DIMSTYLE 设置) 170-179 16 位整数值,例如表示 DIMSTYLE 设置的标志位 拉伸方向(固定) 210 DXF:拉伸方向的 X 值 102 105 110 APP:三维拉伸方向矢量 220, 230 DXF:拉伸方向的 Y 值和 Z 值 270-279 16 位整数值 280-289 16 位整数值 290-299 布尔标志值 300-309 任意字符串 具有相同表示和 1004 组码限制的任意二进制块:用最大长度为 254 310-319 个字符的十六进制字符串表示最大长度为 127 个字节的数据块 任意对象句柄;“按原样”获取的句柄值。它们在 INSERT 和 XREF 操320-329 作期间不进行转换 软指针句柄;指向同一个 DXF 文件或图形中的其他对象的任意软指针。330-339 在 INSERT 和 XREF 操作期间进行转换 340-349 硬指针句柄;指向同一个 DXF 文件或图形中的其他对象的任意硬指针。在 INSERT 和 XREF 操作期间进行转换 软所有者句柄;指向同一个 DXF 文件或图形中的其他对象的任意软所350-359 有者指针。在 INSERT 和 XREF 操作期间进行转换 硬所有者句柄;指向同一个 DXF 文件或图形中的其他对象的任意硬所360-369 有者指针。在 INSERT 和 XREF 操作期间进行转换 线宽枚举值 (AcDb::LineWeight)。作为 16 位整数存储和移动。自定义非图元对象可以使用整个范围内的组码,但图元类只能在其表示中使370-379 用 371-379 DXF 组码,因为 AutoCAD 和 AutoLISP 都始终假定 370 组码是图元的线宽。这使 370 组码与其他“通用”图元字段具有相同的行为 PlotStyleName 类型枚举 (AcDb::PlotStyleNameType)。作为 16 位整380-389 数存储和移动。自定义非图元对象可以使用整个范围内的组码,但图元类只能在其表示中使用 381-389 DXF 组码,原因与上述线宽范围相同 表示 PlotStyleName 对象的句柄值的字符串,本质上是硬指针,但范围不同,更容易处理向后兼容。作为对象 ID(在 DXF 文件中为句柄)390-399 和 AutoLISP 中的特殊类型存储和移动。自定义非图元对象可以使用整个范围内的组码,但图元类只能在其表示中使用 391-399 DXF 组码,原因与上述线宽范围相同 400-409 16 位整数 410-419 字符串 32 位整数值。与真彩色一同使用时,表示 24 位颜色值的 32 位整数。高阶字节(8 位)为 0;低阶字节为包含“蓝色”值 (0-255)、然后是“绿色”值的无符号字符;次高阶字节是“红色”值。将此整数值转换420-427 为十六进制值将得到以下位掩码:0x00RRGGBB。例如,红色==200、绿色==100 和蓝色==50 的真彩色为 0x00C86432,而在 DXF 中以十进制表示则为 13132850 430-437 字符串;用于真彩色时,则为表示颜色名称的字符串 440-447 32 位整数值。用于真彩色时,表示透明度值 450-459 长整数 460-469 双精度浮点值 470-479 字符串 硬指针句柄;指向同一个 DXF 文件或图形中的其他对象的任意硬指针。480-481 在 INSERT 和 XREF 操作期间进行转换 DXF:999 组码指示后面的行是注释字符串。SAVEAS 不会在 DXF 输出999 文件中包含这样的组,但 OPEN 则包括这些组并忽略注释。可以使用 999 组在您编辑的 DXF 文件中包含注释 1000 扩展数据中的 ASCII 字符串(最多可以包含 255 个字节) 扩展数据的注册应用程序名(最多可以包含 31 个字节的 ASCII 字符1001 串) 1002 扩展数据控制字符串(“{”或“}”) 1003 扩展数据图层名 1004 扩展数据中的字节数据块(最多可以包含 127 个字节) 1005 扩展数据中的图元句柄;最多可以包含 16 个十六进制数字的字符串 扩展数据中的点 1010 DXF:X 值(后跟 1020 和 1030 组) APP:三维点 1020, DXF:点的 Y 值和 Z 值 1030 扩展数据中的三维世界空间位置 1011 DXF:X 值(后跟 1021 和 1031 组) APP:三维点 1021, DXF:世界空间位置的 Y 值和 Z 值 1031 扩展数据中的三维世界空间位移 1012 DXF:X 值(后跟 1022 和 1032 组) APP:三维矢量 1022, DXF:世界空间位移的 Y 值和 Z 值 1032 扩展数据中的三维空间方向 1013 DXF:X 值(后跟 1022 和 1032 组) APP:三维矢量 1023, 1033 1040 1041 1042 1070 1071 DXF:世界空间方向的 Y 和 Z 值 扩展数据双精度浮点值 扩展数据距离值 扩展数据缩放比例 扩展数据 16 位有符号整数 扩展数据 32 位有符号长整数

因篇幅问题不能全部显示,请点此查看更多更全内容