请教不开图,DBX插入图块
;RetVal = object.InsertBlock(InsertionPoint, Name, Xscale, Yscale, ZScale, Rotation [, Password]);想通过不开图在目标图中的指定点插入图中已有的图块对象,不成功。
;但查看(dump) DBX是有InsertBlock方法的
;另外[, Password]如何用,我没查到相关的用法。
;请高手们指点迷津。
(defun c:tt()
(setq dbx (cheng5276-dbx "c:\\02.dwg"))
(Vla-InsertBlock (Vlax-Get dbx 'ModelSpace) (vlax-3d-point '(0 0 0)) "aaa" 1 1 1 0) ;插入不成功
(vla-saveas dbx "c:\\02.dwg")
(vlax-release-object dbx)
)
;创建DBX通用函数
(defun cheng5276-dbx (file / dbxstr dbx)
(setq DbxStr (if (< (atof (getvar "ACADVER")) 16.0)
"ObjectDBX.AxDbDocument"
(strcat "ObjectDBX.AxDbDocument." (substr (getvar "acadver") 1 2))
)
)
(setq dbx (Vlax-Get-Or-Create-Object DbxStr))
(if file (vla-open dbx file))
dbx
)
最近也碰到这个问题,不知道有没有解决了 AUTOCAD的设计中心可以直接拖入,没必要写程序 我也想知道 老帖也回一回
DBX插入文件,试试插入外部文件,密码"778899"是"A$C7EC4176F.dwg" 加密的密码。。(defun c:tt()
(setq dbx (cheng5276-dbx (findfile "20140611~11.dwg")))
(Vla-InsertBlock (Vlax-Get dbx 'ModelSpace) (vlax-3d-point '(0 0 0)) "A$C7EC4176F.dwg" 1 1 1 0 "778899") ;插入不成功
(vla-saveas dbx (findfile "20140611~11.dwg"))
(vlax-release-object dbx)
)
;创建DBX通用函数
(defun cheng5276-dbx (file / dbxstr dbx)
(setq DbxStr (if (< (atof (getvar "ACADVER")) 16.0)
"ObjectDBX.AxDbDocument"
(strcat "ObjectDBX.AxDbDocument." (substr (getvar "acadver") 1 2))
)
)
(setq dbx (Vlax-Get-Or-Create-Object DbxStr))
(if file (vla-open dbx file))
dbx
) 实现了当前文件的块插入到外部文件,应该是楼主所说的。。。
(defun c:tt()
(setq dbx (cheng5276-dbx (findfile "20140611~11.dwg")))
(setq mydoc(vla-get-activedocument(vlax-get-acad-object)))
(setq BLOCKS (vla-get-blocks mydoc))
(setq SB (vla-item BLOCKS "A$C7EC4176F" ))
(vla-copyobjects
mydoc
(vlax-safearray-fill
(vlax-make-safearray
vlax-vbobject
'(0 . 0)
)
(list SB)
)
(Vlax-Get dbx 'ModelSpace)
)
(vlax-release-object SB)
(Vla-InsertBlock (Vlax-Get dbx 'ModelSpace) (vlax-3d-point '(0 0 0)) "A$C7EC4176F" 1 1 1 0 )
;(Vla-InsertBlock (Vlax-Get dbx 'ModelSpace) (vlax-3d-point '(0 0 0)) "A$C7EC4176F" 1 1 1 0 "778899") ;插入不成功
(vla-saveas dbx (findfile "20140611~11.dwg"))
(vlax-release-object dbx)
)
;创建DBX通用函数
(defun cheng5276-dbx (file / dbxstr dbx)
(setq DbxStr (if (< (atof (getvar "ACADVER")) 16.0)
"ObjectDBX.AxDbDocument"
(strcat "ObjectDBX.AxDbDocument." (substr (getvar "acadver") 1 2))
)
)
(setq dbx (Vlax-Get-Or-Create-Object DbxStr))
(if file (vla-open dbx file))
dbx
) 谢大神指导,最近也在琢磨
页:
[1]