Erzeuge einen Block z.B. aus einem Würfel Kantenlänge 1 und nenne ihn "box".
Dann sollte das hier funktionieren:
a) als einfachen Command Aufruf
Code:
(command "_insert" "box" "_x" 1 "_y" 2 "_z" 3 '(5.0 6.0 7.0) 0)
b) Echtes Lisp sähe dann so aus
Code:
(entmake
(list (cons 0 "INSERT")(cons 2 "box")
(cons 67 0) (cons 410 (getvar "ctab")) (cons 8 (getvar "clayer"))
(cons 10 (list 5.0 6.0 7.0))
(cons 41 1.1)(cons 42 2.2)(cons 43 3.3)
(cons 50 45.0)
)
)
v) In Visual Lisp kann man auch vla-InsertBlock verwenden
die Setq sollen die einzelnen Schritte leichter erkennbar machen, die Funktionen können natürlich ohne Variablenzuweisung direkt eingesetzt werden.
Code:
(setq acad (vlax-get-acad-object)) ;Get AutoCAD application object
(setq doc (vla-get-ActiveDocument acad)) ;Get the current document object
(setq ms (vla-get-ModelSpace doc)) ;Get the document's Model Space object
(setq pt (vlax-make-safearray vlax-vbDouble '(0 . 2))) ;Create a 3 element array to hold the insertion point
(setq pt (vlax-safearray-fill pt '(3.0 4.0 5.0))) ;Fill the array with the insertion point XYZ
(setq blk (vla-InsertBlock ms pt "box" 1.1 2.2 3.3 33.0)) ;Create a block reference
------------------
Mit freundlichem Gruß
Udo Hübner
www.CAD-Huebner.de
[Diese Nachricht wurde von CAD-Huebner am 14. Apr. 2014 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP