Ⅰ 如何快速查詢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)
)