Skip to content

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 文件时保持数据一致,避免运行时状态丢失。

使用方式:

  1. 继承 McDbCustomEntity 并在 dwgInFields() 中读取字段;
  2. dwgOutFields() 中将对象属性写回过滤器;
  3. 结合自定义实体注册和绘制逻辑实现,完成对象持久化和恢复。

总结:IMcDbDwgFiler 是自定义实体数据持久化的桥接接口,负责把 JavaScript 侧对象状态与 DWG 文件中的字段数据相互转换。

Example

ts
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

Constructors

constructor

new IMcDbDwgFiler(type)

构造函数

Parameters

NameTypeDescription
typeMxCADCloneType克隆类型

Methods

getType

getType(): MxCADCloneType

获取对象的类型信息

Returns

MxCADCloneType

克隆类型


readDouble

Abstract readDouble(name): Object

从打开的 DWG 文件中读取一个浮点数。

Parameters

NameTypeDescription
namestring浮点数名称

Returns

Object

ret 是否成功获取 | val 浮点数值

NameType
retboolean
valnumber

readLong

Abstract readLong(name): Object

从打开的 DWG 文件中读取一个长整数。

Parameters

NameTypeDescription
namestring长整数名称

Returns

Object

ret 是否成功获取 | val 长整数值

NameType
retboolean
valnumber

readPoint

Abstract readPoint(name): Object

从打开的 DWG 文件中读取一个点对象。

Parameters

NameTypeDescription
namestring点对象名称

Returns

Object

ret 是否成功获取 | val 点对象数组

NameType
retboolean
valMcGePoint3d

readPoints

readPoints(name): Object

从打开的 DWG 文件中读取一组点对象。

Parameters

NameTypeDescription
namestring点对象数组名称

Returns

Object

ret 是否成功获取 | val 点对象数组

NameType
retboolean
valMcGePoint3d[]

readString

Abstract readString(name): Object

从打开的 DWG 文件中读取一个字符串。

Parameters

NameTypeDescription
namestring字符串名称

Returns

Object

ret 是否成功获取 | val 字符串值

NameType
retboolean
valstring

writeDouble

Abstract writeDouble(name, val): void

向已打开的 DWG 文件中写入一个浮点数。

Parameters

NameTypeDescription
namestring浮点数名称
valnumber浮点数值

Returns

void


writeLong

Abstract writeLong(name, val): void

向已打开的 DWG 文件中写入一个长整数。

Parameters

NameTypeDescription
namestring长整数名称
valnumber长整数值

Returns

void


writePoint

Abstract writePoint(name, val): void

向已打开的 DWG 文件中写入一个点对象。

Parameters

NameTypeDescription
namestring点对象名称
valMcGePoint3d点对象

Returns

void


writePoints

writePoints(name, vals): void

向已打开的 DWG 文件中写入一组点对象。

Parameters

NameTypeDescription
namestring点对象数组名称
valsMcGePoint3d[]点对象数组

Returns

void


writeString

Abstract writeString(name, val): void

向已打开的 DWG 文件中写入一个字符串。

Parameters

NameTypeDescription
namestring字符串名称
valstring字符串值

Returns

void