[討論]計算長度LISP如何指定單一圖層
+18
ming1789
a810328
櫻子
candylin0530
mai22118
ginse0727
amdhome
lucia
ching1791
lingo_st
meet_emily
紫綺
Tiger&蘋果爸
白金之星
bruce79
verlth
shenhung
Boss&倫
22 posters
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共2頁)
[討論]計算長度LISP如何指定單一圖層
下面計算線、聚合線LISP:
請教個位寫LISP前輩
1.要在框選前加入指定單一圖層,在計算指定圖層內的線段總長。
這樣計算起來比較不會出錯,請各位前輩指點一二~感恩
2.如果加入弧,該加入哪些語法!
(defun c:long_1 ()
(setq ss (ssget '((0 . "*line"))))
(setq nn (sslength ss))
(setq i 0 tnum 0)
(repeat nn
(setq ssn (ssname ss i))
(command "lengthen" ssn "")
(setq num (getvar "perimeter"))
(setq tnum (+ tnum num))
(setq i (1+ i))
)
(alert (strcat "框選的線段加總長為: "(rtos tnum 2)))
)
請教個位寫LISP前輩
1.要在框選前加入指定單一圖層,在計算指定圖層內的線段總長。
這樣計算起來比較不會出錯,請各位前輩指點一二~感恩
2.如果加入弧,該加入哪些語法!
Boss&倫- 中級會員
- 文章總數 : 123
年齡 : 45
來自 : 台北
職業 : 機電
愛好 : 繪圖
個性 : 開朗
使用年資 : 6
使用版本 : AutoCAD2010
積分 : 5
經驗值 : 5857
威望值 : 55
注冊日期 : 2010-03-14
LISP 修正如下
- 代碼:
(defun c:long_1 ( / en lay_name ss nn ssn num tnum)
(setq en (entsel "\n選擇要過濾的圖層:"))
(if en (progn
(setq lay_name (cdr (assoc 8 (entget (car en)))))
(setq ss (ssget
(list
(cons -4 "<AND")
(cons -4 "<OR")
(cons 0 "*line") ;
(cons 0 "ARC") ;LINE and arc 都被選擇
(cons -4 "OR>")
(cons 8 lay_name) ;圖層
(cons -4 "AND>")
);LIST
);SSGET
)
;;;line 和arc 用or 是表示..line或arc 皆會被選.
(setvar "cmdecho" 0)
(setq nn (sslength ss))
(setq i 0 tnum 0)
(repeat nn
(setq ssn (ssname ss i))
(command "lengthen" ssn "")
(setq num (getvar "perimeter"))
(setq tnum (+ tnum num))
(setq i (1+ i))
);repeat
(setvar "cmdecho" 1)
(alert (strcat "框選的線段加總長為: "(rtos tnum 2)))
);progn
);if
(princ)
)
shenhung- 高級會員
- 文章總數 : 281
年齡 : 57
來自 : 新北市
職業 : 塑膠模具設計.AUTOLISP
愛好 : 音樂
個性 : 隨和
使用年資 : 18年
使用版本 : 2010
積分 : 15
經驗值 : 8091
威望值 : 1188
注冊日期 : 2009-06-03
回復: [討論]計算長度LISP如何指定單一圖層
感謝shenhung熱心修改!
我剛剛測試非常OK,這個對於機電計算數量方便多了!
如果能貼上文字(指定高度)加入單位,那更棒!
不知shenhung可否再修改一次
我剛剛測試非常OK,這個對於機電計算數量方便多了!
如果能貼上文字(指定高度)加入單位,那更棒!
不知shenhung可否再修改一次
Boss&倫- 中級會員
- 文章總數 : 123
年齡 : 45
來自 : 台北
職業 : 機電
愛好 : 繪圖
個性 : 開朗
使用年資 : 6
使用版本 : AutoCAD2010
積分 : 5
經驗值 : 5857
威望值 : 55
注冊日期 : 2010-03-14
回復: [討論]計算長度LISP如何指定單一圖層
請問貼上文字.加入單位.是什麼意思~能不能解釋一下..這樣修改比較能符合你想要的..
shenhung- 高級會員
- 文章總數 : 281
年齡 : 57
來自 : 新北市
職業 : 塑膠模具設計.AUTOLISP
愛好 : 音樂
個性 : 隨和
使用年資 : 18年
使用版本 : 2010
積分 : 15
經驗值 : 8091
威望值 : 1188
注冊日期 : 2009-06-03
回復: [討論]計算長度LISP如何指定單一圖層
又要麻煩shenhung一次~下面是論壇成員分享的面積、長度LISP
選取線段>輸入文字高度>插入計算文字~
我把指令行貼上供你參考!
如果需把LISP貼上再通知我~感恩
不知shenhung重哪開始學習LISP,可否指點一下
我目前是看Auto CAD程式設計魔法秘笈[AutoLISP+DCL+Visual LISP]
選取線段>輸入文字高度>插入計算文字~
我把指令行貼上供你參考!
如果需把LISP貼上再通知我~感恩
不知shenhung重哪開始學習LISP,可否指點一下
我目前是看Auto CAD程式設計魔法秘笈[AutoLISP+DCL+Visual LISP]
Boss&倫- 中級會員
- 文章總數 : 123
年齡 : 45
來自 : 台北
職業 : 機電
愛好 : 繪圖
個性 : 開朗
使用年資 : 6
使用版本 : AutoCAD2010
積分 : 5
經驗值 : 5857
威望值 : 55
注冊日期 : 2010-03-14
LISP 程式.
我用的書一樣是吳老師寫的書..但是我偶爾會去大陸網站.或網路上.看別人針對某一部分問題.所寫的程式..好的部分可以學起來.
- 代碼:
(defun c:long_1 ( / en lay_name ss nn ssn num tnum ipt)
(setq en (entsel "\n選擇要過濾的圖層:"))
(if en (progn
(setq lay_name (cdr (assoc 8 (entget (car en)))))
(setq ss (ssget
(list
(cons -4 "<AND")
(cons -4 "<OR")
(cons 0 "*line") ;
(cons 0 "ARC") ;LINE and arc 都被選擇
(cons -4 "OR>")
(cons 8 lay_name) ;圖層
(cons -4 "AND>")
);LIST
);SSGET
)
;;;line 和arc 用or 是表示..line或arc 皆會被選.
(setvar "cmdecho" 0)
(setq nn (sslength ss))
(setq i 0 tnum 0)
(repeat nn
(setq ssn (ssname ss i))
(command "lengthen" ssn "")
(setq num (getvar "perimeter"))
(setq tnum (+ tnum num))
(setq i (1+ i))
);repeat
(if (null t_sz)
(setq t_sz(getreal "\n文字高度:"))
(progn
(setq t_sz (getreal (strcat "\n文字高度<" (rtos t_sz_tmp 2 2) ">:")))
(if (null t_sz) (setq t_sz t_sz_tmp))
)
)
(setq t_sz_tmp t_sz)
(setq ipt (getpoint "\n文字插入點:"))
(command "text" ipt t_sz "0" (strcat "總長度為 :" (rtos tnum 2) "公分"))
(setq t_sz_tmp t_sz)
(setvar "cmdecho" 1)
);progn
);if
(princ)
)
Tiger&蘋果爸 寫到: 謝謝熱心程式分享~< 積分 +1>
[公告]關於團隊成員的回文及貢獻
Tiger&蘋果爸 在 2010-05-03, 10:58 作了第 1 次修改 (原因 : 加分囉~)
shenhung- 高級會員
- 文章總數 : 281
年齡 : 57
來自 : 新北市
職業 : 塑膠模具設計.AUTOLISP
愛好 : 音樂
個性 : 隨和
使用年資 : 18年
使用版本 : 2010
積分 : 15
經驗值 : 8091
威望值 : 1188
注冊日期 : 2009-06-03
fina12 likes this post
回復: [討論]計算長度LISP如何指定單一圖層
請教shenhung有測試過嗎?
我測試結果如下!
可以再幫我看看嗎,因為插入文字變成一個圖型。
還是我哪裡出錯~請shenhung指教!
我測試結果如下!
可以再幫我看看嗎,因為插入文字變成一個圖型。
還是我哪裡出錯~請shenhung指教!
Boss&倫- 中級會員
- 文章總數 : 123
年齡 : 45
來自 : 台北
職業 : 機電
愛好 : 繪圖
個性 : 開朗
使用年資 : 6
使用版本 : AutoCAD2010
積分 : 5
經驗值 : 5857
威望值 : 55
注冊日期 : 2010-03-14
回復: [討論]計算長度LISP如何指定單一圖層
我測試過沒問題...!!
程式部分.文字是使用當前字型.
而你設定字型的時候..設了字高...(程式就沒辦法設定字高..)
所以..你使用style 命令.
將字的高度.設為0.00<====就可以了..!!祝你使用愉快.!!
程式部分.文字是使用當前字型.
而你設定字型的時候..設了字高...(程式就沒辦法設定字高..)
所以..你使用style 命令.
將字的高度.設為0.00<====就可以了..!!祝你使用愉快.!!
shenhung- 高級會員
- 文章總數 : 281
年齡 : 57
來自 : 新北市
職業 : 塑膠模具設計.AUTOLISP
愛好 : 音樂
個性 : 隨和
使用年資 : 18年
使用版本 : 2010
積分 : 15
經驗值 : 8091
威望值 : 1188
注冊日期 : 2009-06-03
回復: [討論]計算長度LISP如何指定單一圖層
原來是我自己的問題。
shenhung我測試過了沒有問題,而且非常愉快!
shenhung我測試過了沒有問題,而且非常愉快!
Boss&倫- 中級會員
- 文章總數 : 123
年齡 : 45
來自 : 台北
職業 : 機電
愛好 : 繪圖
個性 : 開朗
使用年資 : 6
使用版本 : AutoCAD2010
積分 : 5
經驗值 : 5857
威望值 : 55
注冊日期 : 2010-03-14
回復: [討論]計算長度LISP如何指定單一圖層
又學到了一招~試過後覺得超好用的
以後就不用再用布尺量了~
謝謝大大囉
以後就不用再用布尺量了~
謝謝大大囉
verlth- 初級會員
- 文章總數 : 36
年齡 : 46
來自 : Taipei
職業 : 機電工程
愛好 : 打球
個性 : 溫和
使用年資 : 10年
使用版本 : AUTOCAD 2014
積分 : 2
經驗值 : 5761
威望值 : 6
注冊日期 : 2009-05-21
回復: [討論]計算長度LISP如何指定單一圖層
感謝大大的分享北呗~~~~
有夠好用低
有夠好用低
bruce79- 初級會員
- 文章總數 : 186
年齡 : 45
來自 : 南投
職業 : 工程師
愛好 : 運動
個性 : O型-樂觀
使用年資 : 5年
使用版本 : 2008
積分 : 3
經驗值 : 6534
威望值 : 117
未回應主題 : 1
注冊日期 : 2008-09-12
回復: [討論]計算長度LISP如何指定單一圖層
自己不會寫
別人寫也要會用
謝謝大大
別人寫也要會用
謝謝大大
____________________________________________________________________________________
白金之星- 初級會員
- 文章總數 : 248
年齡 : 47
來自 : 台北
職業 : 工頭
愛好 : AutoCad
個性 : 樂觀
使用年資 : 7
使用版本 : 2008
積分 : 4
經驗值 : 6123
威望值 : 9
未回應主題 : 您有一筆未回應
注冊日期 : 2008-09-22
oris147 likes this post
回復: [討論]計算長度LISP如何指定單一圖層
回帖文章請勿使用相同內文回覆!!白金之星 寫到:自己不會寫
別人寫也要會用
謝謝大大
謝謝配合~
____________________________________________________________________________________
👉快速比例設定與出圖技巧-線上課程(點我)👈
回復: [討論]計算長度LISP如何指定單一圖層
想請問一下!! 我用了大大寫的LISP 但是出現了
指令: CUI
自訂檔載入成功。自訂群組: ACAD
自訂檔載入成功。自訂群組: CUSTOM
指令: \n'bf'ef'be'dc'ad'6e'b9'4c'c2'6f'aa'ba'b9'cf'bc'68:*取消*
\n'bf'ef'be'dc'ad'6e'b9'4c'c2'6f'aa'ba'b9'cf'bc'68:; 錯誤: 語法錯誤
指令: DLINE
不明的指令「DLINE」。請按 F1 取得說明。
到底是那裡用錯了呢?
指令: CUI
自訂檔載入成功。自訂群組: ACAD
自訂檔載入成功。自訂群組: CUSTOM
指令: \n'bf'ef'be'dc'ad'6e'b9'4c'c2'6f'aa'ba'b9'cf'bc'68:*取消*
\n'bf'ef'be'dc'ad'6e'b9'4c'c2'6f'aa'ba'b9'cf'bc'68:; 錯誤: 語法錯誤
指令: DLINE
不明的指令「DLINE」。請按 F1 取得說明。
到底是那裡用錯了呢?
紫綺- 一般會員
- 文章總數 : 21
年齡 : 43
來自 : 台北
職業 : 繪圖員
愛好 : 平靜
個性 : 奇怪
使用年資 : 六年
使用版本 : 2010
經驗值 : 5515
威望值 : 0
注冊日期 : 2009-12-17
回復: [討論]計算長度LISP如何指定單一圖層
試過了很~好用哦!謝謝~
meet_emily- 高級會員
- 文章總數 : 125
年齡 : 54
來自 : 宜蘭
職業 : 學習
愛好 : 電影,音樂
個性 : 有點呆板,但不古板!有點天真,但不失真!有點強硬,但不強勢!
使用年資 : 6
使用版本 : 2010
積分 : 12
經驗值 : 6209
威望值 : 62
回帖精華 : 1
注冊日期 : 2008-10-12
回復: [討論]計算長度LISP如何指定單一圖層
這lisp真的很體貼很好用
有需求的試用過會愛不釋手
一般再繪製時確實都會以圖層來管理物件居多
篩選圖層後分開計算這想法也太神
如此一來,點險需求作業圖層物件,再框選整張圖就一指稿定囉
只要先建好表格
刷完也同時貼好,然後就可以交卷
小小的要求遇到大大的用心,大家得到的是滿滿的收穫
逛這論壇真的會上癮
今天廠商來還在問說
你的cad怎麼特別好用?
哈,帥呆囉
感謝ShenHung前輩的用心讓大家都受益了
有需求的試用過會愛不釋手
一般再繪製時確實都會以圖層來管理物件居多
篩選圖層後分開計算這想法也太神
如此一來,點險需求作業圖層物件,再框選整張圖就一指稿定囉
只要先建好表格
刷完也同時貼好,然後就可以交卷
小小的要求遇到大大的用心,大家得到的是滿滿的收穫
逛這論壇真的會上癮
今天廠商來還在問說
你的cad怎麼特別好用?
哈,帥呆囉
感謝ShenHung前輩的用心讓大家都受益了
____________________________________________________________________________________
沒有功勞也有苦勞,沒有苦勞也有疲勞的年代已經過去
現在是...........................................
沒有功勞直接就是個屁,連個屁都不是,那就真的很疲勞了
大家一起努力吧,努力別落到連個屁都不是................
lingo_st- 中級會員
- 文章總數 : 211
年齡 : 60
來自 : 新北市
職業 : 營造,建設
愛好 : 學習,服務,電腦軟硬體
個性 : 正直,達觀且無可救藥的雞婆
使用年資 : 使用12年但真的是新手
使用版本 : 2012,2013
積分 : 6
經驗值 : 5981
威望值 : 271
注冊日期 : 2011-12-18
回復: [討論]計算長度LISP如何指定單一圖層
真不錯的lisp,減少重複操作的時間,真是太理想嘞。
ching1791- 一般會員
- 文章總數 : 113
年齡 : 53
來自 : 知識
職業 : 工
愛好 : 郊遊
個性 : 平庸
使用年資 : 4
使用版本 : 2004
經驗值 : 6405
威望值 : 36
注冊日期 : 2008-05-13
回復: [討論]計算長度LISP如何指定單一圖層
不會寫 但已會用你們得lisp程式 謝謝各位高手
lucia- 一般會員
- 文章總數 : 41
年齡 : 46
來自 : 新北市汐止
職業 : 水電繪圖
愛好 : 獨處
個性 : 溫和
使用年資 : 4
使用版本 : AutoCAD2012
經驗值 : 4633
威望值 : -3
注冊日期 : 2012-09-13
回復: [討論]計算長度LISP如何指定單一圖層
真的是超好用的小程式,對初階者計算長度可以省下超多時間的,感謝先知的分享
amdhome- 中級會員
- 文章總數 : 115
年齡 : 43
來自 : 苗栗縣
職業 : 工
愛好 : 上論壇
個性 : 外向
使用年資 : 1年
使用版本 : 2006
積分 : 7
最佳解答 : 2
經驗值 : 6091
威望值 : 117
注冊日期 : 2009-12-22
回復: [討論]計算長度LISP如何指定單一圖層
觀犘語法之後,ssget的用法又學了一招,謝謝shenhung前輩!
ginse0727- 高級會員
- 文章總數 : 256
年齡 : 50
來自 : 台北巿
職業 : 帷幕牆
愛好 : 電玩,漫畫,網路小說
個性 : 宅男/正直/死腦筋
使用年資 : 退伍後工作迄今,10年以上
使用版本 : 2012
積分 : 14
經驗值 : 6845
威望值 : 500
發帖精華 : 1
注冊日期 : 2010-07-13
回復: [討論]計算長度LISP如何指定單一圖層
真是方便,不須篩選,就可計算。
ching1791- 一般會員
- 文章總數 : 113
年齡 : 53
來自 : 知識
職業 : 工
愛好 : 郊遊
個性 : 平庸
使用年資 : 4
使用版本 : 2004
經驗值 : 6405
威望值 : 36
注冊日期 : 2008-05-13
回復: [討論]計算長度LISP如何指定單一圖層
請問~有影片檔教學嗎?看了你的程式我還是不會用耶~
mai22118- 初級會員
- 文章總數 : 42
年齡 : 42
來自 : 台北
職業 : 服務業
愛好 : 上網、旅遊
個性 : 活潑
使用年資 : 5個月
使用版本 : 2011
積分 : 3
經驗值 : 5472
威望值 : 21
注冊日期 : 2010-05-22
回復: [討論]計算長度LISP如何指定單一圖層
____________________________________________________________________________________
👉快速比例設定與出圖技巧-線上課程(點我)👈
真不錯的程式,謝謝大大的分享
真不錯的程式,謝謝大大的分享
candylin0530- 一般會員
- 文章總數 : 7
年齡 : 49
來自 : 台北
職業 : 機電
愛好 : cad
個性 : 好
使用年資 : 10
使用版本 : cad2012
經驗值 : 4303
威望值 : 0
注冊日期 : 2013-03-29
回復: [討論]計算長度LISP如何指定單一圖層
多謝各位前輩熱心分享,非常實用,多謝!
櫻子- 一般會員
- 文章總數 : 82
年齡 : 42
來自 : l彰化
職業 : 繪圖員
愛好 : 繪圖
個性 : 內向+外向
使用年資 : 愛安靜
使用版本 : 2004
經驗值 : 4243
威望值 : 54
注冊日期 : 2014-05-27
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共2頁)
這個論壇的權限:
您 無法 在這個版面回復文章