CAD二次開發--自動加載插件

  • > 方式一:
  • 利用COM組件的SendCommand方法:此方法適用於獨立程序與AutoCAD程序的交互(開發的程序與CAD程序處於不同的進程),但是某些具體的功能在DLL文件內。
    1.添加對Interop.AutoCAD.dll文件的引用。
    2.在頭文件加入 using AutoCAD;
    3.連接CAD:AcadApplication app = (AcadApplication)System.Runtime.InteropServices.Marshal.GetActiveObject(“AutoCAD.Application”); //這裏最好用try–catch 包裹起來。因爲在CAD中命令欄存在命令時會連接失敗或者CAD未啓動拋異常,或者與其他加載的插件起衝突而引起連接失敗的異常,然後在catch裏面執行相應的啓動CAD的代碼即可。
    4.具體的加載插件的代碼:
    ///
    /// Netload the Dll File AutoMation.
    ///
    private static void func_NetloadDLL()
    {
    var doc = app.ActiveDocument;
    var DLLPath = Environment.CurrentDirectory + @”***.dll”;//這裏將*號換成你的插件文件名
    DLLPath = DLLPath.Replace(@”\”, @”\”);
    string commandNetload = string.Format(“(command \”netload\” \”{0}\” ) “, DLLPath);
    doc.SendCommand(commandNetload);
    }
    5.此種方式的缺陷:因爲dll文件處於你的獨立應用程序內,一般來講是處於CAD程序安全檢查範圍之外。所以加載DLL的時候CAD程序會彈出提示框。這一點很是煩人。不過可以在CAD內關閉提示。
    具體方法:在CAD程序內:工具->選項->系統->可執行文件設置->從所有位置加載,不顯示警告->確定. 這裏寫圖片描述

  • 方式二:

  • 利用註冊表自動加載的原理:CAD在啓動的時候會自動加載一些dll文件,我們模擬它自身的加載方式,添加對應的註冊表文件即可。此種方式適用於:所有的功能都在dll文件內(即完全的插件方式,開發的程序與CAD程序處於同一進程內),總不能每次開啓CAD的時候都netload吧。
    具體方式—–

     ------有空再更吧。
    

    還是更吧:在桌面上新建txt文件,貼如以下代碼
    Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R19.1\ACAD-D001\Applications*****]
“LOADCTRLS”=dword:0000000e
“LOADER”=”C:\Program Files\Autodesk\AutoCAD 2014\*****.dll”
“DESCRIPTION”=”**
“MANAGED”=dword:00000001

1.修改[HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R19.1\ACAD-D001\Applications*****]這一句的*號
2.修改”LOADER”=”C:\Program Files\Autodesk\AutoCAD 2014\*****.dll”的*號。LOADER後面的參數表示你的DLL文件所在的路徑.
3.假如你的DLL文件路徑爲C:\Program Files\Autodesk\AutoCAD 2014\DrawLine.dll,那麼上面兩處的修改結果爲[HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R19.1\ACAD-D001\Applications\DrawLine],”LOADER”=”C:\Program Files\Autodesk\AutoCAD 2014\DrawLine.dll”
4.注意這裏的版本問題,這裏是以CAD2014版本爲參考。其他版本[HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R19.1\ACAD-D001\Applications*****]這一句版本號“\R19.1\ACAD-D001\”這裏要做對應的修改。
5.”DESCRIPTION”=”*” 這裏的號改成對應的要加載的命令名稱。
6.關閉txt文件,修改後綴名爲*.reg。雙擊這個文件註冊表即導入成功。
7.將dll文件放入cad程序所在文件夾是爲了避免彈出加載未知位置dll文件的警告

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章