Autocad、中望CAD自動加載程序研究(注冊表法、acad.rx、acaddoc.lsp或acad.lsp)


 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.

   顯式加載該應該程序.(不知該項譯法是否有誤)

 

使用批處理進行注冊例子:

@echo off

set TargetPath=%1

if "%TargetPath%" == "" (Set TargetPath=ZcPluginsLoader.zrx)

echo TargetPath=%TargetPath%

if not exist "%TargetPath%" (Set TargetPath=%~dp0%TargetPath%)

reg add HKCU\Software\ZwSoft\Zwcadm\2017\zh-CN\Applications\ZcPlugin /f

reg add HKCU\Software\ZwSoft\Zwcadm\2017\zh-CN\Applications\ZcPlugin /v LOADER /t REG_SZ /d %TargetPath% /f

reg add HKCU\Software\ZwSoft\Zwcadm\2017\zh-CN\Applications\ZcPlugin /v LOADCTRLS /t REG_DWORD /d 2 /f

 

二: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上做的實驗  

 

前往下載中望ZRXSDK

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM