找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1672|回复: 4

[分享] 获得图形数据库里DWF定义

[复制链接]

已领礼包: 6个

财富等级: 恭喜发财

发表于 2013-4-19 21:15:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
新人报道,恭祝晓东CAD重返人间。来晚了,才知道。帖段代码聊表心意。

每个DWF的定义都存储在词典名为ACAD_DWFDEFINITIONS的命名对象词典下。下面代码通过遍历ACAD_DWFDEFINITIONS词典获得全部的DWF定义。

[pcode=csharp,true][CommandMethod("DWFUnderlayList")]
static public void DWFUnderlayList()
{
    Document doc = Application.DocumentManager.MdiActiveDocument;
    Database db = doc.Database;
    Editor ed = doc.Editor;

    using (Transaction tr =
                    db.TransactionManager.StartTransaction())
    {
        DBDictionary nod = (DBDictionary)tr.GetObject(
                db.NamedObjectsDictionaryId, OpenMode.ForRead);

        string defDictKey = UnderlayDefinition.GetDictionaryKey(
                                            typeof(DwfDefinition));

        if (nod.Contains(defDictKey))
        {
            DBDictionary dwfDict =
                        (DBDictionary)tr.GetObject(
                           nod.GetAt(defDictKey), OpenMode.ForRead);

            foreach (DBDictionaryEntry entry in dwfDict)
            {
                DwfDefinition dwfDef = (DwfDefinition)tr.GetObject(
                                    entry.Value, OpenMode.ForRead);

                ed.WriteMessage(dwfDef.ActiveFileName + "\n");
            }
        }
        else
        {
            ed.WriteMessage("No DWF underlay in the drawing file\n");
        }

        tr.Commit();
    }
}[/pcode]

评分

参与人数 1贡献 +3 收起 理由
fsxm + 3 很给力!经验;技术要点;资料分享奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 6个

财富等级: 恭喜发财

 楼主| 发表于 2013-4-19 21:17:06 | 显示全部楼层

[CommandMethod("DWFUnderlayList")]
static public void DWFUnderlayList()
{
    Document doc = Application.DocumentManager.MdiActiveDocument;
    Database db = doc.Database;
    Editor ed = doc.Editor;

    using (Transaction tr =
                    db.TransactionManager.StartTransaction())
    {
        DBDictionary nod = (DBDictionary)tr.GetObject(
                db.NamedObjectsDictionaryId, OpenMode.ForRead);

        string defDictKey = UnderlayDefinition.GetDictionaryKey(
                                            typeof(DwfDefinition));

        if (nod.Contains(defDictKey))
        {
            DBDictionary dwfDict =
                        (DBDictionary)tr.GetObject(
                           nod.GetAt(defDictKey), OpenMode.ForRead);

            foreach (DBDictionaryEntry entry in dwfDict)
            {
                DwfDefinition dwfDef = (DwfDefinition)tr.GetObject(
                                    entry.Value, OpenMode.ForRead);

                ed.WriteMessage(dwfDef.ActiveFileName + "\n");
            }
        }
        else
        {
            ed.WriteMessage("No DWF underlay in the drawing file\n");
        }

        tr.Commit();
    }
}




论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6个

财富等级: 恭喜发财

 楼主| 发表于 2013-4-19 21:19:03 | 显示全部楼层
这的代码量显有些不适应,上面的这个如何?请站长看看。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 22个

财富等级: 恭喜发财

发表于 2014-1-3 05:02:11 | 显示全部楼层
这是哪种代码?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-1-5 13:10:50 来自手机 | 显示全部楼层
没看明白这个是操作dwf文件还是dwg文件?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-12-19 00:20 , Processed in 0.413114 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表