124350440 发表于 2010-10-6 14:46:00

求助:帮修改一下标注面积的程序


修改下面的程序为:拾取一个或多个图形内部点后标注面积之和到指定地点
(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)
)

124350440 发表于 2010-10-6 15:42:00

<p>贴。。。渐渐下沉。。依然不见搭救之人啊。。</p>

124350440 发表于 2010-10-7 10:06:00

<p>不知道自己顶贴行不行,不过我真想让能解决问题的人看见我的贴啊</p>

gzbccy 发表于 2010-11-5 19:49:00

<p>帮顶一下,我们也需要这种方法啊</p>

yshf 发表于 2010-11-5 21:08:00

<p><font face="Verdana">(defun C:d (/ HOLDCMD HOLDZIN PNT LENT)<br/>&nbsp; (vl-load-com)<br/>&nbsp; (setq HOLDCMD (getvar "cmdecho"))<br/>&nbsp; (setq HOLDZIN (getvar "dimzin"))<br/>&nbsp; (setvar "cmdecho" 0)<br/>&nbsp; (setvar "dimzin" 0)<br/>&nbsp; (setq emj 0)<br/>&nbsp; (while (setq PNT (getpoint "\n点选内部点: "))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq LENT (entlast))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (command "_.boundary" "a" "i" "y" "" PNT "")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (not (equal (entlast) LENT))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq ENT (vla-get-area (vlax-ename-&gt;vla-object (entlast))))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq emj (+ emj ENT))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (setq PNT1 (getpoint "\n点选文字起点: "))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (command "_.text"<br/>&nbsp;&nbsp;&nbsp;&nbsp; PNT1 1 ;;这里的1改字高<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ""<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (strcat "" (rtos ENT 2 3));;这里的3改小数位数<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp; )<br/>&nbsp;&nbsp; (setvar "dimzin" HOLDZIN)<br/>&nbsp;&nbsp; (setvar "cmdecho" HOLDCMD)<br/>&nbsp;&nbsp; (alert (strcat "\n总面积="&nbsp; (rtos emj 2 3)))<br/>&nbsp;&nbsp; (princ)<br/>)</font></p>
页: [1]
查看完整版本: 求助:帮修改一下标注面积的程序