아래 리습은 여러개의 면적을 더해서 나옵니다.
이걸 처음 구한 면적에서 다음에 구한 면적을 빼주는 걸로 바꿀수 있나요?
그리고 그값을 도면에 도시 되게 될까요?
고수님들 수정 부탁 합니다.
(DEFUN C:WT ( / a b c d e ss)
(vl-load-com)
(setq ac nil ara 0 a1 nil)
(redraw)
(setvar “CMDECHO” 0)
(setvar “aperture” 5)
(vl-cmdf “osnap” “none”)
(graphscr)
(setq pt (getpoint “nStrikes Point :”))
(while (/= pt nil)
(setq ss (bpoly pt))
(if(/= ss nil)
(progn
(setq aa (entlast))
(vl-cmdf “area” “e” aa)
(setq ara (+ (getvar “area”) ara))
(princ “n Total Area = “)
(princ ara)
(princ “n”)
(redraw aa 3)
(setq aa1 (list aa) a1 (append a1 aa1))
)
(princ “n Point is outside of Boundary”)
)
(setq pt (getpoint “nStrikes Point :”))
)
(setq ln1 (length a1))
(if (> ln1 0)
(progn
(foreach nn a1
(progn
(entdel nn)
)
) ;endfor
)
)
(redraw)
(vl-cmdf “osnap” “none”)
(prompt “nSelect text to edit?: “)
(setq a (ssget))
(setq b (sslength a))
(setq c 0)
(while (<= 1 b)
(setq d (ssname a c))
(if (eq (cdr (assoc 0 (entget d))) “TEXT”)
(progn
(redraw d 3)
; (prompt “nNew text string <“)
; (princ (cdr (assoc 1 (entget d))))
; (princ “>:”)
(setq ara (/ ara 1.))
(setq e (rtos ara 2 2))
(if (= e “”)
(setq e (cdr (assoc 1 (entget d))))
)
(entmod (subst (cons 1 e) (assoc 1 (entget d)) (entget d)))
(redraw d 4)
)
)
(setq b (- b 1))
(setq c (+ c 1))
)
(princ)
(vl-cmdf “osnap” “INT,END”)
)