很早前,我曾写过一篇通过外部程序访问Inventor iLogic功能的博客:
http://adndevblog.typepad.com/manufacturing/2013/04/call-ilogic-from-net.html
但随着版本的变化,发现代码在较新的Inventor上,下面这行代码会失败:
Autodesk.iLogic.Automation.iLogicAutomation _iLogicAutomation =
(Autodesk.iLogic.Automation.iLogicAutomation)addin.Automation;
看到我的同时其实后续写过一篇文章,谈到了iLogic其实并不是纯的COM对象,而是封装了.NET的对象为COM,因此较为合适用后绑定方式。好在C#4.0以后的dynamic可以做这样的处理。代码写起来就很方便了
http://adndevblog.typepad.com/manufacturing/2013/09/run-ilogic-rule-from-external-application.html
但是,当在较新Inventor (例如2017)测试,发现这个方式还是会失败。。。但如果在文档中起码有一个rule后,就可以直接运行了。或许是个问题,需要更多的诊断。