Skip to content
On this page

mxcad_2d API 文档 / 2d / McDbBlockTableRecord

Class: McDbBlockTableRecord

2d.McDbBlockTableRecord

数据库的块表记录对象,实现了对图块的属性相关操作函数。

Example

ts
// 添加图块
   import { MxCpp, McDbBlockTableRecord, McDbBlockReference, McDbLine, McCmColor } from "mxcad"

   let mxcad = MxCpp.getCurrentMxCAD();
   let blkTable =  mxcad.getDatabase().getBlockTable();
   let blkRecId = blkTable.add(new McDbBlockTableRecord());

   // 根据ObjectId再次得到刚刚添加的图块记录
   let blkTableRecord:McDbBlockTableRecord = blkRecId.getMcDbBlockTableRecord()

   // 添加两条线段再图块记录中 这里每条线段的具体属性比如开始点和结束点自行赋值
   const line = new McDbLine(80, 80, 0, -80, -80, 0)
   line.trueColor = new McCmColor(255, 0, 0)
   const line1 = new McDbLine(-80, 80, 0, 80, -80, 0)
   blkTableRecord.appendAcDbEntity(line);
   blkTableRecord.appendAcDbEntity(line1);

   // 设置图块的基点 一般是包围盒内的点, 可以任意指定
   blkTableRecord.origin = new McGePoint3d(0,0,0);

   // 实例化块参照 这里需要设置我们刚刚添加图块记录得到的ObjectId
   let blkRef = new McDbBlockReference();
   blkRef.blockTableRecordId = blkRecId;
   // 最后设置位置 渲染图块
   blkRef.position = new McGePoint3d(0,0,0);

   mxcad.drawEntity(blkRef);
ts
// 改块颜色
   import { McDbBlockTableRecord, MxCADResbuf, MxCpp, McCmColor} from "mxcad";
   
   async function Mx_BlkColor() {
       // 选择目标块
       let filter = new MxCADResbuf();
       filter.AddMcDbEntityTypes("INSERT");// 设置过滤器,选择块对象
       const getBlockEvent = new MxCADUiPrEntity()
       getBlockEvent.setMessage('选择需要修改基点的块');
       getBlockEvent.setFilter(filter);
       const block_id = await getBlockEvent.go();
       if (!block_id.id) return;
       // 块实体
       const blkRef = block_id.getMcDbEntity() as McDbBlockReference;
       let blkRec = blkRef.blockTableRecordId.getMcDbBlockTableRecord();
       Mx_ModyfBlockRecordEntityColor(blkRec);// 设置块颜色类型为随块

       // 设置块颜色
       const getColor = new MxCADUiPrInt();
       getColor.setMessage('输入颜色索引(0~256)');
       let colorNum = await getColor.go() || 0;
       let color = new McCmColor();
       color.setColorIndex(colorNum);
       blkRef.trueColor = color;
       const mxcad = MxCpp.getCurrentMxCAD();
       mxcad.updateDisplay()
   }
   // 设置块颜色类型
   function Mx_ModyfBlockRecordEntityColor(blkRec: McDbBlockTableRecord) {
       blkRec.getAllEntityId().forEach(id => {
           let ent = id.getMcDbEntity();
           ent.colorIndex = ColorIndexType.kByblock;
           if (ent instanceof McDbBlockReference) {
               let blkref = ent as McDbBlockReference;
               Mx_ModyfBlockRecordEntityColor(blkref.blockTableRecordId.getMcDbBlockTableRecord());
           }
       })
   }

Hierarchy

Table of contents

Constructors

Properties

Accessors

Methods

Constructors

constructor

new McDbBlockTableRecord(imp?)

构造函数。

Example

ts
import { McDbBlockTableRecord } from "mxcad";

const blkRec = new McDbBlockTableRecord();

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


name

get name(): string

获取或设置名称。

Example

ts
// 假设blkRec为一个有效的块表记录对象
blkRec.name = "测试图块名";
console.log(blkRec.name);//测试图块名

Returns

string

set name(val): void

Parameters

NameType
valstring

Returns

void


objectName

get objectName(): string

获取对象名称。

Example

ts
import { McRxObject } from 'mxcad';

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

Returns

string

返回对象名

Inherited from

McDbObject.objectName


origin

get origin(): McGePoint3d

图块原点

Example

ts
import { McDbBlockTableRecord, McGePoint3d } from "mxcad";

const blkRec = new McDbBlockTableRecord();
blkRec.origin = new McGePoint3d(0,0,0);
console.log("图块原点", blkRec.origin)//(0,0,0)

Returns

McGePoint3d

三维点向量

set origin(origin): void

Parameters

NameType
originMcGePoint3d

Returns

void

Methods

appendAcDbEntity

appendAcDbEntity(pEntity): McObjectId

给图块添加对应实体

Example

ts
import { McDbBlockTableRecord, McDbLine } from "mxcad";

const line = new McDbLine(-80, 80, 0, 80, -80, 0);
const blkRec = new McDbBlockTableRecord();
const objId = blkRec.appendAcDbEntity(line)

Parameters

NameTypeDescription
pEntityMcDbEntity实体

Returns

McObjectId

对象id


assertObjectModification

assertObjectModification(autoUndo?): number

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

Example

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

Parameters

NameTypeDefault value
autoUndobooleanfalse

Returns

number

Inherited from

McDbObject.assertObjectModification


clone

clone(): null | McDbObject

克隆对象。

Example

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

Returns

null | McDbObject

克隆出的对象。

