梦想CAD控件网页版扩展数据
随着基于CAD的应用软件飞速发展,经常需要保存一些与图形可视性无关的数据,即非图形参数。例如在绘制化验样图中包含品位数据。MxCAD定义一类新的参数——实体扩展数据。扩展数据与实体的可视性无关,而是用户根据需要自定义的数据,因此扩展数据的类型与数目都是任意的。扩展数据不能单独地存在,它必须依附于某一个实体,因而它与实体的图形参数共存。由于扩展数据与实体的可视性无关,因而它对图形毫无影响。由此可见,实体扩展数据的引入,既保持了图形的简洁性,又保留了用户必需的信息。因此,它对实现图形的美观性与数据的完备性有重大意义。点击此处在线演示。
扩展数据组码及其说明
图元名 | 组码 | 说明 |
---|---|---|
字符串 |
1000 |
扩展数据中的字符串最长为 255 个字节(第 256 个字符将被保存为空字符) |
应用程序名称 |
1001 |
字符串名称最长为 31 个字节(第 32 个字符将被保存为空字符)。 注意:请不要向您的扩展数据中添加组码 1001 |
控制字符串 |
1002 |
一个扩展数据控制字符串即可以是 "{" 也可以是 "}"。这些大括号可以使应用程序通过把数据细分为表来组织它们的数据。左大括号开始表,右大括号结束最近的表。表可以被嵌套 |
图层名称 |
1003 |
与扩展数据相联系的图层的名称 |
二进制数据 |
1004 |
二进制数据被组织到可变长度的数据组 中。每个数据组最长为 127 个字
节。在 ASCII DXF 文件中,二进制数据被表示为十六进制数字字符串,每个二进制字节两个字符 |
数据库句柄 |
1005 |
图形数据库中的图元句柄 |
3 个实数 |
1010,1020,1030 |
三个实数值的次序为 X、Y 和 Z。它们可被用于表示点或矢量记录 |
世界空间位置 |
1011,1021,1031 |
与简单的三维点不同,世界空间坐标可被移动、缩放、旋转和连同属于扩展数据的上级图元一起产生镜像。当命令 STRETCH 被用于上级图元且此点位于所选窗口中时,世界空间位置也可被拉伸 |
世界空间位移 |
1012,1022,1032 |
同样三维点也可被缩放,旋转和连同上级图元一起产生镜像(但不能被移动或拉伸) |
世界方向 |
1013,1023,1033 |
同样三维点也可被旋转和连同上级图元一起产生镜像(但不能被移动、缩放或拉伸) |
实数 |
1040 |
一个实数 |
距离 |
1041 |
一个可连同上级图元一起被缩放的实数值 |
缩放比例 |
1042 |
同样是一个可连同上级图元一起被缩放的实数值。与距离的区别在于此图元为应用程序定义的 |
整数 |
1070 |
一个 16 位整数(有符号的或无符号的) |
长整数 |
1071 |
一个 32 位符号(长型)整数 |
主要用到函数说明:
MxDrawEntity::SetXData
设置实体的扩展数据,详细说明如下:
参数 | 说明 |
---|---|
[in] IMxDrawResbuf* pXData |
扩展数据链表 |
js代码实现如下:
function SetXData(){
var ent = mxOcx.GetEntity("选择要写扩展数据的实体:");
if(ent == null)
{
return;
}
var exData = mxOcx.Call("Mx_NewResbuf","");
exData.AddStringEx("TestApp",1001);
exData.AddStringEx("甲",1000);
ent.SetXData(exData);
}
主要用到函数说明:
MxDrawEntity::GetXData
返回实体的扩展数据。
js代码实现如下:
function GetXData(){
var ent = mxOcx.GetEntity("选择要读扩展数据的实体:");
if(ent == null)
{
return;
}
var exData = ent.GetXData("TestApp"); if(exData.Count == 0)
{
alert("没有扩展数据"); }
else
{
// 向命令行窗口打印扩展数据。
exData.PrintData();
alert(exData.AtString(1));
}
}
主要用到函数说明:
MxDrawEntity::SetxDataString
写一个字符串扩展数据,详细说明如下:
参数 | 说明 |
---|---|
[in] BSTR val |
字符串值 |
szAppName |
扩展数据名称 |
nItem |
该值所在位置 |
js代码实现如下:
function WriteXData(){
var selEnt = mxOcx.NewComObject("IMxDrawUiPrEntity");
selEnt.message = "选择要写扩展数据的对象";
if (selEnt.go() != 1)
return;
var ent = selEnt.Entity();
if (ent == null)
return;
if (ent.SetxDataString("ExDataName", 0, "ExDataValue")) {
alert("写扩展数据成功");
}
else {
alert("写扩展数据失败");
}
}
主要用到函数说明:
MxDrawEntity::GetxDataString2
读取一个字符扩展数据,详细说明如下:
参数 | 说明 |
---|---|
[in] LONG lItem |
该值所在位置 |
[out, retval] BSTR* pRet |
返回该变量值 |
szAppName |
扩展数据名称 |
js代码实现如下:
function ReadXData() {
var selEnt = mxOcx.NewComObject("IMxDrawUiPrEntity"); selEnt.message = "选择要读取扩展数据的对象";
if (selEnt.go() != 1)
return; var ent = selEnt.Entity();
if (ent == null)
return; var val = ent.GetxDataString2("ExDataName", 0);
if (mxOcx.IsOk()) {
alert(val);
}
else {
alert("没有扩展数!");
} }
主要用到函数说明:
MxDrawEntity::SetxDataDouble
写一个Double扩展数据,详细说明如下:
参数 | 说明 |
---|---|
[in] BSTR val |
字符串值 |
szAppName |
扩展数据名称 |
nItem |
该值所在位置 |
js代码实现如下:
function SetxDataDouble(){
var selEnt = mxOcx.NewComObject("IMxDrawUiPrEntity");
selEnt.message = "选择要写扩展数据的对象";
if (selEnt.go() != 1)
return;
var ent = selEnt.Entity();
if (ent == null)
return;
if (ent.SetxDataDouble("ExDataName", 0, 55.5)) {
alert("写扩展数据成功");
}
else {
alert("写扩展数据失败");
}
}
主要用到函数说明:
MxDrawEntity::GetxDataDouble2
读取一个Double扩展数据,详细说明如下:
参数 | 说明 |
---|---|
[in] LONG lItem |
该值所在位置 |
[out, retval] BSTR* pRet |
返回该变量值 |
szAppName |
扩展数据名称 |
js代码实现如下:
function GetxDataDouble() {
var selEnt = mxOcx.NewComObject("IMxDrawUiPrEntity"); selEnt.message = "选择要读取扩展数据的对象";
if (selEnt.go() != 1)
return; var ent = selEnt.Entity();
if (ent == null)
return; var val = ent.GetxDataDouble2("ExDataName", 0);
if (mxOcx.IsOk()) {
alert(val);
}
else {
alert("没有扩展数!");
} }
主要用到函数说明:
MxDrawEntity::SetxDataLong
写一个long扩展数据,详细说明如下:
参数 | 说明 |
---|---|
[in] BSTR val |
字符串值 |
szAppName |
扩展数据名称 |
nItem |
该值所在位置 |
js代码实现如下:
function SetxDataLong(){
var selEnt = mxOcx.NewComObject("IMxDrawUiPrEntity");
selEnt.message = "选择要写扩展数据的对象";
if (selEnt.go() != 1)
return;
var ent = selEnt.Entity();
if (ent == null)
return;
if (ent.SetxDataLong("ExDataName", 0, 123456)) {
alert("写扩展数据成功");
}
else {
alert("写扩展数据失败");
}
}
主要用到函数说明:
MxDrawEntity::GetxDataLong2
读取一个Long扩展数据,详细说明如下:
参数 | 说明 |
---|---|
[in] LONG lItem |
该值所在位置 |
[out, retval] BSTR* pRet |
返回该变量值 |
szAppName |
扩展数据名称 |
js代码实现如下:
function GetxDataLong() {
var selEnt = mxOcx.NewComObject("IMxDrawUiPrEntity"); selEnt.message = "选择要读取扩展数据的对象";
if (selEnt.go() != 1)
return; var ent = selEnt.Entity();
if (ent == null)
return; var val = ent.GetxDataLong2("ExDataName", 0);
if (mxOcx.IsOk()) {
alert(val);
}
else {
alert("没有扩展数!");
} }
主要用到函数说明:
MxDrawEntity::GetAllAppName
得到所有扩展数据名称,详细说明如下:
参数 | 说明 |
---|---|
[out, retval] IMxDrawResbuf** ppRet |
返回IMxDrawResbuf扩展数据名称数组 |
js代码实现如下:
function GetAllAppName() { var selEnt = mxOcx.NewComObject("IMxDrawUiPrEntity");
selEnt.message = "选择需要读取的对象";
if (selEnt.go() != 1)
return;
var ent = selEnt.Entity();
if (ent == null)
return;
//得到所有扩展数据名称
var val = ent.GetAllAppName();
if (val == null) {
return;
}
for(var i = 0;i < val.Count; i++ ){
//返回链表中的指定位置字符串变量值
alert(val.AtString(i));
} }
主要用到函数说明:
MxDrawEntity::DeleteXData
删除扩展数据,详细说明如下:
参数 | 说明 |
---|---|
pzsAppName |
删除的扩展数据名称,如果为空,删除所有扩展数据 |
js代码实现如下:
function DeleteXData() { var selEnt = mxOcx.NewComObject("IMxDrawUiPrEntity");
selEnt.message = "选择要删除扩展数据的对象";
if (selEnt.go() != 1)
return;
var ent = selEnt.Entity();
if (ent == null)
return;
if (ent.DeleteXData("ExDataName")) {
alert("删除扩展数据成功");
}
else {
alert("删除扩展数据失败");
} }
梦想CAD控件网页版扩展数据的更多相关文章
- 梦想CAD控件网页版搜索图面上的文字
在网页中查找到CAD控件图纸上的文字.点击此处在线演示. 主要用到函数说明: _DMxDrawX::NewSelectionSet 实例化一个构造选择集进行过滤,该类封装了选择集及其处理函数. _DM ...
- 梦想CAD控件网页版关于自定义命令
在CAD控件操作中,为方便使用者,使用自定义命令发出命令,完成CAD绘图,修改,保存等操作.点击此处在线演示. _DMxDrawX::RegistUserCustomCommand 向CAD控件注册一 ...
- 梦想CAD控件网页版线型
增加线型 主要用到函数说明: _DMxDrawX::AddLinetype 增加一个线型定义.详细说明如下: 参数 说明 BSTR pszName 线型名 BSTR pszLineDefine 线定义 ...
- 梦想CAD控件com接口扩展数据
随着CAD应用软件的飞速发展,经常需要保存一些与图形可视性无关的数据,即非图形参数.例如在绘制化验样图中包含品位数据.MxCAD定义了一类参数——实体扩展数据.扩展数据与实体的可视性无关,而是用户根据 ...
- 梦想CAD控件网页版标注样式
增加标注样式 _DMxDrawX::AddDimStyle 增加一个新的标注样式,如果当前已经有指定名的标注样式,就直接失败返回.详细说明如下: 参数 说明 BSTR pszName 新增加的标注样式 ...
- 梦想CAD控件网页版文字样式
增加文字样式 用户可以增加文字样式到数据库,并设置其字体等属性,具体实现js代码如下: function CreateText(){ //返回控件的数据库对象 var database =mxOcx. ...
- 如何在网页中浏览和编辑DWG文件 梦想CAD控件
如何在网页中浏览和编辑DWG文件 梦想CAD控件 www.mxdraw.com 梦想绘图控件5.2 是国内最强,最专业的CAD开发组件(控件),不需要AutoCAD就能独立运行.控件使用VC 201 ...
- 梦想CAD控件图块COM接口知识点
梦想CAD控件图块COM接口知识点 图块是将多个实体组合成一个整体,并给这个整体命名保存,在以后的图形编辑中图块就被视为一个实体.一个图块包括可见的实体如线.圆.圆弧以及可见或不可见的属性数据.图块的 ...
- 梦想CAD控件图层COM接口知识点
梦想CAD控件图层COM接口知识点 一.新建图层 主要用到函数说明: _DMxDrawX::AddLayer 增加新的图层.详细说明如下: 参数 说明 BSTR pszName 图层名 c#中实现代码 ...
随机推荐
- JSON介绍及Android最全面解析方法(Gson、AS自带org.son、Jackson解析)
前言 今天,我们来介绍一下现今主流的数据交换格式-JSON! 相同作为主流为数据交换格式-XML,假设有兴趣能够阅读我写的XML及其DOM.SAX.PULL解析方法和对照 文件夹 定义 JavaScr ...
- cocos2dx 2.2.3编译第一个apk到安卓手机
1.android-ndk-r10(注意32位和64位的别下错了 我不小心下错了 折腾了我两天) 2.adt_201407(eclipse已经跟sdk等等集成在一起了) 3.Cococs2d-x ...
- jquery中怎样防止冒泡事件
jquery中怎样防止冒泡事件 1.利用event.stopPropagation() 2.利用return false 3.利用event.preventDefault()
- java Bean及其使用
1 getter/setter方法 java例子: public class student { private String name; public String getName() { retu ...
- YTU 2505: 啤酒和饮料
2505: 啤酒和饮料 时间限制: 1 Sec 内存限制: 128 MB 提交: 850 解决: 318 题目描述 啤酒每罐2.3元,饮料每罐1.9元.小明买了若干啤酒和饮料,一共花了s元. 我们 ...
- 数据读进set,进行后处理
#include <iostream> #include <vector> #include <cstddef> #include <string> # ...
- uva1560
In an extended version of the game Lights Out®, is a puzzle with 5 rows of 6 buttons each (the actua ...
- Ubuntu 14.04 台式机锐捷使用:
1.解压文件:RG_Supplicant_For_Linux_V1.31.zip2.sudo chmod -R 777 rjsupplicant3.进入文件夹(./rjsupplicant.sh -a ...
- 【转载】存储的一些基本概念(HBA,LUN)
1.关于HBA HBA的全称为Host Bus Adapter,即主机总线适配器. a.总线适配器是个什么东西呢? 我们首先要了解一下主机的结构,一台计算机内部多半由两条总线串在起来(当然实际情况会 ...
- 略微讲讲最近的 webpack 该如何加快编译
首先假设 基础的环境是有 creat-react-app 所创建的 即所有基础的loader,插件的 cache 都已经缓存了 在这种情况下想加速,真是很难 不过,有一个插件是可以观察 各个模块所花的 ...