치수기입 리습입니다. 오류가 있는데 어디가 문제인지…
컨텐츠 정보
- 192 조회
- 0 추천
- 0 비추천
- 목록
본문
(defun c:DD()
(defun rtd (a) (/ (* a 180.0) pi)) ;radian to degree
;->*error* start
(defun *error* (msg)
;;;추가
(if DimOriginPoint
(progn
(setvar "osmode" 0)
(command "ucs" "n" (list (* (car DimOriginPoint) -1.0) (* (cadr DimOriginPoint) -1.0) 0.0))
)
);;;if
;;;추가
(princ "error: ")(princ msg)
(setvar "osmode" os)(setvar "dimtad" dt)
(setvar "orthomode" ot) (setvar "cecolor" cl)
(princ))
;-<*error* end
(setq os (getvar "osmode") ot (getvar "orthomode") )
(setq dt (getvar "dimtad")) (setq ditx (getvar "dimtxt"))
(setq cl (getvar "cecolor"))
(setvar "clayer" "0″) (setvar "cecolor" "Bylayer")
(setvar "DIMtad" 1) (setvar "DIMTVP" 0);dimtad를 0으로 하면 소수점 두 자리는 안나온다
(setvar "osmode" 1063) (setvar "orthomode" 1)
(setvar "cmdecho" 0)
;;;추가
(setq DimOriginPoint nil)
(setq DimOriginPoint (getpoint "n 원점을 선택하세요 < 원점 선택을 다시 안 할 때는 Enter > : "))
(if DimOriginPoint
(progn
(setq DimOriginBackupPoint (trans DimOriginPoint 1 0))
(command "ucs" "n" DimOriginPoint)
)
(if DimOriginBackupPoint
(progn
(setq DimOriginPoint (trans DimOriginBackupPoint 0 1))
(command "ucs" "n" DimOriginPoint)
)
);;;if
);;;if
;;;추가
(setq daso (getvar "dimaso")) (setq dsca (getvar "dimscale"))
(if (= btdis1 nil)(setq btdis1 0.8))
(setq btdis (* btdis1 dsca))
(setq ditx (* ditx dsca)) (setq ditx (+ ditx btdis))
(setq ppa2 nil)
(setq rp 0)
(setq p1 (getpoint "n 방향을 지정하세요 : "))(terpri)
(setq p2 (getpoint p1 "n Leader endpoint: "))(terpri)
(setq ag (rtd (angle p1 p2)) ag (rtos ag 2 0))
(cond
( (or (= ag "0″) (= ag "180″))
(setq rp (+ 1 rp)) (@dim_Odinatey) )
( (or (= ag "90″) (= ag "270″))
(setq rp (+ 1 rp)) (@dim_Odinatex) )
)
;;;추가
(if DimOriginPoint
(progn
(setvar "osmode" 0)
(command "ucs" "n" (list (* (car DimOriginPoint) -1.0) (* (cadr DimOriginPoint) -1.0) 0.0))
)
);;;if
;;;추가
(setvar "dimtad" dt) (setvar "cecolor" cl)
(setvar "osmode" os) (setvar "orthomode" ot)
(command "dimdli" "7″)
(command "ucs" "w")
(princ))
;sub routine-1
(defun @dim_Odinatey() (while rp
(if (= p1 nil) (progn
(setq ppa2 nil)(setq rp 0)
(princ "Again…")(terpri)
(princ "n Dim:Odinate-Y")(terpri)
(setq p1 (getpoint "n Select Feature: "))(terpri)
))
(setq ppa1 (cadr p1))
(if (= rp 0) (setq p2 (getpoint p1 "n Leader endpoint: ")) ) (terpri)
(if (= p2 nil)(error))
(if (= ppa2 nil)
(setq p2 (list (car p2) (cadr p2)))
(progn
(setq ppa (abs (- ppa1 ppa2)) ddss (abs (- yy ppa1)))
(setq dds (- ditx ppa) dds1 (+ ditx ppa))
(if (< ditx ppa) (progn
(setq p2 (list (car p2) (cadr p1)))
(if (and (> yy ppa1) (< ppa2 ppa1)) (setq p2 (list (car p2) (- (cadr p1) dds1) )) )
(if (and (< yy ppa1) (> ppa2 ppa1)) (setq p2 (list (car p2) (+ (cadr p1) dds1) )) )
))
(if (> ditx ppa) (progn
(if (and (> yy ppa1) (< ppa1 ppa2))
(setq p2 (list (car p2) (- (cadr p1) dds) )) )
(if (and (> yy ppa1) (> ppa1 ppa2))
(setq p2 (list (car p2) (- (cadr p1) dds1) )) )
(if (and (< yy ppa1) (> ppa1 ppa2))
(setq p2 (list (car p2) (+ (cadr p1) dds) )) )
(if (and (< yy ppa1) (< ppa1 ppa2))
(setq p2 (list (car p2) (+ (cadr p1) dds1) )) )
))
) )
(setvar "osmode" 0) (setvar "dimtad" 0)
(setvar "cecolor" "Bylayer")
(command "dim1″ "ord" p1 "y" p2 "")
(setvar "osmode" 1061)
(setq yy (cadr p1))
(setq ppa2 (cadr p2))
(setq rp (+ 1 rp))
(setq p1 (getpoint "n Select Feature (X): "))(terpri)
))
;sub routine-2
(defun @dim_Odinatex() (while rp
(if (= p1 nil) (progn
(setq ppa2 nil)(setq rp 0)
(princ "Again…")(terpri)
(princ "n Dim:Odinate-X")(terpri)
(setq p1 (getpoint "n Select Feature: "))(terpri)
))
(setq ppa1 (car p1))
(if (= rp 0) (setq p2 (getpoint p1 "n Leader endpoint: ")) ) (terpri)
(if (= p2 nil)(error))
(if (= ppa2 nil)
(setq p2 (list (car p2) (cadr p2)))
(progn
(setq ppa (abs (- ppa1 ppa2)) ddss (abs (- xx ppa1)))
(setq dds (- ditx ppa) dds1 (+ ditx ppa))
(if (< ditx ppa) (progn
(setq p2 (list (car p1) (cadr p2)))
(if (and (> xx ppa1) (< ppa2 ppa1)) (setq p2 (list (- (car p1) dds1) (cadr p2))) )
(if (and (< xx ppa1) (> ppa2 ppa1)) (setq p2 (list (+ (car p1) dds1) (cadr p2))) )
))
(if (> ditx ppa) (progn
(if (and (> xx ppa1) (< ppa1 ppa2))
(setq p2 (list (- (car p1) dds) (cadr p2))) )
(if (and (> xx ppa1) (> ppa1 ppa2))
(setq p2 (list (- (car p1) dds1) (cadr p2))) )
(if (and (< xx ppa1) (> ppa1 ppa2))
(setq p2 (list (+ (car p1) dds) (cadr p2))) )
(if (and (< xx ppa1) (< ppa1 ppa2))
(setq p2 (list (+ (car p1) dds1) (cadr p2))) )
))
) )
(setvar "osmode" 0) (setvar "dimtad" 0)
(setvar "cecolor" "Bylayer")
(command "dim1″ "ord" p1 "x" p2 "")
(setvar "osmode" 1061)
(setq xx (car p1))
(setq ppa2 (car p2))
(setq rp (+ 1 rp))
(setq p1 (getpoint "n Select Feature (Y): "))(terpri)
치수기입 리습인데 이게 사용하면 온스냅이 전부 해제됩니다.
어디가 문제인지 수정 좀 부탁 드립니다.