AutoCAD顧問
還沒有註冊嗎...即日起免費註冊,所有最完整的AutoCAD討論、教學及資源都在論壇裡喔~

[討論]計算長度LISP如何指定單一圖層

1頁(共2頁) 1, 2  下一步

上一篇主題 下一篇主題 向下

[討論]計算長度LISP如何指定單一圖層

發表 由 Boss&倫 于 2010-05-01, 16:58

下面計算線、聚合線LISP:

(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.如果加入,該加入哪些語法!
感恩喔
avatar
Boss&倫
中級會員
中級會員

文章總數 : 123
年齡 : 38
來自 : 台北
職業 : 機電
愛好 : 繪圖
個性 : 開朗
使用年資 : 6
使用版本 : AutoCAD2010
積分 : 5
經驗值 : 3247
威望值 : 52
注冊日期 : 2010-03-13
經典問與答讀者 藍鵲264號
串連貼紙成功 男 摩羯座 馬

回頂端 向下

LISP 修正如下

發表 由 shenhung 于 2010-05-02, 09:06

代碼:
(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)
)
avatar
shenhung
高級會員
高級會員

文章總數 : 238
年齡 : 50
來自 : 新北市
職業 : 塑膠模具設計.AUTOLISP
愛好 : 音樂
個性 : 隨和
使用年資 : 18年
使用版本 : 2010
積分 : 15
經驗值 : 5004
威望值 : 913
注冊日期 : 2009-06-03
男 摩羯座 馬

回頂端 向下

回復: [討論]計算長度LISP如何指定單一圖層

發表 由 Boss&倫 于 2010-05-02, 13:15

感謝shenhung熱心修改! 感動

我剛剛測試非常OK,這個對於機電計算數量方便多了!

如果能貼上文字(指定高度)加入單位,那更棒!

不知shenhung可否再修改一次 感動
好開心
avatar
Boss&倫
中級會員
中級會員

文章總數 : 123
年齡 : 38
來自 : 台北
職業 : 機電
愛好 : 繪圖
個性 : 開朗
使用年資 : 6
使用版本 : AutoCAD2010
積分 : 5
經驗值 : 3247
威望值 : 52
注冊日期 : 2010-03-13
經典問與答讀者 藍鵲264號
串連貼紙成功 男 摩羯座 馬

回頂端 向下

回復: [討論]計算長度LISP如何指定單一圖層

發表 由 shenhung 于 2010-05-02, 14:03

請問貼上文字.加入單位.是什麼意思~能不能解釋一下..這樣修改比較能符合你想要的..
avatar
shenhung
高級會員
高級會員

文章總數 : 238
年齡 : 50
來自 : 新北市
職業 : 塑膠模具設計.AUTOLISP
愛好 : 音樂
個性 : 隨和
使用年資 : 18年
使用版本 : 2010
積分 : 15
經驗值 : 5004
威望值 : 913
注冊日期 : 2009-06-03
男 摩羯座 馬

回頂端 向下

回復: [討論]計算長度LISP如何指定單一圖層

發表 由 Boss&倫 于 2010-05-02, 17:35

又要麻煩shenhung一次~下面是論壇成員分享的面積、長度LISP



選取線段>輸入文字高度>插入計算文字~

我把指令行貼上供你參考!



如果需把LISP貼上再通知我~感恩 感動

不知shenhung重哪開始學習LISP,可否指點一下

我目前是看Auto CAD程式設計魔法秘笈[AutoLISP+DCL+Visual LISP]
avatar
Boss&倫
中級會員
中級會員

文章總數 : 123
年齡 : 38
來自 : 台北
職業 : 機電
愛好 : 繪圖
個性 : 開朗
使用年資 : 6
使用版本 : AutoCAD2010
積分 : 5
經驗值 : 3247
威望值 : 52
注冊日期 : 2010-03-13
經典問與答讀者 藍鵲264號
串連貼紙成功 男 摩羯座 馬

回頂端 向下

LISP 程式.

發表 由 shenhung 于 2010-05-03, 02:11

我用的書一樣是吳老師寫的書..但是我偶爾會去大陸網站.或網路上.看別人針對某一部分問題.所寫的程式..好的部分可以學起來.

代碼:

