AutoCAD插件与外部程序的接口

2024-03-29 13:24:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在制作一个python应用程序来自动执行AutoCAD中的一些任务(在特定图层中绘制特定形状并检查一些圆的位置)。在

对于第一部分,绘图,使用AutoCAD Interop库很容易,因为您可以轻松地将对象放入活动文档中,而无需在AutoCAD上执行任何操作,甚至不需要加载任何插件。但是,我找不到任何方法使用同一个库来检查文档中对象的属性。在

我需要的是一个函数,当层名称作为参数传递时,返回该层中每个圆的中心列表。在

现在,只需加载一个插件就可以轻松完成。但我需要将这些信息传递给python程序(通过pythonnet加载AutoCAD互操作库),但我不知道如何做。在

所以,总结一下,我需要:

  • 了解如何使用AutoCAD互操作库检索图形信息。在

或者

  • 将AutoCAD插件与用python编写的外部应用程序接口。在

我想做的可能吗?最好的方法是什么?在


Tags: 对象方法函数文档插件图层信息应用程序
2条回答

也可以使用不带互操作的AutoCAD:

  1. 可以在AutoCAD中承载WCF服务并与它们交互。我没有免费的样品,对不起(只有我的私人解决方案,没有出版)。WCF服务可以托管在acad.exe或{}(除了accoreconsole.exe2016)。

  2. 您可以在AutoCAD中托管PowerShell并与之交互。我发布了here这种方式的示例。

我用这些方法处理不同的情况。在

关于这个: “将AutoCAD插件与用python编写的外部应用程序接口”

据我所知,插件只能通过开放的AutoCAD应用程序访问,因此为了与插件接口,你的应用程序必须与AutoCAD接口。在

我不知道Python是否可以做到这一点,但是使用AutoCAD与C的互操作,您可以做到:

public void SendCommand(string command, params object[] args)
{
    AcadApplication app = GetActiveApp();
    AcadDocument acDoc = app.ActiveDocument;

    // Without arguments
    acDoc.SendCommand("command");

    // With arguments
    acDoc.SendCommand("command args[2], args[1], args[2]");
}

所以你可以这样调用你的插件:

^{pr2}$

相关问题 更多 >