gscrib.enums

G-code specific modes and parameter types.

This module contains enumeration classes that define different machine states, options, and configurations for G-code generation. Each enum value is linked to a specific G-Code instruction and a description, which are stored in the codes.codes_table. The GCodeBuilder class uses this table to create the appropriate G-code statements.

class gscrib.enums.Axis(*values)

Bases: BaseEnum

Coordinate system axes.

X = 'x'
Y = 'y'
Z = 'z'
class gscrib.enums.BaseEnum(new_class_name, /, names, *, module=None, qualname=None, type=None, start=1, boundary=None)

Bases: str, Enum

Base for all the G-Code enumerations.

class gscrib.enums.BedTemperature(*values)

Bases: BaseEnum

Temperature modes for the bed.

classmethod from_units(units)
Parameters:

units (TemperatureUnits)

CELSIUS = 'celsius'
KELVIN = 'kelvin'
class gscrib.enums.ChamberTemperature(*values)

Bases: BaseEnum

Temperature modes for the chamber.

classmethod from_units(units)
Parameters:

units (TemperatureUnits)

CELSIUS = 'celsius'
KELVIN = 'kelvin'
class gscrib.enums.CoolantMode(*values)

Bases: BaseEnum

Coolant modes for the machine.

FLOOD = 'flood'
MIST = 'mist'
OFF = 'off'
class gscrib.enums.DirectWrite(*values)

Bases: BaseEnum

Communication mode for direct machine control.

OFF = 'off'
SERIAL = 'serial'
SOCKET = 'socket'
class gscrib.enums.Direction(*values)

Bases: BaseEnum

Directions for interpolated moves.

enforce(angle)

Enforce the direction of an angular move.

For CLOCKWISE direction, ensures the angle is negative. For COUNTER (counter-clockwise) direction, ensures the angle is positive. If the angle already has the correct sign, it is returned unchanged. Otherwise, adds or subtracts 2 * PI to flip the direction while maintaining the same final position.

Parameters:

angle (float) – Rotation angle in radians

Returns:

Enforced angle

Return type:

float

full_turn()

Returns a signed full rotation (±2π) based on direction.

Returns:

2π for counter-clockwise, -2π for clockwise

Return type:

float

CLOCKWISE = 'clockwise'
COUNTER = 'counter'
class gscrib.enums.DistanceMode(*values)

Bases: BaseEnum

Positioning mode for machine movement.

ABSOLUTE = 'absolute'
RELATIVE = 'relative'
property is_absolute: bool

Check if this mode is absolute.

property is_relative: bool

Check if this mode is relative.

class gscrib.enums.ExtrusionMode(*values)

Bases: BaseEnum

Positioning mode for the extruder.

ABSOLUTE = 'absolute'
RELATIVE = 'relative'
class gscrib.enums.FanMode(*values)

Bases: BaseEnum

Fan modes for the machine.

COOLING = 'cooling'
OFF = 'off'
class gscrib.enums.FeedMode(*values)

Bases: BaseEnum

Feed rate mode for machine movement.

INVERSE_TIME = '1/time'
UNITS_PER_MINUTE = 'units/min'
UNITS_PER_REVOLUTION = 'units/rev'
class gscrib.enums.HaltMode(*values)

Bases: BaseEnum

Program termination and pause modes.

END_WITHOUT_RESET = 'end-without-reset'
END_WITH_RESET = 'end-with-reset'
OFF = 'off'
OPTIONAL_PAUSE = 'optional-pause'
PALLET_EXCHANGE = 'pallet-exchange'
PAUSE = 'pause'
WAIT_FOR_BED = 'wait-for-bed'
WAIT_FOR_CHAMBER = 'wait-for-chamber'
WAIT_FOR_HOTEND = 'wait-for-hotend'
WAIT_FOR_MOTION = 'wait-for-motion'
class gscrib.enums.HotendTemperature(*values)

Bases: BaseEnum

Temperature modes for the hotend.

classmethod from_units(units)
Parameters:

units (TemperatureUnits)

CELSIUS = 'celsius'
KELVIN = 'kelvin'
class gscrib.enums.LengthUnits(*values)

Bases: BaseEnum

Units of length measurement.

scale(value_in_px)

Scale a value in pixels to this unit

Parameters:

value_in_px (float)

Return type:

float

to_pixels(value_in_units)

Scale a value in this unit to pixels

Parameters:

value_in_units (float)

Return type:

float

INCHES = 'inches'
MILLIMETERS = 'millimeters'
class gscrib.enums.Plane(*values)

Bases: BaseEnum

Working planes for machine operations.

normal()

Return the normal vector of the plane.

XY = 'xy'
YZ = 'yz'
ZX = 'zx'
class gscrib.enums.PositioningMode(*values)

Bases: BaseEnum

Program positioning modes.

HOME = 'home'
LINEAR = 'linear'
OFFSET = 'offset'
RAPID = 'rapid'
class gscrib.enums.PowerMode(*values)

Bases: BaseEnum

Beam tool powe mode

CONSTANT = 'constant'
DYNAMIC = 'dynamic'
OFF = 'off'
class gscrib.enums.ProbingMode(*values)

Bases: BaseEnum

Program probing modes.

AWAY = 'away'
AWAY_NO_ERROR = 'away-no-error'
TOWARDS = 'towards'
TOWARDS_NO_ERROR = 'towards-no-error'
class gscrib.enums.QueryMode(*values)

Bases: BaseEnum

Query device state modes.

POSITION = 'position'
TEMPERATURE = 'temperature'
class gscrib.enums.SpinMode(*values)

Bases: BaseEnum

Spindle rotation direction and state.

CLOCKWISE = 'clockwise'
COUNTER = 'counter'
OFF = 'off'
class gscrib.enums.TemperatureUnits(*values)

Bases: BaseEnum

Units of temperature.

CELSIUS = 'celsius'
KELVIN = 'kelvin'
class gscrib.enums.TimeUnits(*values)

Bases: BaseEnum

Units of time measurement.

scale(value_in_seconds)

Scale a value in seconds to this unit

Parameters:

value_in_seconds (float)

Return type:

float

MILLISECONDS = 'milliseconds'
SECONDS = 'seconds'
class gscrib.enums.ToolSwapMode(*values)

Bases: BaseEnum

Tool change modes.

AUTOMATIC = 'automatic'
MANUAL = 'manual'
OFF = 'off'