一、介绍

AutoCAD的二次开发形式非常多, 有Autolisp,ObjectARX,VBA等,在本章我给大家介绍的是不太常用的COM方式操作CAD。

使用COM的方式有前期绑定和后期绑定2种。

二、示例代码

1、前期绑定

 1 namespace ConsoleApplication2
 2 {
 3     class Program
 4     {
 5         static void Main(string[] args)
 6         {
 7             Autodesk.AutoCAD.Interop.AcadApplication app = new Autodesk.AutoCAD.Interop.AcadApplication();
 8             app.Visible = true;
 9             AcadDocument doc = app.ActiveDocument;
10             double []spoint = {0,0,0};
11             double []epoint = { 0, 1000, 0 };
12             doc.ModelSpace.AddLine(spoint,epoint);
13             app.ZoomAll();
14
15          //添加工具栏
16             AcadToolbar tool = app.MenuGroups.Item(0).Toolbars.Add("test toolbar group");
17             AcadToolbarItem tbaritem = tool.AddToolbarButton(0, "mycommand1","new line","L " ,false);
18             tbaritem.SetBitmaps("Small iconname ", "Big iconname ");
19             Console.ReadLine();
20         }
21     }
22 }

2、后期绑定

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Text;
 4 using System.Runtime.InteropServices;
 5 using Autodesk.AutoCAD.Interop;
 6
 7
 8 namespace ConsoleApplication2
 9 {
10     class Program
11     {
12         static void Main(string[] args)
13         {
14             try
15             {
16                 AcadApplication app = (AcadApplication)Marshal.GetActiveObject("AutoCAD.Application.17");
17                 AcadDocument doc = app.ActiveDocument;
18                 double[] spoint = { 0, 0, 0 };
19                 double[] epoint = { 0, 1000, 0 };
20                 doc.ModelSpace.AddLine(spoint, epoint);
21                 app.ZoomAll();
22                 AcadToolbar tool = app.MenuGroups.Item(0).Toolbars.Add("test");
23                 AcadToolbarItem tbaritem = tool.AddToolbarButton(0, "mycommand1", "new line", "L ", false);
24                 tbaritem.SetBitmaps("Small iconname ", "Big iconname ");
25                 Console.ReadLine();
26             }
27             catch
28             {
29
30             }
31
32         }   }

三、总结

在使用前期绑定速度快于后期绑定,但后期绑定的好处是在未知目标机器上CAD的版本情况下可以指定多个不同的版本。

转载于:https://www.cnblogs.com/jevon1982/p/9532380.html

在C#中用COM操作CAD相关推荐

  1. 关于python操作cad的2021-06-18

    之前写了"关于python通过pyautocad操作cad的2021-06-10",由于pyautocad根据图元生产面域的方法没找到,所以改用win32com.client了,找 ...

  2. vlisp操作CAD绘图人机交互的一个小技巧

    用vlisp操作CAD时,尤其在调用CAD命令时,有些命令带有对话框来获取参数,比如hatch,boundary,block等,在调用时输入参数较为困难,有两种解决方法: 1.用(initdia)函数 ...

  3. 使用Teigha(OpenDesign)操作CAD的dwg文件

    说起来,其实我自己也感觉这个要求挺奇怪的,Java操作CAD,好吧,目前比较完善的类库有一个是jdwglib,但是我没找到,而且公司刚好有OpenDesign的账号,因此,需要使用Teigha来进行操 ...

  4. C# 操作CAD报错【COMException (0x8001010A)消息筛选器显示应用程序正在使用中】的一种处理方式

    C# 操作CAD报错[COMException (0x8001010A)消息筛选器显示应用程序正在使用中] 使用了dynamic关键字依然无法解决,程序运行了5次可能出现3次此错误. 网上搜索了很多方 ...

  5. winform界面嵌入dwg图纸_winform操作CAD图

    个人认为用命令操作cad会比较便捷,但是鉴于好多人喜欢通过鼠标点击的方式操作cad,在此讲一下如何调用winform.前期准备请看上篇文章. 1.在新建好项目并引用接口dll的前提下,新建一个winf ...

  6. python操作cad文件_Python使用pyautocad+openpyxl处理cad文件示例

    本文实例讲述了Python使用pyautocad+openpyxl处理cad文件.分享给大家供大家参考,具体如下: 示例1: from pyautocad import Autocad import ...

  7. pyautocad python 操作CAD文件

    python操作autocad,实现对dwg文件的操作 业务需求: 图纸的文件名存在引用,需要执行打开保存操作,自动保存图号为当前文件名 实现: 使用python+pyautocad 参考文章: ht ...

  8. 在 Node.js 中用子进程操作标准输入/输出

    翻译:疯狂的技术宅 原文:http://2ality.com/2018/05/chi... 本文首发微信公众号:jingchengyideng 欢迎关注,每天都给你推送新鲜的前端技术文章 在本中,我们 ...

  9. cmd如何刷新MySQL数据库_怎样在cmd中用命令操作MySQL数据库 需要技巧

    用命令来操作MySQL是工作必备的,今天我就来分享一下cmd命令操作MySQL数据库的方法,希望有帮助. 工具/材料 电脑 xampp 操作方法 01 首先,启动MySQL服务才行哦.这里我是用xam ...

最新文章

  1. LeetCode简单题之检查是否所有字符出现次数相同
  2. 构建轻量级的Table View注意事项[UIKit]
  3. GC垃圾回收的三色标记算法
  4. 天天说常识推理,究竟常识是什么?
  5. .Net Core中使用ref和SpanT提高程序性能
  6. 基于Altium Designer的4层PCB板的绘制
  7. 配置Eclipse远程调试weblogic应用的环境
  8. IO流(1)--文件流及其原理
  9. 图像效果的一些专业测试工具和指标:
  10. 探析如何组织计算机课堂教学,探析如何组织计算机课堂教学
  11. 适合初学者使用的Mac绘图软件推荐
  12. 动手实践感受下企业微信的网页授权登录、扫码授权登录
  13. PDF转PNG高清不失帧
  14. android surface 平板,Surface体验:完胜Android平板 有望替代iPad
  15. html颜色对应卡,PANTONE色卡
  16. 技术评审到底需要评审哪些东西
  17. 开水果店前景,水果店发展前景
  18. 一文带你看懂JAVA IO流,史上最全面的IO教学啦(附送JAVA IO脑图
  19. 年薪500k阿里云大咖:掌握好以下数据库八大要点,月薪50k不是梦
  20. 生物启发式AI系统:超越纯视觉识别,融合体感的手势识别更精准

热门文章

  1. 不会真有人国庆都不打王者吧?
  2. UC Berkeley CS188 Intro to AI
  3. 深入理解javascript异步编程障眼法h5 web worker实现多线程
  4. [hihocoder 1075] 开锁魔法III
  5. 关于SQL查询效率,100w数据,查询只要1秒
  6. 求助请IT外包商如何帮用户管好网络?
  7. Python小知识点(3)--装饰器
  8. 【高性价比】AIO-3288C四核高性能主板
  9. 如何用技术搞好英俄翻译?
  10. 第104天:web字体图标使用方法