NCF参数化建筑论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 14704|回复: 2
打印 上一主题 下一主题

[个人作品] Grasshopper直接控制CAD

[复制链接]
跳转到指定楼层
1m
发表于 2020-5-17 17:30:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
上次提供给大家一个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),欢迎入群交流。


评分

参与人数 2强度 +4 照度 +13 收起 理由
miniorange + 2 + 3 很有启发!
ly871108 + 2 + 10 支持一下!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏5 分享分享
2m
发表于 2020-5-18 13:31:35 | 只看该作者
大佬 有GH与SU交互的插件吗

点评

暂时还不知道,有空研究一下  详情 回复 发表于 2020-5-19 11:07
3m
 楼主| 发表于 2020-5-19 11:07:57 | 只看该作者
剑鱼 发表于 2020-5-18 13:31
大佬 有GH与SU交互的插件吗

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

小黑屋|手机版|NCF参数化建筑论坛 ( 浙ICP备2020044100号-2 )    辽公网安备21021102000973号

GMT+8, 2024-11-24 14:44 , Processed in 0.140907 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表