ObjectARX编程(八) --------有名对象字典、用户字典和字典中的对象

2023-11-16

在AutoCAD数据库中,对象字典是字典类型数据库对象的总称。按其层次关系可分为两类,一是有AutoCAD数据库直接管理的第一层对象字典; 二是有第一层对象字典管理的第二层对象字典。为了便于区别,我们把第一层对象字典称为有名对象字典,用于在应用程序中定义的字典称为用户字典,多线样式字典、组字典都属于第二类对象字典。
对象字典的第三层位字典中的对象。如组是组字典中的对象,多线样式是多线样式中的对象。在用户对象字典中,可以包含任何类型的对象,如实体对象、自定义对象和数据对象等。在有名对象字典中,各用户字典间通过字典名称来标识;
向字典中添加条目时,字典自动为该条目附加一个反应器,如果该对象被擦除,字典被通知,并将它从字典中除去。
对象字典是AutoCAD图形数据库的组成部分之一,它由三个部分组成:
组字典(Group Dictionary)、多线样式字典(Mline style Dictionary)、用户定义对象字典
组和组字典
组是实体等数据对象的有序集合,值组字典的成员。从层次关系来看,组是管理其所包含对象的容器,而组字典是管理组对象的容器。
组字典的操作和使用技术
1>. 获取数据库中指向组字典的指针
A. Acad::ErrorStatus getGroupDictionary(AcDbDictionary*& pDict,AcDb::OpenMode mode);
//从对象字典中获得
B. Acad::ErrorStatus getAt(const char* entryName,AcDbObject* newValue,AcDbObjectId& entryObj)const;
2>. //将组加入组字典中 srchKey: 组名; newValue: 为加入到组字典中的新的组的指针;
// retObject为函数返回的已加入到组字典中组对象的ID
Acad::ErrorStatus setAt(const char* srchKey,AcDbObject* newValue,AcDbObjectId& retObjectId);
3>. AcDbGroup类常用的成员函数
Acad::ErrorStatus append(AcDbObject id); //将对象加入组中
Acad::ErrorStatus remove(AcDbObjectId id); //移去组中id表示的对象
Acad::ErrorStatus setColor(const AcDmColor& color); //设置颜色
Acad::ErrorStatus setDescription(char* grpDesc); //设置组说明
Acad::ErrorStatus setLinetype(const char* newVal); //设置线型
Acad::ErrorStatus setLayer(const char* newVal); //设置组中实体
Acad::ErrorStatus setVisibility(AcDb::Visibility newBal); //设置可见
4>. 组字典的操作步骤
① 通过getGroupDictionary()函数获得指向图形数据库组字典的指针。
② 用组字典构造函数AcDbGroup() 创建组对象。
③ 用AcDbDictionary类的成员函数setAt()将所建立的组加入字典中。
④ 调用有关函数设置组的属性,如设置线型、颜色、图层、可见性等。
用户对象字典的操作和使用技术
在有名对象字典中定义一个用户字典的实质是创建一个AcDbdictionary的对象,并将它加入到有名对象字典中。其步骤如下:
a.调用ACDBDatabase类的成员函数getNamedObjectDictionary()得到有名对象字典的指针。
b. 定义新的用户对象字典并加入有名对象字典中。
AcDbDictionary *pNameObj; //定义指向有名对象字典的指针
acdbHostApplicationServices()->workingDatabase()->getNamedObjectDictionary(pNamedObj,AcDb::kForWrite);
AcDbDictionary *pDict = new AcDbDictionary;
AcDbObjectId dictId;
pNamedObject->setAt("TEST_DICT",pDcit,DictId);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ObjectARX编程(八) --------有名对象字典、用户字典和字典中的对象 的相关文章

  • 大厂常见笔试题 滑动窗口内数的和

    大厂常见笔试题 我以为出一个很难的题 结果出了一个基础题 给你一个大小为n的整型数组和一个大小为k的滑动窗口 将滑动窗口从头移到尾 输出从开始到结束每一个时刻滑动窗口内的数的和 样例 对于数组 1 2 7 8 5 长度为n 滑动窗口大小k
  • TCP/IP编程之SO_REUSEADDR和SO_REUSEPORT套接字选项

    基本概念 SO REUSEADDR套接字选项能起到以下4个不同的功用 1 SO REUSEADDR允许启动一个监听服务器并捆绑众所周知端口 即使以前建立的该端口用作它们的本地端口的连接仍存在 这个条件通常是这样碰到的 a 启动一个监听服务器
  • 滤波电容的选择

    滤波电容的选择 理论部分 参考案例 一 参考案例 二 其他案例 理论部分 滤波电容主要看容值和耐压值 电容尺寸 容值x耐压值 电容价格 容值x耐压值 电解和钽电容耐压值要x2倍使用 陶瓷电容至少x1 5倍使用 电容选择的逻辑是频率越高 电容
  • 编译Linux内核的一些报错

    内核版本3 18 6 编译目标架构为x86 64 硬件实际架构为x86 64 1 error code model kernel does not support PIC mode 修改 kernel path arch x86 Makef
  • 微信小程序-获取用户手机号码

    1 在获取手机号码之前 要先进行登陆 使用wx login进行登录 登录成功会返回一个code 将code传给后台 获取登录密钥session key等信息 将这些信息存入data 2 使用type getPhoneNumber 的butt
  • 快速fcm matlab,Matlab中的FCM算法代码及中文详解

    Matlab中的FCM算法代码及中文详解 转自 http xiaozu renren com xiaozu 106512 336681453 function center U obj fcn FCMClust data cluster n
  • 【日积月累】后端刷题日志

    刷题日志 说说对Java的理解 JAVA中抽象类和接口之间的区别 Java中的泛型 和equals 的区别 八种基本数据类型与他们的包装类 在一个静态方法内调用一个非静态成员为什么是非法的 静态方法与实例方法有何不同 重载与重写 深拷贝浅拷
  • Sqli-labs 博客目录

    之前学习了一遍 sqli labs 这是巩固复习一遍 代码全部手敲 加深印象 Sqli labs 博客目录 Sqli labs Less01 04 基于错误的sql注入 GET Sqli labs Less05 06 报错型sql盲注 GE
  • 第12章 K8s进阶篇-细粒度权限控制

    12 1 什么是RBAC 负责k8s整个集群控制的 不同人员权限的管控 开发 测试 管理员等 12 2 RBAC配置解析 12 3 RBAC常用配置示例 参考官方文档 使用 RBAC 鉴权 Kubernetes 正常是通过yaml文件创建
  • 替代空格

    include
  • host文件的工作原理及应用

    host文件的工作原理及应用 Hosts文件是一个用于存储计算机网络中节点信息的文件 它可以将主机名映射到相应的IP地址 实现DNS的功能 它可以由计算机的用户进行控制 一 Hosts文件基本介绍 Hosts文件的存储位置在不同的操作系统中
  • java 16进制与字符串互相转

    字符串转换成为16进制 无需Unicode编码 param str return public static String str2HexStr String str char chars 0123456789ABCDEF toCharAr
  • 各种字符串Hash函数比较

    转自 beyond the void 常用的字符串Hash函数还有ELFHash APHash等等 都是十分简单有效的方法 这些函数使用位运算使得每一个字符都对最后的函数值产生影响 另外还有以MD5和SHA1为代表的杂凑函数 这些函数几乎不
  • get和post详解

    Get和post是表单提交数据的两种基本方式 get请求数据通过域名后缀url传送 用户可见 不安全 post请求数据通过在请求报文正文里传输 相对比较安全 get是通过url传递表单值 post通过url看不到表单域的值 get传递的数据
  • OceanBase 4.1解读:我们想给用户一个开箱即用的OceanBase部署运维工具

    欢迎访问 OceanBase 官网获取更多信息 https www oceanbase com 关于作者 肖磊 OceanBase 产品专家 负责 OceanBase 运维管控体系产品规划与设计 包括安装部署工具 OBD OAT 运维管控平
  • 小程序领取微信卡券

    小程序领取微信卡券 获取 access token api ticket singuare等完整版 转载自 感谢这位作者 https www cnblogs com w53064 p 9771232 html 返回主页 啊傑Plus 博客园
  • Java实现,手写二叉树

    一 基本概念 二叉树 每个节点最多有两个子树的结构 满二叉树 除了最后一层没有任何节点外 每一层的所有节点都有两个子节点的二叉树 完全二叉树 结构与满二叉树类似 不同点在于最后一层可以不满 但最后一层的节点必须连续集中再最左边 二叉搜索树
  • Redis高级的相关问题总结

    1 rdb和aof有什么区别 你们在工作中如何使用redis的持久化策略 1 rdb定时对整个内存做快照 aof记录每一次执行的命令 2 rdb两次备份之间会丢失数据 aof取决于刷盘策略 相对比较完整 3 rdb宕机恢复速度快 aof恢复
  • XSL-FO Blocks(块)

    XSL FO 的输出位于块区域中 XSL FO 页面 流以及块 内容 块 会 流 入 页面 中 然后输出到媒介 XSL FO 输出通常被嵌套在

