ZwDbLine

# 类: ZwDbLine

表示CAD绘图中的直线实体

此类定义直线的属性和行为,由起始点、终止点定义。

# 示例

// 创建示例
const instance = new ZwCloud2D.ZwDataDefinition.ZwDbEntity.ZwDbLine();

# 继承

# 构造函数

# new ZwDbLine()

new ZwDbLine(): ZwDbLine

# 返回

ZwDbLine

# 继承自

ZwDbEntityProto.constructor

# 属性

# type

type: string = 'ZcDbLine'

实体类型标识

# 默认值

'ZcDbLine'

# 重写了

ZwDbEntityProto.type


# endPoint

endPoint: undefined | Point3D

直线的终点坐标 使用三维点坐标表示


# startPoint

startPoint: undefined | Point3D

直线的起点坐标 使用三维点坐标表示


# entityHandle

entityHandle: undefined | string

实体句柄,用于唯一标识CAD数据库中的实体

# 继承自

ZwDbEntityProto.entityHandle


# color

color: number | RGB = 0

实体颜色

# 备注

可以是颜色索引号(0-255)或RGB数组 0 = ByBlock, 256 = ByLayer

# 默认值

0 (ByBlock)

# 继承自

ZwDbEntityProto.color


# layer

layer: string = '0'

实体所在图层名称

# 默认值

'0'

# 继承自

ZwDbEntityProto.layer


# lineType

lineType: string = 'ByLayer'

实体线型名称

# 默认值

'ByLayer'

# 继承自

ZwDbEntityProto.lineType


# lineTypeScale

lineTypeScale: number = 1

线型比例因子

# 默认值

1

# 继承自

ZwDbEntityProto.lineTypeScale


# lineweight

lineweight: number = -1

线宽值(毫米)

# 备注

-1 = ByLayer, -2 = ByBlock, -3 = 默认 0.0-2.11mm 具体线宽值

# 默认值

-1 (ByLayer)

# 继承自

ZwDbEntityProto.lineweight


# thickness

thickness: number = 0

实体厚度(拉伸高度)

# 默认值

0

# 继承自

ZwDbEntityProto.thickness


# transparency

transparency: number = 0

实体透明度

# 备注

0 = 不透明, 90 = 几乎完全透明

# 默认值

0

# 继承自

ZwDbEntityProto.transparency


# xDataList

xDataList: object[] = []

扩展数据列表

# xDataName

xDataName: string

扩展数据名称

# xDataValue

xDataValue: object

扩展数据值

# xDataValue.xDataString

xDataString: string[]

扩展数据字符串数组

# 备注

用于存储应用程序特定的自定义数据

# 默认值

[]

# 继承自

ZwDbEntityProto.xDataList

# 方法

# draw()

draw(): Promise<unknown>

绘制直线到指定的绘图上下文

# 返回

Promise<unknown>

# Async

# 示例

// 使用示例
instance.draw();

# open()

open(handleId): Promise<void>

根据实体句柄获取实体属性并赋值到当前类实例

若未找到实体,则不做处理

# 参数

# handleId

string

# 返回

Promise<void>

# 示例

// 使用示例
instance.open('511');

# 继承自

ZwDbEntityProto.open


# copy()

copy(): any

创建当前对象的副本

该方法通过创建当前对象的新实例,并复制所有属性值, 实现对象的浅拷贝功能。

# 返回

any

返回当前对象的一个新副本,具有相同的属性和值

# 示例

// 使用示例
const copy = instance.copy();
console.log(copy instanceof ZwDbLine); // 输出: true

# 继承自

ZwDbEntityProto.copy


# delete()

delete(): void

删除实例方法 该方法用于删除当前实例,通过删除实例的所有属性来清理对象 注意:这不会从内存中立即删除对象,但会使对象变为空,便于垃圾回收

# 返回

void

# 示例

// 使用示例
instance.delete();

# 继承自

ZwDbEntityProto.delete


# setXdata()

setXdata(key, value): void

设置扩展数据(XData)

该方法用于为实体设置扩展数据,扩展数据是存储在实体上的附加信息。 如果已存在相同键名的扩展数据,则会替换原有值;否则添加新的扩展数据项。

# 参数

# key

string

扩展数据的键名,用于标识数据类型

# value

string[]

扩展数据的值,字符串数组形式

# 返回

void

# 示例

// 使用示例
instance.setXdata("自定义属性", ["值1", "值2", "值3"]);

# 继承自

ZwDbEntityProto.setXdata


# getXdata()

getXdata(): object[]

获取扩展数据列表

该方法返回当前实例的所有扩展数据(XData)。 扩展数据是存储在实体上的附加信息,可以包含各种自定义属性。

# 返回

object[]

扩展数据列表,包含xDataName和xDataValue对象

# 示例

// 使用示例
const xData = instance.getXdata();
xData.forEach(data => {
  console.log(`名称: ${data.xDataName}, 值: ${data.xDataValue.xDataString}`);
});

# 继承自

ZwDbEntityProto.getXdata


# getJson()

getJson(): string

将当前实例转换为JSON字符串

该方法将当前对象的所有属性序列化为JSON字符串格式, 便于存储或传输对象数据。

# 返回

string

当前实例的JSON字符串表示

# 示例

// 使用示例
const jsonString = instance.getJson();
console.log(jsonString); // 输出: {"color":0,"layer":"",...}

# 继承自

ZwDbEntityProto.getJson


# setJson()

setJson(input): void

通过JSON对象设置当前实例的属性值

该方法接受JSON字符串或对象,将其解析后遍历所有属性, 并将存在的属性值赋给当前实例的对应属性。

# 参数

# input

包含属性键值对的JSON字符串或对象

string | object

# 返回

void

# 示例

// 使用示例
instance.setJson('{"color": 255, "layer": "新建图层"}');
// 或
instance.setJson({color: 255, layer: "新建图层"});

# 继承自

ZwDbEntityProto.setJson


# append()

append(): Promise<boolean>

追加实体到数据库

该方法根据当前对象是否已有实体句柄,执行更新或创建操作。 如果已有实体句柄,则更新现有实体;否则创建新实体。

# 返回

Promise<boolean>

返回一个Promise,解析为操作结果:

  • true: 实体创建或更新成功
  • false: 实体操作失败

# 示例

// 使用示例
const success = await instance.append();
if (success) {
  console.log('实体操作成功');
} else {
  console.log('实体操作失败');
}

# 继承自

ZwDbEntityProto.append


# detach()

detach(): undefined | Promise<boolean>

删除实体

该方法用于从数据库中删除当前实体。如果实体尚未创建(无entityHandle), 则不会执行删除操作并输出提示信息。

# 返回

undefined | Promise<boolean>

返回一个Promise,解析为删除操作结果:

  • true: 实体删除成功
  • false: 实体删除失败或未创建实体

# 示例

// 使用示例
const success = await instance.detach();
if (success) {
  console.log('实体已成功删除');
} else {
  console.log('实体删除失败');
}

# 继承自

ZwDbEntityProto.detach