안녕하세요 평범한 오토캐드유저입니다.
말씀드리려는 리습에 대한 설명을 대략 하자면
측점과 텍스트가 맞물려있지 않은점을 찾아주는 리습입니다.
그런데 문제는 뭐냐하면요 제가 원하는건 0.1밀리미터까지만 찾아주면 되는데
소수점 0.000000000000 이렇게 소수점 한참 아래 오차 거의 없다고 볼수있는점까지
다 찾는 바람에 사용하는 의미가 거의 없어지거든요..
소수점 4자리까지만 찾게끔 수정하고 싶은데 고수님들 좀 도와주십시요..
부탁 좀 드리겠습니다.
내용첨부
(defun c:ov (/ os ptlist ss len ct e eb etype chknum bp temp)
(command “undo” “g”)
(setq os (getvar “osmode”))
(setvar “osmode” 0)
(setq ptlist nil)
(princ “nSelect block objects.”)
(setq ss (ssget (list (cons 0 “POINT,insert,text”))))
(if ss
(progn
(setq len (sslength ss))
(setq ct 0)
(repeat len
(setq e (ssname ss ct))
(setq eb (entget e))
(setq ct (+ ct 1))
(setq etype (cdr (assoc 0 eb)))
(if (= etype “TEXT”)
(if (> (+ (cdr (assoc 72 eb)) (cdr (assoc 73 eb))) 0)
(setq ptlist (append ptlist (list (cdr (assoc 11 eb)))))
(setq ptlist (append ptlist (list (cdr (assoc 10 eb)))))
)
(setq ptlist (append ptlist (list (cdr (assoc 10 eb)))))
)
)
(setq ct 0)
(repeat len
(setq e (ssname ss ct))
(setq eb (entget e))
(setq ct (+ ct 1))
(setq etype (cdr (assoc 0 eb)))
(if (= etype “TEXT”)
(if (> (+ (cdr (assoc 72 eb)) (cdr (assoc 73 eb))) 0)
(setq bp (cdr (assoc 11 eb)))
(setq bp (cdr (assoc 10 eb)))
)
(setq bp (cdr (assoc 10 eb)))
)
(setq chknum (apply ‘+ (mapcar ‘(lambda (x) (if (apply ‘and (mapcar ‘equal bp x)) 1 0)) ptlist)))
(if (= chknum 1) (command “circle” bp (* (getvar “ltscale”) 2)))
)
)
)
(setvar “osmode” os)
(command “undo” “e”)
(princ)
)
상,하,좌,우 0.1 간격입니다
수고하세요 ^^;;