zoukankan      html  css  js  c++  java
  • autocad.net中各种id、实体、表记录间的访问代码,持续更新中……

    获取图纸空间中所有块参照和其对应的块定义对象

    using (Transaction trans = db.TransactionManager.StartTransaction())
    {
        //获取块表
        BlockTable bt = (BlockTable)trans.GetObject(db.BlockTableId, OpenMode.ForRead);
        //取得图纸空间块表记录
        BlockTableRecord btr = (BlockTableRecord)trans.GetObject(bt[BlockTableRecord.PaperSpace], OpenMode.ForRead);
        //在图纸空间块表记录中循环查找每个块参照ID
        foreach (ObjectId brId in btr)
        {
                //打开对应的块参照
                BlockReference br = (BlockReference)trans.GetObject(brId, OpenMode.ForRead);
                //获取当前块参照对应的的块表记录,即这个块参照对应的块定义对象
                BlockTableRecord btr0 = (BlockTableRecord)br.BlockTableRecord.GetObject(OpenMode.ForRead);
        }
    }

    已知块参照id取得块参照实体:

    //取得块参照
    BlockReference br = (BlockReference)id.GetObject(OpenMode.ForRead, false);

    已知块参照实体取得块表记录:

    //取得块表记录
    BlockTableRecord btr0 = (BlockTableRecord)br.BlockTableRecord.GetObject(OpenMode.ForRead, false);

     向DB增加有名对象词典

            public static ObjectId AddNamedDictionary(this Database db, string searchKey)
            {
                ObjectId id=ObjectId.Null; // 存储添加的命名字典项的Id
                //打开数据库的有名对象字典
                DBDictionary dicts=(DBDictionary)db.NamedObjectsDictionaryId.GetObject(OpenMode.ForRead);
                if (!dicts.Contains(searchKey)) // 如果不存在指定关键字的字典项
                {
                    DBDictionary dict=new DBDictionary(); //新建字典项 
                    dicts.UpgradeOpen(); // 切换有名对象字典为写
                    id = dicts.SetAt(searchKey, dict);//设置新建字典项的搜索关键字
                    dicts.DowngradeOpen(); // 为了安全,将有名对象字典切换成读的状态
                    //将新建的字典项添加到事务处理中
                    db.TransactionManager.AddNewlyCreatedDBObject(dict, true);
                }
                return id; // 返回添加的字典项的Id
            }

    获取DB中指定名称的词典对象ID

    ObjectId id = dicts.GetAt("DrawingNumberAndVersionNumberS");

     ObjectId不能直接赋值null,需要下面这样操作:

    ObjectId id = ObjectId.Null;
  • 相关阅读:
    c++ 反汇编 堆变量
    glibc源码逆向——fread函数
    glibc源码逆向——fopen
    buu查漏补缺刷题(3)
    gyctf_2020_borrowstack
    实现用句柄表反调试
    pwnable_orw 学习shellcraft新花样
    buu查漏补缺刷题(2)
    gdb调试源码
    buu查漏补缺刷题(1)
  • 原文地址:https://www.cnblogs.com/swtool/p/SWTOOL_00020.html
Copyright © 2011-2022 走看看