Zaber Launcher Tutorials
Zaber Motion Library
Sample Projects
Virtual DeviceDropdown icon
About3D Viewer
AccountDropdown icon
Sign InSign Up
Zaber Motion LibraryGetting StartedHow-to Guides
API Reference
root
zaber_motion.ascii
AlertEventAllAxesAxisAxisGroupAxisIdentityAxisSettingsAxisStorageAxisTypeConnectionConversionFactorDeviceDeviceIdentityDeviceIODeviceIOInfoDeviceSettingsDeviceStorageDigitalOutputActionGetAxisSettingGetAxisSettingResultGetSettingGetSettingResultIoPortLabelIoPortTypeLockstepMeasurementSequenceMessageTypeOscilloscopeOscilloscopeCapturePropertiesOscilloscopeDataOscilloscopeDataSourceParamsetInfoPidTuningPvtPvtAxisDefinitionPvtAxisTypePvtBufferPvtCallActionPvtCancelAllOutputsScheduleActionPvtCancelOutputScheduleActionPvtCsvDataPvtIoPvtModePvtPartialCsvDataPvtPartialPointPvtPartialSequenceItemPvtPointPvtSequencePvtSequenceItemPvtSetAllAnalogOutputsActionPvtSetAllDigitalOutputsActionPvtSetAnalogOutputActionPvtSetDigitalOutputActionResponseServoTunerServoTuningParamServoTuningParamsetSetStateAxisResponseSetStateDeviceResponseSettingConstantsSimpleTuningSimpleTuningParamDefinitionStreamStreamAxisDefinitionStreamAxisTypeStreamBufferStreamIoStreamModeStreamsTransportTriggerTriggerActionTriggerConditionTriggerEnabledStateTriggerOperationTriggersTriggerStateUnknownResponseEventWarningFlagsWarnings
zaber_motion.binary
BinarySettingsCommandCodeConnectionDeviceDeviceIdentityDeviceSettingsDeviceTypeErrorCodeMessageReplyCodeReplyOnlyEventUnknownResponseEvent
zaber_motion.exceptions
MotionLibExceptionBinaryCommandFailedExceptionDataCommandFailedExceptionDataCommandTooLongExceptionDataDeviceAddressConflictExceptionDataDeviceDbFailedExceptionDataDeviceDbInnerErrorGCodeExecutionExceptionDataGCodeSyntaxExceptionDataInvalidPacketExceptionDataInvalidPvtPointInvalidResponseExceptionDataMovementFailedExceptionDataMovementInterruptedExceptionDataOperationFailedExceptionDataPvtExecutionExceptionDataPvtMovementFailedExceptionDataPvtMovementInterruptedExceptionDataSetDeviceStateExceptionDataSetPeripheralStateExceptionDataStreamExecutionExceptionDataStreamMovementFailedExceptionDataStreamMovementInterruptedExceptionData
zaber_motion.gcode
AxisDefinitionAxisMappingAxisTransformationDeviceDefinitionOfflineTranslatorTranslateMessageTranslateResultTranslatorTranslatorConfig
zaber_motion.microscopy
AutofocusAutofocusStatusCameraTriggerFilterChangerIlluminatorIlluminatorChannelMicroscopeMicroscopeConfigObjectiveChangerThirdPartyComponentsWdiAutofocusProviderWdiAutofocusProviderStatus
zaber_motion.product
ProcessProcessControllerProcessControllerModeProcessControllerSourceProcessControllerSourceSensor
zaber_motion
AxisAddressChannelAddressCyclicDirectionDeviceDbSourceDeviceDbSourceTypeDeviceDiscoveryResultDevicePortTypeFirmwareVersionLibraryLogOutputModeMeasurementNamedParameterRotationDirectionToolsUnitConversionDescriptorUnitsUnitTable
SupportBinary Protocol (Legacy)
© 2026 Zaber Technologies Inc.

API Reference v9.0.0

OfflineTranslatorclass

Module: zaber_motion.gcode

Represents an offline G-Code translator. It allows to translate G-Code blocks to Zaber ASCII protocol stream commands. This translator does not need a connected device to perform translation. Requires at least Firmware 7.11.

The following examples illustrate how you can obtain an instance of this type:

Example 1
Example 2
from zaber_motion.ascii import Connection
from zaber_motion.gcode import OfflineTranslator

