我正在创建一个python应用程序来自动执行AutoCAD中的某些任务(在特定图层中绘制特定形状并检查某些圆圈的位置)。
对于第一部分,绘制内容,很容易使用AutoCAD Interop库,因为您可以轻松地将对象放在活动文档中而无需在AutoCAD上执行任何操作,甚至无法加载任何插件。但是,我没有找到任何方法使用相同的库来检查文档中对象的属性。
我需要的是一个函数,当作为参数传递图层名称时,返回该图层中每个圆的中心列表。
现在,只需加载一个插件就可以轻松完成。但我需要将信息传递给python程序(通过pythonnet加载AutoCAD Interop库),我不知道该怎么做。
总而言之,我需要:
或
我打算做什么?什么是最好的方法?
答案 0 :(得分:0)
您也可以在没有Interop的情况下使用AutoCAD:
您可以在AutoCAD中托管WCF服务并与它们进行交互。我没有免费样品,对不起(只有我的私人解决方案,而不是出版)。 WCF服务可以托管在acad.exe
或accoreconsole.exe
(2016 {2016}除外)。
您可以在AutoCAD中托管PowerShell并与其进行交互。我通过这种方式发布了here。
我对不同的情况使用这些方法。
答案 1 :(得分:0)
关于此: “将AutoCAD插件与用python编写的外部应用程序接口”
据我了解,该插件只能通过打开的AutoCAD应用程序访问,因此,要与该插件进行接口,您的应用程序必须与AutoCAD进行接口。
我不知道Python是否可以做到这一点,但是使用AutoCAD Interop和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]");
}
因此,您可以像这样调用您的插件:
acDoc.SendCommand("yourPluginCommandName layerName");