CADID和句柄具有各自的特点
原创
©著作权归作者所有:来自51CTO博客作者MxCAD的原创作品,请联系作者获取转载授权,否则将追究法律责任
ID和句柄具有各自的特点:
1、 ID:在一个任务中,本次任务中都是独一无二的。在不同的任务中,同一个图形对象的ID可能不同。
2、句柄:在一个任务中,不能保证每个对象的句柄都唯一,但是在一个图形数据库中所有对象的句柄都是唯一的。句柄随DWG图形一起保存,在两次任务期间同一对象的句柄是相同的。
实体id返回实体对象
1、IMxDrawDatabase::ObjectIdToObject
2、实体id返回实体对象,具体详细如下:
参数
| 说明
|
[in] LONGLONG lId | 实体id |
3、JS代码中绘一个直线,得到直线id,再调该得到直线对象,然写扩展数据的例子。
function DoCommandEventFunc(iCmd)
{
if (iCmd == 1)
{
var mxOcx = document.all.item("MxDrawXCtrl");
mxOcx.focus();
var point1 = mxOcx.GetPoint(null,"n 点取开始点:");
if(point1 == null)
{
return;
}
var point2 = mxOcx.GetPoint(point1,"n 点取结束点:");
if(point1 == null)
{
return;
}
// 直线的id
var lineId = mxOcx.DrawLine(point1.x,point1.y,point2.x,point2.y);
// 为新写的直线写一个字符串扩展数据
var database = mxOcx.GetDatabase();
var ent = database.ObjectIdToObject(lineId);
if(ent == null)
{
return;
}
var exData = mxOcx.Call("Mx_NewResbuf","");
exData.AddString("TestApp",1001);
exData.AddString("用户的扩展数据内容。。。",1000);
ent.SetXData(exData);
}
}