우리 사이트 받은 리습으로 면적에서 내부 면적을 빼는 리습입니다
잘 쓰고 있는데 조금 사용하다 보니 글자가 너무 커서 조금 보완을 부탁드립니다
면적값을 구해 캐드에 표시할 때 문자 높이, 소수점 자리를 원하는 값으로 선택할수 있도록 수정가능하면 부탁드리며, ㎡도 표시안되게 부탁드립니다.
과값가지고 계속 연산해야 하는데 ㎡을 지우는것도 하다보니 저한테는 일이네요..
다른 리습으로 이용하여 수정해보려 했지만..
또 다시 좌절하고 부탁드립니다
(defun c:AS ()
(setvar “dimzin” 1)
(setvar “cmdecho” 0)
(setq sno 0)
(setq ss (ssget))
(setq sno (sslength ss))
(setq no 0)
(setq sum 0.0)
(setq tno 0)
;(command “area” “0,0” “”)
(setq ent_sum 0)
(repeat sno
(setq x (ssname ss no))
(setq etype (cdr (assoc 0 (entget x))))
(if (or (= etype “POLYLINE”)(= etype “LWPOLYLINE”)
(= etype “CIRCLE”)(= etype “SPLINE”))
(progn
(command “area” “e” x)
(setq ent_sum (getvar “area”))
)
(progn
(setq tno (1- tno))
(setq ent_sum 0)
)
)
(setq sum (+ sum ent_sum))
(setq tno (1+ tno))
(setq no (1+ no))
)
(setq tno (itoa tno))
(setq sum1 (/ sum 1000000))
(setq sum11 (rtos sum1 2 2))
(princ “nAdding “)
(princ tno)
(princ “nThe Result is: “)
(princ sum11)
(princ ” “)
;(princ “nDo You Want Write it into the DWG? <y> “)
;(setq z (strcase (getstring)))
;(if (or (= z “”) (= z “Y”))
;(progn
;(setq pt (getpoint “nText Point: “))
;(setq h (getvar “textsize”))
;(prompt “nText Height: “)
;(princ H)
;(princ ” : “)
;(setq z (getdist))
;(if z
; (setq h z)
😉
(setq sno2 0)
(setq ss2 (ssget))
(setq sno2 (sslength ss2))
(setq no2 0)
(setq sum2 0.0)
(setq tno2 0)
;(command “area” “0,0” “”)
(setq ent_sum2 0)
(repeat sno2
(setq x2 (ssname ss2 no2))
(setq etype2 (cdr (assoc 0 (entget x2))))
(if (or (= etype2 “POLYLINE”)(= etype2 “LWPOLYLINE”)
(= etype2 “CIRCLE”)(= etype2 “SPLINE”))
(progn
(command “area” “e” x2)
(setq ent_sum2 (getvar “area”))
)
(progn
(setq tno2 (1- tno2))
(setq ent_sum2 0)
)
)
(setq sum2 (+ sum2 ent_sum2))
(setq tno2 (1+ tno2))
(setq no2 (1+ no2))
)
(setq tno2 (itoa tno2))
(setq sum22 (/ sum2 1000000))
(setq sum33 (rtos sum22 2 2))
(princ “nAdding “)
(princ tno2)
(princ “nThe Result is: “)
(princ sum33)
(princ ” “)
(setq sumx1 (atof sum11))
(setq sumx2 (atof sum33))
(setq sum44 (- sumx1 sumx2))
(setq sum55 (rtos sum44 2 2))
(princ “n결과값은 : “)(princ sum55)
(setq h2 (getvar “textsize”))
(setvar “textsize” h2)
(setq pt2 (getpoint “nText Point: “))
(command “text” pt2 h2 “” (strcat sum55 ” M2″ ))
(prin1))
감사합니다
리습수정 부탁드릴때마다 뚝딱~
상큼 메론님 대단하십니다