CAD——拓展数据相关

 只使用SetXData 绑定

 Dim bType() As Integer, bData() As Variant

 redim bType(4) As Integer: reDim bData(4) As Variant

9   bType(0) = 1001: bData(0) = "标注配置"
10  bType(1) = 1070    '左定位点的序号
11  bType(2) = 1040    '需要减去的值
12  bType(3) = 1000  '定位点类型(是左边的定位点,还是右边的定位点)
13  bType(4) = 1040  '需要赋予的值

 elem.SetXData bType, bData    '同时绑定 配置 到 数据字典

使用CAD自动加固一下

    Dim objDict As AcadDictionary, objXRecord As AcadXRecord
    Dim bType() As Integer, bData() As Variant

    redim bType(4) As Integer: reDim bData(4) As Variant

9   bType(0) = 1001: bData(0) = "标注配置"
10  bType(1) = 1070    '左定位点的序号
11  bType(2) = 1040    '需要减去的值
12  bType(3) = 1000  '定位点类型(是左边的定位点,还是右边的定位点)
13  bType(4) = 1040  '需要赋予的值


    elem.SetXData bType, bData    '同时绑定 配置 到 数据字典
    Set objDict = elem.GetExtensionDictionary()    '绑定完 获取与对象关联的扩展词典
    Set objXRecord = objDict.AddXRecord("标注配置")    '在任何词典中创建扩展记录(XRecord)对象。
    objXRecord.SetXRecordData bType, bData    '设置与词典相关联的扩展记录数据 (XRecordData)

常用的DXF组码一般有:

0 : 图元类型

1 : 图元的主文字值(似乎多行文字 不起作用)

60 :可见性 0 = 可见  1= 不可见

1001 :   扩展数据的注册应用程序名(最多可以包含 31 个字节的 ASCII 字符串)

1000:扩展数据中的 ASCII 字符串(最多可以包含 255 个字节) 1070: 扩展数据 16 位有符号整数

1071:扩展数据 32位有符号整数 (一般绑定CAD10进制)

 对于组码0:图元类型一般有这些

Insert 图块

LWPolyline  多段线

Text ,MText   单行文本,多行文本(,表示或的关系)

Hatch  图案填充,由直线图案组成的区域填充

Dimension  标注

ATTDEF  属性

去除绑定的拓展数据

dim objDict As AcadDictionary

Set objDict = Ent.GetExtensionDictionary()    '绑定完 获取与对象关联的扩展词典
Call DelobjDictByName(objDict, "配置")


'删除对象数据字典中指定绑定:APPName
Public Function DelobjDictByName(ByRef objDictX As AcadDictionary, AppName As String) As Boolean
On Error GoTo Err_ABC
objDictX.Remove AppName
DelobjDictByName = True
Exit Function
Err_ABC:
End Function

CAD 文档绑定拓展数据

ModelSpace上绑定拓展数据

获取对象绑定的全部拓展数据

   Dim elem As AcadEntity, p As Variant
    Dim bType As Variant, bData As Variant, i As Integer, CColor As Long
2   If CADisBusy Then Exit Sub
3   Me.Hide
4   Set elem = GetEntity("请选择要获取句柄的图纸对象:", p)
5   Me.Show
6   If elem Is Nothing Then Exit Sub
7   txtX(2) = "": txtX(0) = CLng("&H" & elem.Handle)
8   txtX(1) = elem.Handle: txtX(5) = ""
9   txtX(4) = elem.EntityType: txtX(3) = elem.EntityName
10  LVAttBOM.ListItems.Clear

11  elem.GetXData "", bType, bData
12  If Not IsEmpty(bData) Then
13      CColor = vbRed
14      For i = 0 To UBound(bData)
15          If bType(i) = 1001 Then
16              Set itmX = LVAttBOM.ListItems.Add(, , bType(i))
17              itmX.SubItems(1) = bData(i)
18              CColor = IIf(CColor = vbBlack, vbRed, vbBlack)
19          Else
20              Set itmX = LVAttBOM.ListItems.Add(, , bType(i))
21              itmX.SubItems(1) = bData(i)
22          End If
23          itmX.ForeColor = CColor
24      Next
25  End If

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值