提取DWG图纸中的图元信息

使用RealDWG加载DWG格式图纸文件参考:http://t.csdn.cn/QxXhf

根据不同的使用需求,可做不同方式的各类型图元提取,话不多说直接上代码;

using (Transaction acTrans = db.TransactionManager.StartTransaction())
{
    //解锁所有图层
    using (LayerTable aclt = (LayerTable)acTrans.GetObject(db.LayerTableId, OpenMode.ForRead))
    {
        foreach (ObjectId ltrId in aclt)
        {
            using (LayerTableRecord acltr = (LayerTableRecord)acTrans.GetObject(ltrId, OpenMode.ForWrite))
            {
                if (acltr.IsLocked)
                {
                    acltr.IsLocked = false;
                }
            }
        }
    }

    //按照布局
    using (DBDictionary layoutDict = (DBDictionary)acTrans.GetObject(db.LayoutDictionaryId, OpenMode.ForRead))
    {
        foreach (DBDictionaryEntry lytEnt in layoutDict)
        {
            string layoutName = lytEnt.Key;
            using (Layout layout = (Layout)acTrans.GetObject(lytEnt.Value, OpenMode.ForRead))
            {
                using (BlockTableRecord acBlkRecord = (BlockTableRecord)acTrans.GetObject(layout.BlockTableRecordId, OpenMode.ForRead, false))
                {
                    ObjectIdCollection btrObjIds = new ObjectIdCollection();
                    // 根据绘图次序返回图元
                    var orderTable = acBlkRecord.GetDrawOrderTable();
                    if (orderTable != null)
                    {
                        try
                        {
                            btrObjIds = orderTable.GetFullDrawOrde
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值