;;----------------=={ 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)
このタイプの構文が AutoLISP で使用されているのを見たのはこれが初めてです。
私は"LM:"
実際に何を意味するのかについて何らかの説明を得ようとしています。
の使用"Ref->"
も私にとって問題です。"Ref"
は定義されていないようで、何らかの形でシステムの一部であるに違いないと思われますが、そのような"Ref->"
.
ローカル変数ss
が でアクセスされるのはなぜ"LM:ss->"
ですか?
ありがとうございました。