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

[己解決]如何使用lisp來建立圖塊?

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

[己解決]如何使用lisp來建立圖塊?

發表 由 litung 于 2009-11-15, 01:12

最近在寫自動繪製螺絲的小程式,當螺絲繪製完成後,想把它建立成圖塊。
但使用命令式的指令,給了名稱、定位點、選取的資料後。還是無法建立出圖塊。
請教一下block在autolisp中要如何使用。
下列的用法那裡出錯了?(下面那個不是指令,是副程式)
代碼:

;;;建立圖塊
(defun CreatBlock (ScrewSize ScrewL p0)
  (prompt "\n 選取物件:")
  (setq ss (ssget))
  (setq ssize (rtos screwsize 2 0) slong (rtos screwL 2 0))
  (setq BName (strcat "M" ssize "X" slong))
  (princ "\n 圖塊名稱:")
  (princ BName)
  (command "-block" bname p0 ss "")
)


litung 在 2009-11-15, 12:26 作了第 1 次修改
avatar
litung
中級會員
中級會員

文章總數 : 224
年齡 : 42
來自 : 高雄市阿蓮區
職業 : PLC設計、HMI規劃、VB6、接案
愛好 : 電腦、卡通、桌球
個性 : 溫和、內向
使用年資 : 現在只出嘴
使用版本 : ACE 2015
積分 : 7
經驗值 : 3837
威望值 : 245
發帖精華 : 1
注冊日期 : 2009-10-30
串連貼紙成功 男 處女座 兔

回頂端 向下

回復: [己解決]如何使用lisp來建立圖塊?

發表 由 litung 于 2009-11-15, 10:52

己解決。
好像是小弟的p0定位點跑掉了。中間p0有拿去運算。
重新在指定一次p0就ok了。
avatar
litung
中級會員
中級會員

文章總數 : 224
年齡 : 42
來自 : 高雄市阿蓮區
職業 : PLC設計、HMI規劃、VB6、接案
愛好 : 電腦、卡通、桌球
個性 : 溫和、內向
使用年資 : 現在只出嘴
使用版本 : ACE 2015
積分 : 7
經驗值 : 3837
威望值 : 245
發帖精華 : 1
注冊日期 : 2009-10-30
串連貼紙成功 男 處女座 兔

回頂端 向下

回復: [己解決]如何使用lisp來建立圖塊?

發表 由 張譽璋 于 2009-11-15, 12:01

給你一個題目挑戰看看,你可以試著把螺絲的程式和自動建立圖塊的功能結合在一起不須選取就能建立成圖塊,這樣更完美.

張譽璋
榮譽顧問
榮譽顧問

文章總數 : 303
年齡 : 47
來自 : 彰化縣員林鎮
職業 : 機械設計工程師/AutoCAD講師/AutoCAD外掛系統開發/AutoCAD書籍作者
愛好 : 旅行及電影
個性 : 風趣健談
使用年資 : 25年
使用版本 : AutoCAD2010/2011/2012/2013
積分 : 20
經驗值 : 4969
威望值 : 624
發帖精華 : 2
回帖精華 : 1
注冊日期 : 2008-05-28
藍鵲12號
男 處女座 狗

回頂端 向下

回復: [己解決]如何使用lisp來建立圖塊?

發表 由 litung 于 2009-11-15, 12:23

目前螺絲程式還有一點點問題。
等上班後再去請教機構的。
因為不知道螺絲頭高度、寬度跟螺絲直徑的關系公式。
雖然目前程式可以自動畫出來,但螺絲頭正確性不知道 ^_^

目前的想法:
用程式選取的話,可能要獨立開一個圖層來放螺絲,不然選取時可能會選到別的物件。這樣應該會比較容易。
算出p1 p2這二點應該就可以了。(ssget "_W" p1 p2)

圖塊的建立會延伸一個問題,就是圖塊名稱重覆。這個可能也要判斷。
avatar
litung
中級會員
中級會員

