NCF参数化建筑论坛

标题: Grasshopper直接控制CAD [打印本页]

作者: 天明2009    时间: 2020-5-17 17:30
标题: Grasshopper直接控制CAD
上次提供给大家一个Grasshopper控制CAD的方法,是通过发送命令的方式。这个方法比较依赖于CAD的脚本语法,容易失败。这次提供一个更加稳定的控制方法,原理是采用CAD的ActiveX接口(进程间通信),用C#编程的方式直接控制CAD。源码如下:

  1. //首先引用CAD安装目录下的两个dll:
  2. //1 Autodesk.AutoCAD.Interop.dll
  3. //2 Autodesk.AutoCAD.Interop.Common.dll
  4. private void test()
  5. {
  6. //1、发送命令
  7. //1-1获得当前激活的cad进程实例
  8.   AcadApplication _application = (AcadApplication)Marshal.GetActiveObject("AutoCAD.Application");
  9.   _application.Visible = true;
  10.   //1-2调用CAD的regen命令
  11.   string cmd = "regen";
  12.   //1-3调用CAD接口
  13.   _application.ActiveDocument.SendCommand(cmd);
  14.   //2、直接绘制直线
  15.    double[] startPoint = { 4000, 4000, 0 };//起点坐标
  16.    double[] endPt = { 6000, 4000, 0 };//终点坐标
  17.    //调用CAD接口“AddLine”
  18.   AcadLine l = _application.ActiveDocument.ModelSpace.AddLine(startPoint, endPt);
  19. }
复制代码
使用方法:在Grasshopper的C#按钮中,增加上面的代码,打开CAD即可使用。其他的绘图接口,可自行探索。
    扫下面二维码加作者微信(tianming3628),欢迎入群交流。



作者: 剑鱼    时间: 2020-5-18 13:31
大佬 有GH与SU交互的插件吗
作者: 天明2009    时间: 2020-5-19 11:07
剑鱼 发表于 2020-5-18 13:31
大佬 有GH与SU交互的插件吗

暂时还不知道,有空研究一下




欢迎光临 NCF参数化建筑论坛 (http://www.ncf-china.com/) Powered by Discuz! X3.2