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

[已解決]lsp如何取出動態圖塊正確圖塊名稱

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

[已解決]lsp如何取出動態圖塊正確圖塊名稱

發表 由 tarpon 于 2011-03-17, 16:16

lsp如何取出動態圖塊正確圖塊名稱
有一動態圖塊名稱"電視地板插座"
內含可見參數tv1,tv2,tv3,tv4
將動態圖塊"電視地板插座"插入圖面數次後
修改部份動態圖塊可見參數為tv2
用lsp抓取計算數量卻發生圖塊名稱錯誤
動態圖塊"電視地板插座"未修改可見參數時可正確計算
圖元資料串列如下
((-1 . <圖元名稱: 7ef82990>) (0 . "INSERT") (330 . <圖元名稱: 7ef80cc0>)
(5 . "632") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "TV")
(100 . "AcDbBlockReference") (2 . "電視地板插座") (10 -157.324 -20.4497 0.0)
(41 . 1.0) (42 . 1.0) (43 . 1.0) (50 . 0.0) (70 . 0) (71 . 0) (44 . 0.0) (45 . 0.0)
(210 0.0 0.0 1.0))
動態圖塊"電視地板插座"修改可見參數為tv2後
圖元資料串列如下
((-1 . <圖元名稱: 7ef82998>) (0 . "INSERT") (5 . "633")
(102 . "{ACAD_XDICTIONARY") (360 . <圖元名稱: 7ef829a0>) (102 . "}")
(330 . <圖元名稱: 7ef80cc0>) (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "TV")
(100 . "AcDbBlockReference") (2 . "*U1") (10 -49.8946 -41.4134 0.0) (41 . 1.0)
(42 . 1.0) (43 . 1.0) (50 . 0.0) (70 . 0) (71 . 0) (44 . 0.0) (45 . 0.0) (210 0.0 0.0 1.0))

用list查詢動態圖塊"電視地板插座"修改可見參數為tv2
有兩個圖塊名稱
一個是正確的"電視地板插座"
一個是匿名的"*U1"
請問用lsp要如何取回 正確的"電視地板插座"圖塊名稱


tarpon 在 2011-03-22, 03:28 作了第 1 次修改
avatar
tarpon
中級會員
中級會員

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

回頂端 向下

回復: [已解決]lsp如何取出動態圖塊正確圖塊名稱

發表 由 DevilWang 于 2011-03-20, 04:04

隨著 AutoCAD 引入越來越多的物件,DXF格式資料也漸漸地不易使用。

改採 Automation 試試看
(vlax-get-property (vlax-ename->vla-object (car (entsel))) "effectivename")
avatar
DevilWang
高級會員
高級會員

文章總數 : 113
年齡 : 50
來自 : 台北
職業 : AEC
愛好 : Thinking...
個性 : 閒散
使用年資 : 25↑
使用版本 : 2012
積分 : 15
經驗值 : 3463
威望值 : 352
發帖精華 : 1
回帖精華 : 3
注冊日期 : 2010-03-29
男 處女座 羊

回頂端 向下

回復: [已解決]lsp如何取出動態圖塊正確圖塊名稱

發表 由 tarpon 于 2011-03-20, 21:51

DevilWang 寫到:隨著 AutoCAD 引入越來越多的物件,DXF格式資料也漸漸地不易使用。

改採 Automation 試試看
(vlax-get-property (vlax-ename->vla-object (car (entsel))) "effectivename")


感謝提供資訊來去試看看 努力中
avatar
tarpon
中級會員
中級會員

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

回頂端 向下

回復: [已解決]lsp如何取出動態圖塊正確圖塊名稱

發表 由 tarpon 于 2011-03-22, 03:33

請問各位先進
那有Visual Lisp函數語法使用說明或相關圖書介紹謝謝
在網上找到的都是簡體的
暈倒

請問DevilWang
上述語法取出的圖元名稱是不是不能直接用(ssget "X" (list (.........)結合過瀘串列建立選集呢 努力中
avatar
tarpon
中級會員
中級會員

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

回頂端 向下

回復: [已解決]lsp如何取出動態圖塊正確圖塊名稱

發表 由 pizg 于 2011-03-22, 09:04

tarpon 寫到:請問各位先進
那有Visual Lisp函數語法使用說明或相關圖書介紹謝謝
在網上找到的都是簡體的
暈倒

請問DevilWang
上述語法取出的圖元名稱是不是不能直接用(ssget "X" (list (.........)結合過瀘串列建立選集呢 努力中

(vlax-get-property (vlax-ename->vla-object (car (entsel))) "effectivename")
這一行也可以改為
(vla-get-effectivename (vlax-ename->vla-object (car (entsel))))

你應該是想統計圖塊數量吧, 解答如下:
(setq sl (ssget '((0 . "INSERT"))))
(setq i 0)
(repeat (sslength sl)
(setq name (vla-get-effectivename (vlax-ename->vla-object (ssname sl i)))) ;;取出圖塊名稱
;;比對圖塊是否已存在
;;不存在時計為1 存在時數量加 1
(setq i (1+ i))
)

Tiger&蘋果爸 寫到:讚啦!! 謝謝熱心解答~< 積分 +1>
[公告]關於團隊成員的回文及貢獻






Tiger&蘋果爸 在 2011-03-23, 08:45 作了第 1 次修改 (原因 : 加分囉~)
avatar
pizg
高級會員
高級會員

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

回頂端 向下

回復: [已解決]lsp如何取出動態圖塊正確圖塊名稱

發表 由 tarpon 于 2011-03-22, 13:07

是的要統計數量
謝謝pizg的熱情解答 親一個
avatar
tarpon
中級會員
中級會員

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

回頂端 向下

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


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