NCF参数化建筑论坛
标题: Grasshopper直接控制CAD [打印本页]
作者: 天明2009    时间: 2020-5-17 17:30
标题: Grasshopper直接控制CAD
上次提供给大家一个Grasshopper控制CAD的方法,是通过发送命令的方式。这个方法比较依赖于CAD的脚本语法,容易失败。这次提供一个更加稳定的控制方法,原理是采用CAD的ActiveX接口(进程间通信),用C#编程的方式直接控制CAD。源码如下:
 
- //首先引用CAD安装目录下的两个dll:
 
- //1 Autodesk.AutoCAD.Interop.dll
 
- //2 Autodesk.AutoCAD.Interop.Common.dll
 
- private void test()
 
- {
 
-  //1、发送命令
 
-  //1-1获得当前激活的cad进程实例
 
-   AcadApplication _application = (AcadApplication)Marshal.GetActiveObject("AutoCAD.Application");
 
-   _application.Visible = true;
 
-   //1-2调用CAD的regen命令
 
-   string cmd = "regen";
 
-   //1-3调用CAD接口
 
-   _application.ActiveDocument.SendCommand(cmd);
 
-   //2、直接绘制直线
 
-    double[] startPoint = { 4000, 4000, 0 };//起点坐标
 
-    double[] endPt = { 6000, 4000, 0 };//终点坐标
 
-    //调用CAD接口“AddLine”
 
-   AcadLine l = _application.ActiveDocument.ModelSpace.AddLine(startPoint, endPt);
 
- }
使用方法:在Grasshopper的C#按钮中,增加上面的代码,打开CAD即可使用。其他的绘图接口,可自行探索。
    扫下面二维码加作者微信(tianming3628),欢迎入群交流。
作者: 剑鱼    时间: 2020-5-18 13:31
大佬 有GH与SU交互的插件吗
作者: 天明2009    时间: 2020-5-19 11:07
暂时还不知道,有空研究一下
| 欢迎光临 NCF参数化建筑论坛 (http://www.ncf-china.com/) | Powered by Discuz! X3.2 |