利用AutoCAD 2005.NET API进行AutoCAD的二次开发(一)

--直线

大家好!从今天开始我向大家介绍如何利用AutoCAD 2005.NET API进行AutoCAD的二次开发。由于我只学过C#,因此在所讲的例子中一律使用C#。至于广大的vb.net程序员,我想编程的原理是一样的,并且因为vb.net和C#都属于.net语言,因此熟悉vb.net的朋友对理解C#程序是没有太大问题的(呵呵,如果有哪位愿意把相关的C#程序翻译成Vb.net程序,那就更好了)。

由于AutoCAD 2005.NET API是比较新的东西,我几乎没有找到比较系统的教程或参考,因此我会使用明经通道出版的《AutoCAD VBA 开发精彩实例教程》的实例来进行讲解。

好了,闲话少说,让我们直接进入 AutoCAD 2005.NET API的世界。

一、准备工作

这指的是如何添加相关的引用和命名空间。用AutoCAD 2005.NET API进行AutoCAD的二次开发,必须添加的引用是acdbmgd.dll和acmgd.dll,这可以在AutoCAD2005的安装目录下找到。还必须添加的是在visual studio.net的添加引用时在com选项下选择“AutoCAD 2005类型库”和“AutoCAD/ObjectDBX Common 16.0类型库”这两项。

然后在程序的开头加入以下命名空间:

using Autodesk.AutoCAD.ApplicationServices;

using Autodesk.AutoCAD.DatabaseServices;

using Autodesk.AutoCAD.Colors;

using Autodesk.AutoCAD.Geometry;

using Autodesk.AutoCAD.Runtime;

using DBTransMan=Autodesk.AutoCAD.DatabaseServices.TransactionManager;

using Autodesk.AutoCAD.Interop;

using Autodesk.AutoCAD.Interop.Common;

这些命名空间是要在每一个程序中都要加入的。

二、第一个实例--创建直线

(1)在visual studio.net 中,新建一个类库工程,然后添加相关的引用及在程序的开头加入有关的命名空间(请参见一)。

(2)创建基准函数(AddLine)。基准函数就是与系统提供的方法一致的函数。其实现的步骤如下:

l在程序文件中加入以下私有字段:

private Database db; //代表AutoCAD数据库对象

private DBTransMan tm; //代表AutoCAD事务处理管理器

private Transaction myT;// 代表AutoCAD事务处理

BlockTable bt; //代表AutoCAD块表

BlockTableRecord btr;// 代表AutoCAD块表记录对象

l在类的构造函数部分加入以下代码:

db = HostApplicationServices.WorkingDatabase;//取得当前运行的AutoCAD的数据库对象

tm = db.TransactionManager;// 定义一事务处理管理器

l主程序AddLine

public Line AddLine(Point3d pt1, Point3d pt2)

{

Line line;//声明一直线对象

try

{

Initialize();//相关的初始化工作,是一自定义函数

line = new Line(pt1, pt2);//给line对象赋于具体的值

btr.AppendEntity(line);

tm.AddNewlyCreatedDBObject(line, true);//在AutoCAD中加入创建的直线

myT.Commit();//提交事务处理

ffice

ffice" />

}

finally

{

DisposeAll();//有关的清理工作,是一自定义函数

}

return line;

}

上面程序中的Initialize函数如下:

public void Initialize()

{

myT = tm.StartTransaction();//开启事务处理

bt = (BlockTable)tm.GetObject(db.BlockTableId, OpenMode.ForRead, false);//获取AutoCAD块表对象

btr = (BlockTableRecord)tm.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite, false); //获取AutoCAD块表记录对象

}

DisposeAll函数如下:

public void DisposeAll()

{

bt.Close();//关闭块表

btr.Close();//关闭块表记录

myT.Dispose();//销毁事务处理

}

如果大家对上面的东西不是很清楚的话,也没有关系,因为你只要知道这是前期的准备工作,以后只要调用相关的函数就可以了。

