2

vs2008 C# で作業します。autocad 2010 に接続するにはヘルプが必要です。次の手順に従って接続しますが、エラーが発生します。

参照を追加する必要があるので、参照>>参照の追加>>[COM TAB]>>Autocad 2010 タイプ ライブラリ>>[OK] に移動します。

私は2つのライブラリを使用しています:

using Autodesk.AutoCAD.Interop;
using Autodesk.AutoCAD.Interop.Common;

次に、次のコードを使用して AutoCAD 2010 に接続します。

namespace Sample_CSharp_Acad_connect
{


 class Program
    {
        private static IAcadApplication oAcadApp = null;
        private static string sAcadID = "AutoCAD.Application.18";

        static void Main()
        {
            try  //get a running AutoCAD instance if avaialbale
            {
                oAcadApp = (IAcadApplication)System.Runtime.InteropServices.Marshal.GetActiveObject(sAcadID);
            }
            catch(Exception) //none found so start a new instance
            {
                System.Type AcadProg = System.Type.GetTypeFromProgID(sAcadID);
                oAcadApp = (IAcadApplication)System.Activator.CreateInstance(AcadProg);
            }
            if (oAcadApp != null)
            {
                oAcadApp.Visible = true; //could leave this false to hide Acad from the user
                //do whatever with Acad
                //oAcadApp.Quit();
            }
        }
    }

エラー メッセージ:コンポーネント CLSID のオブジェクト クラス COM の取得中にエラーが発生しました ここに画像の説明を入力

4

2 に答える 2

1

コム? やらないでください。

AutoCAD には .NET API があります。Autodesk のリソースについては、http: //usa.autodesk.com/adsk/servlet/index?id=1911627&siteID=123112を参照してください。詳細とリンクについては、こちらの wiki も参照してください: https://stackoverflow.com/tags/autocad/info

于 2012-07-22T12:54:22.257 に答える
0

このコードをどのように実行しますか? exeファイルですか?私の知る限り、外部プログラムを使用して AutoCAD を制御するのはそれほど簡単ではありません。多くの場合、そのような操作を妨げるライゼンの問題があります。

DLL を使用して AutoCAD 機能にアクセスする方が簡単な場合があります。その場合、AutoCAD のオブジェクト モデルに直接アクセスできます。

Dim theApp as Autodesk.AutoCAD.Interop.AcadApplications = Autodesk.AutoCAD.Interop.AcadApplication()
Debug.Print(theApp.Caption)

SDK には、AutoCAD にロードできる DLL のサンプルが多数含まれています。

そして: 本当に必要でない場合は、.NET の使用を検討してください。

于 2012-07-23T09:54:10.780 に答える