Hallo
ich möchte eine DWG per Lisp öffnen (so wie im Designcenter)
und dann die Xref's in der dwg binden.
Funktioniert nicht so ganz. Ich bin kein AktivX Held und ich bin mir nicht sicher ob das geht, jedoch für Untersützung bin ich sehr dankbar.
(setq strFile "D:\\Test.dwg")
(setq erg (getvar "ACADVER"))
(cond
((= erg "15.0") (setq strDBX "ObjectDBX.AxDbDocument"))
((= (substr erg 1 4) "17.1") (setq strDBX "ObjectDBX.AxDbDocument.17"))
((= (substr erg 1 4) "17.0") (setq strDBX "ObjectDBX.AxDbDocument.17"))
((= (substr erg 1 4) "16.2") (setq strDBX "ObjectDBX.AxDbDocument.16"))
((= (substr erg 1 4) "16.1") (setq strDBX "ObjectDBX.AxDbDocument.16"))
((= (substr erg 1 4) "16.0") (setq strDBX "ObjectDBX.AxDbDocument.16"))
((= (substr erg 1 5) "15.05") (setq strDBX "ObjectDBX.AxDbDocument.15"))
((= (substr erg 1 5) "15.06") (setq strDBX "ObjectDBX.AxDbDocument.15"))
); cond
(if (vl-catch-all-error-p (setq oDbx (vl-catch-all-apply 'vla-GetInterfaceObject (list (vlax-get-acad-object) strDBX))))
(setq oDbx nil)
(progn
(if (not(vl-catch-all-error-p (vl-catch-all-apply 'vla-open (list oDbx strFile))))
(progn
(vlax-for X (vla-get-blocks oDbx)
(if (= (vla-get-isxref X) :vlax-true)
(progn
(setq XREFISLOADED (vl-catch-all-apply 'vla-get-xrefdatabase (list X)))
(if (= (vl-catch-all-error-p XREFISLOADED) nil)
(vlax-invoke-method X "bind" :vlax-false)
(vlax-invoke-method X "detach")
);_end if
);_end progn
(princ)
);_end if
)
(vlax-release-object oDbx)
(setq oDbx nil)
);_end progn
);_end if
);-end progn
);end if
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP