首页 > 解决方案 > 来自 c# 的 AutoCAD 运行命令

问题描述

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

我的代码

AcadApplication acad = new AcadApplication();

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

标签: c#autocad

解决方案


我通过创建一个由自动加载器加载的包并创建一个Web Api.

捆绑包:https ://adndevblog.typepad.com/autocad/2013/01/autodesk-autoloader-white-paper.html

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

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

这些 dll 可以在PackageContents.xml正确配置和使用界面时在启动时加载IExtensionApplication

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

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

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


推荐阅读