67 lines
1.7 KiB
TypeScript
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);
|
|||
|
|
|||
|
}
|
|||
|
};
|
|||
|
|