Skip to content
On this page

mxcad_2d API 文档 / 2d / McDbDictionary

Class: McDbDictionary

2d.McDbDictionary

数据库中的字典类,用户的自定义数据可以存放在字典中,它可以理解一个映射表,字符串是关键字,可以映射到任何一个对象。字典中可以再包含字典。

Example

ts
import { McDbDictionary, McDbXrecord } from "mxcad"

//遍历字典
function MxTest_GetNamedObjectsDictionary() {
  // 获取当前CAD对象
  let mxcad = MxCpp.getCurrentMxCAD();
  // 获取数据库中的字典对象
  let dict = mxcad.getDatabase().getNamedObjectsDictionary();
  // 获取字典中所有的对象名
  let aryName = dict.getAllObjectName();
  // 遍历对象名
  aryName.forEach((name) => {
    console.log(name);
    let id = dict.getAt(name);
    let obj = id.getMcDbObject();
    if (obj instanceof McDbDictionary) {
      let dict: McDbDictionary = obj;
      console.log(dict);
      MxTest_DictionaryData(dict);// 递归遍历字典对象
    }
  })
}

function MxTest_DictionaryData(dict: McDbDictionary) {
  let aryName = dict.getAllObjectName();
  aryName.forEach((name) => {
    console.log(name);
    let id = dict.getAt(name);
    let obj = id.getMcDbObject();
    if (obj instanceof McDbDictionary) {
      let dict: McDbDictionary = obj;
      console.log(dict);
      MxTest_DictionaryData(dict);
    }
    else if (obj instanceof McDbXrecord) {
      let xrec: McDbXrecord = obj;
      let data = xrec.getData()
      data.PrintData();
    }
  })
}

Hierarchy

Table of contents

Constructors

Properties

Accessors

Methods

Constructors

constructor

new McDbDictionary(imp?)

构造函数。

Parameters

NameTypeDescription
imp?any内部实现对象。

Overrides

McDbObject.constructor

Properties

imp

imp: any = 0

内部实现对象。

Inherited from

McDbObject.imp

Accessors

dxf0

get dxf0(): string

得到对象的DXF组码的类型名,这个和AutoCAD中的DXF组码是一样。 比如直线的类型名为:McDbLine,DXF0组码值: LINE,DXF0组码值可以用来构造集时的类型过滤。

Returns

string

Inherited from

McDbObject.dxf0


objectName

get objectName(): string

获取对象名称。

Returns

string

返回对象名

Example

ts
import { McRxObject } from 'mxcad';

let obj = new McRxObject();
console.log(obj.objectName);

Inherited from

McDbObject.objectName

Methods

addObject

addObject(sName, obj): McObjectId

向字典中添加对象

Parameters

NameTypeDescription
sNamestring对象名称
objMcDbObject对象

Returns

McObjectId

对象ID

Example

ts
import { MxCpp, McDbDictionary, McDbObject } from "mxcad";

let mxcad = MxCpp.getCurrentMxCAD();
let dict:McDbDictionary = mxcad.getDatabase().getNamedObjectsDictionary();
const objectId = dict.addObject("newObject", new McDbObject());

assertObjectModification

assertObjectModification(autoUndo?): number

设置对象被改变的状态,可自动触发更新显示函数,更新显示。 比如块表记录更新了,需要通知块引用更新显示,可以调用该函数。

Parameters

NameTypeDefault value
autoUndobooleanfalse

Returns

number

Example

ts
//假设obj为一个数据库对象
obj.assertObjectModification()

Inherited from

McDbObject.assertObjectModification


clone

clone(): null | McDbObject

克隆对象。

Returns

null | McDbObject

克隆出的对象。

Example

ts
//假设obj为一个数据库对象
const obj_clone = obj.clone();

Inherited from

McDbObject.clone


createExtensionDictionary

createExtensionDictionary(): boolean

创建对象的扩展字典数据.

Returns

boolean

Example

ts
//假设obj为一个数据库对象
const res = obj.createExtensionDictionary();

Inherited from

McDbObject.createExtensionDictionary


erase

erase(): boolean

删除对象。

Returns

boolean

是否删除成功。

Example

ts
//假设obj为一个数据库对象
const res = obj.erase();
console.log(res);

Inherited from

McDbObject.erase


getAllObject

getAllObject(): McObjectId[]

获取字典中的所有对象。

Returns

McObjectId[]

对象ID数组

Example

ts
import { MxCpp, McDbDictionary } from "mxcad";

let mxcad = MxCpp.getCurrentMxCAD();
let dict:McDbDictionary = mxcad.getDatabase().getNamedObjectsDictionary();
const aryId = dict.getAllObject();
console.log(aryId);

getAllObjectName

getAllObjectName(): McGeStringArray

获取字典中所有的对象名。

Returns

McGeStringArray

对象名数组

Example

ts
import { MxCpp, McDbDictionary } from "mxcad";

let mxcad = MxCpp.getCurrentMxCAD();
let dict:McDbDictionary = mxcad.getDatabase().getNamedObjectsDictionary();
const aryName = dict.getAllObjectName();
console.log(aryName);

getAt

getAt(sName, isGetErased?): McObjectId

获取字典中指定对象

Parameters

NameTypeDefault valueDescription
sNamestringundefined对象名称
isGetErasedbooleanfalse是否获取已删除的对象

Returns

McObjectId

对象ID

Example

ts
import { MxCpp, McDbDictionary } from "mxcad";

