Skip to content

mxcad_2d API 文档 / 2d / MxCADResbuf

Class: MxCADResbuf ​

2d.MxCADResbuf

MxCADResbuf 是一个用于构造和读取 CAD 规则数据的容器类。

Description

该类用于封装 AutoCAD / MxCAD 中的 resbuf 数据结构,常见于实体筛选、图层条件、扩展数据查询和对象选择等场景。 它本质上更接近“数据规则集/条件容器”,用于把多种查询条件组织成统一的数据格式,再传递给选择集、命令交互、对象查询等功能;同时也能读取字符串、数值、点、对象 ID 等数据。 使用方法:

  1. new MxCADResbuf() 创建条件容器;
  2. 调用 AddMcDbEntityTypes / AddString / AddPoint 等方法添加规则项;
  3. 将该容器传递给 MxCADSelectionSet.allSelect()、MxCADUtility.findEntAtPoint() 等接口;
  4. 使用 AtString / AtPoint / AtDouble / GetCount 等方法读取其中的数据。

Example

ts
import { MxCADResbuf, MxCADSelectionSet } from "mxcad";

// 创建条件容器,仅筛选直线和圆
const rules = new MxCADResbuf();
rules.AddMcDbEntityTypes("LINE,CIRCLE");

const ss = new MxCADSelectionSet();
ss.allSelect(rules);
console.log("当前选择集对象数量:", ss.count());

Hierarchy ​

Table of contents ​

Constructors ​

Properties ​

Accessors ​

Methods ​

Constructors ​

constructor ​

• new MxCADResbuf(imp?)

构造函数。

Parameters ​

NameTypeDescription
imp?any内部实现对象。

Example

ts
import { MxCADResbuf, DxfCode, MxCADSelectionSet } from "mxcad"

let ss = new MxCADSelectionSet();
// 定义筛选条件,限定实体类型:直线,圆弧,圆,多段线
const filter1 = new MxCADResbuf([DxfCode.kEntityType, "LINE,ARC,CIRCLE,LWPOLYLINE"]));
ss.allSelect(filter1);

// 得到图上,直线,圆,圆弧,多段线,在0层上的对象.
  const filter2 = new MxCADResbuf([DxfCode.kEntityType, "LINE,ARC,CIRCLE,LWPOLYLINE", DxfCode.kLayer, "0"]);
  ss.allSelect(filter2);

Overrides ​

McRxObject.constructor

Properties ​

imp ​

• imp: any = 0

内部实现对象。

Inherited from ​

McRxObject.imp

Accessors ​

dxf0 ​

• get dxf0(): string

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

Returns ​

string

Inherited from ​

McRxObject.dxf0


objectName ​

• get objectName(): string

获取对象名称。

Returns ​

string

返回对象名

Inherited from ​

McRxObject.objectName

Methods ​

AddAppName ​

▸ AddAppName(str, decodeFromGb2312?): number

添加扩展数据名,用于选择集规则筛选

Parameters ​

NameTypeDefault valueDescription
strstringundefined扩展数据名
decodeFromGb2312booleantrue是否从GB2312编码解码,默认为true

Returns ​

number

添加的数据项索引


AddDouble ​

▸ AddDouble(val, lDataType?): number

添加 double 类型值到 resbuf 中。

Parameters ​

NameTypeDefault valueDescription
valnumberundefineddouble 类型值。
lDataTypenumber-10数据类型。

Returns ​

number

添加的数据项索引。


AddLong ​

▸ AddLong(val, lDataType?): number

添加 long 类型值到 resbuf 中。

Parameters ​

NameTypeDefault valueDescription
valnumberundefinedlong 类型值。
lDataTypenumber-10数据类型。

Returns ​

number

添加的数据项索引。


AddMcDbEntityTypes ​

▸ AddMcDbEntityTypes(str): any

添加实体类型,用于选择集规则筛选

Parameters ​

NameTypeDescription
strstring多个类型用,连接 例如: "TEXT,MTEXT"

Returns ​

any

Description

实体的类型表

类型描述
POINT文字
TEXT文字
MTEXT多行文字
CIRCLE圆
ARC圆弧
LINE线
LWPOLYLINE多段线
INSERT图块
ELLIPSE椭圆
SPLINE样条线
LinkLine超链接

Example

ts
import { MxCADResbuf } from "mxcad"
// 定义筛选条件
const filter = new MxCADResbuf()
filter.AddMcDbEntityTypes ("TEXT,LINE");

AddObject ​

▸ AddObject(pObj): void

添加 McRxObject 对象到 resbuf 中

Parameters ​

NameTypeDescription
pObjMcRxObjectMcRxObject示例对象

Returns ​

void


AddObjectId ​

▸ AddObjectId(val, lDataType?): number

添加 ObjectId 到 resbuf 中。

Parameters ​

NameTypeDefault valueDescription
valnumber | BigIntundefinedObjectId。
lDataTypenumber-10数据类型。

Returns ​

number

添加的数据项索引。


AddPoint ​

▸ AddPoint(pt, lDataType?): number

添加点坐标到 resbuf 中。

Parameters ​

NameTypeDefault valueDescription
ptMcGePoint3dundefined点坐标。
lDataTypenumber-10数据类型。

Returns ​

number

添加的数据项索引。


AddString ​

▸ AddString(str, lDataType?, decodeFromGb2312?): number

添加字符串到 resbuf 中。

Parameters ​

NameTypeDefault valueDescription
strstringundefined字符串。
lDataTypenumber-10数据类型。
decodeFromGb2312booleantrue-

Returns ​

number

添加的数据项索引。


AtDouble ​

