도면에 표시될 내용이 “A=OOOM2” 이렇게만 나타나도록 하고 싶습니다.
(defun c:MM (/ ss sslist i index linelist linenumlist ent old10 old11 dist lnum count temp total total1 subtotal txt pt)
(vl-load-com) ;—->total1 추가함
(princ “n Eltity Length Sum”)
(setvar “cmdecho” 0)
(setq ss (ssget (list (cons 0 “LINE,CIRCLE,ARC,POLYLINE,LWPOLYLINE,ELLIPSE,SPLINE”))))
(setq zzz (sslength ss))
(if ss
(progn
(setq index 0)
(setq linelist nil)
(setq linenumlist nil)
(repeat (sslength ss)
(setq ent (ssname ss index))
(command “area” “e” ent)
;(setq distt (/ (getvar “area”) 1.0e+06))
(setq dist (/ (getvar “area”) 1.0e+06))
;(setq dist (* distt 0.3025)) ;평으로 환산 M²* 0.3025
(if (apply ‘or (mapcar ‘(lambda (x) (equal dist x 0)) linelist))
(progn
(setq temp 0)
(setq lnum nil)
(foreach x linelist
(if (equal dist x 0)
(setq lnum temp)
)
(setq temp (1+ temp))
)
(setq count 0)
(setq temp nil)
(foreach x linenumlist
(if (= count lnum)
(setq temp (append temp (list (+ x 1))))
(setq temp (append temp (list x)))
)
(setq count (1+ count))
)
(setq linenumlist temp)
)
(progn
(setq linelist (append linelist (list dist)))
(setq linenumlist (append linenumlist (list 1)))
)
)
(setq index (1+ index))
)
(setq txt “”)
(setq count 0)
(setq total 0)
(setq subtotal 0)
(repeat (length linelist)
(if (= count 0)
(if (> (nth count linenumlist) 1)
;;;;(setq txt (strcat “nA = ” (rtos (/ (nth count linelist) 1.0) 2 2) “*” (rtos (nth count linenumlist) 2 0) “개”))
;;;;(setq txt (strcat “nA = ” (rtos (/ (nth count linelist) 1.0) 2 2)))
(setq txt (strcat “nA = ” (rtos (/ (nth count linelist) 1.0) 2 2) “*” (rtos (nth count linenumlist) 2 0) “개”))
(setq txt (strcat “nA = ” (rtos (/ (nth count linelist) 1.0) 2 2)))
)
(if (> (nth count linenumlist) 1)
;;;;(setq txt (strcat txt ” + ” (rtos (/ (nth count linelist) 1.0) 2 2) “*” (rtos (nth count linenumlist) 2 0) “개”))
;;;;(setq txt (strcat txt ” + ” (rtos (/ (nth count linelist) 1.0) 2 2)))
(setq txt (strcat txt ” + ” (rtos (/ (nth count linelist) 1.0) 2 2) “*” (rtos (nth count linenumlist) 2 0) “개”))
(setq txt (strcat txt ” + ” (rtos (/ (nth count linelist) 1.0) 2 2)))
)
)
(setq subtotal (* (/ (nth count linelist) 1) (nth count linenumlist)))
(setq total (+ subtotal total))
(setq total1 (/ total 1.0));————->추가함
(setq count (1+ count))
)
;;;;(setq txt (strcat txt ” = ” (rtos total 2 2) “m”))
(setq txt (strcat txt ” = ” (rtos total1 2 2) “M2”));——->total에서 total1 변경함
(setq txt (strcat txt ” : 객체수 ” (rtos zzz 2 0) ” 개”))
(princ txt)
(if (not (setq tth (getreal (strcat “n현재 TextSize : 입니다. 원하는 Text 크기를 입력하세요 : “))))
(setq tth (getvar “textsize”))
(setvar “textsize” tth)
)
(setq pt (getpoint “n 텍스트 삽입점 : “))
(if pt (command “text” pt “” “” txt))
)
)
(princ)
)
도면에 표시될 내용이 “A=OOOM2” 이렇게만 나타나도록 하고 싶습니다.
매일주소…
게시판에 붙여넣으면 인코딩문제로 리습 오류가 발생합니다.
그 부분때문에 윗분께서 수정해서 메일로 드린다고 메일주소.. 라고 적으신거구요.
직접 수정하시는 방법 알려드릴게요.
(setq total1 (/ total 1.0))
(setq txt (strcat txt ” = ” (rtos total1 2 2) ” M2″))
(setq txt (strcat txt ” : 객체수 ” (rtos zzz 2 0) ” 개”))
이부분에서
(setq total1 (/ total 1.0))
(setq txt (strcat txt ” = ” (rtos total1 2 2) ” M2″))
;; (setq txt (strcat txt ” : 객체수 ” (rtos zzz 2 0) ” 개”))
맨밑에부분 앞에 ;;를 적으시거나
(setq txt (strcat txt ” : 객체수 ” (rtos zzz 2 0) ” 개”)) 줄을 삭제하시고 저장한다음 다시 로딩해서 실행해보세요.
ctrl+f 찾기로 객체수 를 검색하시면 쉽게 찾을수 있습니다.