首页 > 编程知识 正文

cad怎么测量完面积自动标记,cad布局如何快速标注面积

时间:2023-05-05 02:33:57 阅读:249145 作者:3551

对楼主来说,应该不难,用如下程序是否满足楼主要求

(defun c:mjpl(/ ACADDOC ACADSPC OBJAREA OBJLLPOINT OBJRUPOINT SELECTIONSET TEXTBASEPOINT TEXTHEIGHT TEXTINDEX TEXTOBJ)

(setq ss (ssget "x"'((0 . "LINE,LWPOLYLINE,ARC"))))

(command "PEDITACCEPT" "1")

(if ss

(command ".pedit" "m" ss "" "j" "0" "w" "0" "" "PEDITACCEPT" "0")

(command ".pedit" "m" "p" "" "j" "0" "w" "0" "" "PEDITACCEPT" "0")

)

(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)))

(setvar"dimzin"0);;保留小数位数时如果位数不足可以补零

(setq TextHeight (getdist "n输入标注文字高度:")

TextIndex 1

)

(ssget '((0 . "LWPOLYLINE")))

(mkla "面积计算" 3)

(setq Selectionset (vla-get-activeselectionset AcadDoc))

(if (and TextHeight Selectionset TextIndex)

(vlax-for Obj Selectionset

(setq ObjArea (vla-get-area obj)

)

(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  "S"(itoa TextIndex)"=" (rtos (/ ObjArea 1)2 3) "㎡") (vlax-3d-point TextBasePoint) TextHeight)

)

(vla-put-alignment TextObj acAlignmentCenter)

(vla-put-TextAlignmentPoint TextObj (vlax-3d-point TextBasePoint))

(setq TextIndex (1+ TextIndex))

)

)

)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。