Hallo Leute,
Ich habe ein Problem mit dem sendcommand-Befehl. Mir gelingt es zwar einen Parameter an den Lispaufruf zu übergeben, aber auf den Rückgabewert der Lispfunktion kann ich in
VBA nicht zugreifen. Hat jemand eventuell eine Idee dazu?
_____________________________________________________________
Sub test()
ThisDrawing.Utility.GetEntity BlockRef, inspkt, "Blockwählen"
oi = Attributes(3).ObjectID ' Objekt-Id des 3. Attributwertes
hOBJEKTID = oi
ThisDrawing.SendCommand "(oi2la " & hOBJEKTID & ")" & vbCr ' Die Object_Id des Blockes wird
' an eine Lispfunktion übergeben
' an dieser Stelle möchte ich den Rückgabe Wert der
' Lispfunktion weiterverarbeiten
End Sub
_______________________________________________________________
Der Lisp-Qellcode
(defun oi2la(hOBJEKTID )
; Routine zur Ermittlung des Layernamens aus der Objekt-ID
(setq DOC(vla-get-activedocument(vlax-get-acad-object)))
(setq OBJ2(vla-ObjectIDToObject DOC hOBJEKTID)); hOBJEKTID ist die Objekt-Id des Blockes
(setq OBJ3(vlax-vla-object->ename OBJ2))
(setq layer_n (cdr (assoc 8 (entget OBJ3))))
)
----------------------------------------------
Der Rückgabewert der Lispfunktion ist der Inhalt der Varable layer_n der Layername des Blockes als String. Wie komme ich an ihn in VBA heran
Ein Tipp wäre sehr hilfreich für mich.
Gruß Volker
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP