CAD二次开发之“添加对象到模型空间”

模型空间是一条名为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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值