文章總數 : 224
年齡 : 42
來自 : 高雄市阿蓮區
職業 : PLC設計、HMI規劃、VB6、接案
愛好 : 電腦、卡通、桌球
個性 : 溫和、內向
使用年資 : 現在只出嘴
使用版本 : ACE 2015
積分 : 7
經驗值 : 3837
威望值 : 245
發帖精華 : 1
注冊日期 : 2009-10-30
串連貼紙成功 男 處女座 兔

回頂端 向下

回復: [己解決]如何使用lisp來建立圖塊?

發表 由 litung 于 2009-11-17, 13:58

謝大哥,自動建立圖塊的功能,小弟己經有測試了。
分享在另一篇中。只是程式沒有判斷圖塊名稱是否重覆。
使用(ssget "W" p1 p2),小弟多打了一個底線 ^_^
avatar
litung
中級會員
中級會員

文章總數 : 224
年齡 : 42
來自 : 高雄市阿蓮區
職業 : PLC設計、HMI規劃、VB6、接案
愛好 : 電腦、卡通、桌球
個性 : 溫和、內向
使用年資 : 現在只出嘴
使用版本 : ACE 2015
積分 : 7
經驗值 : 3837
威望值 : 245
發帖精華 : 1
注冊日期 : 2009-10-30
串連貼紙成功 男 處女座 兔

回頂端 向下

回復: [己解決]如何使用lisp來建立圖塊?

發表 由 Tiger&蘋果爸 于 2009-11-18, 05:59

張譽璋 寫到:給你一個題目挑戰看看,你可以試著把螺絲的程式和自動建立圖塊的功能結合在一起不須選取就能建立成圖塊,這樣更完美.
感謝指點...好久沒寫了!
已將現成的二支LISP合併成功~
嘻嘻

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

文章總數 : 17328
年齡 : 41
來自 : 台北市文山區
職業 : AutoCAD顧問
愛好 : 蹓狗/戶外活動/拍照
個性 : 幽默/樂觀/善良
使用年資 : 15↑
使用版本 : AutoCAD 2016
經驗值 : 65336
威望值 : 12868
注冊日期 : 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來建立圖塊?

發表 由 張譽璋 于 2009-11-19, 01:22

蘋果爸,你進步的蠻快的,你的程式如果再結合對話框,改用選項的方式以及圖層可以自動建立那就更完美了,你可以再次挑戰看看。

張譽璋
榮譽顧問
榮譽顧問

文章總數 : 303
年齡 : 47
來自 : 彰化縣員林鎮
職業 : 機械設計工程師/AutoCAD講師/AutoCAD外掛系統開發/AutoCAD書籍作者
愛好 : 旅行及電影
個性 : 風趣健談
使用年資 : 25年
使用版本 : AutoCAD2010/2011/2012/2013
積分 : 20
經驗值 : 4969
威望值 : 624
發帖精華 : 2
回帖精華 : 1
注冊日期 : 2008-05-28
藍鵲12號
男 處女座 狗

回頂端 向下

回復: [己解決]如何使用lisp來建立圖塊?

發表 由 Tiger&蘋果爸 于 2009-11-19, 01:55

張譽璋 寫到:蘋果爸,你進步的蠻快的,你的程式如果再結合對話框,改用選項的方式以及圖層可以自動建立那就更完美了,你可以再次挑戰看看。
沒有啦!!
這二支程式以前就寫好了,這次只是合併而已啦~

張老師說使用對話框,是指DCL嗎...這部分沒有學過,但手邊有書我再來試試看~
感謝指點!!
謝謝囉

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

文章總數 : 17328
年齡 : 41
來自 : 台北市文山區
職業 : AutoCAD顧問
愛好 : 蹓狗/戶外活動/拍照
個性 : 幽默/樂觀/善良
使用年資 : 15↑
使用版本 : AutoCAD 2016
經驗值 : 65336
威望值 : 12868
注冊日期 : 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來建立圖塊?

發表 由 shenhung 于 2010-03-11, 08:13

