QCAD dxf 扩展属性
XData
是CAD
开放给用户(程序员)的一个功能接口:可以往CAD
实体上写入/绑定你的个人信息,CAD
不会理会/管理你的个人信息,但会保存到DXF
文件中。同时你也可以读取这些个人的信息,方便你编程使用。
QCAD
读写dxf
文件使用的dxflib
。如下所示,利用dxflib
写入扩展属性。
dw.dxfString(1001,"Point");
dw.dxfString(1002,"{");
dw.dxfString(1000,"代码");
dw.dxfString(1000,"201365845");
dw.dxfString(1002,"}");
在QCAD
源码中只需在读入和写入DXF
时,加入读写扩展属性(自定义属性)即可。
写入属性
// dw.dxfString(1001,"Point");
// dw.dxfString(1000,"代码:201365845");
void RDxfExporter::writeCustomProperties(const REntity& p)
{QMap<QString, QVariantMap>customProperties=p.getCustomProperties();QString kv;foreach (QString title, customProperties.keys()) {QVariantMap properties=customProperties.value(title);dw->dxfString(1001, (const char*)RDxfExporter::escapeUnicode(title));foreach (const QString key, properties.keys()) {QVariant value=properties.value(key);kv=QString("%1:%2").arg(key,value.toString());dw->dxfString(1000,(const char*)RDxfExporter::escapeUnicode(kv));}}
}
读入属性
void RDxfImporter::importXData(QSharedPointer<REntity> entity)
{QStringList pJson;QString str;QPair<int,QVariant>p;foreach (const QString group, xData.keys()) {QList<QPair<int, QVariant>> properties=xData.value(group);for(int i=0;i<properties.size();++i){p=properties.at(i);str=p.second.toString();if(str.contains(':')){pJson=str.split(":");if(pJson.length()>1)entity->setProperty(RPropertyTypeId(group,pJson[0]),pJson[1]);}}}
}
这样就可以在QCAD属性编辑面板中添加自定义扩展属性。
DXF文件中保存的属性:
1001
QCAD
1000
age:29
1000
name:xxxxx
1000
sex:boy
1000
\U+...............................
dxf
文件的存储方式是以编码(组码)+ 数据的形式
DXF组码值 | 扩展数据内容 |
---|---|
1001 | XData 的AppID,即分组 |
1000~1009 | 字符串(<=255) |
1002 |
XData的控制字符串{}
|
1010~1059 | 浮点数 |
示例:
dw.dxfString(1001,"扩展属性001");
dw.dxfString(1002,"{");
dw.dxfString(1000,"代码");
dw.dxfString(1000,"201365845");
dw.dxfString(1000,"长度");
dw.dxfDouble(1010,"10091.999");
dw.dxfString(1002,"}");
注:接下来就可以 对QCAD
对象分组编码扩展属性。
entity->setProperty(RPropertyTypeId(group,key),value);
参考
CAD 扩展数据 https://www.cnblogs.com/xiaowangzi1987/p/13193276.html
QCAD dxf 扩展属性相关推荐
- Kotlin学习笔记(五) 扩展函数 扩展属性
2019独角兽企业重金招聘Python工程师标准>>> 扩展函数和属性可以定义在对应的类中和kotlin文件中; 1.扩展函数 1.扩展函数可以由对象直接调用,在扩展函数中,用thi ...
- 一个用户实体应该有它自己的实体验证,即一个实体应该有它的属性,方法,扩展属性及验证机制组成...
一个存储验证信息的公用类: /// <summary> /// 验证信息实体类 /// </summary> public class RuleV ...
- flowable设计器节点属性扩展_Flowable-流程定义扩展属性
上次讲述了任务节点的扩展属性,这次讲解一下流程的扩展属性 前端 1 stencilset_bpmn.json 中增加属性 { "name" : "process_devi ...
- linux getfattr中文乱码,在bash shell中使用getfattr查看文件扩展属性
getfattr用法 用于获取文件扩展属性,返回一系列键值对,参考Linux Man Page. 常用OPTIONS -n name, --name=name Dump the value of th ...
- 【Kotlin】扩展属性 ( 扩展变量属性 | 扩展常量属性 | 注意事项 | 本质分析 )
文章目录 I . 扩展属性 总结 II . 扩展属性 定义格式 III . 扩展属性 标准示例 IV . 扩展属性 注意事项 V . 扩展属性 本质分析 VI . 扩展属性 代码示例解析 I . 扩展 ...
- SQLServer错误:过程 sp_addextendedproperty,第 xxx 行对象无效。'dbo.xxx.xxx' 不允许有扩展属性,或对象不存在。...
上传数据库到虚拟主机,在执行SQL脚本的时候出现以下的错误: 消息 15135,级别 16,状态 8,过程 sp_addextendedproperty,第 37 行 对象无效.'dbo.Messag ...
- 转: 利用SQL SERVER2005的XML字段类型实现类似商品扩展属性
今天自己翻了两页自己的BLOG,发现真是越来越懒了,已经好长时间没有写技术相关的日志了,记得刚开始写BLOG的时候还经常写写自己的技术积累的,现在除了发布ZJ-BLOG的程序更新信息外,好像全成了自己 ...
- 不是Linux文件系统的权限,Linux中文件系统的权限管理(普通权限,特殊权限,文件的扩展属性,FACL)...
文件系统的权限管理(DAC体系:自主访问控制体系): 普通权限 特殊权限 文件的扩展属性 FACL(文件系统访问控制列表) 安全上下文: 任何在计算机中执行的任务都是由进程来实现的,所以进程就有必要访 ...
- PowerDesigner16中的对象无效,不允许有扩展属性 问题的解决
PowerDesigner16中的对象无效,不允许有扩展属性 消息 15135,级别 16,状态 1,过程 sp_addextendedproperty,第 37 行 对象无效.'XXXXXXX' 不 ...
最新文章
- python join 的使用
- 技术人生:本周改进计划
- 一图看清全球270家典型区块链服务商
- docker history 查看docker镜像构建过程 还原dockerfile 查看启动参数
- 【Web安全】JSP内存马研究
- 流水调度问题c语言,基于遗传算法的流水车间调度问题汇总.doc
- java:退出功能_Java 8:功能VS传统
- 环形线圈车辆检测器突破了LOOP-LOCK
- c语言元素累积的计算,C语言:计算输出给定数组中每相邻两个元素的平均值的平方根之和。...
- Android——从HellowWorld开始
- Mysql之运算的使用
- 拍出来好看的拍照软件?这4款好看好用的App简直赞到爆~
- ssc335调试isp记录之色彩篇
- linux系统怎么进入救援模式,Linux怎么进入救援模式?
- 教你用Ossim平台检测网络的Shellcode攻击
- 约瑟夫环解法大全(C语言版)
- 线程中的setDaemon方法
- 20008-06-12 周四 晴 英语单词
- android 刘海机型适配,Android全面屏刘海适配
- WebRTC基础实践 - 5.通过RTCPeerConnection传输流媒体视频
热门文章
- PTA第02章练习题(Python)
- 小小盗号VC实现原理
- 小身板干大事:DATAhawk无人机独创手抛起飞实现3厘米精准测绘
- GPU、GPU驱动、OpenGL、游戏引擎之间的关系
- PowerTool kEvP.sys=V4.2 内核拒绝服务漏洞
- vSphere Client中虚拟机与客户机中的剪切板不能够拷贝、粘贴
- 2023年湖北安全员ABC报名时间和考试时间是什么时候?甘建二
- 三阶齐次线性方程求通解_三阶常系数线性微分方程特解的简单求法
- 在高分辨率屏幕上用VMware运行ubuntu显示过小的问题
- 证券投资深度学习_基于风险中性的深度学习选股策略