Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# autoCAD从c运行命令#_C#_Autocad - Fatal编程技术网

C# autoCAD从c运行命令#

C# autoCAD从c运行命令#,c#,autocad,C#,Autocad,我想在c#执行autoCAD命令。 单击按钮后,我想将“JUSTIFYTEXT MC”命令应用于所选对象。 目前,我的代码可以在命令中执行,但将执行一个新的autoCAD窗口。 我想知道如何在当前正在运行的CAD窗口中运行该命令 我的代码 AcadApplication acad = new AcadApplication(); acad.Visible = true; acad.WindowState = AcWindowState.acMin; acad.ActiveDocument.Se

我想在c#执行autoCAD命令。 单击按钮后,我想将“JUSTIFYTEXT MC”命令应用于所选对象。 目前,我的代码可以在命令中执行,但将执行一个新的autoCAD窗口。 我想知道如何在当前正在运行的CAD窗口中运行该命令

我的代码

AcadApplication acad = new AcadApplication();

acad.Visible = true;
acad.WindowState = AcWindowState.acMin;
acad.ActiveDocument.SendCommand("JUSTIFYTEXT MC ");

我通过创建一个由autoloader加载的包并创建一个
WebAPI
来实现这一点

捆绑:

捆绑包是位于例如
C:\ProgramData\Autodesk\ApplicationPlugins
上的文件夹,它具有特定的结构,即捆绑包支持的
Autodesk
产品、平台(
Win32
Win64
以及捆绑包的起点所在。此配置应位于根目录下的
PackageContents.xml

PackageContents.xml
处于同一级别的内容文件夹,包含所有DLL等

正确配置
PackageContents.xml
并使用接口
IExtensionApplication
时,可以在启动时加载这些DLL

在扩展
IExtensionApplication
接口的类中,当调用
Initialize()
时,您可以创建
Web Api
或其他类型的通信,如
SignalR
。将连接字符串保存到文件中,然后从其他应用程序读取

现在,您应该能够通过托管在
AutoCAD
实例中的本地web api与正在运行的
AutoCAD
实例进行通信


希望简短的解释能有所帮助。

这是一个新的AutoCAD窗口,因为您正在创建一个新的
AcadApplication
。您需要连接到现有的AcadApplication,而不是创建一个新的。您能告诉我如何连接到现有的AcadApplication吗?我不知道如何…只需加载您的模块,就可以运行应用程序了,并更改代码以使用现有autocad实例。