▸ AtDouble(lItem): Object

获取 resbuf 数据项中的 double 类型值。

Parameters ​

NameTypeDescription
lItemnumber数据项索引。

Returns ​

Object

包含 double 类型值和返回值的对象。

NameType
retboolean
valnumber

AtLong ​

▸ AtLong(lItem): Object

获取 resbuf 数据项中的 long 类型值。

Parameters ​

NameTypeDescription
lItemnumber数据项索引。

Returns ​

Object

包含 long 类型值和返回值的对象。

NameType
retboolean
valnumber

AtObject ​

▸ AtObject(lItem): Object

获取 resbuf 数据项中的 McRxObject 对象。

Parameters ​

NameTypeDescription
lItemnumber数据项索引。

Returns ​

Object

包含 数据库对象和返回值的对象。

NameType
retboolean
valundefined | McDbObject

AtObjectId ​

▸ AtObjectId(lItem): Object

获取 resbuf 数据项中的 ObjectId。

Parameters ​

NameTypeDescription
lItemnumber数据项索引。

Returns ​

Object

包含 ObjectId 和返回值的对象。

NameType
retboolean
valMcObjectId

AtObjectIdValue ​

▸ AtObjectIdValue(lItem): Object

获取 resbuf 数据项中的 ObjectId 值。

Parameters ​

NameTypeDescription
lItemnumber数据项索引。

Returns ​

Object

NameType
retboolean
valnumber

AtPoint ​

▸ AtPoint(lItem): Object

获取 resbuf 数据项中的点坐标。

Parameters ​

NameTypeDescription
lItemnumber数据项索引。

Returns ​

Object

包含点坐标和返回值的对象。

NameType
retboolean
valMcGePoint3d

AtString ​

▸ AtString(lItem, decodeFromGb2312?): Object

获取 resbuf 数据项中的字符串。

Parameters ​

NameTypeDefault valueDescription
lItemnumberundefined数据项索引。
decodeFromGb2312booleantrue-

Returns ​

Object

包含字符串和返回值的对象。

NameType
retboolean
valstring

Clear ​

▸ Clear(): void

清空 resbuf 数据。

Returns ​

void


GetCount ​

▸ GetCount(): number

获取 resbuf 数据项个数。

Returns ​

number

resbuf 数据项个数。


GetPoints ​

▸ GetPoints(): McGePoint3dArray

获取 resbuf 中所有点数据。

Returns ​

McGePoint3dArray


ItemDataDxf ​

▸ ItemDataDxf(index): number

获取 resbuf 数据项中的数据的DXF值

Parameters ​

NameTypeDescription
indexnumber索引值

Returns ​

number

DXF值


ItemDataType ​

▸ ItemDataType(index): number

获取 resbuf 数据项中的数据类型。

Parameters ​

NameTypeDescription
indexnumber索引值

Returns ​

number

数据类型。


PrintData ​

▸ PrintData(): void

调试输入信息

Returns ​

void


Remove ​

▸ Remove(lItem): void

移除指定索引的 resbuf 数据项。

Parameters ​

NameTypeDescription
lItemnumber数据项索引。

Returns ​

void


RemoveAll ​

▸ RemoveAll(): void

移除所有 resbuf 数据项。

Returns ​

void


forEach ​

▸ forEach(call): void

遍历数据。

Parameters ​

NameTypeDescription
call(val: any, type: number, dxf: number, index: number) => void接受3个参数的回调函数(val:元素的值,type:元素类型,dxf:元素的数据交换格式)

Returns ​

void

Example

ts
  import {MxCADResbuf} from "mxcad"

  //创建MxCADResbuf实例
  const cadResbuf = new MxCADResbuf();
  cadResbuf.AddPoint(new McGePoint3d(1,2,3));//添加一个point元素
  cadResbuf.AddString(“Hello”);//添加一个字符串元素
  cadResbuf.AddDouble (3.14);//添加双精度型数据
  cadResbuf.AddLong (42);//添加一个整型数据

  //迭代CAD Resbuf实例中的元素
  cadResbuf.forEach((val, type, dxf)=>{
   console.log("值:",val);
   console.log("类型:",type);
   console.log("DXF:",DXF);
   });
   //输出:
   //值:{x: 1, y: 2, z: 3}
   //类型:5009
   // dxf: 10
   //值:Hello
   //类型:5005
   // dxf: 10
   //取值:3.14
   //类型:5001
   // dxf: 10
   //取值:42
   //类型:5010
   // dxf: 10

getImp ​

▸ getImp(): any

获取内部实现对象。

Returns ​

any

内部实现对象。

Inherited from ​

McRxObject.getImp


getJson ​

▸ getJson(): string

获取 JSON 格式的字符串。

Returns ​

string

JSON 格式的字符串。

Inherited from ​

McRxObject.getJson


initTempObject ​

▸ initTempObject(imp): void

初始化临时对象。

Parameters ​

NameTypeDescription
impany内部实现对象。

Returns ​

void

Inherited from ​

McRxObject.initTempObject


isKindOf ​

▸ isKindOf(sObjectName): boolean

判断对象类型

Parameters ​

NameTypeDescription
sObjectNamestring类型名

Returns ​

boolean

返回对象是否是目标类型

Inherited from ​

McRxObject.isKindOf


isNull ​

▸ isNull(): any

判断是否为空对象

Returns ​

any

Inherited from ​

McRxObject.isNull


setJson ​

▸ setJson(str): boolean

设置 JSON 格式的字符串。

Parameters ​

NameTypeDescription
strstringJSON 格式的字符串。

Returns ​

boolean

是否设置成功。

Inherited from ​

McRxObject.setJson