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

[討論]請問LISP如何在插入圖塊時分解圖塊?

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

[討論]請問LISP如何在插入圖塊時分解圖塊?

發表 由 djh1006 于 2013-05-07, 12:22

巨集的寫法如下:
^C^C-INSERT;*半圓頂料10X8;/;1;;
對巨集來說,圖塊名稱前加*是插入圖塊時順便將這個圖塊分解(變成不是圖塊),用在LISP上一樣加*卻不行,不知LISP的語法如何寫?
LISP如下:
(command "-INSERT" "*半圓頂料10X8" PAUSE "1" "0")
程式裡加了*則在游標上無法顯示圖形,沒加*會顯示圖形,而且會隨游標移動而移動,如何以LISP做到隨游標移動而顯示圖形,並在插入時分解圖塊?
請各位高手解答,謝謝
avatar
djh1006
中級會員
中級會員

文章總數 : 156
年齡 : 46
來自 : 彰化縣員林鎮中山路二段369巷二弄15-14號
職業 : 沖壓模具設計工程師
愛好 : UG,SOLIDWORKS,AUTOCAD 2D,autolisp
個性 : 內向偏外
使用年資 : 18以上
使用版本 : 2014
積分 : 6
經驗值 : 3458
威望值 : 294
注冊日期 : 2011-06-16
男 獅子座 豬

回頂端 向下

回復: [討論]請問LISP如何在插入圖塊時分解圖塊?

發表 由 shenhung 于 2013-05-07, 15:52

;再修正
(defun c:test()
(setvar "cmdecho" 0)
(setvar "attreq" 0) ;關閉屬性對話框
(command "-INSERT" "半圓頂料10X8" PAUSE "1" "" "")
(command "explode" "l") ;炸開插入的圖塊
(setvar "cmdecho" 1)
(setvar "attreq" 1) ;打開屬性對話框
(princ)
)
avatar
shenhung
高級會員
高級會員

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

回頂端 向下

回復: [討論]請問LISP如何在插入圖塊時分解圖塊?

發表 由 djh1006 于 2013-05-07, 16:13

shenhung 寫到:;再修正
(defun c:test()
(setvar "cmdecho" 0)
(setvar "attreq" 0) ;關閉屬性對話框
(command "-INSERT" "半圓頂料10X8" PAUSE "1" "" "")
(command "explode" "l") ;炸開插入的圖塊
(setvar "cmdecho" 1)
(setvar "attreq" 1) ;打開屬性對話框
(princ)
)
謝謝shenhung的指導,我的做法如下:
(defun c:test()
(setvar "cmdecho" 0)
(setvar "attreq" 0) ;關閉屬性對話框
(command "-INSERT" "半圓頂料10X8" PAUSE "1" "" "")
(setq
P1 (getvar "LASTPOINT")
PT1 (list (car P1) (+ (cadr P1) 2))
PTW1 (polar PT1 (/ (* 45 PI) 180) 10)
PTW2 (polar PT1 (/ (* 225 PI) 180) 10)
)
(command "ZOOM" PTW1 PTW2)
(command "EXPLODE" PT1)

(setvar "cmdecho" 1)
(setvar "attreq" 1) ;打開屬性對話框
(princ)

不過我想要的是不要用到炸開EXPLODE的指令,像巨集的做法,直接在-INSERT下參數即可插入圖塊時順便分解圖塊(INSERT指令裡有個分解的勾選選項,-INSERT裡却沒有)
INSERT:視窗輸入
-INSERT:指令行輸入
avatar
djh1006
中級會員
中級會員

文章總數 : 156
年齡 : 46
來自 : 彰化縣員林鎮中山路二段369巷二弄15-14號
職業 : 沖壓模具設計工程師
愛好 : UG,SOLIDWORKS,AUTOCAD 2D,autolisp
個性 : 內向偏外
使用年資 : 18以上
使用版本 : 2014
積分 : 6
經驗值 : 3458
威望值 : 294
注冊日期 : 2011-06-16
男 獅子座 豬

回頂端 向下

回復: [討論]請問LISP如何在插入圖塊時分解圖塊?

發表 由 Atsai 于 2013-05-07, 16:43

插入分解的圖塊:在圖塊名稱前加上星號 (*),將分解圖塊並插入該圖塊的各個部份。圖塊定義不會加入到圖面中。
原圖塊名稱:C1
插入的圖塊名稱:*C1
這樣就不會用到explode的指令。
avatar
Atsai
中級會員
中級會員

文章總數 : 115
年齡 : 42
來自 : 台中
職業 : 工程
愛好 : 看漫畫
個性 : 樂天
使用年資 : 10
使用版本 : 2010
AutoCAD基礎篇等級 : 10星級
積分 : 7
經驗值 : 2957
威望值 : 337
注冊日期 : 2012-04-06
男 金牛座 兔

回頂端 向下

回復: [討論]請問LISP如何在插入圖塊時分解圖塊?

發表 由 djh1006 于 2013-05-07, 23:52

Atsai 寫到:插入分解的圖塊:在圖塊名稱前加上星號 (*),將分解圖塊並插入該圖塊的各個部份。圖塊定義不會加入到圖面中。
原圖塊名稱:C1
插入的圖塊名稱:*C1
這樣就不會用到explode的指令。
這個方法在巨集可行,可是在LISP卻不行,還有,我要的效果如下:
(command "-INSERT" "*半圓頂料10X8" PAUSE "1" PAUSE)
紅色的PAUSE是我要在插入圖塊後(可預見圖塊的角度)再輸入旋轉角度(不要事先輸入)
avatar
djh1006
中級會員
中級會員

文章總數 : 156
年齡 : 46
來自 : 彰化縣員林鎮中山路二段369巷二弄15-14號
職業 : 沖壓模具設計工程師
愛好 : UG,SOLIDWORKS,AUTOCAD 2D,autolisp
個性 : 內向偏外
使用年資 : 18以上
使用版本 : 2014
積分 : 6
經驗值 : 3458
威望值 : 294
注冊日期 : 2011-06-16
男 獅子座 豬

回頂端 向下

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


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