求助:把下面面积标注精确到2位小数及0.00m2
(defun c:ttt(/ ACADDOC ACADSPC OBJAREA OBJLLPOINT OBJRUPOINT SELECTIONSET TEXTBASEPOINT TEXTHEIGHT TEXTINDEX TEXTOBJ)(vl-load-com)
(setq AcadDoc (vla-get-activedocument (vlax-get-acad-object)))
(if (= (getvar "TILEMODE") 1)(setq AcadSpc (vla-get-modelspace AcadDoc))(setq AcadSpc (vla-get-paperspace AcadDoc)))
(setq TextHeight (getdist "\n输入标注文字高度:")
TextIndex (getint "\n输入起始编号:")
)
(ssget '((0 . "LWPOLYLINE")))
(setq Selectionset (vla-get-activeselectionset AcadDoc))
(if (and TextHeight Selectionset TextIndex)
(vlax-for Obj Selectionset
(setq ObjArea (vla-get-area obj)
ObjLlPoint nil
ObjRuPoint nil
)
(vla-GetBoundingBox Obj 'ObjLlPoint 'ObjRuPoint)
(setq TextBasePoint (mapcar '(lambda(x y) (/ (+ x y) 2)) (vlax-safearray->list ObjLlPoint)(vlax-safearray->list ObjRuPoint))
TextObj (vla-addtext AcadSpc (strcat (itoa TextIndex) "号面积=" (rtos (/ ObjArea 100000)) "m2") (vlax-3d-point TextBasePoint) TextHeight)
)
(vla-put-alignment TextObj acAlignmentCenter)
(vla-put-TextAlignmentPoint TextObj (vlax-3d-point TextBasePoint))
(setq TextIndex (1+ TextIndex))
)
)
) (strcat (itoa TextIndex) "号面积=" (rtos (/ ObjArea 100000) 2 2) "m2") (rtos (/ ObjArea 100000))改为(rtos (/ ObjArea 100000)2 2) hao3ren 发表于 2012-12-31 12:21 static/image/common/back.gif
(strcat (itoa TextIndex) "号面积=" (rtos (/ ObjArea 100000) 2 2) "m2")
太感谢了 yjr111 发表于 2012-12-31 12:25 static/image/common/back.gif
(rtos (/ ObjArea 100000))改为(rtos (/ ObjArea 100000)2 2)
多谢!!!!!!! 支持一下,,,支持源码, 支持一下很好的程序!
页:
[1]