Files
cut-abstractions/samples/moduleManager/module_resetModelContour.ts
2025-07-22 18:38:25 +08:00

67 lines
1.7 KiB
TypeScript

import { Processor, ProcessorModule } from "../../src/device";
import { ErrorInfo } from "../../src/device";
import { PlaceBlockDetail } from "../confClass";
/** 模块 造型轮廓(含封边),扣除封边, 变成开料坐标
* !!!!!!!!! 有异常 要调整
* input 入参
*/
export const ResetModelContour: ProcessorModule<any, any> = {
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);
}
};