没有合适的资源?快使用搜索试试~ 我知道了~
首页AutoCAD .NET API进行AutoCAD二次开发基础实例代码
AutoCAD .NET API进行AutoCAD二次开发基础实例代码,包括: 获取用户输入、要求用户输入点、获取选择集、获取选择集(带过滤)、创建一个新层、创建一个圆、创建一个块定义(块表记录)、创建一个块引用、读取对象的属性、通过ObjectId打开对象、类型识别和转换、实体对象的属性、添加扩展数据XDATA、获取扩展数据XDATA、在命名对象词典中添加数据、获取命名对象词典中的数据、添加数据到数据库对象的扩展词典中、获取数据库对象的扩展词典中的数据。
资源详情
资源评论
资源推荐
using System;
using System.Collections.Generic;
using System.Text;
using Autodesk.AutoCAD.EditorInput ;
using Autodesk.AutoCAD.Runtime ;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices ;
namespace CH02
{
public class Class1
{
//--------------------------------------------------------------
// 功能:获取用户输入
// 作者:
// 日期:2007-7-20
// 说明:
//
//----------------------------------------------------------------
[CommandMethod("GetData")]
public void GetData()
{
//获取 Editor 对象
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
//获取整型数据
PromptIntegerOptions intOp = new PromptIntegerOptions("请输入多边形的边数:");
PromptIntegerResult intRes;
intRes = ed.GetInteger(intOp);
//判断用户输入
if (intRes.Status == PromptStatus.OK)
{
int nSides = intRes.Value;
ed.WriteMessage("多边形的边数为:" + nSides);
} if (intRes.Status == PromptStatus.Cancel)
{
ed.WriteMessage("用户按了取消 ESC 键/n" );
}
}
//--------------------------------------------------------------
// 功能:要求用户输入点
// 作者:
// 日期:2007-7-20
// 说明:
//
//----------------------------------------------------------------
[CommandMethod("PickPoint")]
static public void PickPoint()
{
//获取 Editor 对象
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
PromptPointOptions promptPtOp = new PromptPointOptions("选择一个点:");
//指定的基点,如果指定了该点,则在选择的时候绘制一条橡皮线。
promptPtOp.BasePoint = new Autodesk.AutoCAD.Geometry.Point3d(0, 0, 0);
PromptPointResult resPt;
resPt = ed.GetPoint(promptPtOp);
if (resPt.Status == PromptStatus.OK)
{
ed.WriteMessage("选择的点为:" + resPt.Value.ToString());
}
}
//--------------------------------------------------------------
// 功能:获取选择集
// 作者:
// 日期:2007-7-20
// 说明:
//
//----------------------------------------------------------------
[CommandMethod("SelectEnt")]
static public void SelectEnt()
{
//获取 Editor 对象
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
PromptSelectionOptions selectionOp = new PromptSelectionOptions();
PromptSelectionResult ssRes = ed.GetSelection(selectionOp);
if (ssRes.Status == PromptStatus.OK)
{
SelectionSet SS = ssRes.Value;
int nCount = SS.Count;
ed.WriteMessage("选择了{0}个实体" , nCount);
}
}
//--------------------------------------------------------------
// 功能:获取选择集(带过滤)
// 作者:
// 日期:2007-7-20
// 说明:
//
//----------------------------------------------------------------
[CommandMethod("SelectEnt2")]
static public void SelectEnt2()
{
//获取 Editor 对象
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
// 定义选择集选项
PromptSelectionOptions selectionOp = new PromptSelectionOptions();
//创建选择集过滤器,只选择块对象
TypedValue[] filList = new TypedValue[1];
filList[0] = new TypedValue((int)DxfCode.Start, "INSERT");
SelectionFilter filter = new SelectionFilter(filList);
PromptSelectionResult ssRes = ed.GetSelection(selectionOp, filter);
if (ssRes.Status == PromptStatus.OK)
{
SelectionSet SS = ssRes.Value;
int nCount = SS.Count;
ed.WriteMessage("选择了{0}个块" , nCount);
}
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Geometry;
namespace CH03
{
public class Class1
{
//--------------------------------------------------------------
// 功能:创建一个新层
// 作者:
// 日期:2007-7-20
// 说明:
//
//----------------------------------------------------------------
[CommandMethod("CreateLayer")]
public void CreateLayer()
{
ObjectId layerId;
Database db = HostApplicationServices.WorkingDatabase;
//开始一个事务
Transaction trans = db.TransactionManager.StartTransaction();
try
{
//首先取得层表
LayerTable lt = (LayerTable)trans.GetObject(db.LayerTableId, OpenMode.ForWrite);
//检查 MyLayer 层是否存在
if (lt.Has("MyLayer"))
{
layerId = lt["MyLayer"];
}
else
{
//如果 MyLayer 层不存在,就创建它
LayerTableRecord ltr = new LayerTableRecord();
ltr.Name = "MyLayer"; //设置层的名字
layerId = lt.Add(ltr);
trans.AddNewlyCreatedDBObject(ltr, true);
}
//提交事务
trans.Commit();
}
catch (Autodesk.AutoCAD.Runtime.Exception e)
{
//放弃事务
trans.Abort();
}
finally
{
// 显式地释放
trans.Dispose();
}
}
//--------------------------------------------------------------
// 功能:创建一个圆
// 作者:
剩余17页未读,继续阅读
bytown
- 粉丝: 1
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 2023年中国辣条食品行业创新及消费需求洞察报告.pptx
- 2023年半导体行业20强品牌.pptx
- 2023年全球电力行业评论.pptx
- 2023年全球网络安全现状-劳动力资源和网络运营的全球发展新态势.pptx
- 毕业设计-基于单片机的液体密度检测系统设计.doc
- 家用清扫机器人设计.doc
- 基于VB+数据库SQL的教师信息管理系统设计与实现 计算机专业设计范文模板参考资料.pdf
- 官塘驿林场林防火(资源监管)“空天地人”四位一体监测系统方案.doc
- 基于专利语义表征的技术预见方法及其应用.docx
- 浅谈电子商务的现状及发展趋势学习总结.doc
- 基于单片机的智能仓库温湿度控制系统 (2).pdf
- 基于SSM框架知识产权管理系统 (2).pdf
- 9年终工作总结新年计划PPT模板.pptx
- Hytera海能达CH04L01 说明书.pdf
- 数据中心运维操作标准及流程.pdf
- 报告模板 -成本分析与报告培训之三.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论8