好的白癜风治疗医院 http://www.xftobacco.com/CAD提供的二次开发接口大大扩展了CAD的功能,成为平时绘图中不可或缺的工具,也必须在启动时自动加载,CAD在这方面提供了许多的选择。
1.Lisp法
浏览器地址栏输入
ruanjian.top
获取该软件的各个版本
该软件全版本获取,傻瓜式安装,不用看教程
a.在ACAD.EXE所在目录加入acad.lsp或acaddoc.lsp
acad.lsp或acaddoc.lsp文件内容:
(defunS::STARTUP();函数名不可以改变
(
当代理对像被控知时另载相应ARX程序.
0x02:LoadtheapplicationuponAutoCADstartup.
当AutoCAD启动时加载相应ARX程序.
0x04:Loadtheapplicationuponinvocationofa
当输入命令时加载相应ARX程序.
0x08:Loadtheapplicationuponrequestbytheuseroranotherapplication.
当有用户或别的程序请求时加载相应ARX程序.
0x10:Donotloadtheapplication.
从不加载该应用程序.
0x20:Loadtheapplicationtransparently.
显式加载该应该程序.(不知该项译法是否有误)
c.当my。dll中有命令时,还需要添加一个子键:
[HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R16.2\ACAD-:\Applications\my\Commands]
"StartmyApp"="StartmyApp"
-StartmyApp是你程序中一个有效的命令。
这样,你的程序就会在AutoCAD启动时加载并初始化。你可以添加代码到程序的如下地方(VB.Net代码):
PublicSubStartmyApp()
.....
EndSub
然后在ACAD.LSP,ACAD.MNL,或其他自动载入的文件里调用StartmyApp命令。
优点:只要项键值不同就不会被覆盖,所以建议键名使用gid。
4.子进程法:
将二次开发的程序做成EXE程序。启动该程序会自动启动CAD子进程,关闭程序时可以关闭CAD子进程。
5.ACAD.RX文件法:
在AutoCAD启动文件acad.rx中指定待装入的ARX应用程序名。acad.rx是ASCII文本文件,每个ARX应用程序必须单独占一行,AutoCAD启动时会自动装载该文件中的ARX应用程序。另外,应确保$ACAD路径定义中包括文件acad.rx的存放目录。
6.配置文件法:
可以把自己配置的AUTOCAD启动时加载的东西,保存成一个的配置文件。然后在AUTOCAD启动快捷方式中用参数:/p你的配置文件名。这样就可以在启动的时候加载自己的CAD环境。
具体如下:菜单:工具--选项(或用命令:_OPTIONS),“配置”选项卡,选择配置文件后,点击“输出”。可以输出一个扩展名为arg的文本文件,保存到某个位置,然后再桌面上将cad的快捷方式复制一个,右键属性,将目标中"C:\\MyPrograms\\AutoCAD\\acad.exe"的后面加上/p"d:/test/test.arg"(注意:双引号,不是汉字的,而是英文的!)
有些命令要求:将加载的文件的路径,加入搜索路径。方法如下:
加入搜索路径:
菜单:工具-选项,(或用命令:_OPTIONS)
选中“支持文件搜索路径”,点“添加”,点“浏览”,选择要添加的路径,点“确定”。
同于如下注册表操作:
注意需要先关闭CAD
[HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\R16.2\ACAD-:\Profiles\未命名配置\General]
"ACAD"="C:\\DocumentsandSettings\\用户名\\ApplicationData\\Autodesk\\AutoCAD\\R16.2\\chs\\support;C:\\ProgramFiles\\AutoCAD\\support;C:\\ProgramFiles\\AutoCAD\\fonts;C:\\ProgramFiles\\AutoCAD\\help;C:\\ProgramFiles\\AutoCAD\\Express;C:\\ProgramFiles\\AutoCAD\\support\\color;C:\\ProgramFiles\\AutoCAD\\myfile;"
注意:此法每次打开一个新的文档就会自动加载注册表中指定的文件。
附:
uCAD加载命令:appload(加载VBA,Arx,Lisp),netload(加载dll),arxload(加载Arx),load(加载Lisp),autoload(加载Lisp),autoarxload(加载Arx)
u加载二次开发线程的方法:loadDVB(加载VBA的方法)和loadARX(加载ARX的方法)
u用acrxLoadModule()或AcRxDynamicLinker::loadModule()函数,在一个ARX应用程序里装载另一个ARX应用程序。这两个函数的原型是:
----intacrxLoadModule(char*moduleName,intprintit);
----virtualAdesk::BooleanAcRxDynamicLinker::loadModule(char*fileName,intprintIt)=0;
----其中各参数含义如下:
----moduleName:待装载的ARX应用程序名;ARX应用程序扩展名默认为.ARX,如果不是.ARX,则此处char*moduleName参数必须包括应用程序扩展名。
----fileName:含义与上述moduleName相同。但是fileName必须包括待装载的ARX应用程序的路径和扩展名。
----printit:取0则不显示装载结果,取非0值则显示。当printit取非0值时,如装载成功,则在AutoCAD命令窗口显示“RuntimeExtensionisalreadyloaded.\",否则,显示“AcRxDynamicLinkerfailedtoload\"。
----acrxLoadModule()与AcRxDynamicLinker::loadModule不同的是:acrxLoadModule()从$ACAD定义的AutoCAD搜索路径自动搜索待装载的ARX应用程序,并默认ARX应用程序扩展名为.ARX。
uintads_arxload(constchar*ArxAppName)函数。在ADS或ARX程序里使用
该函数可将一个ARX模块装载到相应的ADS或ARX程序里。该函数的返回值表示装载结果。与该函数对应的AutoLISP函数是(arxload)。
----用ads_arxload()和acrxLoadModule()装入一个ARX应用程序的区别是:用ads_arxload()装入的ARX应用程序不仅注册成一个ADS程序,同时还注册成一个ARX程序。