api arx autocad_[ARX]利用AutoCAD 2005.NET API进行AutoCAD的二次开发(一)相关推荐

  1. api arx autocad_【新提醒】[ARX]利用AutoCAD 2005.NET API进行AutoCAD的二次开发(一)

    利用AutoCAD 2005.NET API进行AutoCAD的二次开发(一) --直线 大家好!从今天开始我向大家介绍如何利用AutoCAD 2005.NET API进行AutoCAD的二次开发.由 ...

  2. VB.net:VB.net编程语言学习之基于VS软件利用VB.net语言实现对SolidWorks进行二次开发的简介、案例应用之详细攻略

    VB.net:VB.net编程语言学习之基于VS软件利用VB.net语言实现对SolidWorks进行二次开发的简介.案例应用之详细攻略 目录 调用SolidWorks功能简介 1.宏录制步骤 (1) ...

  3. php+tp框架+API,【路由】利用Thinkphp路由实现API开发版本管理

    # 前言 ***** ### 在使用Thinkphp接口开发项目的程中可能会遇到这样的场景 + 准备将原有系统重构一遍,但是出于某种原因,老的系统在未来一段时间内必须和新的版本共存: + APP存在老 ...

  4. AutoCad二次开发:ObjectARX

    基于ObjectARX的开发和调试技术 柯宇  舒宣武 华南理工大学建筑设计研究院 [摘要]本文介绍了ObjectARX for AutoCAD R14和ObjectARX for AutoCAD20 ...

  5. AutoCAD.NET二次开发注意事项与开发技巧

    1.如果要在Winform中打开DWG图形文件,这个Form必须用Application.ShowModelessDialog方式显示,不然会报错(执行环境无效). 2.在非模态窗口中修改实体时,需要 ...

  6. Tekla二次开发——AutoCAD导入Tekla

    第四篇:Tekla二次开发--AutoCAD导入Tekla 关于极简工具 AutoCAD导入Tekla功能介绍 C# Tekla二次开发开发教学视频 关于极简工具 Tekla和AutoCAD二次开发插 ...

  7. vb外部调用autocad_利用VB与AutoCAD链接进行CAD二次开发

    利用VB进行AutoCAD二次开发,首先应该将VB于CAD进行链接:在编写VB代码之前,在VB编程环境中引用CAD对象库,在编写VB程序代码时,创建CAD对象启动运行CAD程序. VB与CAD进行链接 ...

  8. AutoCAD 2005命令检索

    2006-04-05 21:24:23 附录A AutoCAD 2005命令检索 AutoCAD 2005命令检索详列如下. 命 令 功 能 3D 创建三维多边形网格对象 3DARRAY 创建三维阵列 ...

  9. 利用操作系统提供的API编写防火墙

    利用操作系统提供的API编写防火墙 /* 利用操作系统提供的API编写防火墙. 该程序涉及到的API说明请访问微软的MSDN Library 代码在C++ Builder 5编译通过 如果您想和我交流 ...

最新文章

  1. 2022-2028年中国高阻隔片材基膜行业市场供需形势及前瞻分析报告
  2. quartusII中功能仿真和时序仿真的分析
  3. 将zookeeper、Tomcat、redis部署成windos服务
  4. 腾讯大数据星火计划--Angel技术沙龙 对外报名正式启动!
  5. Hibernate映射集合性能问题
  6. Matlab实现——巧用灰色关联法完成“系统分析”与“综合评价”
  7. 三菱plc分拣程序_基于三菱PLC控制的物料分拣系统设计与实现
  8. PowerDesigner中主键外键唯一键设置
  9. 京东和淘宝近十年搜索热度对比,发现顶尖者的PK规律
  10. HTML与CSS实现网页的超链接及美化
  11. mysql insert 阻塞_insert遭遇阻塞
  12. reset master和reset slave解析
  13. 星药科技李成涛:人工智能在药物研发中的应用
  14. SwiftUI如何在动画完成时得到通知
  15. STM32F767时钟树分析
  16. 【Android开发】Android概述
  17. css 画小黄人,纯CSS3画出小黄人并实现动画效果
  18. 滤波电路各种形式的分析
  19. 免费的PDF转Word工具(简单易用)
  20. 使用Ultra Libraian生成Altium Designer元件库

热门文章

  1. 带孩子们做环球旅行的读后感_带着孩子必须要做的5件事,你做了几件
  2. 蓝手指安卓模拟器中文版 V1.2.0 官方正式版
  3. 二维数组:K13185 点兵点将1
  4. 联想320s笔记本能装服务器系统,联想Ideapad 320S-14IKB笔记本U盘重装Win10系统的方法...
  5. GreenBrowser令我比较喜欢的功能
  6. 情感日记:为什么我的眼里常含泪水
  7. 超详细解析:用sql查找连续登陆7天或者登陆天数最多的用户id
  8. 《漫画算法:小灰的算法之旅》读后
  9. Python+OpenCv实现AI人脸识别身份认证系统(1)——人脸识别原理
  10. web中的图片(img/background)操作