아래 리습 참고하세여.
일반 리습으로 만들려고 하다가 늦은시간 시간이 오래걸려서.^^;;;; 일반리습으로는 고수님들이 부탁드립니다.^^
연습용 리습입니다. 블러관련은 VLA 로 하시는게 더 편한거 같더라구여.^^
(defun c:asd()
(vl-load-com)
(setq AcDoc (vla-get-activedocument (vlax-get-acad-object)))
(cond ((= (vla-get-activespace AcDoc) 1) (setq oSpace (vla-get-modelspace AcDoc)))
((= (vla-get-activespace AcDoc) 0) (setq oSpace (vla-get-paperspace AcDoc)))
) ;; 기본적으로 요기까지는 받아오셔야합니다. 블럭삽입할때 ms 인지 ps 인지 판단을 해야되서여
(setq insertp (getpoint "\n삽입점클릭:"))
;; 블럭삽입포인트를 받고.
(setq Inscale (getint "\n내부 블럭 스케일:"))
;; 내부 스케일 값을 입력받았ㅅ느데. 이걸 (getvar "dimscale") 로 하면됩니다.
(vla-InsertBlock oSpace (vlax-3d-point insertp) "ASSY" 1 1 1 0)
;; 블럭을 삽입해주고여.
(setq oBlock (vla-item (vla-get-blocks Acdoc) "ASSY"))
;; 해당 블럭의 정보를 받아와서.
(vlax-for x oBlock (if (= (vla-get-ObjectName x) "AcDbBlockReference") (setq Inblock x)))
;; 안에 내부블럭을 가져옵니다. 블럭이 여러개라면 특정이름을 지정해야겠져. (vla-get-name 으로 특정이름과 같다면. 해당 객체를 가져오게여.
(vla-put-XScaleFactor Inblock Inscale) ;;해당 블럭안에 있는 블럭의 크기를 조절합니다.
(vla-put-YScaleFactor Inblock Inscale)
)
댓글
댓글 리스트-
답댓글 작성자3:16 작성시간 10.06.22 누가 월드컵 기간 아니랄까봐... 골대앞에서 어스시트 해주시나요?^^;;;;
-
작성자3:16 작성시간 10.06.22 음..저는요...
블록의 블록을 오토리습으로 다루는걸 모르는데요? ㅠㅜ ;;; -
답댓글 작성자3:16 작성시간 10.06.22 깨서 해야 되나요?^^;;;
-
작성자지배인 작성시간 10.06.22 늦은 시간에 올린 질문이라 하루 기다려야겠구나 생각했었는데 답변이 달려있어서 깜짝 놀랐습니다. @.@
상세한 해설까지 달려있어서 학습에 큰 도움이 되겠습니다. 감사합니다. -
작성자회사원 신신애 작성시간 10.06.22 숙오하셨습니다..