124350440 发表于 2010-10-9 18:20:00

<p>多谢<font face="Verdana" color="#61b713"><b>Gu_xl不厌其烦的解答,不过运行时还是需要输入小数位和字高啊</b></font></p>

Gu_xl 发表于 2010-10-9 19:32:00

(defun c:mjqh1 (/ pt1 pt2 zg mj zmj ss LastEntity LastEntity1 gxl-Sel-EntNextAll ssaddsel )   (setierr)   ;(initArea)   ;;;gxl-Sel-EntNextAll en 返回 en 之后的所有物体选择集,无则返回 nil (defun gxl-Sel-EntNextAll (ent / ss ent1)   (setq ss (ssadd))   (while (setq ent1 (entnext ent))   (ssadd ent1 ss)   (setq ent ent1)   )   (if (= 0 (sslength ss))   nil   ss   )   ) ;把选择集1中的图元加入到选择集2中 (defun ssaddsel (ss1 ss2 / n k)    (setq n (sslength ss1)   k 0)   (if (> n 0)   (while (setq ent (ssname ss1 k))      (ssadd ent ss2)      (setq k (1+ k))       )   )   (setq ss2 ss2) ) ;;;gxl-MakeText1 生成文字函数,参数: 标注点 字高 宽比 旋转角 倾角,角度单位:度(defun gxl-MakeText1 (xy Txt ZG KB XZ Qj / xyL TxtL ZGL KBL XZL QJL)    (setq xy (trans xy 1 0));;;坐标换算为世界坐标    (SETQ XZ (gxl-Num-DtoR (gxl-Num-Angle->Wcs XZ )))       (setq xyL(cons 10 xy)      TxtL (cons 1 Txt)      ZGL(cons 40 ZG)      KBL(cons 41 KB)      XZL(cons 50 XZ)      QJL(cons 51 (gxl-Num-DtoR QJ))       )       (setq TextL (list '(0 . "TEXT")    '(67 . 0)    '(100      .      "AcDbText"   )    xyL    ZGL    TxtL    XZL    KBL    QJL    '(7 . "standard")   )       )       (entmake TextL)   ) ;;;程序开始   (setq zmj 0)   (initget 5 "") (if (not #ZJWS#)(setq #ZJWS# (getint "\n 输入注记位数<3>:")) ) (if (= #ZJWS# "") (setq #ZJWS# 3)) (initget 7 "") (if (not mjHeight)(setq mjHeight (getreal "\n 输入注记高度<1.5>:")) ) (if (= mjHeight "") (setq mjHeight 1.5))   (setq ss (ssadd))    (while (= 'LIST (type       (progn                         (initget 7 "No")                         (setq pt1 (getpoint "\n请选择中心点:"))                         )       )      )   (setq LastEntity (entlast))   (while (progn    ;(setq pt1 (getpoint "\n请输入中心点:"))    (command "-boundary" pt1 "")    (setq LastEntity1 (entlast))    (equal LastEntity LastEntity1)    )   (setq pt1 (getpoint "\n请输入中心点:"))   )   (command "Area" "o" LastEntity1)   ;(entdel (entlast))   ; (ssadd LastEntity1 ss)         (setq ss0 (GXL-SEL-ENTNEXTALL LastEntity))      (setq ss (ssaddsel ss0 ss))      (redraw LastEntity1 3)   (setq mj (getvar "area"))   ;|(if (= mjdw 1000)   (setq mj (/ mj 1000000.0))   )|;      (princ (rtos mj 2 #ZJWS#))      (setq mj (atof (rtos mj 2 #ZJWS#)))   (setq zg mjHeight)      (setq zmj (+ zmj mj))      (princ (strcat "当前总面积:" (rtos zmj 2 #ZJWS#)))      ;;;注记文字      (gxl-MakeText1 pt1 (rtos mj 2 #ZJWS#) zg 0.8 0 0 )   (ssadd (entlast) ss)   ;(setq mj (rtos mj 2 2))   ;(gxl-MakeText pt1 mj zg 0.8 0 0)      )   (command "erase" ss "")   (princ (strcat "\n 总面积为: " (setq zmj (rtos zmj 2 #ZJWS#))))   (setq zmj (strcat " 总面积为: " zmj))   (setq zg mjHeight)   (initget 7 " ")   (setq pt2 (getpoint "\n 选择注记位置:"))   (if (= 'List (type pt2))       (gxl-MakeText1 pt2 zmj zg 0.8 0 0 )   )      (reerr)   ;(princ)   )

124350440 发表于 2010-10-10 09:31:00

想送很多鲜花给<font face="Verdana" color="#61b713"><b>Gu_xl</b></font> ,真的很感谢,可以用了!

Gu_xl 发表于 2010-10-11 23:11:00

<p>对你有帮助就好了!</p>

461045462 发表于 2010-10-13 07:19:00

<p>谢谢<font face="Verdana" color="#61b713"><b>Gu_xl</b></font></p>
<p>看见你的</p>
<p>对你有帮助就好了!<img title="明经通道" alt="" src="http://bbs.mjtd.com/images/emot/em311.gif" align="middle" border="0"/></p>
<p>感受不少。</p>
<p>从中又学到了不少东西。</p>
<p>也谢谢明经,让我懂得了不少东西</p>
页: 1 2 [3]
查看完整版本: area命令所取得多个对象的面积怎么能标注在图形指定地点