mxcad_2d API 文档 / 2d / MxCADResbuf
Class: MxCADResbuf
2d.MxCADResbuf
MxCADResbuf 类用于操作 AutoCAD 中的 resbuf 数据。
Example
// 筛选图纸中的所有文字对象
import { MxCADResbuf } from "mxcad"
// 定义过滤
const filter = new MxCADResbuf();
filter.AddMcDbEntityTypes("TEXT,MTEXT");
// 设置选择,筛选文字对象
let ss = new MxCADSelectionSet();
ss.allSelect(filter);
ss.forEach((id) => {
let ent: any = id.getMcDbEntity();
if (!ent) return;
ent = McDbEntityToJsonObject(ent);
console.log(JSON.stringify(ent));
})
Hierarchy
↳
MxCADResbuf
Table of contents
Constructors
Properties
Accessors
Methods
- AddDouble
- AddLong
- AddMcDbEntityTypes
- AddObject
- AddObjectId
- AddPoint
- AddString
- AtDouble
- AtLong
- AtObject
- AtObjectId
- AtPoint
- AtString
- Clear
- GetCount
- ItemDataDxf
- ItemDataType
- PrintData
- Remove
- RemoveAll
- forEach
- getImp
- getJson
- initTempObject
- isKindOf
- isNull
- setJson
Constructors
constructor
• new MxCADResbuf(imp?
)
构造函数。
Parameters
Name | Type | Description |
---|---|---|
imp? | any | 内部实现对象。 |
Example
import { MxCADResbuf, DxfCode } from "mxcad"
// 定义过滤器,过滤实体类型:直线,圆弧,圆,多义线
const filter = new MxCADResbuf([DxfCode.kEntityType, "LINE,ARC,CIRCLE,LWPOLYLINE"]));
Overrides
Properties
imp
• imp: any
= 0
内部实现对象。
Inherited from
Accessors
dxf0
• get
dxf0(): string
得到对象的DXF组码的类型名,这个和AutoCAD中的DXF组码是一样。 比如直线的类型名为:McDbLine,DXF0组码值: LINE,DXF0组码值可以用来构造集时的类型过滤。
Returns
string
Inherited from
McRxObject.dxf0
objectName
• get
objectName(): string
获取对象名称。
Returns
string
返回对象名
Example
import { McRxObject } from 'mxcad';
let obj = new McRxObject();
console.log(obj.objectName);
Inherited from
McRxObject.objectName
Methods
AddDouble
▸ AddDouble(val
, lDataType?
): number
添加 double 类型值到 resbuf 中。
Parameters
Name | Type | Default value | Description |
---|---|---|---|
val | number | undefined | double 类型值。 |
lDataType | number | -10 | 数据类型。 |
Returns
number
添加的数据项索引。
Example
import { MxCADResbuf } from "mxcad"
// 定义过滤器
const filter = new MxCADResbuf()
filter.AddDouble (3.14);
AddLong
▸ AddLong(val
, lDataType?
): number
添加 long 类型值到 resbuf 中。
Parameters
Name | Type | Default value | Description |
---|---|---|---|
val | number | undefined | long 类型值。 |
lDataType | number | -10 | 数据类型。 |
Returns
number
添加的数据项索引。
Example
import { MxCADResbuf } from "mxcad"
// 定义过滤器
const filter = new MxCADResbuf()
filter.AddLong (42);
AddMcDbEntityTypes
▸ AddMcDbEntityTypes(str
): any
添加实体类型,用于选择集过滤使用
Parameters
Name | Type | Description |
---|---|---|
str | string | 多个类型用,连接 例如: "TEXT,MTEXT" |
Returns
any
Description
实体的类型表
类型 | 描述 |
---|---|
POINT | 文字 |
TEXT | 文字 |
MTEXT | 多行文字 |
CIRCLE | 圆 |
ARC | 圆弧 |
LINE | 线 |
LWPOLYLINE | 多段线 |
INSERT | 图块 |
ELLIPSE | 椭圆 |
SPLINE | 样条线 |
LinkLine | 超链接 |
Example
import { MxCADResbuf } from "mxcad"
// 定义过滤器
const filter = new MxCADResbuf()
filter.AddMcDbEntityTypes ("TEXT,LINE");
AddObject
▸ AddObject(pObj
): void
添加 McRxObject 对象到 resbuf 中
Parameters
Name | Type | Description |
---|---|---|
pObj | McRxObject | McRxObject示例对象 |
Returns
void
Example
import { MxCADResbuf, McRxObject } from "mxcad"
// 定义过滤器
const filter = new MxCADResbuf();
filter.AddObject( new McRxObject());
AddObjectId
▸ AddObjectId(val
, lDataType?
): number
添加 ObjectId 到 resbuf 中。
Parameters
Name | Type | Default value | Description |
---|---|---|---|
val | number | undefined | ObjectId。 |
lDataType | number | -10 | 数据类型。 |
Returns
number
添加的数据项索引。
Example
import { MxCADResbuf, McDbObject } from "mxcad"
// 定义过滤器
const filter = new MxCADResbuf()
const objId = new McDbObject();
filter.AddObjectId (objId);
AddPoint
▸ AddPoint(pt
, lDataType?
): number
添加点坐标到 resbuf 中。
Parameters
Name | Type | Default value | Description |
---|---|---|---|
pt | McGePoint3d | undefined | 点坐标。 |
lDataType | number | -10 | 数据类型。 |
Returns
number
添加的数据项索引。
Example
import { MxCADResbuf, McGePoint3d } from "mxcad"
// 定义过滤器
const filter = new MxCADResbuf()
filter.AddPoint (new McGePoint3d(10,20,0));
AddString
▸ AddString(str
, lDataType?
, decodeFromGb2312?
): number
添加字符串到 resbuf 中。
Parameters
Name | Type | Default value | Description |
---|---|---|---|
str | string | undefined | 字符串。 |
lDataType | number | -10 | 数据类型。 |
decodeFromGb2312 | boolean | true | - |
Returns
number
添加的数据项索引。
Example
import { MxCADResbuf } from "mxcad"
// 定义过滤器
const filter = new MxCADResbuf()
filter.AddString ("测试字符串");
AtDouble
▸ AtDouble(lItem
): Object
获取 resbuf 数据项中的 double 类型值。
Parameters
Name | Type | Description |
---|---|---|
lItem | number | 数据项索引。 |
Returns
Object
包含 double 类型值和返回值的对象。
Name | Type |
---|---|
ret | boolean |
val | number |
Example
import { MxCADResbuf } from "mxcad"
// 定义过滤器
const filter = new MxCADResbuf()
console.log(filter.AtDouble(0))
AtLong
▸ AtLong(lItem
): Object
获取 resbuf 数据项中的 long 类型值。
Parameters
Name | Type | Description |
---|---|---|
lItem | number | 数据项索引。 |
Returns
Object
包含 long 类型值和返回值的对象。
Name | Type |
---|---|
ret | boolean |
val | number |
Example
import { MxCADResbuf } from "mxcad"
// 定义过滤器
const filter = new MxCADResbuf()
console.log(filter.AtLong(0))
AtObject
▸ AtObject(lItem
): Object
获取 resbuf 数据项中的 McRxObject 对象。
Parameters
Name | Type | Description |
---|---|---|
lItem | number | 数据项索引。 |
Returns
Object
包含 数据库对象和返回值的对象。
Name | Type |
---|---|
ret | boolean |
val | undefined | McDbObject |
Example
import { MxCADResbuf } from "mxcad"
// 定义过滤器
const filter = new MxCADResbuf()
console.log(filter.AtObject(0))
AtObjectId
▸ AtObjectId(lItem
): Object
获取 resbuf 数据项中的 ObjectId。
Parameters
Name | Type | Description |
---|---|---|
lItem | number | 数据项索引。 |
Returns
Object
包含 ObjectId 和返回值的对象。
Name | Type |
---|---|
ret | boolean |
val | McObjectId |
Example
import { MxCADResbuf } from "mxcad
const filter = new MxCADResbuf();
console.log(filter.AtObjectId(0))
AtPoint
▸ AtPoint(lItem
): Object
获取 resbuf 数据项中的点坐标。
Parameters
Name | Type | Description |
---|---|---|
lItem | number | 数据项索引。 |
Returns
Object
包含点坐标和返回值的对象。
Name | Type |
---|---|
ret | boolean |
val | McGePoint3d |
Example
import { MxCADResbuf } from "mxcad
const filter = new MxCADResbuf();
console.log(filter.AtPoint(0))
AtString
▸ AtString(lItem
, decodeFromGb2312?
): Object
获取 resbuf 数据项中的字符串。
Parameters
Name | Type | Default value | Description |
---|---|---|---|
lItem | number | undefined | 数据项索引。 |
decodeFromGb2312 | boolean | true | - |
Returns
Object
包含字符串和返回值的对象。
Name | Type |
---|---|
ret | boolean |
val | string |
Example
import { MxCADResbuf } from "mxcad
const filter = new MxCADResbuf();
console.log(filter.AtString(0))
Clear
▸ Clear(): void
清空 resbuf 数据。
Returns
void
Example
import { MxCADResbuf } from "mxcad"
// 定义过滤器
const filter = new MxCADResbuf()
filter.AddMcDbEntityTypes("TEXT,MTEXT");
filter.Clear();
console.log(filter.GetCount())//输出0
GetCount
▸ GetCount(): number
获取 resbuf 数据项个数。
Returns
number
resbuf 数据项个数。
Example
import { MxCADResbuf } from "mxcad"
// 定义过滤器
const filter = new MxCADResbuf()
console.log(filter.GetCount())//输出0
ItemDataDxf
▸ ItemDataDxf(index
): number
获取 resbuf 数据项中的数据的DXF值
Parameters
Name | Type | Description |
---|---|---|
index | number | 索引值 |
Returns
number
DXF值
Example
import { MxCADResbuf } from "mxcad"
// 定义过滤器
const filter = new MxCADResbuf()
console.log(filter.ItemDataDxf(0))
ItemDataType
▸ ItemDataType(index
): number
获取 resbuf 数据项中的数据类型。
Parameters
Name | Type | Description |
---|---|---|
index | number | 索引值 |
Returns
number
数据类型。
Example
import { MxCADResbuf } from "mxcad"
// 定义过滤器
const filter = new MxCADResbuf()
console.log(filter.ItemDataType(0))
PrintData
▸ PrintData(): void
调试输入信息
Returns
void
Example
import { MxCADResbuf } from "mxcad"
// 定义过滤器
const filter = new MxCADResbuf()
filter.PrintData("调试信息")
Remove
▸ Remove(lItem
): void
移除指定索引的 resbuf 数据项。
Parameters
Name | Type | Description |
---|---|---|
lItem | number | 数据项索引。 |
Returns
void
Example
import { MxCADResbuf } from "mxcad"
// 定义过滤器
const filter = new MxCADResbuf()
filter.AtLong (42);
filter.Remove(0);
RemoveAll
▸ RemoveAll(): void
移除所有 resbuf 数据项。
Returns
void
Example
import { MxCADResbuf } from "mxcad"
// 定义过滤器
const filter = new MxCADResbuf()
filter.AtLong (42);
filter.RemoveAll();
forEach
▸ forEach(call
): void
遍历数据。
Parameters
Name | Type | Description |
---|---|---|
call | (val : any , type : number , dxf : number , index : number ) => void | 接受3个参数的回调函数(val:元素的值,type:元素类型,dxf:元素的数据交换格式) |
Returns
void
Example
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
内部实现对象。
Example
import { McRxObject } from 'mxcad';
let obj = new McRxObject();
let imp = obj.getImp();
Inherited from
getJson
▸ getJson(): string
获取 JSON 格式的字符串。
Returns
string
JSON 格式的字符串。
Example
import { McRxObject } from 'mxcad';
let obj = new McRxObject();
const json = obj.getJson()
Inherited from
initTempObject
▸ initTempObject(imp
): void
初始化临时对象。
Parameters
Name | Type | Description |
---|---|---|
imp | any | 内部实现对象。 |
Returns
void
Example
import { McRxObject } from 'mxcad';
let obj = new McRxObject();
obj.initTempObject()
Inherited from
isKindOf
▸ isKindOf(sObjectName
): boolean
判断对象类型
Parameters
Name | Type | Description |
---|---|---|
sObjectName | string | 类型名 |
Returns
boolean
返回对象是否是目标类型
Example
import { McRxObject } from 'mxcad';
let obj = new McRxObject();
let isKind = obj.isKindOf('SomeObjectType');
console.log(isKind); // 输出: true 或 false
Inherited from
isNull
▸ isNull(): any
判断是否为空对象
Returns
any
Example
import { McRxObject } from 'mxcad';
let obj = new McRxObject();
console.log(obj.isNull()); // 输出: true 或 false
Inherited from
setJson
▸ setJson(str
): boolean
设置 JSON 格式的字符串。
Parameters
Name | Type | Description |
---|---|---|
str | string | JSON 格式的字符串。 |
Returns
boolean
是否设置成功。
Example
import { McRxObject } from 'mxcad';
let obj = new McRxObject();
const res = obj.setJson('{"key": "value"}');
console.log(res)