您的位置:首页 > 其它

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