(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, 03:58 作了第 1 次修改 (原因 : 加分囉~)
avatar
shenhung
高級會員
高級會員

文章總數 : 238
年齡 : 50
來自 : 新北市
職業 : 塑膠模具設計.AUTOLISP
愛好 : 音樂
個性 : 隨和
使用年資 : 18年
使用版本 : 2010
積分 : 15
經驗值 : 5004
威望值 : 913
注冊日期 : 2009-06-03
男 摩羯座 馬

回頂端 向下

回復: [討論]計算長度LISP如何指定單一圖層

發表 由 Boss&倫 于 2010-05-03, 13:07

請教shenhung有測試過嗎?
我測試結果如下!

可以再幫我看看嗎,因為插入文字變成一個圖型。
還是我哪裡出錯~請shenhung指教!
avatar
Boss&倫
中級會員
中級會員

文章總數 : 123
年齡 : 38
來自 : 台北
職業 : 機電
愛好 : 繪圖
個性 : 開朗
使用年資 : 6
使用版本 : AutoCAD2010
積分 : 5
經驗值 : 3247
威望值 : 52
注冊日期 : 2010-03-13
經典問與答讀者 藍鵲264號
串連貼紙成功 男 摩羯座 馬

回頂端 向下

回復: [討論]計算長度LISP如何指定單一圖層

發表 由 shenhung 于 2010-05-03, 14:42

我測試過沒問題...!!
程式部分.文字是使用當前字型.
而你設定字型的時候..設了字高...(程式就沒辦法設定字高..)
所以..你使用style 命令.
將字的高度.設為0.00<====就可以了..!!祝你使用愉快.!!
avatar
shenhung
高級會員
高級會員

文章總數 : 238
年齡 : 50
來自 : 新北市
職業 : 塑膠模具設計.AUTOLISP
愛好 : 音樂
個性 : 隨和
使用年資 : 18年
使用版本 : 2010
積分 : 15
經驗值 : 5004
威望值 : 913
注冊日期 : 2009-06-03
男 摩羯座 馬

回頂端 向下

回復: [討論]計算長度LISP如何指定單一圖層

發表 由 Boss&倫 于 2010-05-03, 15:42

原來是我自己的問題。
shenhung我測試過了沒有問題,而且非常愉快!
avatar
Boss&倫
中級會員
中級會員

文章總數 : 123
年齡 : 38
來自 : 台北
職業 : 機電
愛好 : 繪圖
個性 : 開朗
使用年資 : 6
使用版本 : AutoCAD2010
積分 : 5
經驗值 : 3247
威望值 : 52
注冊日期 : 2010-03-13
經典問與答讀者 藍鵲264號
串連貼紙成功 男 摩羯座 馬

回頂端 向下

回復: [討論]計算長度LISP如何指定單一圖層

發表 由 verlth 于 2010-05-05, 17:42

又學到了一招~試過後覺得超好用的
以後就不用再用布尺量了~ 感動
謝謝大大囉
avatar
verlth
初級會員
初級會員

文章總數 : 36
年齡 : 39
來自 : Taipei
職業 : 機電工程
愛好 : 打球
個性 : 溫和
使用年資 : 10年
使用版本 : AUTOCAD 2014
積分 : 2
經驗值 : 3154
威望值 : 6
注冊日期 : 2009-05-21
串連貼紙成功 男 天秤座 馬

回頂端 向下

回復: [討論]計算長度LISP如何指定單一圖層

發表 由 bruce79 于 2010-05-29, 09:18

感謝大大的分享北呗~~~~


有夠好用低

bruce79
初級會員
初級會員

文章總數 : 162
年齡 : 38
來自 : 南投
職業 : 工程師
愛好 : 運動
個性 : O型-樂觀
使用年資 : 5年
使用版本 : 2008
積分 : 3
經驗值 : 3715
威望值 : 15
未回應主題 : 1
注冊日期 : 2008-09-12
顧問外掛程式 男 巨蟹座 羊

回頂端 向下

回復: [討論]計算長度LISP如何指定單一圖層

發表 由 白金之星 于 2010-06-17, 08:13

自己不會寫
別人寫也要會用
謝謝大大

白金之星
初級會員
初級會員

文章總數 : 232
年齡 : 40
來自 : 台北
職業 : 工頭
愛好 : AutoCad
個性 : 樂觀
使用年資 : 7
使用版本 : 2008
積分 : 4
經驗值 : 3428
威望值 : 3
未回應主題 : 您有一筆未回應
注冊日期 : 2008-09-22
男 白羊座 蛇

回頂端 向下

回復: [討論]計算長度LISP如何指定單一圖層

發表 由 Tiger&蘋果爸 于 2010-06-17, 09:07

白金之星 寫到:自己不會寫
別人寫也要會用
謝謝大大
回帖文章請勿使用相同內文回覆!!

謝謝配合~

____________________________________________________________________________________
avatar
Tiger&蘋果爸
系統管理員
系統管理員

文章總數 : 17192
年齡 : 41
來自 : 台北市文山區
職業 : AutoCAD顧問
愛好 : 蹓狗/戶外活動/拍照
個性 : 幽默/樂觀/善良
使用年資 : 15↑
使用版本 : AutoCAD 2016
經驗值 : 64609
威望值 : 12753
注冊日期 : 2008-04-23
2D基礎函授 2D進階函授 3D基礎函授 https://i11.servimg.com/u/f11/19/71/67/71/2d3d10.png2D+3D線上 顧問外掛程式 經典問與答讀者 藍鵲1號
2009聚會勳章 2010聚會勳章 2011聚會勳章 2012聚會勳章 2013勳章-2D基礎 2014聚會勳章 2015聚會勳章 2016聚會勳章 串連貼紙成功 男 水瓶座 兔

http://mypaper.pchome.com.tw/kv1012tiger

回頂端 向下

回復: [討論]計算長度LISP如何指定單一圖層

發表 由 紫綺 于 2010-07-12, 09:58

想請問一下!! 我用了大大寫的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 取得說明。



到底是那裡用錯了呢? 火冒三丈
avatar
紫綺
一般會員
一般會員

文章總數 : 21
年齡 : 36
來自 : 台北
職業 : 繪圖員
愛好 : 平靜
個性 : 奇怪
使用年資 : 六年
使用版本 : 2010
經驗值 : 2908
威望值 : 0
注冊日期 : 2009-12-17
女 天秤座 雞

回頂端 向下

回復: [討論]計算長度LISP如何指定單一圖層

發表 由 meet_emily 于 2012-08-26, 06:05

試過了很~好用哦!謝謝~
avatar
meet_emily
高級會員
高級會員

文章總數 : 123
年齡 : 47
來自 : 宜蘭
職業 : 學習
愛好 : 電影,音樂
個性 : 有點呆板,但不古板!有點天真,但不失真!有點強硬,但不強勢!
使用年資 : 6
使用版本 : 2010
積分 : 12
經驗值 : 3587
威望值 : 53
回帖精華 : 1
注冊日期 : 2008-10-11
女 處女座 狗

回頂端 向下

回復: [討論]計算長度LISP如何指定單一圖層

發表 由 lingo_st 于 2012-08-28, 14:50

這lisp真的很體貼很好用
有需求的試用過會愛不釋手
一般再繪製時確實都會以圖層來管理物件居多
篩選圖層後分開計算這想法也太神
如此一來,點險需求作業圖層物件,再框選整張圖就一指稿定囉
只要先建好表格
刷完也同時貼好,然後就可以交卷

小小的要求遇到大大的用心,大家得到的是滿滿的收穫
逛這論壇真的會上癮
今天廠商來還在問說
你的cad怎麼特別好用?
哈,帥呆囉
感謝ShenHung前輩的用心讓大家都受益了
avatar
lingo_st
中級會員
中級會員

文章總數 : 211
年齡 : 53
來自 : 新北市
職業 : 營造,建設
愛好 : 學習,服務,電腦軟硬體
個性 : 正直,達觀且無可救藥的雞婆
使用年資 : 使用12年但真的是新手
使用版本 : 2012,2013
積分 : 6
經驗值 : 3374
威望值 : 271
注冊日期 : 2011-12-18
經典問與答讀者 藍鵲238號
男 雙魚座 龍

回頂端 向下

回復: [討論]計算長度LISP如何指定單一圖層

發表 由 ching1791 于 2012-08-31, 16:26

真不錯的lisp,減少重複操作的時間,真是太理想嘞。

ching1791
一般會員
一般會員

文章總數 : 102
年齡 : 45
來自 : 知識
職業 :
愛好 : 郊遊
個性 : 平庸
使用年資 : 4
使用版本 : 2004
經驗值 : 3736
威望值 : 21
注冊日期 : 2008-05-13
男 天蝎座 豬

回頂端 向下

回復: [討論]計算長度LISP如何指定單一圖層

發表 由 lucia 于 2013-03-08, 11:58

不會寫 但已會用你們得lisp程式 謝謝各位高手
avatar
lucia
一般會員
一般會員

文章總數 : 32
年齡 : 39
來自 : 新北市汐止
職業 : 水電繪圖
愛好 : 獨處
個性 : 溫和
使用年資 : 4
使用版本 : AutoCAD2012
經驗值 : 1981
威望值 : -3
注冊日期 : 2012-09-13
女 摩羯座 蛇

回頂端 向下

回復: [討論]計算長度LISP如何指定單一圖層

發表 由 amdhome 于 2013-07-10, 10:34

真的是超好用的小程式,對初階者計算長度可以省下超多時間的,感謝先知的分享
avatar
amdhome
中級會員
中級會員

文章總數 : 97
年齡 : 36
來自 : 苗栗縣
職業 :
愛好 : 上論壇
個性 : 外向
使用年資 : 1年
使用版本 : 2006
積分 : 5
最佳解答 : 2
經驗值 : 3393
威望值 : 102
注冊日期 : 2009-12-21
藍鵲626號
串連貼紙成功 男 摩羯座 猴

回頂端 向下

回復: [討論]計算長度LISP如何指定單一圖層

發表 由 ginse0727 于 2013-07-10, 14:34

觀犘語法之後,ssget的用法又學了一招,謝謝shenhung前輩!
avatar
ginse0727
高級會員
高級會員

文章總數 : 256
年齡 : 43
來自 : 台北巿
職業 : 帷幕牆
愛好 : 電玩,漫畫,網路小說
個性 : 宅男/正直/死腦筋
使用年資 : 退伍後工作迄今,10年以上
使用版本 : 2012
積分 : 14
經驗值 : 4230
威望值 : 492
發帖精華 : 1
注冊日期 : 2010-07-12
經典問與答讀者 藍鵲61號
2011聚會勳章 男 獅子座 虎

回頂端 向下

回復: [討論]計算長度LISP如何指定單一圖層

發表 由 ching1791 于 2013-08-04, 01:36

真是方便,不須篩選,就可計算。

ching1791
一般會員
一般會員

文章總數 : 102
年齡 : 45
來自 : 知識
職業 :
愛好 : 郊遊
個性 : 平庸
使用年資 : 4
使用版本 : 2004
經驗值 : 3736
威望值 : 21
注冊日期 : 2008-05-13
男 天蝎座 豬

回頂端 向下

回復: [討論]計算長度LISP如何指定單一圖層

發表 由 mai22118 于 2013-08-19, 11:41

請問~有影片檔教學嗎?看了你的程式我還是不會用耶~
avatar
mai22118
初級會員
初級會員

文章總數 : 42
年齡 : 35
來自 : 台北
職業 : 服務業
愛好 : 上網、旅遊
個性 : 活潑
使用年資 : 5個月
使用版本 : 2011
積分 : 3
經驗值 : 2865
威望值 : 21
注冊日期 : 2010-05-22
顧問外掛程式 經典問與答讀者 藍鵲429號
2010團隊聚會 串連貼紙成功 女 摩羯座 雞

回頂端 向下

回復: [討論]計算長度LISP如何指定單一圖層

發表 由 Tiger&蘋果爸 于 2013-08-20, 04:35

mai22118 寫到:請問~有影片檔教學嗎?看了你的程式我還是不會用耶~
這篇是討論文,您可以參考這篇文章(權限:初級會員):
【發帖精華】 急~跪求各位CAD高手大大『總數量與總長度計算方法』
竊喜 

____________________________________________________________________________________
avatar
Tiger&蘋果爸
系統管理員
系統管理員

文章總數 : 17192
年齡 : 41
來自 : 台北市文山區
職業 : AutoCAD顧問
愛好 : 蹓狗/戶外活動/拍照
個性 : 幽默/樂觀/善良
使用年資 : 15↑
使用版本 : AutoCAD 2016
經驗值 : 64609
威望值 : 12753
注冊日期 : 2008-04-23
2D基礎函授 2D進階函授 3D基礎函授 https://i11.servimg.com/u/f11/19/71/67/71/2d3d10.png2D+3D線上 顧問外掛程式 經典問與答讀者 藍鵲1號
2009聚會勳章 2010聚會勳章 2011聚會勳章 2012聚會勳章 2013勳章-2D基礎 2014聚會勳章 2015聚會勳章 2016聚會勳章 串連貼紙成功 男 水瓶座 兔

http://mypaper.pchome.com.tw/kv1012tiger

回頂端 向下

真不錯的程式,謝謝大大的分享

發表 由 candylin0530 于 2015-01-27, 02:52

真不錯的程式,謝謝大大的分享
avatar
candylin0530
一般會員
一般會員

文章總數 : 5
年齡 : 42
來自 : 台北
職業 : 機電
愛好 : cad
個性 :
使用年資 : 10
使用版本 : cad2012
經驗值 : 1686
威望值 : 0
注冊日期 : 2013-03-29
女 金牛座 兔

回頂端 向下

回復: [討論]計算長度LISP如何指定單一圖層

發表 由 櫻子 于 2015-01-27, 04:32

多謝各位前輩熱心分享,非常實用,多謝!
avatar
櫻子
一般會員
一般會員

文章總數 : 82
年齡 : 34
來自 : l彰化
職業 : 繪圖員
愛好 : 繪圖
個性 : 內向+外向
使用年資 : 愛安靜
使用版本 : 2004
經驗值 : 1636
威望值 : 54
注冊日期 : 2014-05-27
藍鵲660號
女 射手座 狗

回頂端 向下

1頁(共2頁) 1, 2  下一步

上一篇主題 下一篇主題 回頂端


 
這個論壇的權限:
無法 在這個版面回復文章