let mxcad = MxCpp.getCurrentMxCAD();
let dict:McDbDictionary = mxcad.getDatabase().getNamedObjectsDictionary();
const objId = dict.getAt("测试字典");

getDatabase

getDatabase(): McDbDatabase

得到对象所在的数据库

Returns

McDbDatabase

返回数据库

Example

ts
//假设obj为一个数据库对象
const data = obj.getDatabase();

Inherited from

McDbObject.getDatabase


getDatabaseIndexId

getDatabaseIndexId(): number

获取对象的索引ID

Returns

number

Example

ts
//假设obj为一个数据库对象
const id = obj.getDatabaseIndexId();

Inherited from

McDbObject.getDatabaseIndexId


getExtensionDictionary

getExtensionDictionary(): McDbDictionary

得到对象的扩展字典数据.

Returns

McDbDictionary

扩展字典数据

Example

ts
//假设obj为一个数据库对象
const id = obj.getOwnerID();

Inherited from

McDbObject.getExtensionDictionary


getGripPoints

getGripPoints(): McGePoint3dArray

获取对象的控制点

Returns

McGePoint3dArray

Example

ts
//假设obj为一个数据库对象
const ptArr = obj.getGripPoints();

Inherited from

McDbObject.getGripPoints


getHandle

getHandle(): string

得到对象句柄

Returns

string

返回对象句柄

Example

ts
//假设obj为一个数据库对象
const handle = obj.getHandle();

Inherited from

McDbObject.getHandle


getImp

getImp(): any

获取内部实现对象。

Returns

any

内部实现对象。

Example

ts
import { McRxObject } from 'mxcad';

let obj = new McRxObject();
let imp = obj.getImp();

Inherited from

McDbObject.getImp


getJson

getJson(): string

获取 JSON 格式的字符串。

Returns

string

JSON 格式的字符串。

Example

ts
import { McRxObject } from 'mxcad';

let obj = new McRxObject();
const json = obj.getJson()

Inherited from

McDbObject.getJson


getObjectID

getObjectID(): McObjectId

获取对象 ID。

Returns

McObjectId

对象 ID。

Example

ts
import { McDbObject } from "mxcad";
const id = obj.getObjectID();

Inherited from

McDbObject.getObjectID


getOwnerID

getOwnerID(): number

得到对象拥用者的id

Returns

number

Example

ts
//假设obj为一个数据库对象
const id = obj.getOwnerID();

Inherited from

McDbObject.getOwnerID


initTempObject

initTempObject(imp): void

初始化临时对象。

Parameters

NameTypeDescription
impany内部实现对象。

Returns

void

Example

ts
import { McRxObject } from 'mxcad';

let obj = new McRxObject();
obj.initTempObject()

Inherited from

McDbObject.initTempObject


isErased

isErased(): boolean

对象是否已经删除

Returns

boolean

Example

ts
//假设obj为一个数据库对象
const res = obj.isErased();
console.log(res);

Inherited from

McDbObject.isErased


isHaveExtensionDictionary

isHaveExtensionDictionary(): boolean

是否有扩展字典数据.

Returns

boolean

Example

ts
//假设obj为一个数据库对象
const res = obj.isHaveExtensionDictionary();

Inherited from

McDbObject.isHaveExtensionDictionary


isKindOf

isKindOf(sObjectName): boolean

判断对象类型

Parameters

NameTypeDescription
sObjectNamestring类型名

Returns

boolean

返回对象是否是目标类型

Example

ts
import { McRxObject } from 'mxcad';

let obj = new McRxObject();
let isKind = obj.isKindOf('SomeObjectType');
console.log(isKind); // 输出: true 或 false

Inherited from

McDbObject.isKindOf


isNull

isNull(): any

判断是否为空对象

Returns

any

Example

ts
import { McRxObject } from 'mxcad';

let obj = new McRxObject();
console.log(obj.isNull()); // 输出: true 或 false

Inherited from

McDbObject.isNull


moveGripPointsAt

moveGripPointsAt(iIndex, dXOffset, dYOffset, dZOffset): any

移动对象的控制点

Parameters

NameTypeDescription
iIndexnumber索引
dXOffsetnumberX轴偏移量
dYOffsetnumberY轴偏移量
dZOffsetnumberZ轴偏移量

Returns

any

Example

ts
//假设obj为一个数据库对象
obj.moveGripPointsAt(1,10,10,10);

Inherited from

McDbObject.moveGripPointsAt


remove

remove(sName): boolean

移除指定对象

Parameters

NameTypeDescription
sNamestring对象名称

Returns

boolean

布尔值

Example

ts
import { MxCpp, McDbDictionary } from "mxcad";

let mxcad = MxCpp.getCurrentMxCAD();
let dict:McDbDictionary = mxcad.getDatabase().getNamedObjectsDictionary();
const res = dict.remove("测试字典");
if(res){
  //移除成功
}else{
  //移除失败
}

setJson

setJson(str): boolean

设置 JSON 格式的字符串。

Parameters

NameTypeDescription
strstringJSON 格式的字符串。

Returns

boolean

是否设置成功。

Example

ts
import { McRxObject } from 'mxcad';

let obj = new McRxObject();
const res = obj.setJson('{"key": "value"}');
console.log(res)

Inherited from

McDbObject.setJson


unErase

unErase(): boolean

反删除对象。

Returns

boolean

Example

ts
//假设obj为一个数据库对象
const res = obj.unErase();
console.log(res);

Inherited from

McDbObject.unErase