Ich habs nur auf die Schnelle zusammengehauen, aber es sollte eigentlich so funktionieren:
(defun AecInitDocument (doc / acadapp activedoc product aec-database ret)
(setq
acadapp (vlax-get-acad-object)
product (vl-registry-read (strcat "HKEY_LOCAL_MACHINE\\" (vlax-product-key)) "ProductName")
)
(cond
((= product "Autodesk Architectural Desktop 2005")
(setq aecdoc "AecX.AecArchBaseDocument.4.5")
)
((= product "Autodesk Architectural Desktop 2004")
(setq aecdoc "AecX.AecArchBaseDocument.4")
)
((= product "Autodesk Architectural Desktop 3.3")
(setq aecdoc "AecX.AecArchBaseDocument.3")
)
((= product "Autodesk Architectural Desktop 3")
(setq aecdoc "AecX.AecArchBaseDocument")
)
)
(if (not doc)
(setq doc (vlax-get acadapp "ActiveDocument"))
)
(setq ret (vlax-invoke acadapp "getinterfaceobject" aecdoc))
(vlax-invoke ret "init" doc)
ret
)
(defun GetAdtUnits ( / prefs doc aecunits)
(setq
doc (AecInitDocument nil)
prefs (vlax-get doc "Preferences")
)
(setq aecunits (vlax-get prefs "LinearUnit"))
(cond
((= aecunits 2) (print "Meter"))
((= aecunits 23) (print "Dezimeter"))
((= aecunits 24) (print "Zentimeter"))
((= aecunits 25) (print "Millimeter"))
((= aecunits 30) (print "Feet"))
((= aecunits 31) (print "Inch"))
(T (print aecunits))
)
(if doc (vlax-release-object doc))
(if prefs (vlax-release-object prefs))
aecunits
)
sayonara
Torsten Möhlenhoff
ACAD-Systemhaus Bremen
[Diese Nachricht wurde von tmoehlenhoff am 13. Mai. 2004 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP