안녕하세요? 칼로쭉 입니다
그동안 lisp 책사서 보고 배우고 고캐드에서 배우고 해서 첨으로 작성해 봤습니다.
사각형 소재의 치수와 수량 품번을 자동입력 해주는 lisp 입니다.
아직 함수를 잘 몰라서 간단한 함수로 거의 단순하게 작성했네요;; (ㅜ_ㅜ)
한가지 질문이 있는데..고수님들 사각형과 품번 텍스트를 블럭으로 묶을수 있는 방법이 없을까요??
복사 할때 사각형과 텍스트 까지 한꺼번에 다 선택해야 되서 번거롭네요..
초보에게 가르침 좀 부탁 드립니다~
회원님들 추운 날씨 감기 조심하세요!
====================================================================
(defun c:q1()
(setq os (getvar “osmode”)) ; 현재 Osnap Mode 기억
(setvar “osmode” 0) ;오류방지를 위해 Osnap Mode Off
(setvar “CMDECHO” 0) ;명령어 실행창 뷰 끔
(setq p (getpoint “n시작점 포인트를 클릭하세요 :”)) ;시작점 포인트 받음
(setq pn (getint “n품번을 입력하세요 <1> :”)) ;소재의 품번을 입력받음
(setq w (getreal “n높이를 입력하세요 :”)) ;높이값 실수로 받음
(setq l (getreal “n길이를 입력하세요 :”)) ;길이값 실수로 받음
(setq o (getreal “nCutting 여유를 입력하세요 <15> :”)) ; Cutting Magin 값 받음
(setq q (getint “n수량을 입력하세요 <1> :”)) ;소재의 수량을 받음
(if (= pn nil)(setq pn 1)) ;품번 입력이 없을때는 1로 시작함
(if (= o nil)(setq o 15)) ;Cutting Magin 값 없을때는 15
(if (= q nil)(setq q 1));소재의 수량이 없으면 1개로 정함
(setq a (car p)) ;시작점의 x값 좌표 기억
(setq b (cadr p)) ;시작점의 y값 좌표 기억
(setq xl (+ a l o)) ; 시작점 x값 + 길이값 + Cutting Magin 값
(setq yw (+ b w o)) ; 시작점 y값 + 높이값 + Cutting Magin 값
(setq t1 (+ a (/ l 2) (/ o 2) )) ; 시작점 x값 + (길이값 / 2) + (Cutting Magin 값 / 2)
(setq t2 (+ b (/ w 2) (/ o 2) )) ; 시작점 y값 + (높이값 / 2) + (Cutting Magin 값 / 2)
(command “layer” “new” “outline” “color” “green” “outline” “”) ;새로운 외형선(녹색으로) layer 설정
(command “layer” “set” “outline” “”) ;현재 layer를 outline으로 지정
(repeat q ;수량만큼 반복함
(command “RECTANG” (list a b) (list xl yw)) ;사각형을 각 값의 좌표로 만듬
(setq b (+ b w o)) ; b값에 길이와 cutting Magin 값을 더해나감
(setq yw (+ yw w o)) ; ; yw값에 높이와 cutting Magin 값을 더해나감
(command “text” “j” “m” (list t1 t2) (/ w 2) “” pn) ; 텍스트 / 위치지정 / 중심점 / t1 t2 값 받음 / 높이의 절반값을 텍스트 높이로 정함 / 각도 엔터 (0도) / 품번값 받음
(setq t2 (+ t2 w o)); y값에 높이와 cutting Magin 값을 더해나감
)
(command “layer” “set” “0” “”) ;layer 0으로 리턴
(setvar “osmode” os) ;Osnap Mode 원래대로 리턴
(princ)
)
공유