Source code for gcode_reader.emulate.machines.hendrick

import logging

from ..machine import Machine
from ..tools import MillingTool
from ..machine_options import HendrickOptions
from ..parsers import GcodeParser
from ..operations import SubtractiveOperation, SubtractiveProcessData
from ..commands import Config, M
from ..registry import register


[docs] @register("hendrick") class Hendrick(Machine): """Hendrick 5-axis CNC""" def __init__(self, **options): super().__init__(parser=GcodeParser(syntax_name="hendrick")) self._options_cls = HendrickOptions self.options = options self.tools = [MillingTool(self.options)] def _config( self, command: Config, process_data: SubtractiveProcessData ) -> SubtractiveProcessData: process_data = super()._config(command, process_data) if not isinstance(command, M): return process_data tool = self.tools[0] if command.code == 3: # M03: spindle on CW tool.on = True spindle = command.settings.get("S") if command.settings else None if spindle is not None: tool.spindle_speed = float(spindle) elif command.code == 5: # M05: spindle stop tool.on = False return process_data
[docs] def gcode_file_to_operation( self, filepath: str, operation_type=SubtractiveOperation ): return super().gcode_file_to_operation(filepath, operation_type)