[分享]一個能顯示面積及長度的LISP程式
+76
lin品
a0917783109
numwyoyo
安東尼
uw200000
wewe10704
PYT
qwe9956
FLY770112
糖糖的主人
mingsung
huang shih ching
kid530
ptero0226
aniy051802
kai_11
rain831787
銀翼
peggy731
tufe8887
flyat9t
s8828016
ryan0106
chunwel
ganlinlaw
handolu
HUANG CHIEN MING
f933021
wenfeng
liao
c1140c33
koko789
cantwocantwocan
月蜻蜓
tyhaola
老紅
Yulunwei
cyy0614
nicky1273
poiuyy
et1029et
lingo_st
jerry775
GRACE0724
ysl yang
老水牛
小香
lok
arhome
jhou0219
opk153
sandsand
sea0702
長陳
adslwang
以西杰
it930
虹
Andy.Lin
白金之星
Boss&倫
pizg
leoneriol
HEMOS
glassshoes2003
howard73
MAYA100
aaaaaa1111
adolescent77
W-E-I
DARDAR
meet_emily
judyyai
小青蛙
Tiger&蘋果爸
bruce79
80 posters
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第3頁(共4頁)
[分享]一個能顯示面積及長度的LISP程式
主題回顧 :
1.新增一個文字文件(.txt),貼上以下內容
3.開啟Autocad工具列中的「載入/卸載應用程式」對話方塊或者執行[appload]
4.選擇該文件位置後載入
5.在指令列key入"am"後,選擇你要的線或面方可使用(但不能選擇圖塊喔)
PS:這是一位建築師給我的LISP
ps:好東西與好朋友分享!!
蘋果爸補充:
每個CAD版本可能會有些差異,每個人使用方式也要討論及了解,才能知道問題在哪!
是否有開啟一張新圖來做測試,如果可以測試其他電腦的CAD版本。
我這裡使用2023版本操作沒有問題!
謝謝程式分享及說明~< 積分 +1>
[公告]關於團隊成員的回文及貢獻
1.新增一個文字文件(.txt),貼上以下內容
- 代碼:
(defun C:am (/ ss l i totalarea ename obj entarea)
(if (setq ss (ssget))
(progn
(vl-load-com)
(setq modelspace (vla-get-Modelspace (vla-get-activeDocument (vlax-get-acad-object))))
(setq l (sslength ss) i 0 totalarea 0 totlength 0)
(repeat l
(setq ename (ssname ss i))
(setq obj (vlax-ename->vla-object ename))
(if (vlax-property-available-p obj "area")
(setq totalarea (+ (vlax-get-property obj 'area) totalarea))
)
(if (= (cdr (assoc 0 (entget ename))) "MLINE")
(setq totlength (+ totlength (ml-length ename)))
(setq totlength (+ totlength (vlax-curve-getdistatparam ename (vlax-curve-getendparam ename))))
)
(setq i (1+ i))
)
(setq text1 (strcat "總面積為 : " (rtos totalarea 2 4) "平方公分")
text2 (strcat "總長度為 : " (rtos totlength 2 4) "公分")
)
(if (setq insertpt (getpoint "\n請輸入文字插入點: "))
(if (setq height (GETREAL "\n請輸入文字高度:"))
(setq insertp1 (vlax-3d-point insertpt)
insertp2 (vlax-3d-point (polar insertpt (* 1.5 Pi) (* 1.5 height)))
textobj1 (vla-addtext modelspace text1 insertp1 height)
textobj2 (vla-addtext modelspace text2 insertp2 height)
)
)
)
)
)
)
(defun ml-length (ename / j d ptlist)
(foreach n (entget ename)
(if (= (car n) 11)
(setq ptlist (cons (cdr n) ptlist))
)
)
(reverse ptlist)
(setq j 0 d 0)
(repeat (1- (length ptlist))
(setq d (+ d (distance (nth j ptlist) (nth (1+ j) ptlist))))
(setq j (1+ j))
)
d
)
3.開啟Autocad工具列中的「載入/卸載應用程式」對話方塊或者執行[appload]
4.選擇該文件位置後載入
5.在指令列key入"am"後,選擇你要的線或面方可使用(但不能選擇圖塊喔)
PS:這是一位建築師給我的LISP
ps:好東西與好朋友分享!!
蘋果爸補充:
每個CAD版本可能會有些差異,每個人使用方式也要討論及了解,才能知道問題在哪!
是否有開啟一張新圖來做測試,如果可以測試其他電腦的CAD版本。
我這裡使用2023版本操作沒有問題!
謝謝程式分享及說明~< 積分 +1>
[公告]關於團隊成員的回文及貢獻
Tiger&蘋果爸 在 2022-06-03, 21:41 作了第 7 次修改 (原因 : 加分囉~)
bruce79- 初級會員
- 文章總數 : 186
年齡 : 45
來自 : 南投
職業 : 工程師
愛好 : 運動
個性 : O型-樂觀
使用年資 : 5年
使用版本 : 2008
積分 : 3
經驗值 : 6443
威望值 : 105
未回應主題 : 1
注冊日期 : 2008-09-12
Tiger&蘋果爸, vike827, ben91016, mingsung, tck007, trelive, JohnnyTsungChen and like this post
tyhaola- 一般會員
- 文章總數 : 5
年齡 : 37
來自 : 新竹
職業 : 建築
愛好 : 建築
個性 : 建築
使用年資 : 5
使用版本 : 2017
經驗值 : 2256
威望值 : 6
注冊日期 : 2018-08-16
月蜻蜓- 初級會員
- 文章總數 : 53
年齡 : 53
來自 : 新竹
職業 : CAD (2D)
愛好 : 看漫畫,看科幻電影!
個性 : 溫和!
使用年資 : 20
使用版本 : AutoCADM 2013
積分 : 2
經驗值 : 5412
威望值 : 103
注冊日期 : 2010-10-16
回復: [分享]一個能顯示面積及長度的LISP程式
感謝分享,剛好非常需要這個功能
cantwocantwocan- 一般會員
- 文章總數 : 6
年齡 : 41
來自 : Taipei
職業 : 結構設計
愛好 : 看書
個性 : 開朗
使用年資 : 12
使用版本 : 2008
經驗值 : 1606
威望值 : 0
注冊日期 : 2020-05-26
回復: [分享]一個能顯示面積及長度的LISP程式
感謝分享,工作上剛好用得到!
koko789- 一般會員
- 文章總數 : 28
年齡 : 42
來自 : 台北縣
職業 : 商
愛好 : 鐵件
個性 : 冏
使用年資 : 5年
使用版本 : 3年
經驗值 : 4104
威望值 : 3
注冊日期 : 2013-11-03
回復: [分享]一個能顯示面積及長度的LISP程式
來試看看...對於蒜面積幫助
c1140c33- 一般會員
- 文章總數 : 96
年齡 : 43
來自 : 台北
職業 : 工程師
愛好 : 電腦
個性 : 隨和
使用年資 : 5年
使用版本 : 2010
經驗值 : 5608
威望值 : 39
注冊日期 : 2010-06-29
回復: [分享]一個能顯示面積及長度的LISP程式
請問那個程式碼怎麼複製....到筆記本檔
c1140c33- 一般會員
- 文章總數 : 96
年齡 : 43
來自 : 台北
職業 : 工程師
愛好 : 電腦
個性 : 隨和
使用年資 : 5年
使用版本 : 2010
經驗值 : 5608
威望值 : 39
注冊日期 : 2010-06-29
回復: [分享]一個能顯示面積及長度的LISP程式
已經重新上傳附件下載了,請前往下載!c1140c33 寫到:請問那個程式碼怎麼複製....到筆記本檔
____________________________________________________________________________________
👉[訂購]AutoCAD圖塊大師課程(點我)👈
回復: [分享]一個能顯示面積及長度的LISP程式
感謝分享!計算材料數量很方便
liao- 一般會員
- 文章總數 : 19
年齡 : 47
來自 : 台北
職業 : 監工
愛好 : 遊山玩水
個性 : 溫和
使用年資 : 新手初學
使用版本 : 2008
經驗值 : 4383
威望值 : 6
注冊日期 : 2012-12-04
wenfeng- 一般會員
- 文章總數 : 28
年齡 : 34
來自 : 高雄市
職業 : 繪圖人員
愛好 : 漫畫、繪圖、追劇
個性 : 開朗
使用年資 : 10
使用版本 : 2018
經驗值 : 1327
威望值 : 12
注冊日期 : 2021-06-19
回復: [分享]一個能顯示面積及長度的LISP程式
感謝前輩分享,剛好有需要先來試試看了
f933021- 一般會員
- 文章總數 : 16
年齡 : 35
來自 : 板橋
職業 : 學生
愛好 : 電視
個性 : 開朗沈默參半
使用年資 : 4
使用版本 : 2006
經驗值 : 5199
威望值 : 6
注冊日期 : 2010-09-14
回復: [分享]一個能顯示面積及長度的LISP程式
每個CAD版本可能會有些差異,每個人使用方式也要討論及了解,才能知道問題在哪!以西杰 寫到:執行後掛掉
跑出下面的指令 我用的是 CAD2010
指令: am
選取物件: 找到 1 個
選取物件:
請輸入文字插入點:
請輸入文字高度:50
# VLA-OBJECT IAcadText 16f961e4
是否有開啟一張新圖來做測試,如果可以測試其他電腦的CAD版本。
我這裡使用2023版本操作沒有問題!
____________________________________________________________________________________
👉[訂購]AutoCAD圖塊大師課程(點我)👈
回復: [分享]一個能顯示面積及長度的LISP程式
很實用的功能,感謝分享~
HUANG CHIEN MING- 一般會員
- 文章總數 : 29
年齡 : 43
來自 : 彰化縣
職業 : 建築
愛好 : 建築
個性 : 樂於助人
使用年資 : 15年
使用版本 : 2020
經驗值 : 3887
威望值 : 0
注冊日期 : 2014-05-24
回復: [分享]一個能顯示面積及長度的LISP程式
謝謝您的分享,還有熱心的人士修改,我來試用看看
handolu- 一般會員
- 文章總數 : 7
年齡 : 39
來自 : 臺中市
職業 : 工地監工
愛好 : 無
個性 : 無
使用年資 : 新手
使用版本 : 2022
經驗值 : 877
威望值 : 6
注冊日期 : 2022-06-05
ganlinlaw- 一般會員
- 文章總數 : 21
年齡 : 56
來自 : 宜蘭
職業 : 工程
愛好 : 休閒
個性 : 外向
使用年資 : 5
使用版本 : 2007
經驗值 : 5353
威望值 : 15
注冊日期 : 2010-05-06
回復: [分享]一個能顯示面積及長度的LISP程式
因為程式碼中有中文緣故,有時候會編碼關係造成亂碼ganlinlaw 寫到:這是俺跑出來的結果
還請指教
LSP程式再用Visual LISP編輯器,開啟後儲存來使用
AutoLISP 與 Visual LISP 概述
https://www.autocad-tw.com/t4511-topic
____________________________________________________________________________________
👉[訂購]AutoCAD圖塊大師課程(點我)👈
回復: [分享]一個能顯示面積及長度的LISP程式
感謝大大的分享 剛剛抓來試了一下 真的相當好用~
chunwel- 一般會員
- 文章總數 : 7
年齡 : 46
來自 : 台北板橋區
職業 : 水電
愛好 : 露營
個性 : 外向
使用年資 : 2
使用版本 : 2020
經驗值 : 1333
威望值 : 0
注冊日期 : 2021-02-28
回復: [分享]一個能顯示面積及長度的LISP程式
很實用,謝謝版大的分享
ryan0106- 一般會員
- 文章總數 : 42
年齡 : 49
來自 : 台南
職業 : 製造
愛好 : 一般
個性 : 努力
使用年資 : 新手初學
使用版本 : 2010
經驗值 : 4530
威望值 : 0
注冊日期 : 2012-11-08
回復: [分享]一個能顯示面積及長度的LISP程式
感謝大大 ,十分受用!!!自己在嘗試修改單位為公尺中
s8828016- 一般會員
- 文章總數 : 4
年齡 : 43
來自 : 新北市新店
職業 : 景觀
愛好 : 旅行
個性 : 孤僻
使用年資 : 20
使用版本 : 2022
經驗值 : 805
威望值 : 0
注冊日期 : 2022-07-28
回復: [分享]一個能顯示面積及長度的LISP程式
謝謝分享實用的工具;對工作很有幫助。
flyat9t- 一般會員
- 文章總數 : 14
年齡 : 43
來自 : 台灣台中市
職業 : 建築&空間設計
愛好 : 閱讀學習旅遊
個性 : 平實和善
使用年資 : 5
使用版本 : 2020
經驗值 : 1006
威望值 : 12
注冊日期 : 2022-03-05
回復: [分享]一個能顯示面積及長度的LISP程式
感謝大大無私提供,急需急需
tufe8887- 一般會員
- 文章總數 : 27
年齡 : 36
來自 : 雲林
職業 : 營建
愛好 : 繪圖
個性 : 開朗
使用年資 : 5
使用版本 : 2008
經驗值 : 4083
威望值 : 0
注冊日期 : 2013-11-17
回復: [分享]一個能顯示面積及長度的LISP程式
請問大大要如何下載,怎麼都沒有回應
麻煩大大幫忙
麻煩大大幫忙
tufe8887- 一般會員
- 文章總數 : 27
年齡 : 36
來自 : 雲林
職業 : 營建
愛好 : 繪圖
個性 : 開朗
使用年資 : 5
使用版本 : 2008
經驗值 : 4083
威望值 : 0
注冊日期 : 2013-11-17
回復: [分享]一個能顯示面積及長度的LISP程式
感謝分享 公共工程要計算數量這太好用了 謝謝唷!!
peggy731- 一般會員
- 文章總數 : 12
年齡 : 38
來自 : 台北市
職業 : 建築
愛好 : 聽歌
個性 : 活潑
使用年資 : 5
使用版本 : 2018,2016
經驗值 : 1810
威望值 : 30
注冊日期 : 2019-12-24
回復: [分享]一個能顯示面積及長度的LISP程式
bruce79 寫到:1.新增一個文字文件(.txt),貼上以下內容2.在將該文件副檔名改為(.lsp) (檔名:am.lsp)
- 代碼:
(defun C:am (/ ss l i totalarea ename obj entarea)
(if (setq ss (ssget))
(progn
(vl-load-com)
(setq modelspace (vla-get-Modelspace (vla-get-activeDocument (vlax-get-acad-object))))
(setq l (sslength ss) i 0 totalarea 0 totlength 0)
(repeat l
(setq ename (ssname ss i))
(setq obj (vlax-ename->vla-object ename))
(if (vlax-property-available-p obj "area")
(setq totalarea (+ (vlax-get-property obj 'area) totalarea))
)
(if (= (cdr (assoc 0 (entget ename))) "MLINE")
(setq totlength (+ totlength (ml-length ename)))
(setq totlength (+ totlength (vlax-curve-getdistatparam ename (vlax-curve-getendparam ename))))
)
(setq i (1+ i))
)
(setq text1 (strcat "總面積為 : " (rtos totalarea 2 4) "平方公分")
text2 (strcat "總長度為 : " (rtos totlength 2 4) "公分")
)
(if (setq insertpt (getpoint "\n請輸入文字插入點: "))
(if (setq height (GETREAL "\n請輸入文字高度:"))
(setq insertp1 (vlax-3d-point insertpt)
insertp2 (vlax-3d-point (polar insertpt (* 1.5 Pi) (* 1.5 height)))
textobj1 (vla-addtext modelspace text1 insertp1 height)
textobj2 (vla-addtext modelspace text2 insertp2 height)
)
)
)
)
)
)
(defun ml-length (ename / j d ptlist)
(foreach n (entget ename)
(if (= (car n) 11)
(setq ptlist (cons (cdr n) ptlist))
)
)
(reverse ptlist)
(setq j 0 d 0)
(repeat (1- (length ptlist))
(setq d (+ d (distance (nth j ptlist) (nth (1+ j) ptlist))))
(setq j (1+ j))
)
d
)
3.開啟Autocad工具列中的「載入/卸載應用程式」對話方塊或者執行[appload]
4.選擇該文件位置後載入
5.在指令列key入"am"後,選擇你要的線或面方可使用(但不能選擇圖塊喔)
PS:這是一位建築師給我的LISP
ps:好東西與好朋友分享!!
蘋果爸補充:
每個CAD版本可能會有些差異,每個人使用方式也要討論及了解,才能知道問題在哪!
是否有開啟一張新圖來做測試,如果可以測試其他電腦的CAD版本。
我這裡使用2023版本操作沒有問題!
謝謝程式分享及說明~< 積分 +1>
[公告]關於團隊成員的回文及貢獻
太棒了
銀翼- 一般會員
- 文章總數 : 4
年齡 : 42
來自 : 台北
職業 : 工程師
愛好 : 宜靜宜動
個性 : 謹慎踏實
使用年資 : 1
使用版本 : 2022
經驗值 : 746
威望值 : 0
注冊日期 : 2022-09-25
fina12 likes this post
rain831787
感謝分享
rain831787- 一般會員
- 文章總數 : 2
年齡 : 27
來自 : 台中
職業 : 待業
愛好 : 打球
個性 : 和善
使用年資 : 新手初學
使用版本 : 新手初學
經驗值 : 691
威望值 : 0
注冊日期 : 2022-11-09
回復: [分享]一個能顯示面積及長度的LISP程式
感謝大大無私分享
感謝建築師喔
感謝建築師喔
poiuyy- 初級會員
- 文章總數 : 226
年齡 : 49
來自 : 台中
職業 : 小監
愛好 : 電影
個性 : 中庸
使用年資 : 5
使用版本 : 2010
積分 : 2
經驗值 : 4711
威望值 : 84
注冊日期 : 2014-06-24
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第3頁(共4頁)
這個論壇的權限:
您 無法 在這個版面回復文章