[已解決]請問關於LISP和快速鍵的設置問題?
2 posters
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
[已解決]請問關於LISP和快速鍵的設置問題?
我的LISP的檔名規則為
DJH_001.lsp
DJH_002.lsp
......
程式內容為
(defun C:DJH_001()
;DJH_001.lsp
;X軸座標_負號
......
)
(defun C:DJH_002()
;DJH_002.lsp
;XY軸座標_基準點
......
)
acad.mnl的內容如下
......
^C^C^P(if (not c:DJH_001) (load "DJH_001"));DJH_001
^C^C^P(if (not c:DJH_002) (load "DJH_002"));DJH_002
......
acad.pgp的內容如下
......
DX, *DJH_001
DXS, *DJH_002
......
以上各個設定好後,在auotcad中即可使用快速鍵,但是每次開檔案(或開新檔案)時就會載入一堆LISP程式(我的程式有2百多個,載入時花了好幾秒),我有試著把設定改在AUTOCAD2014DOC.LSP,並把acad.mnl的^C^C^P(if (not c:DJH_001) (load "DJH_001"));DJH_001取消,可是如此做就不能使用快速鍵,錯誤訊息如下:
指令: DX DX ; 錯誤: no function definition: QLOAD
指令:
請問如何設置才能使用快速鍵又不會在開檔案時載入一堆LISP?
DJH_001.lsp
DJH_002.lsp
......
程式內容為
(defun C:DJH_001()
;DJH_001.lsp
;X軸座標_負號
......
)
(defun C:DJH_002()
;DJH_002.lsp
;XY軸座標_基準點
......
)
acad.mnl的內容如下
......
^C^C^P(if (not c:DJH_001) (load "DJH_001"));DJH_001
^C^C^P(if (not c:DJH_002) (load "DJH_002"));DJH_002
......
acad.pgp的內容如下
......
DX, *DJH_001
DXS, *DJH_002
......
以上各個設定好後,在auotcad中即可使用快速鍵,但是每次開檔案(或開新檔案)時就會載入一堆LISP程式(我的程式有2百多個,載入時花了好幾秒),我有試著把設定改在AUTOCAD2014DOC.LSP,並把acad.mnl的^C^C^P(if (not c:DJH_001) (load "DJH_001"));DJH_001取消,可是如此做就不能使用快速鍵,錯誤訊息如下:
指令: DX DX ; 錯誤: no function definition: QLOAD
指令:
請問如何設置才能使用快速鍵又不會在開檔案時載入一堆LISP?
djh1006 在 2013-11-05, 15:07 作了第 1 次修改
djh1006- 中級會員
- 文章總數 : 177
年齡 : 53
來自 : 彰化縣員林鎮中山路二段369巷二弄15-14號
職業 : 連續沖壓模具設計工程師
愛好 : UG,SOLIDWORKS,AUTOCAD 2D,autolisp
個性 : 內向偏外
使用年資 : 23年以上
使用版本 : 2014
積分 : 7
經驗值 : 6139
威望值 : 359
注冊日期 : 2011-06-16
回復: [已解決]請問關於LISP和快速鍵的設置問題?
acad.mnl的內容修正如下
(defun c:DJH_001 () (qload "djh_001" "djh_001"))
(defun c:DJH_002 () (qload "djh_002" "djh_002"))
然後將你2百多條程式.都在acad.mnl 定義類似上面的LISP
令外你少了qload 副程式.把qload 也放進 acad.mnl 內就可以了
;(QLOAD LISP名稱 執行命令)
(defun qload(cmd1 cmd2)
(load cmd1)
(setq rtn (eval (read (strcat "(c:" cmd2 ")"))))
)
以上你試試.~
以下是我自己外掛定義快速QLOAD LISP 部分代碼. 給你參考.~!!
每開1張圖.只會載入以下的小程式.~!! 當你呼叫的時候..會先載入你呼叫的主程式.再自動執行命令...
有問題的話.請再提出討論.~
(defun c:DJH_001 () (qload "djh_001" "djh_001"))
(defun c:DJH_002 () (qload "djh_002" "djh_002"))
然後將你2百多條程式.都在acad.mnl 定義類似上面的LISP
令外你少了qload 副程式.把qload 也放進 acad.mnl 內就可以了
;(QLOAD LISP名稱 執行命令)
(defun qload(cmd1 cmd2)
(load cmd1)
(setq rtn (eval (read (strcat "(c:" cmd2 ")"))))
)
以上你試試.~
以下是我自己外掛定義快速QLOAD LISP 部分代碼. 給你參考.~!!
每開1張圖.只會載入以下的小程式.~!! 當你呼叫的時候..會先載入你呼叫的主程式.再自動執行命令...
有問題的話.請再提出討論.~
- 代碼:
(defun c:amd_MOFFSET() (qload "MOFFSET" "amd_MOFFSET"))
(defun c:amd_CUTTER2() (qload "CUTTER2" "amd_CUTTER2"))
(defun c:amd_TRIM3() (qload "TRIM3" "amd_TRIM3"))
(defun c:amd_TRIMC() (qload "TRIMC" "amd_TRIMC"))
(defun c:amd_PJOIN() (qload "PJOIN" "amd_PJOIN"))
(defun c:amd_SEC() (qload "SEC" "amd_SEC"))
(defun c:amd_ARR() (qload "ARR" "amd_ARR"))
(defun c:amd_LZCON() (qload "ZCON" "amd_LZCON"))
(defun c:amd_ZCON() (qload "ZCON" "amd_ZCON"))
(defun c:amd_BMI() (qload "BMI" "amd_BMI"))
(defun c:amd_MI4() (qload "BMI" "amd_MI4"))
(defun c:amd_LMi() (qload "LMI" "amd_LMI"))
(defun c:amd_CK() (qload "CK" "amd_CK"))
(defun c:amd_CHLT() (qload "CHLT" "amd_CHLT"))
(defun c:amd_EF() (qload "EF" "amd_EF"))
(defun c:amd_CHW() (qload "CHW" "amd_CHW"))
(defun c:amd_DRS() (qload "DRS" "amd_DRS"))
(defun c:amd_AL() (qload "AL" "amd_AL"))
(defun c:amd_CUT1() (qload "CUT1" "amd_CUT1"))
(defun c:amd_CUT2() (qload "CUT2" "amd_CUT2"))
(defun c:amd_CUT3() (qload "CUT3" "amd_CUT3"))
(defun c:amd_CUT4() (qload "CUT4" "amd_CUT4"))
(defun c:amd_CUT5() (qload "CUT5" "amd_CUT5"))
(defun c:amd_CLIN() (qload "CLIN" "amd_CLIN"))
(defun c:amd_xCLIN() (qload "xCLIN" "amd_xCLIN"))
(defun c:amd_3C() (qload "3C" "amd_3C"))
(defun c:amd_hole() (qload "MBOX" "amd_HOLE"))
(defun c:amd_MC() (qload "MC" "amd_MC"))
(defun c:amd_CCUT() (qload "CCUT" "amd_CCUT"))
(defun c:amd_4CC() (qload "CCUT" "amd_4CUT"))
(defun c:amd_ECC() (qload "CCUT" "amd_ECUT"))
(defun c:amd_C3() (qload "C3" "amd_C3"))
(defun c:amd_PCR() (qload "PCR" "amd_PCR"))
(defun c:amd_PTR() (qload "PTR" "amd_PTR"))
(defun c:amd_OFSETA() (qload "OFSETA" "amd_OFSETA"))
(defun c:amd_OFSET() (qload "OFSET" "amd_OFSET"))
(defun c:amd_OFSC() (qload "OFSC" "amd_OFSC"))
(defun c:amd_OFSC2() (qload "OFSC2" "amd_OFSC2"))
(defun c:amd_SLOT1() (qload "SLOT" "amd_SLOT1"))
(defun c:amd_SLOT2() (qload "SLOT" "amd_SLOT2"))
(defun c:amd_HLINE() (qload "HLINE" "amd_HLINE"))
(defun c:amd_VLINE() (qload "VLINE" "amd_VLINE"))
(defun c:amd_SBOX() (qload "SBOX" "amd_SBOX"))
(defun c:amd_MBOX() (qload "MBOX" "amd_MBOX"))
(defun c:amd_EBOX() (qload "MBOX" "amd_EBOX"))
(defun c:amd_RBOX() (qload "RBOX" "amd_RBOX"))
(defun c:amd_CBOX() (qload "CBOX" "amd_CBOX"))
(defun c:amd_TBOX() (qload "TBOX" "amd_TBOX"))
(defun c:amd_TYP() (qload "TYP" "amd_TYP"))
(defun c:amd_NM() (qload "TYP" "amd_NM"))
(defun c:amd_an() (qload "typ" "amd_AN"))
(defun c:amd_FR1() (qload "FR1" "amd_FR1"))
(defun c:amd_GETINT() (qload "GETINT" "amd_GETINT"))
(defun c:amd_BALL1() (qload "BALL" "amd_BALL"))
(defun c:amd_BALL() (qload "BALL" "amd_BALL"))
(defun c:amd_RIB1() (qload "SBOX" "amd_RIB1"))
(defun c:amd_RIB2() (qload "SBOX" "amd_RIB2"))
(defun c:amd_RIB3() (qload "SBOX" "amd_RIB3"))
(defun c:amd_con1() (qload "con1" "amd_con1"))
(defun c:amd_PRO_CIR() (qload "PRO_CIR" "amd_PRO_CIR"))
shenhung- 高級會員
- 文章總數 : 281
年齡 : 57
來自 : 新北市
職業 : 塑膠模具設計.AUTOLISP
愛好 : 音樂
個性 : 隨和
使用年資 : 18年
使用版本 : 2010
積分 : 15
經驗值 : 8077
威望值 : 1188
注冊日期 : 2009-06-03
[已解決]請問關於LISP和快速鍵的設置問題?
感謝Shenhung的指導,成功了,謝謝
djh1006- 中級會員
- 文章總數 : 177
年齡 : 53
來自 : 彰化縣員林鎮中山路二段369巷二弄15-14號
職業 : 連續沖壓模具設計工程師
愛好 : UG,SOLIDWORKS,AUTOCAD 2D,autolisp
個性 : 內向偏外
使用年資 : 23年以上
使用版本 : 2014
積分 : 7
經驗值 : 6139
威望值 : 359
注冊日期 : 2011-06-16
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
這個論壇的權限:
您 無法 在這個版面回復文章