求助:帮修改一下标注面积的程序
修改下面的程序为:拾取一个或多个图形内部点后标注面积之和到指定地点
(defun C:d (/ HOLDCMD HOLDZIN PNT LENT)
(vl-load-com)
(setq HOLDCMD (getvar "cmdecho"))
(setq HOLDZIN (getvar "dimzin"))
(setvar "cmdecho" 0)
(defun DO_IT ()
(setvar "dimzin" 0)
(setq PNT1 (getpoint "\n点选文字起点: "))
(command "_.text"
PNT1
1 ;;这里的1改字高
""
(strcat ""
(rtos ENT 2 3);;这里的3改小数位数
)
)
(setvar "dimzin" HOLDZIN)
)
(while (if (= PNT NIL)
(setq PNT (getpoint "\n点选内部点: "))
PNT
)
(setq LENT (entlast))
(command "_.boundary" "a" "i" "y" "" PNT "")
(if (not (equal (entlast) LENT))
(progn
(setq ENT (vla-get-area (vlax-ename->vla-object (entlast))))
(while (not (equal (entlast) LENT))
(entdel (entlast))
)
(DO_IT)
)
)
(setq PNT NIL)
)
(setvar "cmdecho" HOLDCMD)
(princ)
)
<p>贴。。。渐渐下沉。。依然不见搭救之人啊。。</p> <p>不知道自己顶贴行不行,不过我真想让能解决问题的人看见我的贴啊</p> <p>帮顶一下,我们也需要这种方法啊</p> <p><font face="Verdana">(defun C:d (/ HOLDCMD HOLDZIN PNT LENT)<br/> (vl-load-com)<br/> (setq HOLDCMD (getvar "cmdecho"))<br/> (setq HOLDZIN (getvar "dimzin"))<br/> (setvar "cmdecho" 0)<br/> (setvar "dimzin" 0)<br/> (setq emj 0)<br/> (while (setq PNT (getpoint "\n点选内部点: "))<br/> (setq LENT (entlast))<br/> (command "_.boundary" "a" "i" "y" "" PNT "")<br/> (if (not (equal (entlast) LENT))<br/> (progn<br/> (setq ENT (vla-get-area (vlax-ename->vla-object (entlast))))<br/> (setq emj (+ emj ENT))<br/> (if (setq PNT1 (getpoint "\n点选文字起点: "))<br/> (command "_.text"<br/> PNT1 1 ;;这里的1改字高<br/> ""<br/> (strcat "" (rtos ENT 2 3));;这里的3改小数位数<br/> )<br/> )<br/> )<br/> )<br/> )<br/> (setvar "dimzin" HOLDZIN)<br/> (setvar "cmdecho" HOLDCMD)<br/> (alert (strcat "\n总面积=" (rtos emj 2 3)))<br/> (princ)<br/>)</font></p>
页:
[1]