求cad的lisp一次計算多個封閉線框的面積並

2021-03-08 05:37:03 字數 4194 閱讀 6752

1樓:魔點

;求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

(***mand "area" "o" name)(setq 面積 (getvar "area"))(setq 總面積 (+ 總面積 面積))(setq 周長 (getvar "perimeter"))(setq 總周長 (+ 總周長 周長))))(if (= na "polyline")(progn

(***mand "area" "o" name)(setq 面積 (getvar "area"))(setq 總面積 (+ 總面積 面積))(setq 周長 (getvar "perimeter"))(setq 總周長 (+ 總周長 周長))))(if (= na "arc")

(progn

(***mand "area" "o" name)(setq 面積 (getvar "area"))(setq 總面積 (+ 總面積 面積))(setq 周長 (getvar "perimeter"))(setq 總周長 (+ 總周長 周長))))(if (= na "circle")

(progn

(***mand "area" "o" name)(setq 面積 (getvar "area"))(setq 總面積 (+ 總面積 面積))(setq 周長 (getvar "perimeter"))(setq 總周長 (+ 總周長 周長))))(if (= na "ellipse")

(progn

(***mand "area" "o" name)(setq 面積 (getvar "area"))(setq 總面積 (+ 總面積 面積))(setq 周長 (getvar "perimeter"))(setq 總周長 (+ 總周長 周長))))(if (= na "line")

(progn

(***mand "area" "o" name)(setq 面積 (getvar "area"))(setq 總面積 (+ 總面積 面積))(setq 周長 (getvar "perimeter"))複製以下內容到記事本:

(setq 總周長 (+ 總周長 周長))))(if (= na "lwpolyline")(progn

(***mand "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

2樓:琴暉皇甫依絲

可以首先把這幾個線框做成面域,然後用面域合併命令合併面域。然後總面積就出來了。不用lisp就可以實現了。

求乙個cad的lisp程式,可以求出來圓和一條多段線的交點座標。 100

3樓:

可以首先把這幾個線框做成面域,然後用面域合併命令合併面域。然後總面積就出來了。不用lisp就可以實現了。

誰能給我個 自動計算cad圖中」一種線「總長的lisp

4樓:匿名使用者

不知道你的「一種線」是什麼?我這有乙個選擇一些直線,統計總長度的lisp,供你參考,有問題可追問。

(defun c:tx (/ a b c d e m n n1) ;選擇直線,統計總長度

(setq a (ssget)) ;得到選擇集

(setq n 0) ;設定迴圈變數初值,同時也是遍歷選擇集的指標

(setq m 0) ;設定統計初值

(setq n1 (sslength a)) ;得到選擇集長度

(while (< n n1) ;迴圈開始,以選擇集物件數作為迴圈次數

(progn

(setq b (entget (ssname a n))) ;得到第n個物件的資料庫

(setq c (cdr (assoc 10 b))) ;得到直線起點

(setq d (cdr (assoc 11 b))) ;得到直線終點

(setq e (distance c d)) ;得到兩點距離,即直線長度

(setq m (+ m e)) ;累加直線長度

(setq n (+ n 1)) ;迴圈變數加一))

(princ "共有") ;列印結果

(princ (itoa n1))

(princ "條直線,總長度為")

(princ (rtos m 2 4)) ;轉換實數為字串,小數形式,小數點後四位

(princ "。")

(princ))

5樓:

(defun c:dl ( )

(if (null vlax-dump-object)

(vl-load-***)

)(princ "\n選擇要進行線長統計的物件")

(if (setq #si 0 &ss (ssget))

(progn

(setq #lc 0 #ll 0 #lp 0 #lr 0 #nc 0 #nl 0 #np 0 #nr 0)

(repeat (sslength &ss)

(setq &cs (vlax-ename->

(cond

)(princ (strcat "\n選擇的 " (itoa (sslength &ss)) " 個物件中:"))

(princ (strcat "\n圓形物件 = " (itoa #nc) " 個,線長 = " (rtos #lc 2 3) " ,"))

(princ (strcat "\n圓弧物件 = " (itoa #nr) " 個,線長 = " (rtos #lr 2 3) " ,"))

(princ (strcat "\n直線物件 = " (itoa #nl) " 個,線長 = " (rtos #ll 2 3) " ,"))

(princ (strcat "\n聚合物件 = " (itoa #np) " 個,線長 = " (rtos #lp 2 3) " ,"))

(princ (strcat "\n所有物件匯流排長 = " (rtos (+ #lc #lr #ll #lp) 2 3) " ."))))

(princ)

) 命令dl使用,可計算直線,圓形,圓弧,聚合線的線長。

6樓:匿名使用者

橢圓和樣條曲線也可加進去,

兄弟,可以試著自己加呀。

cad如何計算多個圖形的總面積,CAD如何計算多個圖形的總面積

1 開啟autocad 天正軟體,以天正2014為例,其他版本均可適用。2 繪製需要計算面積的圖形,在這裡以簡單的矩形為例。3 選中其中任意乙個圖形,輸入快捷鍵 li 就可以得到圖形的面積和周長資訊。4 使用快捷鍵mo pr等也可以在左側資訊欄中查詢面積和周長資訊。5 使用快捷鍵aa並選中圖形,也可...

難忘的第一次六年級 多個事件 ,難忘的第一次六年級 多個事件 600字

難忘的第一次 許多人都有許多第一次,第一次炒菜 第一次洗碗 第一次摔跤 第一次犯錯 第一次有酸的 有甜的 有苦的 有辣的 在許許多多的第一次裡,讓我最難忘的就屬它了 那是乙個風和日麗的星期五,我踏著輕快的腳步回家。只見小區的行人路旁停滿了汽車。一輛閃著藍光的白色的汽車引起了我和同學的注意。於是我們走...

怎麼在工作表中一次建立多個工作表

點選工作表標籤sheet1,按住shift,點選sheet3,這樣選定了3個標籤 滑鼠不離開 右鍵 插入 工作表 此時工作表就增加到6個 選中6個 同樣的辦法 12個,24個,48個.excel中,如何把已經設定好格式的 建立多個副本 左下角點選滑鼠右鍵,選定全部工作表 移動或複製工作表 有兩種方法...