캐드 분류
리습사용시 오스냅설정문제 .
컨텐츠 정보
- 692 조회
- 4 댓글
- 0 추천
- 0 비추천
-
목록
본문
안녕하세요 선배님들
리습 사용시 질문드릴려고합니다
제가 선길이합산 리습을 사용중인데
이것만사용하면 오스냅이초기화되서 불편하여 검색하다보니
리습설정이 때문에 그런것까진 찾앗습니다.
그런데 리습설정을 바꾸려고하는데 리습설정을안해봐서 그런지
도통모르겠더라구요
(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)
)
(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 페이지