随机推荐

  • 监控神器-普罗米修斯Prometheus的安装

    最近看了些AIOPS的资料 对于里面提及的一个普罗米修斯Prometheus起了兴趣 首先是联想到异形 哈哈 去看了一下 普罗米修斯还真是厉害 而且还是开源的 真是搬砖党的福音 功能 在业务层用作埋点系统 Prometheus支持多种语言
  • 面向对象和面向过程的区别,Java为什么说它性能低

    面向对象相比于面向过程 面向对象的代码延展性更好 拿上面的例子举例如果现在要把存储的对象不是大象了而是狮子 那么很明显 面向过程要的方法要所有大象为狮子 面向对象的方法只要改一下关于这个改动的方法也就是 存储 内容 不仅仅是修改 添加删除等
  • C++:模拟实现string类

    文章目录 Iterator类 capacity类 Element access 类 Modifiers类 String operations类 类外成员函数 头文件总括 本篇主要介绍模拟实现string类 string中有相当多的内容 这里
  • AIX6.1 源码编译方式安装 zabbix3.4 代理

    1 aix机器上创建zabbix用户 mkuser zabbix 2 上传zabbix 3 4 11 targz 3 解压 gunzip zabbix 3 4 11 tar gz tar xvf zabbix 3 4 11 tar 4 安装
  • C语言实现DFT计算

    文章目录 一 DFT计算公式 二 DFT程序实现 一 DFT计算公式 这里就不对DFT概念进行叙述 直接上计算公式 其中N为DFT点数 公式如此 但是在程序中并非如此运算 而是利用欧拉公式对DFT的计算公式进行了转化 转换后公式变为 利用转
  • 为什么在控制台输入var name = Symbol();会报错?VM3436:1 Uncaught TypeError: Cannot convert a Symbol value to a str

    问题复现 var name Symbol VM3436 1 Uncaught TypeError Cannot convert a Symbol value to a string 解释每一个部分 var 定义的变量会把它提升到当前函数作用
  • 踩坑vue中嵌套iframe项目,嵌套在iframe中的项目无法登录!

    解决方案原文 这个我试了下是谷歌浏览器做了限制 在edge上可以正常登录 我遇到这种情况主要是我的项目用的是cookie存储的登录状态 需要设置cookie的域名 使其在嵌入的网站和网站域名下都能访问cookie 但是我设置了还是没用 我最
  • go cli脚手架开发利器——cobra库的初体验

    文章目录 关于 说明 cobra 简介 cobra 概念 Commands Flags Args 教程正文 demo1 快速了解 demo 知识点 Command创建命令 demo2 使用参数验证器 钩子函数 demo 知识点 参数验证方法
  • 最新xmind2022版思维导图如何使用详解教程

    前段时间和大家盘点了五种高效的学习方法 没有看过的小伙伴戳这里 最科学的学习方法盘点 讲到思维导图笔记法的时候 本狗子给大家推荐了一款免费的思维导图软件 xmind软件 然后好多小伙伴都加我问关于思维导图的使用方法 于是今天我就做了一份关于
  • 微信小程序编译bug---Hbuilderx编译时一直卡在编译界面

    项目场景 微信小程序新增某功能模块 问题描述 使用Hbuilderx开发微信小程序 正常开发中 在某次重新保存代码并编译后一直卡在编译界面 如图 图为Hbuilderx界面 因为此时没有编译完成 所以微信开发者工具界面一片空白 报错为 ap
  • Python,OpenCV使用KNN来构建手写数字及字母识别OCR

    Python OpenCV使用KNN来构建手写数字及字母识别OCR 1 原理 1 1 手写数字识别 1 2 字母识别 2 源码 2 1 手写数字OCR 2 2 字母OCR 参考 这篇博客将介绍如何借助OpenCV提供的手写数字及字母数据集
  • Linux用户空间与内核空间

    Linux用户空间与内核空间 2012 08 30 15 39 1969人阅读 评论 1 收藏 举报 linux linux内核 struct user system allocation Linux 操作系统和驱动程序运行在内核空间 应用
  • 2.Xaml 停靠框架

    1 运行效果图片 2 Xaml程序
  • ChatGPT实现知识图谱生成

    知识图谱生成 在之前章节中 我们尝试过让 ChatGPT 对一段文本做实体识别和词性分析 结果很不错 但如果是需要长期留存下来 后续在不同场景下快速查询分析 最好还是要把数据存入到专门的图数据库中 才能方便随时读取 本节 我们试试让 Cha
  • 《计算机网络原理》(谢希仁)笔记——第二章

    此为本人观看韩立刚老师视频所做笔记与总结 下面为视频连接 https www bilibili com video av10921041 from search seid 733222547867341420 第二章 物理层 主要知识点为数
  • Verilog对数据进行四舍五入(round)与饱和(saturation)截位

    重点 1 正数截位 直接看截掉的最高位是不是一 是的话进一 负数截位 截的最高位为1且其它位不全是0进一 2 饱和 也就是大于求的结果 整数变为符号位为0 其它位为1 负数变成第一位为1 其它位为0 一 引言 在利用Verilog写数字信号
  • Python入门到放弃(一)

    介绍python和库文件管理 python是解释型语言 Python的特点 简单 易学 速度快 免费开源 高层语言 可移植性 解释性 面向对象 也支持面向过程 可扩展性 可嵌入性 丰富的库 规范的代码 在cmd中退出python 输入exi
  • Tomcat优化相关问题

    1 你怎样给 tomcat 去调优 JVM 参数调优 Xms 表示 JVM 初始化堆的大小 Xmx表示 JVM 堆的最大值 这两个值的大小一般根据需要进行设置 当应用程序需要的内存超出堆的最大值时虚拟机就会提示内存溢出 并且导致应用服务崩溃
  • Spark(七)——累加器和广播变量

    5 累加器 通过在驱动器中调用SparkContext accumulator initialValue 方法 创建出存有初始值的累加器 返回值为org apache spark Accumulator T 对象 其中 T 是初始值 ini
  • ObjectARX编程(八) --------有名对象字典、用户字典和字典中的对象

    在AutoCAD数据库中 对象字典是字典类型数据库对象的总称 按其层次关系可分为两类 一是有AutoCAD数据库直接管理的第一层对象字典 二是有第一层对象字典管理的第二层对象字典 为了便于区别 我们把第一层对象字典称为有名对象字典 用于在应