CAD二次开发(C#)第二个例子
来源:互联网 发布:无线音响 知乎 编辑:程序博客网 时间:2024/05/17 21:37
设置参考第一个例子。引入必要的命名空间
第二个例子:交互提示选择一个直线的起始点和终点,然后绘制一条以选择的两个点为始终的直线
代码如下,尽量添加了注释。
using System;using System.Collections.Generic;using System.Linq;using System.Text;using Autodesk.AutoCAD.ApplicationServices;using Autodesk.AutoCAD.EditorInput;using Autodesk.AutoCAD.DatabaseServices;using Autodesk.AutoCAD.Runtime;using Autodesk.AutoCAD.Geometry;namespace FirstCAD{ public class Class1 { [CommandMethod("CreateLine")]//设计的新命令 public void CreateLine()//CreateLine命令所调用的函数 { //打开数据库 Database db = HostApplicationServices.WorkingDatabase; //获取当前的编辑器输入类 Editor ed = Application .DocumentManager .MdiActiveDocument .Editor ; //点交换输入类;提示选择起始点 PromptPointOptions ppo = new PromptPointOptions("\n请选择直线的起始点"); //点交互输入类:提示选择终点 PromptPointResult ressp = ed.GetPoint(ppo) ; //获取点交互输入类的结果 PromptPointOptions ppe = new PromptPointOptions("\n请选择直线的终点"); PromptPointResult resep = ed.GetPoint(ppe); //点交互类的结果转换为Point3d坐标点 Point3d startPoint = ressp .Value ; Point3d endPoint = resep .Value ; //构建一个直线的实例 Line oldLine = 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); //在块表记录中添加创建的直线实体 btr.AppendEntity(oldLine); //告知数据库新对象加入 trans.AddNewlyCreatedDBObject(oldLine, true); //任务提交 trans.Commit(); } } }}
编译之后,利用NETLOAD命令,载入生成的DLL,之后输入CreateLine命令,会分别提示选择起始点和终点,选择之后,会在模型空间中绘制一条直线。
选择直线起始点
选择直线终点
最终效果
阅读全文
0 0
- CAD二次开发(C#)第二个例子
- CAD二次开发(C#)第一个例子
- 第二个例子(完整)
- CAD二次开发(C#)之Application 对象
- CAD二次开发(C#)之Document 对象
- AJAX第二个例子
- C#CAD二次开发读取CAD表格数据
- Cad二次开发(一)
- Cad二次开发(二)
- Cad二次开发(三)
- 栈的第二个例子
- phalcon第二个例子invo
- Servlet入门第二个例子
- Spring入门第二个例子
- auto CAD 二次开发 c#.net 之JIG画多段线(polyline)
- CAD二次开发(C#)之添加文字样式
- 编译LDD的第二个例子scull
- Android-NDK开发之第二个例子
- hibernate标准查询
- 基于CXF框架下的SOAP Webservice服务端接口开发
- 欢迎使用CSDN-markdown编辑器
- 3个简单类练习
- laravel文件上传
- CAD二次开发(C#)第二个例子
- JZOJ 5184. 【NOIP2017提高组模拟6.29】Gift
- 动态网页开发基础
- SpringMVC-3之拦截器
- CF #420 A. Okabe and Future Gadget Laboratory
- NAT与代理服务器
- AndroidThings学习笔记--熟悉RPI3硬件
- 四、ArrayList和LinkedList内部的实现大致是怎样的?
- [LeetCode] 129. Sum Root to Leaf Numbers