This repository has been archived on 2025-10-09. You can view files and clone it. You cannot open issues or pull requests or push a commit.

Cut Abstractions

这是一个用于MES新版生产的抽象库,提供了一套可扩展的处理器和解析器,用于处理各种切割相关的指令和数据。

核心概念

  • 处理器 (Processor): 负责执行具体的加工任务。每个处理器都包含名称、版本和执行方法。开发者可以继承 ProcessorBase 来实现自定义的处理器。

  • 解析器 (Parser): 负责解析文本指令,并调用相应的处理代码。ParserBase 提供了解析和执行指令的基本框架。

  • 上下文 (Context): 在处理器执行期间传递数据,包含输入、参数和输出。

主要功能

  • 可扩展的处理器架构: 允许开发者轻松添加新的加工处理器,以适应不同的业务需求。
  • 灵活的指令解析: 支持自定义指令集,可以解析文本格式的指令并执行相应的操作。
  • 清晰的数据流: 通过上下文对象在处理器之间传递数据,使得数据流清晰可控。

使用示例

以下是一个简单的示例,展示了如何使用本库:

import { ProcessorBase, ProcessorContext } from 'cut-abstractions';

// 定义输入、输出和配置类型
interface MyInput {
  data: string;
}

interface MyOutput {
  result: string;
}

interface MyConfig {
  param: string;
}

// 创建一个自定义处理器
class MyProcessor extends ProcessorBase<MyInput, MyOutput, MyConfig> {
  get name() {
    return 'my-processor';
  }

  get version() {
    return '1.0.0';
  }

  exec(context: ProcessorContext<MyInput, MyOutput, MyConfig>) {
    // 执行处理逻辑
    const inputData = context.input?.data || '';
    const param = context.params?.param || '';
    context.output = {
      result: `Processed: ${inputData} with param: ${param}`,
    };
  }
}

// 使用处理器
const processor = new MyProcessor();
const context: ProcessorContext<MyInput, MyOutput, MyConfig> = {
  input: { data: 'hello' },
  params: { param: 'world' },
};

processor.exec(context);

console.log(context.output?.result); // "Processed: hello with param: world"

模块

  • base: 提供了处理器的基本抽象。
  • parsers: 提供了指令解析器的基本抽象。
  • models: 定义了项目中使用的数据模型,如 Config、Knife 和 File。

术语表

中文 CAD MES IMES 备注
房名 RoomName roomName roomName
柜名 CabinetName boxName bodyName
小板名 BoardName blockName blockName
材质 Material material material
大板名 无 boardName goodsName
余料 无 scrap remain
排单 无 planOrder planOrder

编译与发布

更新 package.json 版本号

pnpm clean  
pnpm build  
pnpm release  
S
Description
生产接口协议
Readme
290 KiB
Languages
TypeScript 99.3%
JavaScript 0.7%