프로그램
캐드 분류

리습사용시 오스냅설정문제 .

컨텐츠 정보

본문

안녕하세요 선배님들
리습 사용시 질문드릴려고합니다
제가 선길이합산 리습을 사용중인데
이것만사용하면 오스냅이초기화되서 불편하여 검색하다보니
리습설정이 때문에 그런것까진 찾앗습니다.
그런데 리습설정을 바꾸려고하는데 리습설정을안해봐서 그런지 
도통모르겠더라구요 
(DEFUN C:ll(/ eg egl n l ne entname entn p1 p2 l2 radi l_ength)
(SETVAR "cmdecho" 1)
(setq old_osm (getvar "osmode"))    ; 예전 오스냅 저장
(SETQ EG (ssget ":L" (list(cons 0 "line,lwpolyline,CIRCLE,ARC"))))
(SETQ EGL (SSLENGTH EG))
(setq sc(getvar"ltscale"))
(setq ts(* sc 1.2))
(SETQ N 0)
(setq l 0)
(setq ne 0)
(WHILE (< N EGL)
(SETQ ENTN (SSNAME EG N))
(SETQ ENT (ENTGET ENTN))
(setq entname (assoc 0 ent))
(setq entname (cdr entname))
(if (= entname "LINE")
(progn
(SETQ p1 (ASSOC 10 ENT))
(SETQ p2 (ASSOC 11 ENT))
(SETQ p1x (car (CDR p1)))
(SETQ p1y (CaDdR p1))
(SETQ p2x (car (CDR p2)))
(SETQ p2y (CaDdR p2))
(setq l2 (sqrt (+ (expt (- p1x p2x) 2) (expt (- p1y p2y) 2))))
(setq l (+ l l2))
(setq ne (+ ne 1))
)
)
(if (= entname "CIRCLE")
(progn
(SETQ p1 (ASSOC 40 ENT))
(SETQ radi (cdr p1))
(setq l2 (* 2 (* pi radi)))
(setq l (+ l l2))
(setq ne (+ ne 1))
)
)
(if (= entname "ARC")
(progn
(SETQ p1 (ASSOC 40 ENT))
(SETQ radi (cdr p1))
(SETQ p1 (ASSOC 50 ENT))
(SETQ p2 (ASSOC 51 ENT))
(SETQ p1R (CDR p1))
(SETQ p2R (CDR p2))
(SETQ TH (ABS (- P1R P2R)))
(setq l2 (* RADI TH))
(setq l (+ l l2))
(setq ne (+ ne 1))
)
)
(if (or (= entname "LWPOLYLINE")(= entname "POLYLINE"))
(progn
(command "area" "e" entn)
(setq l2 (getvar "perimeter"))
(setq l (+ l l2))
(setq ne (+ ne 1))
)
)
(SETQ N (+ 1 N))
)
(princ "n >>>>> ")
(if (> egl ne)
(progn
(princ ne)(princ " of ")(princ egl)
(princ " objects are measured // ")
)
)
(princ " Total length is ")
(setq l_ength (rtos (/ l 1) 2 0))
(prin1 l_ength)
(SETVAR "osmode" 0)
(setq oslay (getvar "clayer")) 
(setq pt (getpoint "nText Point: "))
(command "layer" "m" "길이" "")
(setq ar1(strcat ""l_ength"mm"))
(command"text""s""standard""c"pt ts"0″ar1)
(command "layer" "s" oslay "")
(setvar "cmdecho" 1)
(setvar "blipmode" 0)
(SETVAR "osmode" old_osm) ;; 예전 오스냅 재사용
(princ)
)


파일첨부가안되서 리습내용복사하였습니다.

여기서 어떤부분을 어떻게바꿔야할까요 ?
제가자주사용하는 오스냅만켜려고합니다.
고유번호있다는것만알겠네요 ㅠㅠ
선배님들 알려주시면 감사하겠습니다

관련자료

댓글 4 / 1 페이지

자유천지님의 댓글

(setq old_osm (getvar "osmode"))    ; 예전 오스냅 저장 (SETVAR "osmode" 0) ; 예전 오스냅 전부 해제 (SETVAR "osmode" old_osm) ;; 예전 오스냅 재사용

(SETVAR "osmode" 0) ; 를 0을 다른 번호로 대체 하시면 되는데 번호를 잘모르시면 사용하시고자 하는 오스넵을 설정후 command 상태에서 (getvar   "osmode" ) 하시면 번호가 나옵니다. 그번호로 지정하시면  됩니다

자유천지님의 댓글

(SETQ p1x (car (CDR p1))) (SETQ p1y (CaDdR p1)) (SETQ p2x (car (CDR p2))) (SETQ p2y (CaDdR p2)) (setq l2 (sqrt (+ (expt (- p1x p2x) 2) (expt (- p1y p2y) 2)))) 이건 전부 (setq l2 (distance p1 p2)) 와같은거고…

전체 59 / 3 페이지
RSS
번호
제목
이름

최근글


새댓글


알림 0