hooboxu 发表于 2015-1-16 10:52:57

闭合线算面积源码.请问怎么在后面加上M2啊?

;;;;标注闭合曲线的面积
;;;;(princ "\n标注闭合曲线的面积,命令:mj\n")
(defun c:mj (/ AREA_H      AREA_WSERRHAN      NEWENTLAST
   OBJ      OBJ_AREAOBJ_I      OBJ_NAME
   OBJ_VLA   OLDCMDECHOOLDDELOBJ   OLDENTLAST
   PT JD
)
(vl-load-com)
(setq obj (ssget '((0 . "*POLYLINE,CIRCLE,ELLIPSE"))))
(if obj
    (progn
      (setq obj_i -1)
      (setq oldcmdecho (getvar "cmdecho"))
      (setq oldDELOBJ (getvar "DELOBJ"))
      (setvar "cmdecho" 0) ;_禁止回显
      (setvar "DELOBJ" 0) ;_控制创建面域保留原对象
      (setq errhan '()) ;_不能创建面域的图元句柄表
      (setq area_ws 2) ;_面积的小数位数
      (setq area_h 250) ;_面积文字的高度
      (setq jd 1e6);_面积除以这个数 1e6=10的6次方 需要自己设定
      (repeat (sslength obj)
(setq obj_name (ssname obj (setq obj_i (1+ obj_i)))) ;_图元名
(setq obj_vla (vlax-ename->vla-object obj_name)) ;_Vla对象
(setq oldentlast (entlast))
(command "_region" obj_name "") ;_创建面域
(setq newentlast (entlast))
(if (equal oldentlast newentlast) ;_如果创建面域不成功
   (progn
   (setq errhan (cons (cdr (assoc 5 (entget obj_name))) errhan))
   )
   (progn
   (setq obj_area (vla-get-Area obj_vla)) ;_面积
   (setqobj_area (/ obj_area jd))
   (setq pt (vlax-safearray->list
         (vlax-variant-value
    (vla-get-centroid
      (vlax-ename->vla-object newentlast)
    )
         )
       )
   ) ;_取得面域或实体的面积或质量的中点
   (command "-text"
       "j"
       "mc"
       pt
       area_h
       0
       (rtos obj_area 2 area_ws)
   )
   (entdel newentlast)
   )
)
      )
      (if errhan
(progn
   (princ "\n没有标注面积的图元句柄列表:\n")
   (princ errhan)
)
      )
      (setvar "DELOBJ" oldDELOBJ)
      (setvar "cmdecho" oldcmdecho)
    )
)
(princ)
)

牛仔key 发表于 2015-1-16 11:11:29

本帖最后由 牛仔key 于 2015-1-16 11:13 编辑

(strcat "Area=" mianji "m%%1402")

我使用的是TSSD,TSSD里面%%1402就是平方

hooboxu 发表于 2015-1-16 13:26:27

谢谢 牛仔 提示 回去研究

ll_j 发表于 2015-1-16 15:01:07

把“(rtos obj_area 2 area_ws)”一句改为“(strcat (rtos obj_area 2 area_ws) "m2") ”试试。

1993063 发表于 2015-1-16 15:44:10

(strcat "平方:"(rtos (* (vla-get-area (vlax-ename->vla-object s1)) 0.000001) 2 3) " m\\U+00b2")

hooboxu 发表于 2015-1-16 15:59:20

谢谢每一位回复的.谢谢了

ll_j成功了.感恩

香田里浪人 发表于 2015-1-16 19:21:46

本帖最后由 香田里浪人 于 2015-1-16 19:25 编辑

把"(rtos obj_area 2 area_ws)”一句改为"(strcat (rtos obj_area 2 area_ws) "㎡") "也可改为“(strcat "S="(rtos obj_area 2 area_ws) "㎡") ”试试。

sfjlx 发表于 2015-1-16 19:52:02

牛仔key 发表于 2015-1-16 11:11 static/image/common/back.gif
(strcat "Area=" mianji "m%%1402")

我使用的是TSSD,TSSD里面%%1402就是平方

TSSD%%1402就是平方%%141取消!

hooboxu 发表于 2015-1-16 21:02:32

香田里浪人 发表于 2015-1-16 19:21 static/image/common/back.gif
把"(rtos obj_area 2 area_ws)”一句改为"(strcat (rtos obj_area 2 area_ws) "㎡") "也可改为“(strcat "S ...

㎡ 有些字体里没有这个会有??号.后来改成 1993063 提供的 "m\\U+00b2" 就好了,谢谢大家

用户3766035971 发表于 2015-1-19 09:28:55

学习了!!!
页: [1] 2
查看完整版本: 闭合线算面积源码.请问怎么在后面加上M2啊?