Ⅰ 如何快速查询CAD多个封闭图形的面积,可以标注面积吗不是用AA命令!!!有小程序吗
依次选中封闭图形,用命令:list查询
网上有面积标注插件,可以下载
或念空者将下面的lisp代码复制到记事本里,保存为:面积标注.lsp
在cad里加载后,用car运行插件
(defun c:car ( / o1 ipt opp parea)
(setq clyer(getvar"clayer"))
(command "layer" "m" "范围线" "")
(command "layer" "c" "2" "范围线" "")
(command "color" "bylayer")
(setq ipt (getpoint "\n 选择内部点: "))
(command "-Boundary" ipt"" "")
(setq o1 (entlast))
(redraw o1 3)
(command "area" "O" "L")
(setq opp (getvar "area"))
(initget 1)
(setq parea(getpoint"\n 选择面积标注位置"))
(command "layer" "m" "area text" "")
(command "layer" "c" "81" "area text" "")
(command "color" "bylayer")
(initget 1)
(command "text" parea "1"枣棚0 (rtos opp 2 3)) "这个三是位数"凳高则
(setq elast(entlast))
(command "scale" elast"" parea)
(setvar"clayer"clyer)
)
Ⅱ CAD中多个封闭区域的总面积计算插件
把后面两句
(print (list "总周长=" 总周长))
(print (list "总面积=" 总斗好面积 "平方米" 总亩数 "亩"))
改成
(print (list "总周长="誉哗 (rtos 总周长) "米"))
(print (list "总面积=" (rtos 总面积) "平方米" (rtos 总亩数) "亩"))
如果不想在结果中看到那么多引号可以改成
(princ (strcat "\n总周长=" (rtos 总周长) "米"))
(princ (strcat "\n总面积=" (rtos 总面庆销行积) "平方米, " (rtos 总亩数) "亩"))
Ⅲ lisp cad 求面积 求一款可用于cad中计算面积的lisp程序,要求操作快捷,可显示选取区域,能计算孤岛面积。
用CAD输入命令AA 之后就可以了。如果你要算的是不规则图形 你可以选择你要选择的外边线 创建成面域。在敬兆敏前选择AA -O 之后选择就好亮拿租了,。
Ⅳ 如何在cad中计算面积 cad测量面积显示不出来
1、打开cad图形,在菜单栏,点击“工具”。
Ⅳ 求一个cad的lisp:一次计算多个封闭线框的面积,并显示每个面积和总面积。
;求spline,polyline,lwpolyline,arc面积
(defun c:ss ()
(setq 总面积 0)
(setq 总亩数 0)
(setq 面积 0)
(setq 总周长 0)
(setq 周长 0)
(setq k 0)
(setq a nil)
(setq a (ssget))
(setq Len (sslength a))
(repeat Len
(setq name (ssname a k))
(setq ent1 (entget name))
(setq na (assoc 0 ent1))
(setq na (cdr na))
(if (= na "SPLINE")
(progn
(command "area" "o" name)
(setq 面积 (getvar "area"))
(setq 总面积 (+ 总面积 面积))
(setq 周长 (getvar "perimeter"))
(setq 总周长悄改汪 (+ 总周长 周长))
)
)
(if (= na "POLYLINE")
(progn
(command "area" "o" name)
(setq 面积 (getvar "area"))
(setq 总面积 (+ 总面积 面积))
(setq 周长 (getvar "perimeter"))
(setq 总周长 (+ 总周长 周长))
)
)
(if (= na "ARC")
(progn
(command "area" "o" name)
(setq 面积 (getvar "area"))
(setq 总面积 (+ 总面积 面积))
(setq 周长 (getvar "perimeter"))
(setq 总周长 (+ 总周长 周长))
)
)
(if (= na "CIRCLE")
(progn
(command "area" "o" name)
(setq 面积 (getvar "area"))
(setq 总面积 (+ 总歼备面积 面启仔积))
(setq 周长 (getvar "perimeter"))
(setq 总周长 (+ 总周长 周长))
)
)
(if (= na "ELLIPSE")
(progn
(command "area" "o" name)
(setq 面积 (getvar "area"))
(setq 总面积 (+ 总面积 面积))
(setq 周长 (getvar "perimeter"))
(setq 总周长 (+ 总周长 周长))
)
)
(if (= na "LINE")
(progn
(command "area" "o" name)
(setq 面积 (getvar "area"))
(setq 总面积 (+ 总面积 面积))
(setq 周长 (getvar "perimeter"))
复制以下内容到记事本:
(setq 总周长 (+ 总周长 周长))
)
)
(if (= na "LWPOLYLINE")
(progn
(command "area" "o" name)
(setq 面积 (getvar "area"))
(setq 总面积 (+ 总面积 面积))
(setq 周长 (getvar "perimeter"))
(setq 总周长 (+ 总周长 周长))
)
)
(setq k (+ k 1))
(setq 总亩数 (/ 总面积 666.667))
)
(print (list "总周长=" 总周长))
(print (list "总面积=" 总面积 "平方米" 总亩数 "亩"))
(princ)
)
结束复制,保存文件。将文件后缀.txt更改为.lsp。OK。完成,加载应用程序(CAD快捷命令AP)。本lisp的快捷命令为:SS
Ⅵ CAD中,面积计算及标注
看看下图的标注是否合你意?不是插侍锋件,只是一个标斗谈悄空渣注图块。
Ⅶ 有关CAD 二次开发,计算图形面积编程。。
以前我也学过一点VBA,大体思路应该是这样的,多段线闭合的图形就会有面积,你选择那个图形按CTRL+1就可以看到,那么也就是说首先需要pedit命令多选M,然后选择合并,还有一个合并距离,这个距离最好可以自己输入,因为图形中的线可能没有完全闭合,就要靠这个数据来闭合了。所有图形都是封闭的,并且是多段线组成的。那么获取所有图形的面积再相加就可以了!
Ⅷ CADlisp程序如提取面域的面积
建议慧裂卖用Visual Lisp,新建一前逗个源渗region,然后:
(setq name (entlast))
(setq actname (vlax-ename->vla-object name))
(setq actarea (vla-get-area actname))
Ⅸ CAD中有款插件可以快速的计算出面积,周长和墙面积的是什么插件
长度标注程序演示如下:
Ⅹ cad怎么自动标注面积
CAD没有自动标注面森搜积的命令,但可用LISP编写一段程序来完成,如下
;cad自动标注面积(封闭多段线和样条曲线、圆、椭圆的面积)
(defun c:bzmj()
(setq cmd (getvar "cmdecho"))
(setq osm (getvar "osmode"))
(setvar "cmdecho" 0)
(setvar "osmode" 0)
(command "_undo" "be")
(if (progn
(princ "\n请选取标注:")
(setq ssa (ssget '((0 . "LwPolyLine,Spline,Circle,Ellipse") )))
)
(progn
(setq i 0)
(setq n (sslength ssa))
(repeat n
(setq ent (ssname ssa i))
(setq obj (vlax-ename->渗歼vla-object ent))
(setq Name (vlax-get-property obj "ObjectName"丛春冲))
(setq Mjz (vlax-curve-getarea obj))
(setq ptCen nil)
(cond ((wcmatch Name "AcDbPolyline,AcDbSpline")
(if (= (vlax-get-property obj "Closed") :vlax-true)
(progn
(vla-GetBoundingBox obj 'ptmin 'ptmax)
(setq ptmin (vlax-safearray->list ptmin))
(setq ptmax (vlax-safearray->list ptmax))
(setq ptCen (mapcar '(lambda(a b)(* 0.5 (+ a b))) ptmin ptmax))
)
)
)
((wcmatch Name "AcDbCircle,AcDbEllipse")
(setq ptCen (vlax-safearray->list (vlax-variant-value (vlax-get-property obj "Center"))))
(If (and (= name "AcDbEllipse")
(/= (abs (- (vlax-get-property obj "EndAngle")
(vlax-get-property obj "StartAngle")
)
)
(* 2.0 pi)
)
)
(setq ptCen nil)
)
)
)
(if (/= ptCen nil)
(command "_text" "j" "mc" ptCen 2.5 0 (strcat "面积=" (rtos mjz 2 3)))
)
(setq i (1+ i))
)
)
)
(command "_undo" "e")
(setvar "osmode" osm)
(setvar "cmdecho" cmd)
(princ)
)