connection = Connection.open_serial_port('COM3')
device = connection.get_device(1)
offline_translator = OfflineTranslator.setup_from_device(device, [1, 2])
from zaber_motion.gcode import OfflineTranslator

offline_translator = OfflineTranslator.setup(...)
Related Guides:
  • G-Code

Index

pProperties
coordinate_system
translator_id
mMethods
flush()
get_axis_coordinate_system_offset()
get_axis_position()
reset_after_stream_error()
set_axis_home_position()
set_axis_position()
set_axis_secondary_home_position()
set_feed_rate_override()
set_traverse_rate()
setup()
setup_from_device()
translate()

Properties

p

coordinate_system

readonly
offline_translator.coordinate_system
str Current coordinate system.
p

translator_id

readonly
offline_translator.translator_id
int The ID of the translator that serves to identify native resources.

Methods

m

flush()

offline_translator.flush()
Flushes the remaining stream commands waiting in optimization buffer. The flush is also performed by M2 and M30 codes.
Return Value
List[str] The remaining stream commands.
m

get_axis_coordinate_system_offset()

offline_translator.get_axis_coordinate_system_offset(coordinate_system, axis, unit)
Gets offset of an axis in a given coordinate system.
Arguments
NameTypeDescription
coordinate_systemstrCoordinate system (e.g. G54).
axisstrLetter of the axis.
unitLengthUnitsUnits of position.
Return Value
float Offset in translator units of the axis.
m

get_axis_position()

offline_translator.get_axis_position(axis, unit)
Gets position of translator's axis. This method does not query device but returns value from translator's state.
Arguments
NameTypeDescription
axisstrLetter of the axis.
unitLengthUnitsUnits of position.
Return Value
float Position of translator's axis.
m

reset_after_stream_error()

offline_translator.reset_after_stream_error()
Resets internal state after device rejected generated command. Axis positions become uninitialized.
m

set_axis_home_position()

offline_translator.set_axis_home_position(axis, position, unit)
Sets the home position of translator's axis. This position is used by G28.
Arguments
NameTypeDescription
axisstrLetter of the axis.
positionfloatThe home position.
unitLengthUnitsUnits of position.
m

set_axis_position()

offline_translator.set_axis_position(axis, position, unit)
Sets position of translator's axis. Use this method to set position after performing movement outside of the translator. This method does not cause any movement.
Arguments
NameTypeDescription
axisstrLetter of the axis.
positionfloatThe position.
unitLengthUnitsUnits of position.
m

set_axis_secondary_home_position()

offline_translator.set_axis_secondary_home_position(axis, position, unit)
Sets the secondary home position of translator's axis. This position is used by G30.
Arguments
NameTypeDescription
axisstrLetter of the axis.
positionfloatThe home position.
unitLengthUnitsUnits of position.
m

set_feed_rate_override()

offline_translator.set_feed_rate_override(coefficient)
Allows to scale feed rate of the translated code by a coefficient.
Arguments
NameTypeDescription
coefficientfloatCoefficient of the original feed rate.
m

set_traverse_rate()

offline_translator.set_traverse_rate(traverse_rate, unit)
Sets the speed at which the device moves when traversing (G0).
Arguments
NameTypeDescription
traverse_ratefloatThe traverse rate.
unitVelocityUnitsUnits of the traverse rate.
s

setup()

async available
OfflineTranslator.setup(definition, config = None)
Sets up translator from provided device definition and configuration.
Arguments
NameTypeDescription
definitionDeviceDefinitionDefinition of device and its peripherals. The definition must match a device that later performs the commands.
configOptional[TranslatorConfig]Configuration of the translator.
Return Value
OfflineTranslator New instance of translator.
s

setup_from_device()

async available
OfflineTranslator.setup_from_device(device, axes, config = None)
Sets up an offline translator from provided device, axes, and configuration.
Arguments
NameTypeDescription
deviceDeviceDevice that later performs the command streaming.
axesList[int]Axis numbers that are later used to setup the stream. For a lockstep group specify only the first axis of the group.
configOptional[TranslatorConfig]Configuration of the translator.
Return Value
OfflineTranslator New instance of translator.
m

translate()

offline_translator.translate(block)
Translates a single block (line) of G-code.
Arguments
NameTypeDescription
blockstrBlock (line) of G-code.
Return Value
TranslateResult Result of translation containing the stream commands.
Top