This repository has been archived on 2025-10-09 . You can view files and clone it, but cannot push or open issues or pull requests.
				
			
		
		
		
			
				
					
						
					
					604bd0910ee8a934c0f4cdde5382a20fff1bb419
				
			
			
		
	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 | 
Description
				
					Languages
				
				
								
								
									TypeScript
								
								99.3%
							
						
							
								
								
									JavaScript
								
								0.7%