;;----------------=={ 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에서 사용 된 것은 이번이 처음입니다.AutoLISP에서 ":"및 "->"사용
저는 실제로 "LM:"
의 의미에 대해 설명하려고합니다.
"Ref->"
의 사용도 저에게는 질문입니다. "Ref"
은 정의되지 않은 것처럼 보이므로 어떤 식 으로든 시스템의 일부 여야합니다. "Ref->"
과 같은 사용법을 설명하는 문서를 가져올 수는 없습니다.
로컬 변수 ss
에 "LM:ss->"
으로 액세스하는 이유는 무엇입니까?
감사합니다.
마지막으로 "->"가 포함 된 함수의 이름을보고 나서 이해했습니다. 그래서 저는 LISP의 일환으로 "=>"가있을 수 있지만 리 맥 협약은 실제 "->"가 아니라고 생각합니다. – Giuseppe