iceberg2509 发表于 2004-11-27 10:39:00

利用objectDBX如何获取外部块数据

看了版主的提供的许多好程序,偶有一个问题:利用objectDBX如何获取指定图形文件中的块数据,比如明细表块?最好能给一个例程,最好是用vlisp与objectdbx接口,如不行用vba接口也行啊

迷失1786 发表于 2018-4-22 21:58:12


学习一下 谢谢分享

龙龙仔 发表于 2004-11-29 12:54:00

<b>你看懂这个贴了吗?</b>


<b>利用ObjectDbx技术在当前图形中插入其它未打开的图形中的图块</b><BR>

iceberg2509 发表于 2004-11-29 21:20:00

斑竹给的程序是插入其他未打开图形的中的块定义,可是我需要的是那些带有属性的块的属性值?还请斑竹明示!

龙龙仔 发表于 2004-11-30 17:17:00

说详细点!

iceberg2509 发表于 2004-12-1 23:42:00

比如说,在ha0g.dwg中有一个块名为mxl,它有“序号”、“数量”、“材料”属性,而且在ha0g.dwg已经插入了一些mxl块,当然块定义一样,可是每个插入的块的数据是不一样的,如以下两个插入块数据:


1       2       Q235-A


2       1       25


我想在不打开文档的情形下,获得这些插入块的数据。

龙龙仔 发表于 2004-12-2 16:31:00

;;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)
)

xinghesnak 发表于 2005-9-16 09:55:00

<P>版主,你的VLX文件怎么用啊。。。我用VBA开发的。。。你上面给的C看不懂啊。。。。还有就是OBJDBX支持块炸开么??</P>

jinmaji 发表于 2008-8-27 09:14:00

<p>请教<strong><font face="Verdana" color="#da2549">龙龙仔版主,你的这个文件能不能用VB实现啊?谢谢!或者怎么使用?最好用VB实现,再次感谢!</font></strong></p>

tyxdd 发表于 2008-10-7 23:42:00

<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里修改了图形后,又怎么保存原图呢,好麻烦啊&nbsp; 麻烦您不吝赐教,多谢了!要是vb或别的方法能实现也行啊</font></font></font></font></font></p>

cczjw 发表于 2009-2-9 11:02:00

<p>我也关注用VBA的实现,先谢龙版主。</p>
页: [1] 2
查看完整版本: 利用objectDBX如何获取外部块数据