cad如何制作工具箱

上傳人:無*** 文檔編號:20321833 上傳時間:2021-03-07 格式:DOC 頁數(shù):18 大?。?MB
收藏 版權(quán)申訴 舉報 下載
cad如何制作工具箱_第1頁
第1頁 / 共18頁
cad如何制作工具箱_第2頁
第2頁 / 共18頁
cad如何制作工具箱_第3頁
第3頁 / 共18頁

下載文檔到電腦,查找使用更方便

12 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《cad如何制作工具箱》由會員分享,可在線閱讀,更多相關(guān)《cad如何制作工具箱(18頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、如何制作工具箱 一、 制作菜單和工具條 菜單和工具條有三種格式,分別是CUI、MNR、MNU,這三者區(qū)別請自行百度,我要講的是MNU格式。這種格式使用記事本即可以編寫,非常方便。 下面是一個例子 //一、菜單文件開始 ***MENUGROUP=flytoday ***POP1 ID_H10BENHAI [用于學(xué)習(xí)] ID_xd1_Button [ 高程三角網(wǎng)]^C^Cgcsw ID_xd2_Button [ 高程插點]^C^Cgccd ***TOOLBARS **TB_CTT **用于學(xué)習(xí) ID1 [_Toolbar("用于學(xué)習(xí)

2、", _Floating, _SHOW, 90, 110, 1)] ID_gcsw [_Button("高程三角網(wǎng)", "GCSW", "GCSW")]^C^Cgcsw ID_gccd [_Button("高程插點", "GCCD", "GCCD")]^C^Cgccd ***ACCELERATORS ["F1"]_.REDRAW 這個例子中//就是注釋的意思,后面寫一些說明,第二行就是本菜單的名稱,此例中是“flytoday”,“***POP1”就是菜單,一般簡單的程序使用一個菜單就行了。***TOOLBARS就是工具條的意思,知道這個框架后,大家只

3、需要在里面添加自己需要的東西即可。如果要生成二級菜單,看下面的格式。也就是使用[-]來進行分割,使用[->繪圖及修改一&A]來表示二給菜單的開始,[<-文字刷A&G]^C^Cdg來表示二級菜單的結(jié)束,同理三級菜單可以使用此方法進行編寫。大家要想實現(xiàn)多菜單,多工具條,可以看看燕秀工具箱的菜單文件,做的很出色。 //一、菜單文件開始 ***MENUGROUP=flytoday ***POP1 ID_H10BENHAI [用于學(xué)習(xí)] ID_xd1_Button [ 高程三角網(wǎng)]^C^Cgcsw ID_xd2_Button [ 高程插點]^C^Cgccd [--]

4、 [->繪圖及修改一&A] ID_xd1_Button [ 高程三角網(wǎng)]^C^Cgcsw ID_xd2_Button [ 高程插點]^C^Cgccd ID_dg [<-文字刷A&G]^C^Cdg [--] ***TOOLBARS **TB_CTT **用于學(xué)習(xí) ID1 [_Toolbar("用于學(xué)習(xí)", _Floating, _SHOW, 90, 110, 1)] ID_gcsw [_Button("高程三角網(wǎng)", "GCSW", "GCSW")]^C^Cgcsw ID_gccd

5、 [_Button("高程插點", "GCCD", "GCCD")]^C^Cgccd ***ACCELERATORS ["F1"]_.REDRAW 我建議***MENUGROUP=flytoday這里的菜單名和你另存的菜單MNU文件名要一致,這樣大家不用區(qū)分太多名詞,方便走出第一步,當(dāng)我們制作出第一個工具箱的時候,再來探究這個名詞的含義。 使用MNU格式使用記事本可以編輯,所以別人也就可以打開了。為此可以使用CUI和MNR。 使用menuload命令打開菜單加載。 加載后CAD會自動在同路徑下生成以上兩種格式的菜單文件。 二、 制作工具條的資源DLL 網(wǎng)

6、上有一些介紹制作工具條圖標的方法,我了解的就是直接使用BMP,但這個成功率似乎不高,下面我介紹使用ResHacker 3.5來將圖標打包成一個DLL文件,非常方便。 第一步打開空白的DLL文件。 程序默認資源名稱是大寫的。重復(fù)把所有圖標資源添加至空白DLL中。需要特別注意的是,如果你想實現(xiàn)大圖標的效果,請注意在工具條的書寫中有ID_cxx [_Button("工藝", "cxxs", "cxx")]^C^Ccxx,是里面cxxs 是小圖標,cxx 是大圖標,如果你不需要這個,請無視。如何打開大圖標,見下圖。 使用大圖標后,工具欄中圖標很大,見下圖。

7、 小圖標的格式是16*16的BMP,大圖標是32*32像素的,大家可以使用繪圖、PhotoShop等軟件來制作大圖標。圖標文件在DLL中的名稱一定要和菜單、工具條中的名稱一致,這樣才能正確顯示。 三、 自動添加文件支持路徑。 一個工具箱,一定要讓用戶什么操作都不要,這樣傻瓜化的程序才是好程序。下面是代碼,大家可以放在程序的開頭。 ;;添加支持路徑,是不能隨便更改的,其它要求用戶不更改路徑也很正常,因為安裝時只有一次 (defun zclj () (setvar "cmdecho" 0) (setq acadpath (getenv "ACAD")) (setq l

8、sp (list "C:/Program Files/flytoday")) (setq ls1 (car lsp)) (setq HP2010lsp (strcat ls1 ";")) (setq lsp (vl-remove ls1 lsp)) (while lsp (setq ls1 (car lsp)) (setq HP2010lsp (strcat HP2010lsp ls1 ";")) (setq lsp (vl-remove ls1 lsp)) ) (setenv "ACAD" (strcat HP2010lsp

9、acadpath)) (getenv "ACAD") ) (zclj) 以上代碼中,藍色字體的是路徑,大家可以修改,另外LSP是表,也就是說可以有不止一個路徑被添加至CAD的文件支持路徑。 四、 自動加載菜單 下面這段代碼可以自動添加菜單,需要注意的僅僅是你要理解“菜單名”“菜單文件名”,如果大家在第一步制作菜單的工具條時做的很好,這步就會很簡單,不然這些概念會讓我們頭大。再重申一遍:我建議***MENUGROUP=flytoday這里的菜單名和你另存的菜單MNU文件名要一致,這樣大家不用區(qū)分太多名詞,方便走出第一步,當(dāng)我們制作出第一個工具箱的時候,再來探究這個名詞的含義。

10、;;自動添加菜單和工具條 (defun c:ldmu (/ pre_filedia CNT) (if (not (menugroup "flytoday")) (progn (setq pre_filedia (getvar "filedia")) (setvar "filedia" 0) (vl-cmdf "menuload" "flytoday") (setq CNT 1) (while (menucmd (strcat "P" (itoa CNT) ".1=?")) (setq CNT (1+ C

11、NT)) ) (if (> CNT 1) (setq CNT (- CNT 1)) (setq CNT 1) ) (menucmd (strcat "P" (itoa CNT) "=+flytoday.pop1")) (princ "\n菜單及工具條已成功加載,歡迎您再次使用!" ) (setvar "filedia" pre_filedia) ) (prompt "\n菜單已加載!") ) (princ) ) (c:ldmu) ;;卸載自定義菜單

12、 (defun c:ulmu (/ pre_filedia) (if (menugroup "flytoday") (progn (setq pre_filedia (getvar "filedia")) (setvar "filedia" 0) (vl-cmdf "menuunload" "flytoday") (princ "\n菜單及工具條已成功卸載,歡迎您再次使用!" ) (setvar "filedia" pre_filedia) ) (prompt "\n未

13、找到需要卸載的菜單!") ) (princ) ) 五、 設(shè)置注冊過程 一個程序,有一個注冊界面,會顯示這個軟件非常有價值,而且可以限制軟件的非正常使用。下面給個注冊人簡單例子,無DCL,非常適合簡單的注冊過程,但需要注意的是,此程序是明碼(請百度明碼、非明碼),很容易破解。使用方法見作者的說明。 ;;----------------------------------------------------------------------------------- ;;2012-7-26 soly2006 調(diào)試成功!簡單加密,目的是要用也要問別人,不問也要花些時間來破

14、;;理解所有為代碼付出的優(yōu)秀人才! ;;如果看到有你代碼的影子,請不要見怪。 ;;正式版應(yīng)增加: ;;1、補齊已注冊碼與申請碼一致; ;;2、求余要每機不同; ;;3、沒必要用DCL,又不是經(jīng)常用到,何必考慮人機界面; ;;4、用法:在命令后面加上(rere)就是。 ;;5、再奉勸你,多用中文 ;;----------------------------------------------------------------------------------- (defun rere( / 已注冊碼 注冊碼 輸入注冊碼) (setq 已注冊碼 (vl-registry

15、-read "HKEY_CURRENT_USER\\Software\\solycad" "SN")) (setq cpusn (cpu)) (setq 注冊碼 (strcat (加密字串 (substr cpusn 2 4) ) (加密字串 (substr cpusn 7 4) ))) (princ (strcat " 你要給別人的注冊碼為:" 注冊碼 "\n")) ;顯示已注冊碼 便于調(diào)試,給程序不要有這條啊, (if (/= 已注冊碼 注冊碼) (progn (setq 已注冊碼 注冊碼) (princ (strcat " 申請碼為:

16、 " "\n\n" cpusn)) (setq 輸入注冊碼 (getstring "\n請輸入已注冊碼:")) (if (/= 已注冊碼 輸入注冊碼) (progn (alert "請輸入正確的已注冊碼") (exit) ) (progn (vl-registry-write "HKEY_CURRENT_USER\\Software\\solycad" "SN" 輸入注冊碼) (princ "注冊成功!") ) ) ) (alert " \n 已注冊")

17、) (princ) ) ;;------------------------CPU-------------------------------- ;;不明出處 (defun CPU (/ Vlist VObj lcom lExecQuery item) (vl-load-com) (setq Vlist ()) (if (setq VObj (vlax-create-object "wbemscripting.swbemlocator")) (progn (SETQ lcom (VLAX-INVOKE VObj

18、ConnectServer "." "\\root\\cimv2" "" "" "" "" 128 nil ) ;_ 結(jié)束VLAX-INVOKE ) ;_ 結(jié)束SETQ (setq lExecQuery (vlax-invoke lcom ExecQuery ;;"Select * From Win32_BIOS" "Select * from Win32_Processor" ) ;_ 結(jié)束v

19、lax-invoke ) ;_ 結(jié)束setq (vlax-for item lExecQuery (setq Vlist (vlax-get item ProcessorId) ;_ 結(jié)束cons ) ;_ 結(jié)束setq ) ;_ 結(jié)束vlax-for (vlax-release-object lExecQuery) (vlax-release-object lcom) (vlax-release-object Vobj) ) ) Vlist ) ;; ---------

20、-----------字串分解---------------------------------- (defun 字串分解 (字串 / i k s lst) (setq i 0 k (chr 160)) (while (/= "" (setq s (substr 字串 (setq i (1+ i)) 1))) (if (< s k) (setq lst (cons s lst)) (setq lst (cons (substr 字串 i 2) lst) i (1+ i)) ) )(reverse lst) )

21、 ;;-------------------------加密字串--------------------------------------------- (defun 加密字串(字串 / 字串表 串) (setq 串 字串) (setq 字串表 (字串分解 串)) (setq 串 (apply strcat (mapcar (lambda (X) (加密字符 X)) 字串表))) ) ;;-----------------------------加密字符------------------------------------------------ ;;精

22、華所在:密=字符+字符對5求余 (defun 加密字符(字符 ) (chr (+ (ascii 字符) (rem (ascii 字符) 5))) ) 六、 打包成EXE 我們的程序使用的是LSP文件格式,用戶可以直接打開,我們最好把對話框,LSP文件打包成VLX格式,安全性很好。 輸入“Vlide”命令或都通過菜單進行Visual LISP編程環(huán)境。 單擊完成就可以打包成VLX文件,將此文件放入事先準備好的文件夾中。 這里面一個程序文件,兩個菜單文件,一個工具條的資源DLL,A、B是秋楓大俠程序打包時使用的兩個圖片,不是必須的。 秋楓大俠的程序如何使用,請見置頂貼 打包后的程序圖標如下,不太美觀》 我們將其再轉(zhuǎn)化成美觀一點和圖標。 七、 自定義程序圖標 使用Iconworkshop-制作ICO圖標.exe和PS可以很方便地制作出ICO文件,如果大家不會制作的話,可以百度一下下載現(xiàn)成的ICO圖標。將所有素材弄好,放在文件夾中。 注意注釋里面的文件內(nèi)容。 選中文件夾中所有文件,點右鍵, 此時生成的圖標就是我們自己定義的啦

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔

相關(guān)搜索

關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!