CAD二次开发之“添加对象到模型空间”
2011-05-08 11:53
309 查看
模型空间是一条名为BlockTableRecord.ModelSpace的特殊块表记录(添加到其中的对象会在模型空间图纸中绘制出其形状),
将对象添加到模型空间的方法与将对象添加到块表记录的方法一样。
using System;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.Runtime;
[assembly: CommandClass(typeof(Sample.AddToModelSpace))]
namespace Sample
{
class AddToModelSpace
{
[CommandMethod("ToModelSpace")]
public void ModelSpace()
{
Database db = HostApplicationServices.WorkingDatabase;
DBText txt = new DBText(); txt.Position = new Point3d();
txt.TextString = "BimCAD.org"; ToModelSpace(txt, db);
}
/// <summary>
/// 将一个图形对象加入到指定的Database的模型空间
/// </summary>
/// <param name="ent">实体对象</param>
/// <param name="db">数据库</param>
/// <returns></returns>
public static ObjectId ToModelSpace(Entity ent, Database db)
{
ObjectId entId; 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);
entId = btr.AppendEntity(ent); trans.AddNewlyCreatedDBObject(ent, true); trans.Commit();
}
return entId;
}
}
} 加载程序后运行"ToModelSpace"模型空间显示如下:
end
将对象添加到模型空间的方法与将对象添加到块表记录的方法一样。
using System;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.Runtime;
[assembly: CommandClass(typeof(Sample.AddToModelSpace))]
namespace Sample
{
class AddToModelSpace
{
[CommandMethod("ToModelSpace")]
public void ModelSpace()
{
Database db = HostApplicationServices.WorkingDatabase;
DBText txt = new DBText(); txt.Position = new Point3d();
txt.TextString = "BimCAD.org"; ToModelSpace(txt, db);
}
/// <summary>
/// 将一个图形对象加入到指定的Database的模型空间
/// </summary>
/// <param name="ent">实体对象</param>
/// <param name="db">数据库</param>
/// <returns></returns>
public static ObjectId ToModelSpace(Entity ent, Database db)
{
ObjectId entId; 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);
entId = btr.AppendEntity(ent); trans.AddNewlyCreatedDBObject(ent, true); trans.Commit();
}
return entId;
}
}
} 加载程序后运行"ToModelSpace"模型空间显示如下:
end
相关文章推荐
- CAD二次开发之“添加对象到模型空间”
- cad二次开发--添加对象到模型空间中
- 基于.NET的CAD二次开发学习笔记二:AutoCAD .NET中的对象
- 资源空间新添加《Visual C++ 游戏开发经典案例详解》PDF文档,单一PDF文件,带完整书签。
- 【FreeMarker】【程序开发】数据模型,对象包装
- 黑莓OS10开发(4) 在QML中添加对象(上)
- 从 .NET 开发人员的角度理解 Excel 对象模型 (From MSDN)
- CAD二次开发(C#)之Document 对象
- VS.NET2003 开发环境 生成样式表 和 自动书写HTML对象模型
- ZZ:使用.NET语言开发Silverlight应用程序入门(二):界面和对象模型
- 安卓开发_浅谈Fragment之事务添加Fragment对象
- SP2010开发和VS2010专家"食谱"--第七章节--使用客户端对象模型(1)--Creating a list using a Managed OM
- 源码-JavaScript&jQuery交互式前端开发-第5章-文档对象模型-章节示例
- SharePoint 服务器端对象模型操作用户组(创建/添加/删除)
- BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第11章节--为Office和SP解决方式开发集成Apps Office的JavaScript对象模型
- 【iOS开发-60】案例学习:多组数据的tableView设置、添加右側组索引、多层数据模型设置以及valueForKeyPath
- 使用 Excel 2003 对象模型添加 XML 数据集成 (From MSDN)
- ZZ:使用.NET语言开发Silverlight应用程序入门(二):界面和对象模型
- ios开发 数组中添加空对象
- SP2010开发和VS2010专家"食谱"--第七章节--使用客户端对象模型(2)--Handling exceptions