获取表格单元格字段数据
我有一个表格单元,其中包含一个链接到块属性的字段。当我使用GetCellValue方法时,它返回属性的文本值。
如何检索实际字段数据,例如:
%%).文本字符串>%
我主要感兴趣的是检索包含字段引用的属性的块的ObjID。 针对我的具体实例解决了问题。
从包含如上格式字段的表格单元格(第0行,第0列)开始:
存储对活动文档的引用:
(setq activedoc(vla get activedocument(vlax get acad object)))
通过用户选择获取表格对象:
(setq table obj(vlax ename->vla对象(car(entsel)))
获取单元格的字段ID:
(setq pfieldid(vla GETFELDID table obj 0)
将字段ID转换为对象:
(setq pobject(vla objectidtobject activedoc pfieldid))
显然,VLISP不完全支持字段对象,因此我需要获取字段的DXF实体数据才能继续:
(setq pdxf(entget(handent(vla get handle pobject)))
这是父字段数据。从这里,我从代码360中检索子字段ename,然后检索DXF实体数据:
(setq cdxf(entget(cdr(assoc 360 pdxf)))
代码331是属性引用的名称,我使用它来获取属性引用对象:
(setq aobject(vlax ename->vla object(cdr(assoc 331 cdxf)))
最后,我使用属性引用对象的所有者ID检索了块引用对象:
(setq bobject(vla objectidtobject activedoc(vla get ownerid aobject)))
我只在32位AutoCAD 2011上测试了这个。对于64位,使用GetFieldId32。
欢迎发表任何评论。
页:
[1]