| 上次提供给大家一个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),欢迎入群交流。 
 
 |