티스토리 뷰

반응형

캐드작업을 하다보면, 블록을 하나, 둘... 이런식으로 계속 만들어야 하는 경우, 손이 아무리 빠른 사람도 지겹게 마련입니다. 이런 작업을 매일... 수없이 반복한다면, 어? 이거 편리하게 하는 방법이 없을까? 해서.... 찾아보았습니다.

 

 

우린 폭풍 검색을 하겠죠?

오토캐드뿐만 아니라 리습을 지원하는 국내 캐드프로그램 캐디안에서도 당연히 됩니다.

WBLOCK을 쉽게 하는 방법을 리습이란 언어로 구현다고 보면 될 것입니다.

특히, NCT작업등 산업현장에서 수업이 블럭을 잡고 해체하고 또 잡고 만들고 하는 작업의 반복입니다.

한번이라도 클릭을 줄일 수 있다면 그건 영양가가 있다고 생각합니다.

왜냐하면, 그 동작을 계속하면 **** 하루에 수백번을 더 눌러야 하는 결과가 나오니까요.

 

;====================
;==== 블록만들기 ====
;====================
(defun c:wb()
(setq ww(getvar "cdate")
xx1(itoa (getvar "SPLINESEGS"))
aa1(itoa (fix (getvar "DIMSCALE")))
vbb1(itoa (fix (getvar "LTSCALE"))))
(setq we(rtos ww 2 4) wr(substr we 1 4) wt(substr we 5 2)
wy(substr we 7 2) wx(substr we 10 2)wz(substr we 12 2))
(setq sec (rtos (setq seconds (* 864000 (- ww (fix ww)))) 2 0))
(setq bl_name(strcat wr wt wy wx wz sec))
(prompt "\n select objects. ")
(setq MI(SSGET))
   
(setq bl_name (strcat "C:/blockfolder/" bl_name)) ; 블럭의 경로를 설정합니다.
; 윗부분의 폴더는 원하는 폴더로 수정해서 사용하세요.

; setq p1 "0,0") ;; 블럭의 기준점을 0,0으로 잡음
(setq p1 (getpoint "\n Pick a point"))  ;;블럭의 기준점을 직접 선택

(command "wblock" bl_name "" P1 MI "")
(prompt "\n Block Name is [ ")
(prin1 bl_name)(prompt " ]")
(command "insert" bl_name p1 "" "" "")
(PRIN1)
)

; end of defun

 

코드에서 수정해서 사용할 부분

   
(setq bl_name (strcat "C:/blockfolder/" bl_name)) ; 본인의 컴퓨터에 저장할 블럭의 경로를 설정합니다.
; 윗부분의 폴더는 원하는 폴더로 수정해서 사용하세요.

C:/blockfolder/      => 이부분을 수정해서 사용합니다.

; setq p1 "0,0") ;; 블럭의 기준점을 0,0으로 잡음
(setq p1 (getpoint "\n Pick a point"))  ;;블럭의 기준점을 직접 선택

화면에 한점을 클릭하라는 명령어도 귀찮다? 그러면 아래와 같이 두줄코드를 변경합니다.

(참고로 세미콜론(;)은 주석입니다. 즉, 프로그램을 실행하지 않는 줄이 되는겁니다.) 그것만 바꾸면 간단하게...

setq p1 "0,0") ;; 블럭의 기준점을 0,0으로 잡음
; (setq p1 (getpoint "\n Pick a point"))  ;;블럭의 기준점을 직접 선택

위의 코드로 하면 한번 클릭이 줄어듭니다. ㅋ

 

좀 더 편하게 작업하는 환경을 만들어 보자구요.....

 

 

반응형
댓글