import { Processor, ProcessorModule } from "../../src/device"; import { ErrorInfo } from "../../src/device"; import { PlaceBlockDetail } from "../confClass"; /** 模块 造型轮廓(含封边),扣除封边, 变成开料坐标 * !!!!!!!!! 有异常 要调整 * input 入参 */ export const ResetModelContour: ProcessorModule = { moduleName: "ResetModelContour", moduleVersion: '20250714', config: { }, setConfig(config) { this.config = { ...this.config, ...config }; }, // 会在处理器自动执行 /** * * @param input 输入数据 * @param next 下一个流程的函数 * @param context 上下文 * @returns */ process(input, next, context) { const { blockDetailList } = input for (const bd of blockDetailList) { let blockDetail = new PlaceBlockDetail(bd); resetModelContour(blockDetail); } /** 造型轮廓(含封边),扣除封边, 变成开料坐标 */ function resetModelContour(bd: PlaceBlockDetail) { let ox = bd.offsetX let oy = bd.offsetY for (let m of bd.models) { if (m.hasContour()) { let ptsArr = m.originModeling.outline.map(e => e.pts) for (let pt of ptsArr) { // 23.8.5 发现矩形的挖穿轮廓坐标是不含封边的 pt.x -= ox pt.y -= oy } } } } return next ? next(input) : input; }, onError(error) { console.error('出错了哦', error); } };