mxcad_2d API 文档 / 2d / IMcDbDwgFiler
Class: IMcDbDwgFiler
2d.IMcDbDwgFiler
DWG 字段读写接口,用于在自定义实体与 AutoCAD 文件格式之间同步属性数据。
Description
该类提供了统一的字段访问接口,用于把自定义实体中的几何数据和属性数据按名称写入或读取 DWG 文件。 在自定义实体开发中,通常需要实现:
writePoint / readPoint:处理 McGePoint3d 类型字段;writePoints / readPoints:处理点数组字段;writeLong / readLong:处理整型值;writeDouble / readDouble:处理浮点数;writeString / readString:处理字符串。
通过这个接口,开发者可以让自定义实体在保存、克隆、加载 DWG 文件时保持数据一致,避免运行时状态丢失。
使用方式:
- 继承
McDbCustomEntity并在dwgInFields()中读取字段; - 在
dwgOutFields()中将对象属性写回过滤器; - 结合自定义实体注册和绘制逻辑实现,完成对象持久化和恢复。
总结:IMcDbDwgFiler 是自定义实体数据持久化的桥接接口,负责把 JavaScript 侧对象状态与 DWG 文件中的字段数据相互转换。
Example
import { McDbCustomEntity, IMcDbDwgFiler, McGePoint3d } from "mxcad";
class McDbTestLineCustomEntity extends McDbCustomEntity {
private pt1: McGePoint3d = new McGePoint3d();
private pt2: McGePoint3d = new McGePoint3d();
public create(imp?: any): McDbCustomEntity {
return new McDbTestLineCustomEntity(imp);
}
public getTypeName(): string {
return "McDbTestLineCustomEntity";
}
public dwgInFields(filter: IMcDbDwgFiler): boolean {
this.pt1 = filter.readPoint("pt1").val;
this.pt2 = filter.readPoint("pt2").val;
return true;
}
public dwgOutFields(filter: IMcDbDwgFiler): boolean {
filter.writePoint("pt1", this.pt1);
filter.writePoint("pt2", this.pt2);
return true;
}
public worldDraw(draw: any): void {
// 自定义绘制逻辑
}
}Table of contents
Constructors
Methods
- getType
- readDouble
- readLong
- readPoint
- readPoints
- readString
- writeDouble
- writeLong
- writePoint
- writePoints
- writeString
Constructors
constructor
• new IMcDbDwgFiler(type)
构造函数
Parameters
| Name | Type | Description |
|---|---|---|
type | MxCADCloneType | 克隆类型 |
Methods
getType
▸ getType(): MxCADCloneType
获取对象的类型信息
Returns
克隆类型
readDouble
▸ Abstract readDouble(name): Object
从打开的 DWG 文件中读取一个浮点数。
Parameters
| Name | Type | Description |
|---|---|---|
name | string | 浮点数名称 |
Returns
Object
ret 是否成功获取 | val 浮点数值
| Name | Type |
|---|---|
ret | boolean |
val | number |
readLong
▸ Abstract readLong(name): Object
从打开的 DWG 文件中读取一个长整数。
Parameters
| Name | Type | Description |
|---|---|---|
name | string | 长整数名称 |
Returns
Object
ret 是否成功获取 | val 长整数值
| Name | Type |
|---|---|
ret | boolean |
val | number |
readPoint
▸ Abstract readPoint(name): Object
从打开的 DWG 文件中读取一个点对象。
Parameters
| Name | Type | Description |
|---|---|---|
name | string | 点对象名称 |
Returns
Object
ret 是否成功获取 | val 点对象数组
| Name | Type |
|---|---|
ret | boolean |
val | McGePoint3d |
readPoints
▸ readPoints(name): Object
从打开的 DWG 文件中读取一组点对象。
Parameters
| Name | Type | Description |
|---|---|---|
name | string | 点对象数组名称 |
Returns
Object
ret 是否成功获取 | val 点对象数组
| Name | Type |
|---|---|
ret | boolean |
val | McGePoint3d[] |
readString
▸ Abstract readString(name): Object
从打开的 DWG 文件中读取一个字符串。
Parameters
| Name | Type | Description |
|---|---|---|
name | string | 字符串名称 |
Returns
Object
ret 是否成功获取 | val 字符串值
| Name | Type |
|---|---|
ret | boolean |
val | string |
writeDouble
▸ Abstract writeDouble(name, val): void
向已打开的 DWG 文件中写入一个浮点数。
Parameters
| Name | Type | Description |
|---|---|---|
name | string | 浮点数名称 |
val | number | 浮点数值 |
Returns
void
writeLong
▸ Abstract writeLong(name, val): void
向已打开的 DWG 文件中写入一个长整数。
Parameters
| Name | Type | Description |
|---|---|---|
name | string | 长整数名称 |
val | number | 长整数值 |
Returns
void
writePoint
▸ Abstract writePoint(name, val): void
向已打开的 DWG 文件中写入一个点对象。
Parameters
| Name | Type | Description |
|---|---|---|
name | string | 点对象名称 |
val | McGePoint3d | 点对象 |
Returns
void
writePoints
▸ writePoints(name, vals): void
向已打开的 DWG 文件中写入一组点对象。
Parameters
| Name | Type | Description |
|---|---|---|
name | string | 点对象数组名称 |
vals | McGePoint3d[] | 点对象数组 |
Returns
void
writeString
▸ Abstract writeString(name, val): void
向已打开的 DWG 文件中写入一个字符串。
Parameters
| Name | Type | Description |
|---|---|---|
name | string | 字符串名称 |
val | string | 字符串值 |
Returns
void
