用C#编写AutoCAD中的直线
来源:互联网 发布:seo吧 编辑:程序博客网 时间:2024/06/10 15:28
1)打开VS2005,选择Visual C#--》类库--》名称为:Line2,如下:
图(1) 新建C# 的类库
2)为项目Line2引用三个dll文件,分别为acdbmgd.dll、acmgd.dll、DotNetARX.dll。其中acdbmgd.dll、acdmgd.dll是AutoCCAD托管封装类,DotNetARX.dll是一个用于.net开发AutoCAD程序的类库。前两个dll在AutoCAD的安装文件里可以找到,DotNetARX.dll可以在网上下一个,我用的是DotNetARX6.0。acdbmgd.dll、acdmgd.dll的属性有一个“复制到本地“:False。
图(2)添加三个dll引用
图(3)将cdbmgd.dll、acdmgd.dll的”复制本地“选为False
3)禁用LoaderLock。点击”调试“--》异常--》 Managed Debugging Assistans-->去掉”LoaderLock“前面的对勾。
图(4)禁用LoaderLock
4)启用外部程序:C:\Program Files\AutoCAD 2006\acad.exe。
右击项目”Line2“--》属性--》调试--》勾选”启用外部程序“。如下:
图(5)启用外部的acad.exe
5) C#编写的代码如下:
using System;using System.Collections.Generic;using System.Text;using Autodesk.AutoCAD.DatabaseServices;using Autodesk.AutoCAD.Geometry;using Autodesk.AutoCAD.Runtime;namespace Line2{ public class Line2 { [CommandMethod("FirstLine")] public static void FirstLine() { //获取当前活动图形数据库 Database db = HostApplicationServices.WorkingDatabase; Point3d startPoint = new Point3d(500, 500, 0); //直线起点 Point3d endPoint = new Point3d(700, 500, 0); //直线终点 Line line = new Line(startPoint, endPoint); //新建一直线对象 //定义一个指向当前数据库的事务处理,以添加直线 using (Transaction trans = db.TransactionManager.StartTransaction()) { BlockTable bt = (BlockTable)trans.GetObject(db.BlockTableId, OpenMode.ForRead); //以读方式打开块表. //以写方式打开模型空间块表记录. BlockTableRecord btr = (BlockTableRecord)trans.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite); //将图形对象的信息添加到块表记录中,并返回ObjectId对象. btr.AppendEntity(line); trans.AddNewlyCreatedDBObject(line, true); //把对象添加到事务处理中. trans.Commit(); //提交事务处理 } } }}
6)按F5键启动调试,在AutoCAD的命令行窗口输入命令:
netload
找到Line2.dll(一般在工程的Debug目录里),打开Line2.dll,在AutoCAD的命令行窗口输入自定义的命令:
FirstLine
效果如下:
图(6)输入netload,加载Line2.dll
图(7)输入自定义的命令FirstLine,画一条直线
- 用C#编写AutoCAD中的直线
- AutoCAD .Net 创建直线Line
- 用C#进行AutoCAD的二次开发
- 用vb编写一个直线拟合程序
- AutoCAD.NET创建对象之绘制直线
- AutoCAD .Net 设置UCS与直线对齐
- autocad C# 开发
- C#启动AutoCAD
- C#创建Autocad实例
- c#对AutoCAD二次开发
- C#调用AutoCAD二次开发
- 教你如何用VB.NET编写AutoCAD中的变色的温度计
- AutoCAD中的ScreenShot工具
- [Lisp] AutoCAD中的分形树
- 用c#开发一个类似AutoCAD功能的程序
- 《基于Visual C#的AutoCAD开发及其在工程中的应用》目录
- 《基于Visual C#的AutoCAD开发及其在工程中的应用》下载地址
- 基于Visual C#的AutoCAD 开发 及其在工程中的应用
- 快速排序,堆排序和归并排序谁更快?
- HDU4751 -(广义孪生素数猜想)
- FireFox语言包安装
- object-c编程tips-kvokvc浅析
- 函数压栈顺序 -- C
- 用C#编写AutoCAD中的直线
- Android动画机制全解析
- ASP.NET页面间的传值
- 自定义ListView,头部视图悬停
- POJ 3164 Command Network 最小树形图
- 2014.8.5 - 多校5
- 2014.8.6学习笔记
- Formatting Text - UVa 709 POJ 1093 dp
- hibernate在不联网时不能解析配置文件解决方案