Moin !
hier die Rückmeldung zu meinem Problem vom Autodesk Support:
On the x64 platform, creating a Field expression from lisp (or VB) requires that you use the 64-bit ObjectID as a string. There is a way to do this in AutoCAD 2009. (Unfortunately, it was not documented, this is being addressed)
This GetObjectIdString() is exclusive to the x64 platform and would be something like the following VisualLISP example:
;;;Just get these objects once.
(vl-load-com)
(setq acadObj (vlax-get-acad-object)
acadDoc (vla-get-ActiveDocument acadObj)
util (vlax-get-property acadDoc "Utility")
)
(defun c:myfield()
(command "_point" "5,5")
(setq e (entlast))
(setq o (vlax-ename->vla-object e))
(setq oID (vlax-invoke-method util "GetObjectIdString" o :vlax-False)
)
(command "_-mtext" "0,0" "5,5"
(strcat "%<\\AcObjProp Object(%<\\_ObjId "
(vl-princ-to-string oID)
">%).ObjectName>%")
""
))
Or in VB syntax:
Dim util As IAcadUtility2
Set util = ThisDrawing.Utility
Set oText = ThisDrawing.ActiveLayout.Block.AddText("%<\AcObjProp
Object(%<\_ObjId " & util.GetObjectIdString(oPLine, False) & ">%).Area \f ""%lu6%qf1"">%", vPt4, dTextSize)
Gruß Jan .-)
------------------
jan :-)
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP