利用VB为AutoCADR14的实体添加和读出扩展数据0钢筘
利用VB为AutoCADR14的实体添加和读出扩展数据
利用VB为AutoCADR14的实体添加和读出扩展数据 2011年12月10日 来源: 扩展数据是AutoCAD最有特色的功能,程序员可以为实体附加必要的扩展数据,使实体带有具体的含义,而不是单纯的一个AutoCAD图元。扩展数据有许多用处,除可以存放数据外,还可以利用扩展数据获取选择集。下面是两个关于扩展数据的示例:Private Sub Command4_Click()Dim ent As ObjectDim startPoint(0 To 2) As DoubleDim endPoint(0 To 2) As DoubleDim dataType(0 To 3) As IntegerDim data(0 To 3) As VariantSet objAcad = GetObject(, "AutoCAD.Application") ' 获得AutoCAD R14对象Set objDoc = objAcad.ActiveDocumentstartPoint(0) = 10#startPoint(1) = 10#startPoint(2) = 0#endPoint(0) = 20#endPoint(1) = 10#endPoint(2) = 0#dataType(0) = 1001 '扩展数据组的应用名data(0) = "管道专业扩展数据"dataType(1) = 1000data(1) = "供水管"dataType(2) = 1040 '长度data(2) = 15.5dataType(3) = 1070 '公称直径data(3) = 32' 画 LINESet ent = objDoc.ModelSpace.AddLine(startPoint, endPoint)With ent.Color = 1 ' 改用红色Call .SetXData(dataType, data) '写入扩展数据End WithSet objAcad = NothingEnd SubPrivate Sub Command5_Click()Dim UtilObj As ObjectDim sset As ObjectDim ent As ObjectDim Point1(0 To 2) As DoubleDim Point2(0 To 2) As DoubleDim gpCode(0 To 1) As IntegerDim dataValue(0 To 1) As VariantDim varData As VariantDim groupCode As Variant, dataCode As VariantDim xdataType As VariantDim xdataValue As VariantSet objAcad = GetObject(, "AutoCAD.Application") ' 获得AutoCAD R14对象Set objDoc = objAcad.ActiveDocumentOn Error GoTo Error_GetEntitySet UtilObj = objAcad.ActiveDocument.Utility' 初始化名为 ss1 的一个选择集Set sset = objAcad.ActiveDocument.SelectionSets.Add("ss1")' 获得系统变量 LIMMIN 用于设置第一个虚拟点varData = objAcad.ActiveDocument.GetVariable("LIMMIN")Point1(0) = varData(0)Point1(1) = varData(1)Point1(2) = 0#' 获得系统变量 LIMMAX 用于设置第二个虚拟点varData = objAcad.ActiveDocument.GetVariable("LIMMAX")Point2(0) = varData(0)Point2(1) = varData(1)Point2(2) = 0#gpCode(0) = 0 ' 设置第一个过滤条件的组代码dataValue(0) = "Line" ' 过滤出 Line 实体gpCode(1) = 1001 ' 设置第二个过滤条件的组代码dataValue(1) = "管道专业扩展数据" ' 过滤出含扩展数据组的应用名的实体groupCode = gpCode ' 设置全部过滤条件的组代码dataCode = dataValue ' 设置全部过滤条件 ' 用条件过滤获得选择集sset.Select 0, Point1, Point2, groupCode, dataCodeIf sset.Count > 0 Then Set ent = sset(0) ' 从选择集中取出第一个实体 Call ent.GetXData("管道专业扩展数据", xdataType, xdataValue) MsgBox xdataValue(1) + ": 长度=" + Str(xdataValue(2)) + " 公称直径=" + Str(xdataValue(3))End IfSet objAcad = NothingExit SubError_GetEntity: MsgBox Err.Description, 16, "Error: AutoCAD is not running" Set objAcad = Nothing Exit SubEnd Sub
- 最好涂料代理新妙招抢涂料蛋糕有法暗杆闸阀防城港解码板前置放大器吸盘Trp
- 最好氧化铝提价预演铝业新趋势电子表激光打孔排气装置铜仁主轴Trp
- 最好1月16日马鞍山热轧板卷最新价格行情饼干生产线腐蚀试验箱军事装备热收缩机荥阳Trp
- 最好东方希望包头铝业初心在方寸咫尺遇匠心安国反应釜接入设备千分表武夷山Trp
- 最好佛山断桥铝门窗定制精益求精铸造品质的典范北京丰镇精密螺丝球面轴承橡胶机Trp
- 最好教你如何辨别机械配件的真伪冲床功率器件冷干机实验仪仪表盒Trp
- 最好4月21日淄博不锈钢板卷最新价格行情0Ic智能卡峨眉山交流发电机起重吸盘乌兰浩特Trp
- 最好明泰铝业让投资者读懂公司与投资者共享成长饼干机腐蚀机掘进机热收缩管型钢Trp
- 最好17日山东市场再生精铅价格行情GPS系统多路阀交换式电源起动继电器蜗轮蜗杆Trp
- 最好力拓加铝南非冶炼厂项目将可能搁置数年雕刻刀具挤出机配液罐脱水机转速表Trp
- 最好实惠的汽车漆面镀晶推荐在您的不二选择船用电缆灌封机连接线疏水阀印刷机械Trp
- 最好机构看盘神通期货8月10日上海期铝技术解电子尺激光雕刻排污泵铜线材注射模具Trp
- 最好欧元区9月综合PMI初值539略低于预期裁板锯钢垫圈颗粒机瑞安选矿Trp
- 最好8日1545嘉兴市场建筑钢材价格行情冲床模具攻丝机冷库实验仪器仪表机床Trp