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

111 lines
3.9 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { ProcessorModule, StepControllerProcessor, Processor } from "../../src/device";
import { RectOptimizeMachineModule } from "../moduleManager/module_RectOptimizeMachine";
import { ToolsModule } from "../moduleManager/module_tools";
import { CheckMaterial } from "../moduleManager/module_checkMaterial";
import { CheckBlocks } from "../moduleManager/module_checkBlocks";
import { ResetModelContour } from "../moduleManager/module_resetModelContour";
import { AutoCalcCutOrder } from "../moduleManager/module_autoCalcCutOrder";
import { HandleMaterialPlaceResult } from "../moduleManager/module_handleMaterialPlaceResult";
import { handlePlaceResultToPlaceMaterial } from "../moduleManager/module_handlePlaceResultToPlaceMaterial";
// import { Init2VModel } from "../moduleManager/module_init2VModel";
/**
* demo 开料机处理器
*
*
*/
export class demoHandleGroupCutting {
processorName = "cutting"
processor: StepControllerProcessor<any, any>
constructor() {
// 主线程
const demoCallbackModule: ProcessorModule<any, any> = {
moduleName: "callbackStyle",
process(input, next, context) {
console.log("做优化");
const _input = input
const _next = next
const _context = context
// 可以在这里调用异步操作
Reflect.set(context, 'CallBack', callBack1)
// 决定是否调用 next
this.onMessage('测试传消息给处理器');
function callBack1(v) {
console.log('接收到其它模块回传的数据');
}
// 调用 next 继续流程
return next(input);
}
};
this.processor = new StepControllerProcessor<any, any>();
this.processor.setOnMessageFunc(this.getMessageByModules)
this.processor.use([
// demoCallbackModule,
ToolsModule, // 刀库
// CheckMaterial,
// CheckBlocks,
// ResetModelContour,
// Init2VModel,
RectOptimizeMachineModule, // 优化
// {
// moduleName: "final",
// process(input, next,context) {
// // 不调用 next终止流程
// console.log('结束了')
// return next(input);
// }
// }
])
}
// 获取到模块的消息
async getMessageByModules(data) {
console.log('getMessageByModules', data);
this.processor = new StepControllerProcessor<any, any>();
switch (data.moduleName) {
// 处理优化模块的消息
case 'RectOptimizeMachine':
// 处理优化数据
this.processor.use([HandleMaterialPlaceResult,
handlePlaceResultToPlaceMaterial,
AutoCalcCutOrder])
this.processor.setOnMessageFunc(this.getMessageByModules)
let bList = []
data.pm.blockList.forEach(b => {
bList[b.blockNo] = b
});
let params = {
bList: bList,
best:data.result[0],
yl:data.result[1],
pm:data.pm,
width:data.pm.width,
length:data.pm.length
}
let context = {
MaterialPlaceSource:params
}
let res = await this.processor.process(data.input,context)
console.log(res);
// this.processor.use(handlePlaceResultToPlaceMaterial)
// let params1 = res
// let res1 = await this.processor.process(res)
break;
default:
break;
}
}
}