Moin Krenzi,
die Koordinaten einer Linie in einen Eigenschaftssatz zu verfrachten ist leider etwas mühselig. Es geht meines Wissens nur mittels vbscript. Eigentlich könnten ein paar Zeilen wie z.B. folgendes zum Ziel führen:
Code:
On Error Resume Next
Set AcadApp = GetObject(, "AutoCAD.Application")
Set Line= AcadApp.Activedocument.Objectidtoobject("Object-ID")
RESULT= Line.Startpoint
Leider hilft das aber nicht wirklich, da die Koordinaten in Variants gespeichert werden und mit denen kann man so wenig anfangen und ihnen auch nicht einfach mal flugs X,Y und Z entlocken. Man benötigt also eine Konvertierungsfunktion und diese gibt es auch, nur wird dadurch der Code wieder länger und leider auch versionsabhängig. Eine vbscript-Eigenschaft für die X-Koordinate einer Linie sieht dann wie folgt aus:
Code:
on error resume next
Set acadApp = GetObject(,"AutoCAD.Application")
acadVerString = acadApp.ActiveDocument.GetVariable("ACADVER")
Select Case acadVerString
Case "18.2s (LMS Tech)" 'ACA-2012
aecBaseVer = "AecX.AecBaseApplication.6.7"
Case "19.0s (LMS Tech)" 'ACA-2013
aecBaseVer = "AecX.AecBaseApplication.7.0"
Case "19.1s (LMS Tech)" 'ACA-2014
aecBaseVer = "AecX.AecBaseApplication.7.5"
Case "20.0s (LMS Tech)" 'ACA-2015
aecBaseVer = "AecX.AecBaseApplication.7.7"
Case "20.1s (LMS Tech)" 'ACA-2016
aecBaseVer = "AecX.AecBaseApplication.7.8"
Case Else
aecBaseVer = "Unknown"
End Select
If aecBaseVer = "Unknown" Then
RESULT = "Unbekannte AutoCAD-Version"
Else
Set aecBase = acadApp.GetInterfaceObject(aecBaseVer)
aecBase.Init acadApp
Set Line = acadApp.ActiveDocument.ObjectIDToObject("[Objekt-ID]")
Set utilObj = aecBase.ActiveDocument.Utility
SP = utilObj.ConvertToVariantArray(Line.Startpoint)
RESULT = SP(0)
End If
Für Y ist dann am Ende ein RESULT = SP(1) und bei Z dann entsprechen RESULT = SP(2) erforderlich. Für die Koordinaten des Entpunktes muss man dann in der dritten Zeile von unten das Line.Startpoint durch Line.Endpoint ersetzen. Wie gehabt muss zuvor eine Eigenschaft Object-ID erstellt werden und in dem vbscript muss das [Object-ID] dann mit einem Doppelklick von Links unten aus "Eigenschaftsdefinitionen einfügen" übernommen werden.
sayonara
Torsten Möhlenhoff
ACAD-Systemhaus Bremen
------------------
Tadle nicht den Fluss, wenn Du ins Wasser fällst.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP