mm : 면적구하기
py : 평수구하기
plus : 값 더하기
점을 클릭하면 바로 면적을 텍스트로 찍어주는 리습인데요
이 리습에서 출력되는 값을 밀리미터 -> 미터 단위로 바꾸고 싶은데
어느부분에서 바꿔야 할지를 몰라서 그러는데 수정좀 부탁 드립니다.
예) 1000mmX1000mm 박스가 있다면 면적이 1.0으로(뒤 소수점1자리까지) 나왔으면
하는데 이건 1000000로 출력이 되거든요
(defun C:Mm (/ pt1 a1 a2 a3 h1)
; (command “LAYER” “N” “AREA” “”)
(setq pt1 (getpoint “Pick a text location : “))
(command “BPOLY” pt1 “”)
(setq a1 (command “AREA” “E” “l”))
(setq a2 (getvar “area”))
(setq a3 (rtos a2 2 2))
(command “ERASE” “l” “”)
; (setq py (* 0.3025 a2)) ;단위를 평으로 할경우
; (setq py1 (rtos py 2 4))
; (setq pt2 (list (car pt1) (- (cadr pt1) 12)))
(setq ds (getvar “dimscale”))
(setq h1 (* ds 1500.0))
(command “TEXT” pt1 h1 “” a3)
; (command “TEXT” pt2 h1 “” py1)
)
;====================================================
(defun C:PY (/ pt1 a1 a2 py1)
; (command “LAYER” “N” “AREA” “”)
(setq pt1 (getpoint “Pick a text location : “))
(command “BPOLY” pt1 “”)
(setq a1 (command “AREA” “E” “l”))
(setq a2 (getvar “area”))
(setq py (* 0.3025 a2))
(setq py1 (rtos py 2 0))
(command “ERASE” “l” “”)
(command “TEXT” pt1 “1500” “” py1)
)
;===================================================
(defun C:PLUS (/ ent ct anx an snum slen e ee x ol nl ent2)
(command “LAYER” “N” “AREA” “”)
(prompt “nPick numbers to add :”)
(setq ent (ssget))
(setq ct 0 anx 0 an 0)
(setq snum (ssname ent ct))
(setq slen (sslength ent))
(while (<= (+ 1 ct) slen)
(setq snum (ssname ent ct))
(setq e (entget snum))
(setq ee (cdr (assoc 1 e)))
(setq x (atof ee))
(setq ol (assoc 8 e))
(setq nl (cons 8 “ADDNUM”))
(setq ent2 (subst nl ol e))
(entmod ent2)
(setq anx (+ an x))
(setq an anx)
(setq ct (+ 1 ct))
)
(setq tot (rtos anx 2 2))
(setq pt1 (getpoint “Pick a text location : “))
(command “TEXT” pt1 “1500” “” tot)
; (princ “nTotal = “)(princ tot)(princ)
)
mm : 면적구하기 (setq h1 (* ds 글씨크기)) 글자 사이즈 조정
py : 평수구하기 (setq h1 (* ds 글씨크기)) 글자 사이즈 조정
plus : 값 더하기 (command “TEXT” pt1 “글씨크기” “” tot) 숫자로 된 글자들 클릭하면 클릭된 숫자들의 합을 보여줌
감사합니다^^ 64비트라 드림이 안써져서 힘들었는데 덕분에 일이 한결 수월해 질거 같아요