在C#中用COM操作CAD
一、介绍
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相关推荐
- 关于python操作cad的2021-06-18
之前写了"关于python通过pyautocad操作cad的2021-06-10",由于pyautocad根据图元生产面域的方法没找到,所以改用win32com.client了,找 ...
- vlisp操作CAD绘图人机交互的一个小技巧
用vlisp操作CAD时,尤其在调用CAD命令时,有些命令带有对话框来获取参数,比如hatch,boundary,block等,在调用时输入参数较为困难,有两种解决方法: 1.用(initdia)函数 ...
- 使用Teigha(OpenDesign)操作CAD的dwg文件
说起来,其实我自己也感觉这个要求挺奇怪的,Java操作CAD,好吧,目前比较完善的类库有一个是jdwglib,但是我没找到,而且公司刚好有OpenDesign的账号,因此,需要使用Teigha来进行操 ...
- C# 操作CAD报错【COMException (0x8001010A)消息筛选器显示应用程序正在使用中】的一种处理方式
C# 操作CAD报错[COMException (0x8001010A)消息筛选器显示应用程序正在使用中] 使用了dynamic关键字依然无法解决,程序运行了5次可能出现3次此错误. 网上搜索了很多方 ...
- winform界面嵌入dwg图纸_winform操作CAD图
个人认为用命令操作cad会比较便捷,但是鉴于好多人喜欢通过鼠标点击的方式操作cad,在此讲一下如何调用winform.前期准备请看上篇文章. 1.在新建好项目并引用接口dll的前提下,新建一个winf ...
- python操作cad文件_Python使用pyautocad+openpyxl处理cad文件示例
本文实例讲述了Python使用pyautocad+openpyxl处理cad文件.分享给大家供大家参考,具体如下: 示例1: from pyautocad import Autocad import ...
- pyautocad python 操作CAD文件
python操作autocad,实现对dwg文件的操作 业务需求: 图纸的文件名存在引用,需要执行打开保存操作,自动保存图号为当前文件名 实现: 使用python+pyautocad 参考文章: ht ...
- 在 Node.js 中用子进程操作标准输入/输出
翻译:疯狂的技术宅 原文:http://2ality.com/2018/05/chi... 本文首发微信公众号:jingchengyideng 欢迎关注,每天都给你推送新鲜的前端技术文章 在本中,我们 ...
- cmd如何刷新MySQL数据库_怎样在cmd中用命令操作MySQL数据库 需要技巧
用命令来操作MySQL是工作必备的,今天我就来分享一下cmd命令操作MySQL数据库的方法,希望有帮助. 工具/材料 电脑 xampp 操作方法 01 首先,启动MySQL服务才行哦.这里我是用xam ...
最新文章
- LeetCode简单题之检查是否所有字符出现次数相同
- 构建轻量级的Table View注意事项[UIKit]
- GC垃圾回收的三色标记算法
- 天天说常识推理,究竟常识是什么?
- .Net Core中使用ref和SpanT提高程序性能
- 基于Altium Designer的4层PCB板的绘制
- 配置Eclipse远程调试weblogic应用的环境
- IO流(1)--文件流及其原理
- 图像效果的一些专业测试工具和指标:
- 探析如何组织计算机课堂教学,探析如何组织计算机课堂教学
- 适合初学者使用的Mac绘图软件推荐
- 动手实践感受下企业微信的网页授权登录、扫码授权登录
- PDF转PNG高清不失帧
- android surface 平板,Surface体验:完胜Android平板 有望替代iPad
- html颜色对应卡,PANTONE色卡
- 技术评审到底需要评审哪些东西
- 开水果店前景,水果店发展前景
- 一文带你看懂JAVA IO流,史上最全面的IO教学啦(附送JAVA IO脑图
- 年薪500k阿里云大咖:掌握好以下数据库八大要点,月薪50k不是梦
- 生物启发式AI系统:超越纯视觉识别,融合体感的手势识别更精准