Inherited from

McDbObject.clone


createExtensionDictionary

createExtensionDictionary(): boolean

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

Example

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

Returns

boolean

Inherited from

McDbObject.createExtensionDictionary


erase

erase(): boolean

删除对象。

Example

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

Returns

boolean

是否删除成功。

Inherited from

McDbObject.erase


getAllEntityId

getAllEntityId(skipDeleted?): McObjectId[]

获取图块中所有实体的对象ID

Example

ts
import { McDbBlockTableRecord, McDbLine } from "mxcad";

const line = new McDbLine(-80, 80, 0, 80, -80, 0);
const blkRec = new McDbBlockTableRecord();
blkRec.appendAcDbEntity(line);
const aryId = blkRec.getAllEntityId();
console.log(aryId)

Parameters

NameTypeDefault value
skipDeletedbooleantrue

Returns

McObjectId[]


getBoundingBox

getBoundingBox(): Object

得到图块最小外包,获取图块的最大点和最小点

Example

ts
// 假设blkRec为一个有效的块表记录对象
const retVal = blkRec.getBoundingBox();
if(retVal.ret){
  console.log("最小点", retVal.minPt);
  console.log("最大点", retVal.maxPt);
}else{
  console.log("error")
}

Returns

Object

minPt:最小点 | maxPt:最大点 | ret:是否获取成功

NameType
maxPtMcGePoint3d
minPtMcGePoint3d
retboolean

getDatabase

getDatabase(): McDbDatabase

得到对象所在的数据库

Example

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

Returns

McDbDatabase

返回数据库

Inherited from

McDbObject.getDatabase


getDatabaseIndexId

getDatabaseIndexId(): number

获取对象的索引ID

Example

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

Returns

number

Inherited from

McDbObject.getDatabaseIndexId


getExtensionDictionary

getExtensionDictionary(): McDbDictionary

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

Example

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

Returns

McDbDictionary

扩展字典数据

Inherited from

McDbObject.getExtensionDictionary


getGripPoints

getGripPoints(): McGePoint3dArray

获取对象的控制点

Example

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

Returns

McGePoint3dArray

Inherited from

McDbObject.getGripPoints


getHandle

getHandle(): string

得到对象句柄

Example

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

Returns

string

返回对象句柄

Inherited from

McDbObject.getHandle


getImp

getImp(): any

获取内部实现对象。

Example

ts
import { McRxObject } from 'mxcad';

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

Returns

any

内部实现对象。

Inherited from

McDbObject.getImp


getJson

getJson(): string

获取 JSON 格式的字符串。

Example

ts
import { McRxObject } from 'mxcad';

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

Returns

string

JSON 格式的字符串。

Inherited from

McDbObject.getJson


getMinMaxDrawOrder

getMinMaxDrawOrder(): Object

返回块表记录中所有对象的最小,最大显示顺序.

Example

ts
// 获取最小和最大绘制顺序
const { minDrawOrder, maxDrawOrder } = blkRec.getMinMaxDrawOrder();

// 打印结果
console.log("最小绘制顺序:", minDrawOrder);
console.log("最大绘制顺序:", maxDrawOrder);

Returns

Object

minDrawOrder: 最小显示顺序 | maxDrawOrder: 最大显示顺序

NameType
maxDrawOrdernumber
minDrawOrdernumber

getObjectID

getObjectID(): McObjectId

获取对象 ID。

Example

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

Returns

McObjectId

对象 ID。

Inherited from

McDbObject.getObjectID


getOwnerID

getOwnerID(): number

得到对象拥用者的id

Example

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

Returns

number

Inherited from

McDbObject.getOwnerID


initTempObject

initTempObject(imp): void

初始化临时对象。

Example

ts
import { McRxObject } from 'mxcad';

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

Parameters

NameTypeDescription
impany内部实现对象。

Returns

void

Inherited from

McDbObject.initTempObject


invalidBoundingBoxBuffer

invalidBoundingBoxBuffer(): void

使边界框缓冲区无效化,强制重新计算或更新边界框信息

Example

ts
// 假设blkRec为一个有效的块表记录对象
blkRec.invalidBoundingBoxBuffer()

Returns

void


isErased

isErased(): boolean

对象是否已经删除

Example

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

Returns

boolean

Inherited from

McDbObject.isErased


isHaveExtensionDictionary

isHaveExtensionDictionary(): boolean

是否有扩展字典数据.

Example

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

Returns

boolean

Inherited from

McDbObject.isHaveExtensionDictionary


isKindOf

isKindOf(sObjectName): boolean

判断对象类型

Example

ts
import { McRxObject } from 'mxcad';

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

Parameters

NameTypeDescription
sObjectNamestring类型名

Returns

boolean

返回对象是否是目标类型

Inherited from

McDbObject.isKindOf


isNull

isNull(): any

判断是否为空对象

Example

ts
import { McRxObject } from 'mxcad';

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

Returns

any

Inherited from

McDbObject.isNull


moveGripPointsAt

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

移动对象的控制点

Example

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

Parameters

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

Returns

any

Inherited from

McDbObject.moveGripPointsAt


setJson

setJson(str): boolean

设置 JSON 格式的字符串。

Example

ts
import { McRxObject } from 'mxcad';

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

Parameters

NameTypeDescription
strstringJSON 格式的字符串。

Returns

boolean

是否设置成功。

Inherited from

McDbObject.setJson


unErase

unErase(): boolean

反删除对象。

Example

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

Returns

boolean

Inherited from

McDbObject.unErase