Home > SCH_Utils > splitLines
SCH_Utils.splitLines() method
此 API 当前处于 BETA 预览状态,希望得到开发者的反馈。它的任何功能都可能在接下来的开发进程中被修改,请不要将它用于任何正式环境。
拆分多段线
签名
typescript
function splitLines(
lines: Array<number | Array<number>>,
): Array<Array<number | Array<number>>> | undefined;1
2
3
2
3
参数名
参数 | 类型 | 描述 |
|---|---|---|
lines | Array<number | Array<number>> | 多段线坐标组,每段都是连续的一组 |
返回值
Array<Array<number | Array<number>>> | undefined
备注
将相互之间无任何连接的多段线坐标组拆分成多个多段线,无论是否有多个多段线,本函数都会在输入数据的基础上包裹一层数组; 建议用于 ISCH_PrimitiveBus 和 ISCH_PrimitiveWire 等包含多段线的场景
示例
javascript
// 1. 一条连续线的扁平坐标(SCH 坐标单位是 10mil,100 ≈ 25.4mm)
const flatLine = [100, 100, 400, 100, 400, 300];
const single = eda.sch_Utils.splitLines(flatLine);
console.log('单条连续线:', JSON.stringify(single), ',多段线条数:', single.length);
// 2. 相互断开的两条线——各自保留为列表中的独立条目
const separated = eda.sch_Utils.splitLines([
[100, 100, 300, 100],
[500, 100, 700, 100, 700, 300],
]);
console.log('断开的两条线:', JSON.stringify(separated), ',多段线条数:', separated.length);
// 3. 实际场景:读取画布上导线的坐标数据(嵌套段数组)并归一化
const wire = await eda.sch_PrimitiveWire.create([800, 300, 1200, 300, 1200, 500]);
const lineData = wire.getState_Line();
console.log('导线原始坐标:', JSON.stringify(lineData));
const polylines = eda.sch_Utils.splitLines(lineData);
console.log('导线归一化结果:', JSON.stringify(polylines), ',多段线条数:', polylines.length);
// 4. 清理测试图元(查询演示,保持画布干净)
await eda.sch_PrimitiveWire.delete([wire.getState_PrimitiveId()]);1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21