a1.DWG 도면에 블록 10개(1,2,3,4,5,6,7,8,9,10)번 저장해놓고
a2.DWG 도면에다가 a1 도면에있는 블록중 특정블록(ex: 3번블록)을 가져와서 붙여놓고 싶은데.
——————————————
(defun c:test ( / dir )
(setq dir “c:\aa.dwg”)
(_CopyObjectsFromDwg dir ‘(“BLOCKS” “B1” “B2” “B3”))
;(_CopyObjectsFromDwg dir ‘(“LAYERS” ….))
;(_CopyObjectsFromDwg dir ‘(“LINETYPES” ….))
;(_CopyObjectsFromDwg dir ‘(“TEXTSTYLES” ….))
;(_CopyObjectsFromDwg dir ‘(“DIMSTYLES” ….))
(command “_.insert” “B1” pause 1. 1. 0.)
(command “_.insert” “B2” pause 1. 1. 0.)
(command “_.insert” “B3” pause 1. 1. 0.)
)
(defun _CopyObjectsFromDwg
( dir data / *error* doc dbx
_Release
_Doc
_Document
_DBX
_Apply
_CopyObjects
)
(defun _Release ( obj )
(and obj (eq ‘VLA-OBJECT (type obj)) (not (vlax-object-released-p obj))
(not
(vl-catch-all-error-p
(vl-catch-all-apply
(function vlax-release-object) (list obj)
)
)
)
)
)
(defun _Doc ( ^doc ^spc / doc^ )
(setq doc^ (vla-get-activedocument (vlax-get-acad-object)))
(if ^spc
(set ^spc
(vlax-get-property doc^
(if (= 1 (getvar ‘CVPORT)) ‘Paperspace ‘Modelspace)
)
)
) (if ^doc (set ^doc doc^))
)
(defun _Document ( dwg / docs dbx dbxdoc )
(vlax-for x (vla-get-documents (vlax-get-acad-object))
——————————————————————————
이건 여러개의 블록을 전부 집어넣는거라…
제가 원하는 블록 한개만 선택해서 집어넣고 싶습니다.
어느 부분을 수정해야되나요?
아니면 다시 짜야되는건가요..;;
파일을 일부만 가져오셨네요
저렇게 수정하게 된다면 정해진 블록만 가져올수있지 않나요?
(setq bknm(getstring “nEnter Block name:”))
감사합니다.