利用objectDBX如何获取外部块数据
看了版主的提供的许多好程序,偶有一个问题:利用objectDBX如何获取指定图形文件中的块数据,比如明细表块?最好能给一个例程,最好是用vlisp与objectdbx接口,如不行用vba接口也行啊学习一下 谢谢分享 <b>你看懂这个贴了吗?</b>
<b>利用ObjectDbx技术在当前图形中插入其它未打开的图形中的图块</b><BR> 斑竹给的程序是插入其他未打开图形的中的块定义,可是我需要的是那些带有属性的块的属性值?还请斑竹明示! 说详细点! 比如说,在ha0g.dwg中有一个块名为mxl,它有“序号”、“数量”、“材料”属性,而且在ha0g.dwg已经插入了一些mxl块,当然块定义一样,可是每个插入的块的数据是不一样的,如以下两个插入块数据:
1 2 Q235-A
2 1 25
我想在不打开文档的情形下,获得这些插入块的数据。 ;;Source is a valid path & dwg name;;提取不打开图档中图块属性值(.vlx);;(DBX_ATT <Source> <blockname>);;(DBX_ATT (getfiled "选取图档" (getvar "dwgprefix") "dwg" 8) "标题");;Objectdbx已径提供了不少例子,但却很少看到有网友使用;;不知问题到底在那里?? 8-(;;是例子不足吗?;;好吧!再提供一个DBX_架构;;Source is a valid path & dwg name
;;(DBX (getfiled "选取图档" (getvar "dwgprefix") "dwg" 8))
;;By 赖云龙(LUCAS)
(defun DBX (SOURCE / APP ODOC DOC ODBX DOCTEST FILENAME) (vl-load-com) (setqAPP (vlax-get-acad-object)
DOC (vla-get-activedocument APP)
) (vlax-for ODOC (vla-get-documents APP)
(if(= (strcase (vla-get-fullname ODOC)) (strcase SOURCE))
(setq DOCTEST t)
)
) (if (and (not DOCTEST) (setq FILENAME (findfile SOURCE)))
(progn
(if (> (atoi (getvar "AcadVer")) 15)
(setq ODBX (vla-getinterfaceobject
APP
"ObjectDBX.AxDbDocument.16"
)
)
(progn
(if (not (vl-registry-read
"HKEY_CLASSES_ROOT\\ObjectDBX.AxDbDocument\\CLSID"
)
)
(startapp "regsvr32.exe"
(strcat "/s \"" (findfile "axdb15.dll") "\"")
)
)
(setqODBX (vla-getinterfaceobject
APP
"ObjectDBX.AxDbDocument"
)
)
)
)
(vla-open ODBX FILENAME)
;;;do something (mapcar 'vlax-release-object (list APP DOC ODBX))
)
(progn
(if DOCTEST
(alert
"You tried to use a file in use by Autocad, please close it and try again...."
)
(alert "Source file not found, please try again....")
)
)
)
(princ)
)
<P>版主,你的VLX文件怎么用啊。。。我用VBA开发的。。。你上面给的C看不懂啊。。。。还有就是OBJDBX支持块炸开么??</P> <p>请教<strong><font face="Verdana" color="#da2549">龙龙仔版主,你的这个文件能不能用VB实现啊?谢谢!或者怎么使用?最好用VB实现,再次感谢!</font></strong></p> <p><font face="Verdana"><font color="#000000"><font face="宋体" size="2"><font face="宋体" size="2"><font color="#000000">龙版主啊,我碰到一个问题,就是我想搞一个purgeall的小程序,选择一批图形,在不打开图形的前提下对其进行批量图形清理(purgeall),可是ObjectDBX里面好像没有purgeall方法,您有什么好办法能解决吗?我要求不打开图形时对其进行处理。还有就是ObjectDBX只有saveas没有save方法,那么我在ObjectDBX里修改了图形后,又怎么保存原图呢,好麻烦啊 麻烦您不吝赐教,多谢了!要是vb或别的方法能实现也行啊</font></font></font></font></font></p> <p>我也关注用VBA的实现,先谢龙版主。</p>
页:
[1]
2