api arx autocad_[ARX]利用AutoCAD 2005.NET API进行AutoCAD的二次开发(一)
利用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的二次开发(一)相关推荐
- api arx autocad_【新提醒】[ARX]利用AutoCAD 2005.NET API进行AutoCAD的二次开发(一)
利用AutoCAD 2005.NET API进行AutoCAD的二次开发(一) --直线 大家好!从今天开始我向大家介绍如何利用AutoCAD 2005.NET API进行AutoCAD的二次开发.由 ...
- VB.net:VB.net编程语言学习之基于VS软件利用VB.net语言实现对SolidWorks进行二次开发的简介、案例应用之详细攻略
VB.net:VB.net编程语言学习之基于VS软件利用VB.net语言实现对SolidWorks进行二次开发的简介.案例应用之详细攻略 目录 调用SolidWorks功能简介 1.宏录制步骤 (1) ...
- php+tp框架+API,【路由】利用Thinkphp路由实现API开发版本管理
# 前言 ***** ### 在使用Thinkphp接口开发项目的程中可能会遇到这样的场景 + 准备将原有系统重构一遍,但是出于某种原因,老的系统在未来一段时间内必须和新的版本共存: + APP存在老 ...
- AutoCad二次开发:ObjectARX
基于ObjectARX的开发和调试技术 柯宇 舒宣武 华南理工大学建筑设计研究院 [摘要]本文介绍了ObjectARX for AutoCAD R14和ObjectARX for AutoCAD20 ...
- AutoCAD.NET二次开发注意事项与开发技巧
1.如果要在Winform中打开DWG图形文件,这个Form必须用Application.ShowModelessDialog方式显示,不然会报错(执行环境无效). 2.在非模态窗口中修改实体时,需要 ...
- Tekla二次开发——AutoCAD导入Tekla
第四篇:Tekla二次开发--AutoCAD导入Tekla 关于极简工具 AutoCAD导入Tekla功能介绍 C# Tekla二次开发开发教学视频 关于极简工具 Tekla和AutoCAD二次开发插 ...
- vb外部调用autocad_利用VB与AutoCAD链接进行CAD二次开发
利用VB进行AutoCAD二次开发,首先应该将VB于CAD进行链接:在编写VB代码之前,在VB编程环境中引用CAD对象库,在编写VB程序代码时,创建CAD对象启动运行CAD程序. VB与CAD进行链接 ...
- AutoCAD 2005命令检索
2006-04-05 21:24:23 附录A AutoCAD 2005命令检索 AutoCAD 2005命令检索详列如下. 命 令 功 能 3D 创建三维多边形网格对象 3DARRAY 创建三维阵列 ...
- 利用操作系统提供的API编写防火墙
利用操作系统提供的API编写防火墙 /* 利用操作系统提供的API编写防火墙. 该程序涉及到的API说明请访问微软的MSDN Library 代码在C++ Builder 5编译通过 如果您想和我交流 ...
最新文章
- 2022-2028年中国高阻隔片材基膜行业市场供需形势及前瞻分析报告
- quartusII中功能仿真和时序仿真的分析
- 将zookeeper、Tomcat、redis部署成windos服务
- 腾讯大数据星火计划--Angel技术沙龙 对外报名正式启动!
- Hibernate映射集合性能问题
- Matlab实现——巧用灰色关联法完成“系统分析”与“综合评价”
- 三菱plc分拣程序_基于三菱PLC控制的物料分拣系统设计与实现
- PowerDesigner中主键外键唯一键设置
- 京东和淘宝近十年搜索热度对比,发现顶尖者的PK规律
- HTML与CSS实现网页的超链接及美化
- mysql insert 阻塞_insert遭遇阻塞
- reset master和reset slave解析
- 星药科技李成涛:人工智能在药物研发中的应用
- SwiftUI如何在动画完成时得到通知
- STM32F767时钟树分析
- 【Android开发】Android概述
- css 画小黄人,纯CSS3画出小黄人并实现动画效果
- 滤波电路各种形式的分析
- 免费的PDF转Word工具(简单易用)
- 使用Ultra Libraian生成Altium Designer元件库
热门文章
- 带孩子们做环球旅行的读后感_带着孩子必须要做的5件事,你做了几件
- 蓝手指安卓模拟器中文版 V1.2.0 官方正式版
- 二维数组:K13185 点兵点将1
- 联想320s笔记本能装服务器系统,联想Ideapad 320S-14IKB笔记本U盘重装Win10系统的方法...
- GreenBrowser令我比较喜欢的功能
- 情感日记:为什么我的眼里常含泪水
- 超详细解析:用sql查找连续登陆7天或者登陆天数最多的用户id
- 《漫画算法:小灰的算法之旅》读后
- Python+OpenCv实现AI人脸识别身份认证系统(1)——人脸识别原理
- web中的图片(img/background)操作