;;----------------=={ Add Objects to Block }==----------------;;
;; ;;
;; Adds all objects in the provided SelectionSet to the ;;
;; definition of the specified block. ;;
;;------------------------------------------------------------;;
;; Author: Lee Mac, Copyright © 2011 - www.lee-mac.com ;;
;;------------------------------------------------------------;;
(defun LM:AddObjectstoBlock (doc block ss/lst mat)
(setq lst (LM:ss->vla ss)
mat (LM:Ref->Def block)
mat (vlax-tmatrix (append (mapcar 'append (car mat) (mapcar 'list (cadr mat))) '((0. 0. 0. 1.))))
)
(foreach obj lst (vla-transformby obj mat))
(vla-CopyObjects doc (LM:SafearrayVariant vlax-vbobject lst)
(vla-item (vla-get-Blocks doc) (cdr (assoc 2 (entget block))))
)
(foreach obj lst (vla-delete obj))
(vla-regen doc acAllViewports)
Dies ist das erste Mal, dass ich diese Art von Syntax in AutoLISP verwendet habe.Die Verwendung von ":" und "->" in AutoLISP
Ich versuche zu verstehen, was "LM:"
eigentlich bedeutet.
Die Verwendung von "Ref->"
ist auch eine Frage an mich. "Ref"
scheint nicht definiert zu sein, so scheint es, dass es irgendwie Teil des Systems sein muss, obwohl ich keine Dokumentation entnehmen konnte, die eine solche Verwendung von "Ref->"
beschreibt.
Warum wird auf die lokale Variable ss
mit "LM:ss->"
zugegriffen?
Vielen Dank.
Ich verstand endlich nach dem Blick auf den Namen der Funktion, die "->" enthält. Also denke ich, dass es ein "=>" als Teil von LISP geben kann, aber kein tatsächliches "->", was eine Lee Mac Konvention ist. – Giuseppe