CAD在网页中绘图,并为新绘的对象写扩展数据和读取扩展数据
在网页中绘图,并为新绘的对象写扩展数据和读取扩展数据。下面帮助的完整例子,在控件安装目录的 Sample\Ie\iedemo.htm 中。
主要用到函数说明:
_DMxDrawX::InsertBlock
向数据库中插入一个图块,DWG图块文件可以是本地文件,也可以是网络文件。详细说明如下:函数成功返回1,失败返回0。
| 参数 | 说明 |
|---|---|
| BSTR pszDwgFileName |
图块定义的dwg 文件,支持http://开头的网络路径 |
| BSTR pszBlockName |
新插入的图块名 |
_DMxDrawX::DrawBlockReference
绘制一个块引用对象,返回新绘的对象id。详细说明如下:
| 参数 | 说明 |
|---|---|
| DOUBLE dPosX |
插入点的X坐标 |
| DOUBLE dPosY |
插入点的Y坐标 |
| BSTR pszBlkName |
图块名 |
| DOUBLE dScale |
图块缩放比例 |
| DOUBLE dAng |
图块的旋转角度 |
MxDrawDatabase::ObjectIdToObject
由实体id返回实体对象。
MxDrawEntity::SetXData
设置实体的扩展数据,详细说明如下:
| 参数 | 说明 |
|---|---|
| [in] IMxDrawResbuf* pXData |
扩展数据链表 |
MxDrawEntity::GetXData
返回实体的扩展数据。
js中实现代码说明:
绘制一个块引用对象,并向新绘的对象写一个扩展数据,比如GUID,用来标识它。
// 得到网页中的控件对象
mxOcx = document.all.item("MxDrawXCtrl");
mxOcx.focus(); 把服务器上的dwg文件,插入到控件中,也可以是一个本地文件.
if(mxOcx.InsertBlock("http://www.mxdraw.com/downland/test.dwg","MyBlkName") != 0)
{
// 与用户交互,从图上点取一个插入点.
var point = mxOcx.GetPoint(null,"\n 点插入点:");
if(point == null)
{
// 用点击了取消键.
return;
}
// 绘制一个块引用对象,point.x,point.y是插入位置,MyBlkName是引用的块表记录名称.
var blkRefId = mxOcx.DrawBlockReference(point.x,point.y,"MyBlkName",1.0,0.0); // 得到控件的数据库对象. var database = mxOcx.GetDatabase();
//由块引用对象id,得到块引用实体.
var ent = database.ObjectIdToObject(blkRefId); if(ent == null)
{
alert("插入失败");
return;
} // 为新插入的对象写一个扩展数据,值为"guid val 324322"
WriteGuid("guid val 324322",ent,mxOcx) // 缩放视区,把所有实体都放到视区中显示.
mxOcx.ZoomAll();
alert("插入成功");
}
else
{
alert("插入失败");
}
}
读取扩展数据:
// 得到网页中的控件对象.
var mxOcx = document.all.item("MxDrawXCtrl"); // 与用户交互,在图上选择一个实体
var ent = mxOcx.GetEntity("选择要读扩展数据的实体:");
if(ent == null)
{
// 用户取消了选择.
return;
}
// 得到WriteGuid函数写的扩展数据.
alert(ReadGuid(ent) );
写扩展数据:
function WriteGuid(guid,ent,mxOcx)
{
// 创建一个扩展数据连表对象.
var exData = mxOcx.CallCustomFunction("Mx_NewResbuf",""); // 添一个扩展数据,应用程序名,1001是AutoCAD dxf组码,表示"对象标注id数据"是一个扩展数据名称.
exData.AddString("对象标注id数据",1001); // 设置一个字符串扩展数据,1000是AutoCAD dxf组码,表示是一个字符串
exData.AddString(guid,1000); // 设置对象扩展数据.
ent.SetXData(exData);
}
CAD在网页中绘图,并为新绘的对象写扩展数据和读取扩展数据的更多相关文章
- CAD在网页中如何实现嵌套打印?
当用户需要打印两个控件的图纸时,可以采用嵌套打印实现.点击此处在线演示. 实现嵌套打印功能,首先将两个控件放入网页中,js代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...
- CAD在网页中打印的图纸里面添加页眉及页脚
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...
- CAD在网页中增加一个射线
主要用到函数说明: IMxDrawBlockTableRecord::AddRay 向记录中增加一个射线,详细说明如下: 参数 说明 point1 射线上的点1 point2 射线上的点2 js代码实 ...
- CAD在网页中如何设置实体闪烁?
主要用到函数说明: MxDrawXCustomFunction::Mx_TwinkeEnt 闪烁实体.详细说明如下: 参数 说明 McDbObjectId id 被闪烁的实体对象id LONG lCo ...
- CAD在网页中返回当前图纸的最小外包矩形框
主要用到函数说明: _DMxDrawX::GetMcDbDatabaseBound 返回当前图纸的最小外包矩形框,详细说明如下: 参数 说明 DOUBLE* pLbx 返回最小外包矩形框左下角X值 D ...
- CAD在网页中得到批注信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...
- CAD在网页中绘制批注
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...
- CAD在网页中如何得到用户自定义事件的参数?
主要用到函数说明: _DMxDrawX::CustomEventParam 得到用户自定义事件的参数. js代码实现如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ...
- 网页中flash设置
我们现在大部分人做网页,都是直接用DW插入flash,而且DW也是所见即所得,直接生成了相应的flash显示代码.可是我们又有多少人了解这些直接由DW生成的代码呢?其实我接触flash player标 ...
随机推荐
- C#高级编程五十四天----Lookup类和有序字典
Lookup类 Dictionary<Tkey,TValue>仅仅为每一个键支持一个值.新类Lookup<Tkey,TValue>是.NET3.5中新增的,它类似与Dictio ...
- web 开发之js---巧用iframe实现jsp无刷新上传文件
首先要说的就是 ajax 是无法实现上传文件的,可以想一下ajax与后台通信都是通过传递字符串,怎么能传递文件呢?其实出于安全考虑js是不能操作文件的,所以就不要再说用ajax来实现文件的上传了,这是 ...
- 【PA 2014】Kuglarz
[题目链接] 点击打开链接 [算法] sum[i]表示前i个杯子中,杯子底下藏有球的杯子总数 那么,知道[i,j]这段区间中,藏有球的 ...
- makefile 参数
GNU Make make是负责从项目的源代码中生成最终可执行文件和其他非源代码文件的工具. make命令本身可带有四种参数:标志.宏定义.描述文件名和目标文件名. 其标准形式为:make [flag ...
- visual studio使用dos命令在生成项目时复制文件到指定目录
本人使用软件:vs2015 拷贝“项目1”的 bin目录 下, 项目配置的名称(“Release”,“Debug”)目录下,所有内容到“项目2”输出目录(存在直接覆盖): xcopy $(Soluti ...
- FPGA基础入门篇(四) 边沿检测电路
FPGA基础入门篇(四)--边沿检测电路 一.边沿检测 边沿检测,就是检测输入信号,或者FPGA内部逻辑信号的跳变,即上升沿或者下降沿的检测.在检测到所需要的边沿后产生一个高电平的脉冲.这在FPGA电 ...
- RabbitMQ学习之Work Queues(2)
目录: 轮询调度(Round-robin dispatching):即依次分配分配任务给worker. 消息答复(Message acknowledgement):在consumer处理完之后,进行消 ...
- 【JS】温故知新: 从parseInt开始
工作中,几乎习惯了大量使用方便的工具库(如underscore.lodash),但是长期的依赖,却有可能在我们注意不到的地方出现黑天鹅,笔者最近就碰到了这样一件例子: parseInt(9e-10); ...
- T - Posterized(贪心思维)
Description Professor Ibrahim has prepared the final homework for his algorithm’s class. He asked hi ...
- ACM_排序
除了sort,你还会什么 Time Limit: 1000/500ms (Java/Others) Problem Description: 给出若干人的年龄(1~100之间的整数),把它们按照从小到 ...