# mtsdd **Repository Path**: yt7589/mtsdd ## Basic Information - **Project Name**: mtsdd - **Description**: 机床行业规范驱动开发范式下的大模型辅助编程系统。 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-12-04 - **Last Updated**: 2026-02-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MTSDD: Specification-Driven Development CLI 机床行业规范驱动开发范式下的大模型辅助编程系统。 # 环境搭建 ## 1.1. 源码安装 ```bash # 创建虚拟环境:其中mte是虚拟环境名称,可以替换为你喜欢的名称,python语言版本大于3.8即可 conda create -n mte python=3.13 conda activate mte # 正载源码 git clone https://gitee.com/yt7589/mtsdd.git # 源码安装 cd mtsdd pip install -e . # 使用pip安装:目前尚未上传到Pip # pip install mtsdd ``` ## 1.1. 使用说明 ```bash # 创建规范文件 mtsdd init work/projects/p003/p003.yaml # 生成代码:用户管理 mtsdd generate work/projects/p003/p003.yaml --use-ai --output work/projects/p003/proj # 运行代码 uvicorn main:app --reload # 接口测试(swagger风格) http://localhost:8000/docs # 接口文档(ReDoc风格) http://localhost:8000/redoc ``` # 2. 机床行业SDD 机床控制系统涉及PLC、CNC、HMI、IoT等多领域集成,具有高复杂度的特点,同时机床行业有ISO 6983(G代码)、ISO 14649(STEP-NC)等行业标准,具有很强的规范性,机床行业应用软件需要严格的验证和测试,安全性是非常重要的因素,机床应用软件生命周期长达10-20年,需要具备长期维护的能力。无论是现有的人工编程方法,还是最近流行的氛围编程技术(Vibe Coding),都不能适应这些要求。人工编程技术产品研发周期长而且质量不可控。氛围编程技术(Vibe Coding)虽然开发效率高,但是由于代码黑箱特性,可能成为日后软件维护的噩梦。当前正在兴起的规范驱动编程技术(SDD: Specification Driven Development),正是基于这些痛点问题提出的,可以满足机床行业应用软件开发需求的面向未来的技术。 规范驱动编程技术可以如下痛点问题: | 痛点 | 解决方案 | | --- | --- | | 需求变更频繁 | 规范文件版本控制,变更可追溯 | | 跨团队协作困难 | 统一规范语言,减少沟通成本 | | 代码质量不一 | 标准化生成,统一代码风格 | | 测试覆盖不足 | 自动生成测试用例 | | 文档滞后 | 规范即文档,代码与文档同步 | ## 2.1. 机床行业应用场景 ### 2.1.1. G代码解释器生成 ```yaml # gcode_interpreter.yaml project: name: "cnc-gcode-interpreter" framework: "industrial" description: "CNC G-code interpreter with validation" components: gcode_commands: - code: "G00" name: "Rapid Positioning" parameters: - name: "X" type: "float" unit: "mm" - name: "Y" type: "float" unit: "mm" - code: "G01" name: "Linear Interpolation" parameters: - name: "F" type: "float" unit: "mm/min" validation_rules: - rule: "feed_rate_limit" condition: "F <= 5000" error: "Feed rate exceeds maximum" ``` ### 2.1.2. PLC控制逻辑生成 ```yaml # plc_control.yaml project: name: "machine-tool-plc" framework: "structured_text" components: i_o_mapping: digital_inputs: - name: "emergency_stop" address: "I0.0" description: "Emergency stop button" - name: "door_open" address: "I0.1" description: "Safety door sensor" analog_outputs: - name: "spindle_speed" address: "QW64" range: "0-10000" unit: "RPM" control_logic: - name: "spindle_control" conditions: - "emergency_stop == FALSE" - "door_open == FALSE" actions: - "set_spindle_speed(target_rpm)" ``` ### 2.1.3. HMI界面生成 ```yaml # hmi_interface.yaml project: name: "machine-hmi" framework: "qt" # 可扩展支持Qt框架 components: screens: - name: "main_control" widgets: - type: "button" name: "start_button" text: "启动" action: "start_machine()" - type: "gauge" name: "spindle_speed_gauge" min: 0 max: 10000 unit: "RPM" alarm_system: alarms: - id: 1001 severity: "critical" message: "紧急停止激活" conditions: ["emergency_stop == TRUE"] ``` ## 2.2. SDD推进策略 推进SDD在机床软件开发中的应用,应该遵循整体规划、分步实施、小步快跑、快速迭代的原则。 第一阶段:做小型试点项目,利用1~3个月,选择一个低风险、高价值的试点项目。例如:机床数据采集系统,因为其具有相对独立、需求明确、技术成熟、能快速见到成效的特点,有助于初步验证SDD流程可行性,增加团队信心,形成成功应用案例,有助于提高管理层和客户的接受度。 第二阶段:创建机床行业通用模板,包括: * CNC控制模块模板 * PLC逻辑模板 * HMI界面模板 * 数据采集模板 第三阶段:全公司全行业推行,真正改变机床行业软件开发范式。