원 중심선 그리는 lisp
- 기술지식/오토캐드 & LISP
- 2010. 8. 14. 13:57
마우스로 원을 선택하면
십자 중신선이 마우스따라 늘었다 줄었다 합니다.
마우스로 다시 적정한 위치에 클릭하면 그려집니다.
아래는 LISP전(全)문입니다.(아주 간단합니다)
기호에 따라 변경(보라색 글씨)하여 사용하세요(첨부 파일 참조)
(defun crosscen ()
(initget 1)
(setvar "osmode" 4) ;; 일시적으로 osmode를 CEN으로 바꿉니다.
(setq cen1(getpoint "\n > Center point: "))
(initget 1)
(setvar "osmode" 0)
(setq cen2(getpoint cen1 "\n > Center line endpoint: "))
(setq ang(angle cen1 cen2)
dst(distance cen1 cen2))
(command "layer" "s" "2" "" ;; Layer 지정->여기서는 2번으로 지정
"line" (polar cen1 ang dst)(polar cen1 (+ ang pi) dst) ""
"array" "l" "" "p" cen1 2 90 "")
(command "layer" "s" "1" "") ;; Layer 지정->중심선 작도 후 원하는 Layer로 감->여기서는 1번으로..
(setvar "osmode" 32) ;; 원하는 osmode로 되돌립니다.
(princ))
(defun c:CC () (crosscen)) ;;실행 명령어 CC 원하시는대로 바꾸시면 됩니다.(파일명이랑 같이 바꾸시는것이 편할겁니다)
(princ "\n = Cross Center line lisp loaded...Command : CC =") ;;lisp load 시 보여질 문구 (없어도 됩니다)
(princ)
주) 위 소스를 사용하실떈 붉은 색은 지우고 사용하세요
메모장에 옮기셔서 저장하시고 확장자만 .lsp로 바꾸시면 됩니다.
osnap 모드 다시 되돌릴려면...어떻게 하나요?...
하단부에서...
(defun c:CC ()
(setq os_mode (getvar "osmode")) ;<--추가 하시고-실행전 모드를 기억시키기
(crosscen)
(setvar "osmode" os_mode);<- 추가 하시면 실행후 실행전 모드로 되돌립니다.
)
(princ "\n = Cross Center line lisp loaded...Command : CC =")
(princ)
아니면 리습 마지막에 있는
(setvar "osmode" 32) 에서 32는 INT 모드인데...
여러모드 쓰실려면 모드코드를 합산해서 넣으시면 되구요...(예:INT+CEN =>32+4=>..36..을)
아래는 모드 코드입니다.
mid->2, tan256, cen->4, near->512, end->1, per->128, int->32, qua->16, none->0
'기술지식 > 오토캐드 & LISP' 카테고리의 다른 글
오토캐드 추천 교재 (0) | 2023.01.20 |
---|---|
와셔 조립된 볼트 그리기(여유 tap 그리는기능 포합) (0) | 2010.08.14 |
[오토캐드] 볼트너트 그리는 리습 (0) | 2010.08.14 |
[오토캐드] LISP 자료 모음 (0) | 2010.08.14 |