
- ;;By LUCAS(龍龍仔)
- (defun C:REG (/ HOLDCMD HOLDZIN ENT ENT1 PNT A0 A1 LENT)
- (defun DO_IT ()
- (setvar "dimzin" 0)
- (command "_.text"
- "j"
- "c"
- PNT
- (* (getvar "DIMSCALE") 3)
- ""
- (strcat "面积="
- (rtos ENT 2 4)
- )
- )
- (setvar "dimzin" HOLDZIN)
- (command "_.MOVE" (entlast) "" (getvar "LASTPOINT") PAUSE)
- )
- (vl-load-com)
- (setq HOLDCMD (getvar "cmdecho"))
- (setq HOLDZIN (getvar "dimzin"))
- (setvar "cmdecho" 0)
- (setq PNT (getpoint "\n点选内部点/<选取有面积性质的像素>: "))
- (if (= PNT NIL)
- (progn
- (while (setq A0 (entsel "\n选取有面积性质的像素: "))
- (if (/= A0 NIL)
- (progn
- (setq A1 (cdr (assoc 0 (entget (car A0)))))
- (if (or (= "REGION" A1)
- (= "LWPOLYLINE" A1)
- (= "POLYLINE" A1)
- (= "SPLINE" A1)
- (= "CIRCLE" A1)
- (= "ELLIPSE" A1)
- (= "ARC" A1)
- )
- (progn
- (setq
- ENT (vla-get-area (vlax-ename->vla-object (car A0)))
- )
- (initget 1)
- (setq PNT (getpoint "\n请选取填写面积的插入点: "))
- (DO_IT)
- (setq A0 NIL)
- )
- )
- )
- )
- )
- )
- (progn
- (while (if (= PNT NIL)
- (setq PNT (getpoint "\n点选内部点: "))
- PNT
- )
- (setq LENT (entlast))
- (command "_.boundary" "a" "o" "r" "i" "y" "" PNT "")
- (if (not (equal (entlast) LENT))
- (progn
- (setq ENT (vla-get-area (vlax-ename->vla-object (entlast))))
- (while (not (equal (entlast) LENT))
- (if (> (setq ENT1 (vla-get-area
- (vlax-ename->vla-object (entlast))
- )
- )
- ENT
- )
- (setq ENT ENT1)
- )
- (entdel (entlast))
- )
- (DO_IT)
- )
- )
- (setq PNT NIL)
- )
- )
- )
- (setvar "cmdecho" HOLDCMD)
- (princ)
- )
|