Autocad、中望CAD自動加載程序研究(注冊表法、acad.rx、acaddoc.lsp或acad.lsp)
一、使用注冊表
假設你的arx文件名字是aaa.arx絕對路徑是c:\aaa.arx
(1)Autocad:拿cad13做例子
在注冊表路徑下HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\R19.0\ACAD-B001:804\Applications
(2)ZWCAD:中望CAD機械版2017
注冊表路徑:HKCU\Software\ZwSoft\Zwcadm\2017\zh-CN\Applications
新建子項aaa(名字隨意起,只要不重復)
在項下新建如下兩個值
LOADCTRLS 類型:DWORD 值:2
LOADER 類型:字符串 值:D:\ObjectARX 2013\samples\database\ARXDBG\x64\Debug\arxdbg.arx
這個是寫在當前用戶下(HKEY_CURRENT_USER),也可以寫在HKEY_LOCAL_MACHINE下,寫在當前機器下,那么對於任意一個用戶都是自動加載的
Atuocad2014及以上步驟一致,但是需要注意cad14以上的版本需要添加你arx所在路徑到可信任路徑上
以Autocad2014為例:
HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\R19.1\ACAD-D001:804\Profiles\
<<未命名配置>>\Variables
下新建值 TRUSTEDPATHS 值類型:可擴展字符串
值:你arx所在路徑在本文中就是C:\
如果值已經存在則修改值,點擊修改,在字符串最后加上;c:\就可以了
我舉得例子是在未命名配置下舉得例子,你需要那個配置就在那個配置下的Variables做如上修改
附注:注冊表鍵值"LOADCTRLS"控制說明,控制ARX程序的加載方式(上例中使用的是Ox02隨CAD啟動一起加載)
0x01:Load the application upon detection of proxy object.
當代理對像被控知時加載相應ARX程序.
0x02:Load the application upon AutoCAD startup.
當AutoCAD啟動時加載相應ARX程序.
0x04:Load the application upon invocation of a command.
當輸入命令時加載相應ARX程序.
0x08:Load the application upon request by the user or another application.
當有用戶或別的程序請求時加載相應ARX程序.
0x10:Do not load the application.
從不加載該應用程序.
0x20:Load the application transparently.
顯式加載該應該程序.(不知該項譯法是否有誤)
使用批處理進行注冊例子:
二:acad.rx實現自動加載arx(中望為zwcad.rx)
我的arx路徑是C:\myarx\test.arx
1.在 C:\myarx\ 下新建acad.rx文件
在里面寫入test.arx(注意如果有多個arx,則每一個arx文件名 占據一行)
2.這種方法必須保證 acad.rx 所在路徑在搜索路徑下,對注冊表做如何修改
HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\R19.0\ACAD-B001:804\Profiles\<<未命名配置>>\General
下的ACAD在里面的路徑中添加C:\myarx; 注意最后必須以分號結尾 切記
當然我這里實在默認的配置(<<未命名配置>>),並且是在cad13上做的實驗
請大家根據自己的實際情況做改變
三.acaddoc.lsp或acad.lsp實現自動加載arx(中望為zwcaddoc.lsp/zwcad.lsp)
我的arx路徑是C:\myarx\test.arx
1.在 C:\myarx\ 下新建acaddoc.lsp文件(也可以創建acad.lsp只不過acad.lsp只能在autocad啟動時加載一次)
在里面寫入
(defun S::STARTUP() ;函數名不可以改變
(arxload " test .arx") ;test .arx 為相對路徑也可用絕對路徑
)
我從網上看到的代碼是
(defun S::STARTUP() ;函數名不可以改變
(command "_netload" "my.dll"); my.dll為相對路徑也可用絕對路徑
) 這個代碼不能成功,應該不是這個代碼不正確,應該是隨着版本升級atuolisp函數也發生了變化
2.如同第一種方法所示你需要將autocad.lsp所在文件夾的路徑添加到acad中(你不加進去cad怎么知道去哪加載acaddoc.lsp呢)對注冊表做如何修改
HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\R19.0\ACAD-B001:804\Profiles\<<未命名配置>>\General
下的ACAD在里面的路徑中添加C:\myarx; 注意最后必須以分號結尾 切記
當然我這里實在默認的配置(<<未命名配置>>),並且是在cad13上做的實驗