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

Join the forum, it's quick and easy

AutoCAD顧問
還沒有註冊嗎...即日起免費註冊,所有最完整的AutoCAD討論、教學及資源都在論壇裡喔~
AutoCAD顧問
Would you like to react to this message? Create an account in a few clicks or log in to continue.
[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Ioaoe110[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 2020-310[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Oiu15010[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 2020-211[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Ia15010[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Aizyao10[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Uos15010[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 BPl3tjj[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Ziao1510
[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Oo-2-110[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Zuoiy_10[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Aizyao11[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Iyb_1510[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Aoe1-111[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Uos15011[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Aoe2da10[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Aoe2da11[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Aoe10

[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總

+3
judyyai
pizg
tarpon
7 posters

向下

[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Empty [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總

發表 由 tarpon 2010-07-15, 9:35 pm

問題:如何讓具有相同block名稱,相同屬性值的block數量加總

以下是我的lsp執行後只會一個一個列示不會把相同的相加
到底錯在那? 愛哭 請各位前輩指導一下謝謝 感動

;BOXBOM.lsp 取出block內含二個屬性值的資料
(defun c:BOXBOM()
(setq bon (getstring "\nEnter BOM file name:"));請輸入bom檔名
(setq fl1 (open bon "a"));將block屬性值寫出至檔案
(setq til "BlockName BoxName Size");bom檔案標題
(write-line til fl1);將bom標題寫出至檔案
(setq sl1 (entsel "\Select block to BOM:"));選擇欲輸出bom之block
(setq la1 (cdr (assoc 8 (entget (car sl1)))));取出block之所在層
(setq bn (cdr (assoc 2 (entget (car sl1)))));取出block name
(setq sl2 (ssget "X" (list (cons 0 "INSERT") (cons 8 la1) (cons 2 bn))));建立具相同block name選集
(setq nn (sslength sl2));計算選集內block數量
(setq nx1 0);預設取出選集內第1個圖元
(repeat nn ;重覆執行次數
(setq sl3 (ssname sl2 nx1));取出選集第1個圖元
(setq sl4 (entnext sl3));取出包含在第1個圖元內的第一個圖元
(setq sl5 (entnext sl4));取出包含在第1個圖元內的第二個圖元
(setq bom1 (cdr (assoc 2 (entget sl3))));取出block name ex:block name EBBOX
(setq bom2 (cdr (assoc 1 (entget sl4))));取出block中第一個屬性值 ex:size W30xH60xD10
(setq bom3 (cdr (assoc 1 (entget sl5))));取出block中第二個屬性值 ex:name PA1
(setq bom4 (strcat bom1 " " bom3 " " bom2));結合block屬性值串列
(write-line bom4 fl1);將block屬性值寫出至檔案
(setq nx1 (+ nx1 1));取出選集內第n個圖元加1之圖元
)
(close fl1)
)

(prompt "-----------------< C:BOXBOM >--------------------")
(prin1)



tarpon 在 2010-07-28, 8:47 am 作了第 2 次修改
tarpon
tarpon
中級會員
中級會員

文章總數 : 209
年齡 : 33
來自 : 台北
職業 : 設計
愛好 : 打球
個性 : 溫和
使用年資 : 5年
使用版本 : 2006
積分 : 6
經驗值 : 6035
威望值 : 263
注冊日期 : 2010-07-01
串連貼紙成功 男 巨蟹座 馬

回頂端 向下

[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Empty 回復: [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總

發表 由 pizg 2010-07-19, 12:41 pm

若可以的話請把測試圖檔也post上來吧
pizg
pizg
高級會員
高級會員

文章總數 : 258
年齡 : 59
來自 : 桃園縣
職業 : 建築設計;程式設計
愛好 : 音樂;攝影;繪畫;棋奕;電子;機器人
個性 : 隨和
使用年資 : 30↑
使用版本 : 2015
積分 : 10
經驗值 : 6480
威望值 : 320
發帖精華 : 1
注冊日期 : 2010-04-16
串連貼紙成功 男 摩羯座 龍

https://pizgchen.blogspot.com/

回頂端 向下

[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Empty 回復: [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總

發表 由 tarpon 2010-07-19, 11:15 pm

pizg 寫到:若可以的話請把測試圖檔也post上來吧
測試圖檔test.dwg
程式結果test1 文字檔用記事本或word都可開
block name都為相同equ1
但屬性值相同的無法累計相加block數量

檔案怎麼傳呀 暈倒

結果用貼的
BlockName Size High
EQU1 5" 25
EQU1 5" 25
EQU1 2" 30
EQU1 2" 30
EQU1 2" 30
EQU1 2" 30
EQU1 4" 20
EQU1 4" 20
EQU1 4" 20
EQU1 4" 20
EQU1 4" 20
EQU1 4" 20
EQU1 4" 20
EQU1 4" 20

EQU1==>>BLOCK NAME
2"==>>SIZE屬性
30==>>HIGH屬性
tarpon
tarpon
中級會員
中級會員

文章總數 : 209
年齡 : 33
來自 : 台北
職業 : 設計
愛好 : 打球
個性 : 溫和
使用年資 : 5年
使用版本 : 2006
積分 : 6
經驗值 : 6035
威望值 : 263
注冊日期 : 2010-07-01
串連貼紙成功 男 巨蟹座 馬

回頂端 向下

[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Empty 回復: [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總

發表 由 judyyai 2010-07-20, 8:40 am

tarpon 寫到:
Spoiler(用來隱藏帖子內容):

檔案怎麼傳呀 暈倒

Spoiler(用來隱藏帖子內容):


[教學]檔案上傳至Windows Live空間,並分享方法

或以下
「教學」上傳檔案到免費硬碟空間
「教學」發表主題附加檔案下載網址使用方法

以上教學,皆來自論壇指南

____________________________________________________________________________________
[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Ioaoe110 [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Zuoiy_10 [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 2020-211 [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Aizyao11 [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Aoe10
[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Aizyao10 [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 BPl3tjj.png [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Ziao1510 [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Oo-2-110 [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Aoe1-111
judyyai
judyyai
管理顧問
管理顧問

文章總數 : 7782
年齡 : 46
來自 : 台南
職業 : 機械製圖
愛好 : 電腦相關
個性 : think too much...
使用年資 : 10↑
使用版本 : AC2019(開始於2019年底末月)
AutoCAD基礎篇等級 : 10星級
積分 : 393
最佳解答 : 1
經驗值 : 30213
威望值 : 3609
發帖精華 : 2
回帖精華 : 4
注冊日期 : 2008-11-19
2D基礎函授 3D基礎函授 顧問外掛程式 經典問與答讀者 藍鵲2號
2009聚會勳章 串連貼紙成功 女 巨蟹座 蛇

回頂端 向下

[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Empty 回復: [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總

發表 由 阿希 2010-07-21, 11:51 pm

tarpon 寫到:
pizg 寫到:若可以的話請把測試圖檔也post上來吧
測試圖檔test.dwg
程式結果test1 文字檔用記事本或word都可開
block name都為相同equ1
但屬性值相同的無法累計相加block數量

檔案怎麼傳呀 暈倒

結果用貼的
BlockName Size High
EQU1 5" 25
EQU1 5" 25
EQU1 2" 30
EQU1 2" 30
EQU1 2" 30
EQU1 2" 30
EQU1 4" 20
EQU1 4" 20
EQU1 4" 20
EQU1 4" 20
EQU1 4" 20
EQU1 4" 20
EQU1 4" 20
EQU1 4" 20

EQU1==>>BLOCK NAME
2"==>>SIZE屬性
30==>>HIGH屬性

EQU1 5" 25 2
EQU1 2" 30 4
EQU1 4" 20 8


這是你要的顯示結果嗎 ?
avatar
阿希
高級會員
高級會員

文章總數 : 345
年齡 : 43
來自 : 台北
職業 : 水電設計
愛好 : autolisp
個性 : 和平主義者
使用年資 : 5
使用版本 : 2008
積分 : 19
經驗值 : 6593
威望值 : 226
發帖精華 : 1
注冊日期 : 2008-09-22
男 摩羯座 猴

回頂端 向下

[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Empty 回復: [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總

發表 由 tarpon 2010-07-22, 7:20 am

阿希 寫到:
EQU1 5" 25 2
EQU1 2" 30 4
EQU1 4" 20 8


這是你要的顯示結果嗎 ?

是的就是這樣 熱情

tarpon
tarpon
中級會員
中級會員

文章總數 : 209
年齡 : 33
來自 : 台北
職業 : 設計
愛好 : 打球
個性 : 溫和
使用年資 : 5年
使用版本 : 2006
積分 : 6
經驗值 : 6035
威望值 : 263
注冊日期 : 2010-07-01
串連貼紙成功 男 巨蟹座 馬

回頂端 向下

[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Empty 回復: [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總

發表 由 阿希 2010-07-24, 8:45 am

tarpon 寫到:
阿希 寫到:
EQU1 5" 25 2
EQU1 2" 30 4
EQU1 4" 20 8


這是你要的顯示結果嗎 ?

是的就是這樣 熱情



提供一個測試檔來吧 ~ 有空來挑戰看看
avatar
阿希
高級會員
高級會員

文章總數 : 345
年齡 : 43
來自 : 台北
職業 : 水電設計
愛好 : autolisp
個性 : 和平主義者
使用年資 : 5
使用版本 : 2008
積分 : 19
經驗值 : 6593
威望值 : 226
發帖精華 : 1
注冊日期 : 2008-09-22
男 摩羯座 猴

回頂端 向下

[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Empty 回復: [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總

發表 由 tarpon 2010-07-25, 3:59 pm

阿希 寫到:
tarpon 寫到:
阿希 寫到:
EQU1 5" 25 2
EQU1 2" 30 4
EQU1 4" 20 8


這是你要的顯示結果嗎 ?

是的就是這樣 熱情



提供一個測試檔來吧 ~ 有空來挑戰看看

測試檔請服用 熱情
http://www.badongo.com/file/23732643

第2載點
tarpon
tarpon
中級會員
中級會員

文章總數 : 209
年齡 : 33
來自 : 台北
職業 : 設計
愛好 : 打球
個性 : 溫和
使用年資 : 5年
使用版本 : 2006
積分 : 6
經驗值 : 6035
威望值 : 263
注冊日期 : 2010-07-01
串連貼紙成功 男 巨蟹座 馬

回頂端 向下

[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Empty 回復: [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總

發表 由 阿希 2010-07-26, 3:48 pm

http://www.badongo.com/file/23738582
試看看吧,不知道上傳成功與否

第2載點
avatar
阿希
高級會員
高級會員

文章總數 : 345
年齡 : 43
來自 : 台北
職業 : 水電設計
愛好 : autolisp
個性 : 和平主義者
使用年資 : 5
使用版本 : 2008
積分 : 19
經驗值 : 6593
威望值 : 226
發帖精華 : 1
注冊日期 : 2008-09-22
男 摩羯座 猴

回頂端 向下

[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Empty 回復: [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總

發表 由 ginse0727 2010-07-26, 10:51 pm

想抓你的圖來測試你的程式看看...但是要怎麼下載啊....連到網址上...也不知道要怎麼載下來... 疑問
ginse0727
ginse0727
高級會員
高級會員

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

回頂端 向下

[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Empty 回復: [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總

發表 由 judyyai 2010-07-26, 11:02 pm

ginse0727 寫到:想抓你的圖來測試你的程式看看...但是要怎麼下載啊....連到網址上...也不知道要怎麼載下來... 疑問

「教學」從免費硬碟空間下載檔案

PS.有時候這個網站,不好抓檔案~可能要過一天在下載~


judyyai 在 2010-07-26, 11:14 pm 作了第 1 次修改

____________________________________________________________________________________
[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Ioaoe110 [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Zuoiy_10 [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 2020-211 [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Aizyao11 [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Aoe10
[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Aizyao10 [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 BPl3tjj.png [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Ziao1510 [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Oo-2-110 [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Aoe1-111
judyyai
judyyai
管理顧問
管理顧問

文章總數 : 7782
年齡 : 46
來自 : 台南
職業 : 機械製圖
愛好 : 電腦相關
個性 : think too much...
使用年資 : 10↑
使用版本 : AC2019(開始於2019年底末月)
AutoCAD基礎篇等級 : 10星級
積分 : 393
最佳解答 : 1
經驗值 : 30213
威望值 : 3609
發帖精華 : 2
回帖精華 : 4
注冊日期 : 2008-11-19
2D基礎函授 3D基礎函授 顧問外掛程式 經典問與答讀者 藍鵲2號
2009聚會勳章 串連貼紙成功 女 巨蟹座 蛇

回頂端 向下

[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Empty 回復: [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總

發表 由 ginse0727 2010-07-26, 11:10 pm

謝謝,下載下來了....再來測試看看...
ginse0727
ginse0727
高級會員
高級會員

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

回頂端 向下

[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Empty 回復: [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總

發表 由 ginse0727 2010-07-27, 9:39 am

程式作了些修改,試看看是否合您的意. 答對了
代碼:
;BOXBOM.lsp 取出block內含二個屬性值的資料
(defun c:BOXBOM()
  (setq bom (getstring "\nEnter BOM file name:")) ;請輸入bom檔名
  (setq   file (getfiled "數量統計" (strcat "C:Documents and Settings/" bom ".num") "num" 1))
;(setq fl1 (open bon "a"));將block屬性值寫出至檔案
  (setq til "BlockName BoxName Size")      ;bom檔案標題
;(write-line til fl1);將bom標題寫出至檔案
  (setq sl1 (entsel "\Select block to BOM:"))    ;選擇欲輸出bom之block
  (setq la1 (cdr (assoc 8 (entget (car sl1))))) ;取出block之所在層
  (setq bn (cdr (assoc 2 (entget (car sl1)))))    ;取出block name
  (setq   sl2 (ssget "X" (list (cons 0 "INSERT") (cons 8 la1) (cons 2 bn))));建立具相同block name選集
  (setq nn (sslength sl2))         ;計算選集內block數量
  (setq nx1 0)               ;預設取出選集內第1個圖元
  (setq   bom_list nil list_sum nil)
  (repeat nn               ;重覆執行次數
    (setq sl3 (ssname sl2 nx1))         ;取出選集第1個圖元
    (setq sl4 (entnext sl3))         ;取出包含在第1個圖元內的第一個圖元
    (setq sl5 (entnext sl4))         ;取出包含在第1個圖元內的第二個圖元
    (setq bom1 (cdr (assoc 2 (entget sl3))))   ;取出block name ex:block name EBBOX
    (setq bom2 (cdr (assoc 1 (entget sl4))))   ;取出block中第一個屬性值 ex:size W30xH60xD10
    (setq bom3 (cdr (assoc 1 (entget sl5))))   ;取出block中第二個屬性值 ex:name PA1
    (setq bom4 (strcat bom1 "\t  " bom3 " " bom2)) ;結合block屬性值串列
    (setq bom_list (cons bom4 bom_list))
;;;(setq bom_list_sum(sum_list bom_list))
    (setq nx1 (+ nx1 1))         ;取出選集內第n個圖元加1之圖元
  )
  (calcublk bom_list)
  (setq fl1 (open file "w"))         ;將block屬性值寫出至檔案
  (write-line til fl1)            ;將bom標題寫出至檔案
  (write-line "==========================" fl1)
  (foreach blk_num list_sum
    (princ (car blk_num) fl1)
    (princ "  " fl1)
    (princ (cdr blk_num) fl1)
    (princ "\n" fl1)
  )
;(write-line list_sum fl1);將block屬性值寫出至檔案
  (close fl1)
  (command "notepad" file)
)
(prompt "-----------------< C:BOXBOM >--------------------")
(prin1)


(defun calcublk   (#bom_list)               ;統計圖塊數量
  (setq list_sum '())
  (setq num 0)
  (setq n (length #bom_list))
  (setq lista #bom_list)
  (while lista
    (setq blk (car lista))
    (setq blk1 (cadr lista))
    (if   (= blk blk1)
      (progn
   (setq num (1+ num))
   (setq lista (cdr lista))
      )
      (progn
   (setq num (1+ num))
   (setq list_sum (cons (list blk num) list_sum))
   (setq lista (cdr lista))
   (setq num 0)
      )
    )
  )
  (setq list_sum (list_sort list_sum))
  (princ "sum_list:")
  (prin1 list_sum)
  (prin1)
)

(defun list_sort (#list_sum)               ;;;串列排序
  (setq listaa (mapcar '(lambda (lista) (car lista)) #list_sum))
  (setq   listbb (mapcar '(lambda (x) (assoc x #list_sum))
            (acad_strlsort listaa)
         )
  )
)
ginse0727
ginse0727
高級會員
高級會員

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

回頂端 向下

[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Empty 回復: [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總

發表 由 ginse0727 2010-07-27, 7:32 pm

不好意思,圖塊的計算程式有問題....我再更正一下程式內容,再上傳...
ginse0727
ginse0727
高級會員
高級會員

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

回頂端 向下

[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Empty 回復: [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總

發表 由 ginse0727 2010-07-27, 10:02 pm

程式已經測試過了,執行計算上應該沒問題了,
一些讀寫檔做了些修改,有什麼問題的話再提出來討論吧! 努力中

;BOXBOM.lsp 取出block內含二個屬性值的資料
(defun c:BOXBOM()
(setq bom (getstring "\nEnter BOM file name:")) ;請輸入bom檔名
(setq file (getfiled "數量統計" (strcat "C:/Documents and Settings/" bom ".num") "num" 1))
;(setq fl1 (open bon "a"));將block屬性值寫出至檔案
(setq til "BlockName BoxName Size") ;bom檔案標題
;(write-line til fl1);將bom標題寫出至檔案
(setq sl1 (entsel "\Select block to BOM:")) ;選擇欲輸出bom之block
(setq la1 (cdr (assoc 8 (entget (car sl1))))) ;取出block之所在層
(setq bn (cdr (assoc 2 (entget (car sl1))))) ;取出block name
(setq sl2 (ssget "X" (list (cons 0 "INSERT") (cons 8 la1) (cons 2 bn))));建立具相同block name選集
(setq nn (sslength sl2)) ;計算選集內block數量
(setq nx1 0) ;預設取出選集內第1個圖元
(setq bom_list nil blk_sum nil blk_sum_list nil)
(repeat nn ;重覆執行次數
(setq sl3 (ssname sl2 nx1)) ;取出選集第1個圖元
(setq sl4 (entnext sl3)) ;取出包含在第1個圖元內的第一個圖元
(setq sl5 (entnext sl4)) ;取出包含在第1個圖元內的第二個圖元
(setq bom1 (cdr (assoc 2 (entget sl3)))) ;取出block name ex:block name EBBOX
(setq bom2 (cdr (assoc 1 (entget sl4)))) ;取出block中第一個屬性值 ex:size W30xH60xD10
(setq bom3 (cdr (assoc 1 (entget sl5)))) ;取出block中第二個屬性值 ex:name PA1
(setq bom4 (strcat bom1 "\t " bom3 " " bom2)) ;結合block屬性值串列
(setq bom_list (cons bom4 bom_list))
(setq nx1 (+ nx1 1)) ;取出選集內第n個圖元加1之圖元
)
(setq bom_list (acad_strlsort bom_list))
(calcublk bom_list)
(setq fl1 (open file "w")) ;將block屬性值寫出至檔案
(write-line til fl1) ;將bom標題寫出至檔案
(write-line "==========================" fl1)
(foreach blk_num list_sum
(princ (car blk_num) fl1)
(princ " " fl1)
(princ (cdr blk_num) fl1)
(princ "\n" fl1)
)
;(write-line list_sum fl1);將block屬性值寫出至檔案
(close fl1)
(command "notepad" file)
)
(prompt "-----------------< C:BOXBOM >--------------------")
(prin1)


(defun calcublk (#bom_list) ;統計圖塊數量
(setq list_sum '())
(setq num 0)
(setq n (length #bom_list))
(setq lista #bom_list)
(while lista
(setq blk (car lista))
(setq blk1 (cadr lista))
(if (= blk blk1)
(progn
(setq num (1+ num))
(setq lista (cdr lista))
)
(progn
(setq num (1+ num))
(setq list_sum (cons (list blk num) list_sum))
(setq lista (cdr lista))
(setq num 0)
)
)
)
(setq list_sum (list_sort list_sum))
(princ "sum_list:")
(prin1 list_sum)
(prin1)
)

(defun list_sort (#list_sum) ;;;串列排序
(setq listaa (mapcar '(lambda (lista) (car lista)) #list_sum))
(setq listbb (mapcar '(lambda (x) (assoc x #list_sum))
(acad_strlsort listaa)
)
)
)
ginse0727
ginse0727
高級會員
高級會員

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

回頂端 向下

[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Empty 回復: [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總

發表 由 tarpon 2010-07-28, 8:15 am

感謝阿希及ginse0727的大力幫忙
謝謝站上各位指導終於解決了
謝謝囉
tarpon
tarpon
中級會員
中級會員

文章總數 : 209
年齡 : 33
來自 : 台北
職業 : 設計
愛好 : 打球
個性 : 溫和
使用年資 : 5年
使用版本 : 2006
積分 : 6
經驗值 : 6035
威望值 : 263
注冊日期 : 2010-07-01
串連貼紙成功 男 巨蟹座 馬

回頂端 向下

[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Empty 回復: [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總

發表 由 EVONNE 2012-02-26, 10:53 pm

很方便的程式,謝謝分享!!

____________________________________________________________________________________
[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Ioaoe110 [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Zuoiy_10 [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 2020-211 [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Aizyao11 [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Iyb_1510
[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Aizyao10 [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 BPl3tjj.png [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Ziao1510 [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Oo-2-110 [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Oooa_110
EVONNE
EVONNE
初級會員
初級會員

文章總數 : 105
年齡 : 55
來自 : 苓雅區
職業 : 繪圖
愛好 : 看書
個性 : 尚可
使用年資 : 10
使用版本 : 2014 2016
積分 : 1
經驗值 : 5140
威望值 : 36
注冊日期 : 2011-07-18
藍鵲329號
女 天秤座 猴

回頂端 向下

[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Empty 回復: [已解決]如何讓具有相同block名稱,相同屬性值的block數量加總

發表 由 happyfat 2015-01-25, 8:09 pm

終於...我爬了一個下午終於看到我夢寐以求的LISP(在爬的過程中也學到很多好用的東西),但我用BOXBOM開啟,發現要我輸入 BOM FILE NAME(請問是隨便命名嗎?),然後我是存在桌面上,接下來要我選取BLOCK到bom,之後下面就顯示....錯誤:損壞的引數類型:STRINGP NIL,請問我是哪個環節出問題了?
happyfat
happyfat
初級會員
初級會員

文章總數 : 40
年齡 : 37
來自 : 台北
職業 : 待業
愛好 : 聽音樂
個性 : 慵懶
使用年資 : 新手初學
使用版本 : 2011
積分 : 1
經驗值 : 4307
威望值 : 12
注冊日期 : 2013-01-10
經典問與答讀者 藍鵲635號
2015聚會勳章 男 處女座 虎

回頂端 向下

回頂端


 
這個論壇的權限:
無法 在這個版面回復文章
[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Ioaoe110[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 2020-310[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Oiu15010[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 2020-211[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Ia15010[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Aizyao10[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Uos15010[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 BPl3tjj[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Ziao1510
[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Oo-2-110[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Zuoiy_10[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Aizyao11[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Iyb_1510[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Aoe1-111[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Uos15011[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Aoe2da10[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Aoe2da11[已解決]如何讓具有相同block名稱,相同屬性值的block數量加總 Aoe10