螺絲的寫法.這邊提供一點程式撰寫的意見和方向
螺絲規格.看設計便覽.便有完整的螺絲規格和尺寸..
1建立螺絲規格資料庫
2.撰寫DCL 對話框.由使用者選擇要繪出的圖型種類(使用幻燈片圖型選取).和公稱尺寸.
3. 選取圖型和公稱尺寸.後確定後.直接在繪圖區.選取放置位置..由程式完成圖塊的動作.
4. 圖塊的命名.可以用SCW+公稱尺寸.來做區別.所以不會重覆.唯一的問題是要判別.就是在圖面上放置相同規格的螺絲..圖塊不須要重作.直接放置圖塊.
以上.是目前自己所寫的螺絲程式的寫法.提供參考..可以適用大部分標準規格品的製作..
http://yfrog.com/0b29064211j
http://yfrog.com/5z97401698j
http://yfrog.com/jn42341417j
avatar
shenhung
高級會員
高級會員

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

回頂端 向下

回復: [己解決]如何使用lisp來建立圖塊?

發表 由 macgyver_hsu 于 2010-04-02, 19:20

;只是程式沒有判斷圖塊名稱是否重覆。

(setvar "expert" 1)
設定這個變數就不會問你要不要重新定義圖塊

它是
控制是否發出某些提示。

0
正常發出所有提示。

1
抑制「準備重生,執行?」和「是否確定要關閉目前圖層?」

2
抑制前述提示以及「圖塊已定義。 是否要重新定義它?」 (BLOCK) 與「同名的圖檔已經存在。 是否要覆蓋它?」 (SAVE 或 WBLOCK)。

3
如果嘗試載入已載入的線型,或在已定義該線型的檔案中建立新線型,則會抑制前述提示,以及由 LINETYPE 指令發出的提示。

4
如果您提供的名稱已經存在,則會抑制前述提示,以及透過 UCS「儲存」選項與 VPORTS「儲存」選項發出的提示。

5
當您提供既有標註型式的名稱時,抑制由 -DIMSTYLE「儲存」選項發出的提示「該名稱已在使用中,是否要重新定義它?」。
avatar
macgyver_hsu
初級會員
初級會員

文章總數 : 17
年齡 : 52
來自 : 岡山
職業 : 自動化設計
愛好 : 創造發明設計
個性 : 隨和
使用年資 : R10到現在
使用版本 : 2006M
積分 : 1
經驗值 : 2904
威望值 : 9
注冊日期 : 2010-03-12
男 雙子座 蛇

回頂端 向下

回復: [己解決]如何使用lisp來建立圖塊?

發表 由 shenhung 于 2010-04-03, 06:57

macgyver_hsu 寫到:;只是程式沒有判斷圖塊名稱是否重覆。

(setvar "expert" 1)
設定這個變數就不會問你要不要重新定義圖塊

一般lisp 在寫的時候.以操作習慣來說..圖塊有沒重覆.須不須要重新定義.會在程式裡就判斷處理好.
不會程式執行到一半的時候.跳出一個訊息...由操作者來決定要不要覆蓋..不然以1張圖面裡面這麼多圖塊...訊息畫面會按到手軟.
以上.純個人看法.
avatar
shenhung
高級會員
高級會員

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

回頂端 向下

回復: [己解決]如何使用lisp來建立圖塊?

發表 由 macgyver_hsu 于 2010-04-03, 12:00

shenhung 寫到:

一般lisp 在寫的時候.以操作習慣來說..圖塊有沒重覆.須不須要重新定義.會在程式裡就判斷處理好.
不會程式執行到一半的時候.跳出一個訊息...由操作者來決定要不要覆蓋..不然以1張圖面裡面這麼多圖塊...訊息畫面會按到手軟.
以上.純個人看法.

不錯歐!很有個人的想法,這個變數也是一種方法而已,你可以了解它的用法,目的都一樣就是
不會程式執行到一半的時候.跳出一個訊息...由操作者來決定要不要覆蓋...
avatar
macgyver_hsu
初級會員
初級會員

文章總數 : 17
年齡 : 52
來自 : 岡山
職業 : 自動化設計
愛好 : 創造發明設計
個性 : 隨和
使用年資 : R10到現在
使用版本 : 2006M
積分 : 1
經驗值 : 2904
威望值 : 9
注冊日期 : 2010-03-12
男 雙子座 蛇

回頂端 向下

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


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