G0-G1: Linear Move - Marlin Firmware

Dark Mode
  • About Marlin
  • Download
  • Configure
  • Install
  • Tools
    • Bitmap Converter
    • RGB565 Converter
    • Calibrate Linear Advance
    • Calibrate Input Shaping
    • Bugtracker
    • Reporting bugs
    • Source Code Repository
  • Help
    • Configuration
      • All documents
      • Laser/Spindle Configuration (1.1.x)
      • Laser/Spindle Configuration (2.0.9.x)
      • Configuring with INI
      • Configuring Marlin
      • Probe Configuration
    • Development
      • All documents
      • Boards
      • Code Structure
      • Coding Standards
      • FastIO
      • Hardware Abstraction Layer
      • Contributing to Marlin
      • Feature requests
      • Contributing Code with Pull Requests
      • Marlin Github Scripts
      • Adding new fonts
      • LCD Language System
    • Features
      • All documents
      • Automatic Bed Leveling
      • Unified Bed Leveling
      • Autostart
      • EEPROM
      • Firmware Retract
      • Input Shaping
      • Linear Advance
      • Model Predictive Temperature Control
      • Probe Temperature Compensation
      • LCD Menu Tree
    • G-code
      • All documents
      • G0-G1: Linear Move
      • G2-G3: Arc or Circle Move
      • G4: Dwell
      • G5: Bézier cubic spline
      • G6: Direct Stepper Move
      • G10: Retract
      • G11: Recover
      • G12: Clean the Nozzle
      • G17-G19: CNC Workspace Planes
      • G20: Inch Units
      • G21: Millimeter Units
      • G26: Mesh Validation Pattern
      • G27: Park toolhead
      • G28: Auto Home
      • G29: Bed Leveling
      • G29: Bed Leveling (3-Point)
      • G29: Bed Leveling (Linear)
      • G29: Bed Leveling (Manual)
      • G29: Bed Leveling (Bilinear)
      • G29: Bed Leveling (Unified)
      • G30: Single Z-Probe
      • G31: Dock Sled
      • G32: Undock Sled
      • G33: Delta Auto Calibration
      • G34: Z Steppers Auto-Alignment
      • G34: Mechanical Gantry Calibration
      • G35: Tramming Assistant
      • G38.2-G38.5: Probe target
      • G42: Move to mesh coordinate
      • G53: Move in Machine Coordinates
      • G54-G59.3: Workspace Coordinate System
      • G60: Save Current Position
      • G61: Return to Saved Position
      • G76: Probe temperature calibration
      • G80: Cancel Current Motion Mode
      • G90: Absolute Positioning
      • G91: Relative Positioning
      • G92: Set Position
      • G425: Backlash Calibration
      • M0-M1: Unconditional stop
      • M3: Spindle CW / Laser On
      • M4: Spindle CCW / Laser On
      • M5: Spindle / Laser Off
      • M7-M9: Coolant Controls
      • M10-M11: Vacuum / Blower Control
      • M16: Expected Printer Check
      • M17: Enable Steppers
      • M18, M84: Disable steppers
      • M20: List SD Card
      • M21: Init SD card
      • M22: Release SD card
      • M23: Select SD file
      • M24: Start or Resume SD print
      • M25: Pause SD print
      • M26: Set SD position
      • M27: Report SD print status
      • M28: Start SD write
      • M29: Stop SD write
      • M30: Delete SD file
      • M31: Print time
      • M32: Select and Start
      • M33: Get Long Path
      • M34: SDCard Sorting
      • M42: Set Pin State
      • M43: Debug Pins
      • M43 T: Toggle Pins
      • M48: Probe Repeatability Test
      • M73: Set Print Progress
      • M75: Start Print Job Timer
      • M76: Pause Print Job Timer
      • M77: Stop Print Job Timer
      • M78: Print Job Stats
      • M80: Power On
      • M81: Power Off
      • M82: E Absolute
      • M83: E Relative
      • M85: Inactivity Shutdown
      • M86: Hotend Idle Timeout
      • M87: Disable Hotend Idle Timeout
      • M92: Set Axis Steps-per-unit
      • M100: Free Memory
      • M102: Configure Bed Distance Sensor
      • M104: Set Hotend Temperature
      • M105: Report Temperatures
      • M106: Set Fan Speed
      • M107: Fan Off
      • M108: Break and Continue
      • M109: Wait for Hotend Temperature
      • M110: Set / Get Line Number
      • M111: Debug Level
      • M112: Full Shutdown
      • M113: Host Keepalive
      • M114: Get Current Position
      • M115: Firmware Info
      • M117: Set LCD Message
      • M118: Serial print
      • M119: Endstop States
      • M120: Enable Endstops
      • M121: Disable Endstops
      • M122: TMC Debugging
      • M123: Fan Tachometers
      • M125: Park Head
      • M126: Baricuda 1 Open
      • M127: Baricuda 1 Close
      • M128: Baricuda 2 Open
      • M129: Baricuda 2 Close
      • M140: Set Bed Temperature
      • M141: Set Chamber Temperature
      • M143: Set Laser Cooler Temperature
      • M145: Set Material Preset
      • M149: Set Temperature Units
      • M150: Set RGB(W) Color
      • M154: Position Auto-Report
      • M155: Temperature Auto-Report
      • M163: Set Mix Factor
      • M164: Save Mix
      • M165: Set Mix
      • M166: Gradient Mix
      • M190: Wait for Bed Temperature
      • M191: Wait for Chamber Temperature
      • M192: Wait for Probe temperature
      • M193: Set Laser Cooler Temperature
      • M200: Set Filament Diameter
      • M201: Print / Travel Move Limits
      • M203: Set Max Feedrate
      • M204: Set Starting Acceleration
      • M205: Set Advanced Settings
      • M206: Set Home Offsets
      • M207: Set Firmware Retraction
      • M208: Firmware Recover
      • M209: Set Auto Retract
      • M211: Software Endstops
      • M217: Filament swap parameters
      • M218: Set Hotend Offset
      • M220: Set Feedrate Percentage
      • M221: Set Flow Percentage
      • M226: Wait for Pin State
      • M240: Trigger Camera
      • M250: LCD Contrast
      • M255: LCD Sleep/Backlight Timeout
      • M256: LCD Brightness
      • M260: I2C Send
      • M261: I2C Request
      • M280: Servo Position
      • M281: Edit Servo Angles
      • M282: Detach Servo
      • M290: Babystep
      • M300: Play Tone
      • M301: Set Hotend PID
      • M302: Cold Extrude
      • M303: PID autotune
      • M304: Set Bed PID
      • M305: User Thermistor Parameters
      • M306: Model Predictive Temp. Control
      • M350: Set micro-stepping
      • M351: Set Microstep Pins
      • M355: Case Light Control
      • M360: SCARA Theta A
      • M361: SCARA Theta-B
      • M362: SCARA Psi-A
      • M363: SCARA Psi-B
      • M364: SCARA Psi-C
      • M380: Activate Solenoid
      • M381: Deactivate Solenoids
      • M400: Finish Moves
      • M401: Deploy Probe
      • M402: Stow Probe
      • M403: MMU2 Filament Type
      • M404: Set Filament Diameter
      • M405: Filament Width Sensor On
      • M406: Filament Width Sensor Off
      • M407: Filament Width
      • M410: Quickstop
      • M412: Filament Runout
      • M413: Power-loss Recovery
      • M420: Bed Leveling State
      • M421: Set Mesh Value
      • M422: Set Z Motor XY
      • M423: X Twist Compensation
      • M425: Backlash compensation
      • M428: Home Offsets Here
      • M430: Power Monitor
      • M486: Cancel Objects
      • M493: Fixed-Time Motion
      • M500: Save Settings
      • M501: Restore Settings
      • M502: Factory Reset
      • M503: Report Settings
      • M504: Validate EEPROM contents
      • M510: Lock Machine
      • M511: Unlock Machine
      • M512: Set Passcode
      • M524: Abort SD print
      • M540: Endstops Abort SD
      • M569: Set TMC stepping mode
      • M575: Serial baud rate
      • M592: Nonlinear Extrusion Control
      • M593: ZV Input Shaping
      • M600: Filament Change
      • M603: Configure Filament Change
      • M605: Multi Nozzle Mode
      • M665: Delta Configuration
      • M665: SCARA Configuration
      • M666: Set Delta endstop adjustments
      • M666: Set dual endstop offsets
      • M672: Duet Smart Effector sensitivity
      • M701: Load filament
      • M702: Unload filament
      • M710: Controller Fan settings
      • M808: Repeat Marker
      • M810-M819: G-code macros
      • M851: XYZ Probe Offset
      • M852: Bed Skew Compensation
      • M860-M869: I2C Position Encoders
      • M871: Probe temperature config
      • M876: Handle Prompt Response
      • M900: Linear Advance Factor
      • M906: Stepper Motor Current
      • M907: Set Motor Current
      • M908: Set Trimpot Pins
      • M909: DAC Print Values
      • M910: Commit DAC to EEPROM
      • M911: TMC OT Pre-Warn Condition
      • M912: Clear TMC OT Pre-Warn
      • M913: Set Hybrid Threshold Speed
      • M914: TMC Bump Sensitivity
      • M915: TMC Z axis calibration
      • M916: L6474 Thermal Warning Test
      • M917: L6474 Overcurrent Warning Test
      • M918: L6474 Speed Warning Test
      • M919: TMC Chopper Timing
      • M928: Start SD Logging
      • M951: Magnetic Parking Extruder
      • M993: Back up flash settings to SD
      • M994: Restore flash from SD
      • M995: Touch Screen Calibration
      • M997: Firmware update
      • M999: STOP Restart
      • M7219: MAX7219 Control
      • T0-T7: Select or Report Tool
      • T?-Tx: MMU2 Special Commands
    • Hardware
      • All documents
      • Boards
      • Controllers and displays
      • Endstops
      • Trinamic drivers
    • Settings
      • All documents
      • Configuration Info
      • Extruders
      • Hardware
      • Machine Info
      • Stepper Drivers
      • Temperature
    • Troubleshooting
    • Documentation Needing Review
  • ❤️ Donate
  • Edit Page
  Edit Page   Learn more   Contribute   Download   Follow @MarlinFirmware   Follow @MarlinFirmware
  • G0-G1: Linear Move
  • G2-G3: Arc or Circle Move
  • G4: Dwell
  • G5: Bézier cubic spline
  • G6: Direct Stepper Move
  • G10: Retract
  • G11: Recover
  • G12: Clean the Nozzle
  • G17-G19: CNC Workspace Planes
  • G20: Inch Units
  • G21: Millimeter Units
  • G26: Mesh Validation Pattern
  • G27: Park toolhead
  • G28: Auto Home
  • G29: Bed Leveling
  • G29: Bed Leveling (3-Point)
  • G29: Bed Leveling (Linear)
  • G29: Bed Leveling (Manual)
  • G29: Bed Leveling (Bilinear)
  • G29: Bed Leveling (Unified)
  • G30: Single Z-Probe
  • G31: Dock Sled
  • G32: Undock Sled
  • G33: Delta Auto Calibration
  • G34: Z Steppers Auto-Alignment
  • G34: Mechanical Gantry Calibration
  • G35: Tramming Assistant
  • G38.2-G38.5: Probe target
  • G42: Move to mesh coordinate
  • G53: Move in Machine Coordinates
  • G54-G59.3: Workspace Coordinate System
  • G60: Save Current Position
  • G61: Return to Saved Position
  • G76: Probe temperature calibration
  • G80: Cancel Current Motion Mode
  • G90: Absolute Positioning
  • G91: Relative Positioning
  • G92: Set Position
  • G425: Backlash Calibration
  • M0-M1: Unconditional stop
  • M3: Spindle CW / Laser On
  • M4: Spindle CCW / Laser On
  • M5: Spindle / Laser Off
  • M7-M9: Coolant Controls
  • M10-M11: Vacuum / Blower Control
  • M16: Expected Printer Check
  • M17: Enable Steppers
  • M18, M84: Disable steppers
  • M20: List SD Card
  • M21: Init SD card
  • M22: Release SD card
  • M23: Select SD file
  • M24: Start or Resume SD print
  • M25: Pause SD print
  • M26: Set SD position
  • M27: Report SD print status
  • M28: Start SD write
  • M29: Stop SD write
  • M30: Delete SD file
  • M31: Print time
  • M32: Select and Start
  • M33: Get Long Path
  • M34: SDCard Sorting
  • M42: Set Pin State
  • M43: Debug Pins
  • M43 T: Toggle Pins
  • M48: Probe Repeatability Test
  • M73: Set Print Progress
  • M75: Start Print Job Timer
  • M76: Pause Print Job Timer
  • M77: Stop Print Job Timer
  • M78: Print Job Stats
  • M80: Power On
  • M81: Power Off
  • M82: E Absolute
  • M83: E Relative
  • M85: Inactivity Shutdown
  • M86: Hotend Idle Timeout
  • M87: Disable Hotend Idle Timeout
  • M92: Set Axis Steps-per-unit
  • M100: Free Memory
  • M102: Configure Bed Distance Sensor
  • M104: Set Hotend Temperature
  • M105: Report Temperatures
  • M106: Set Fan Speed
  • M107: Fan Off
  • M108: Break and Continue
  • M109: Wait for Hotend Temperature
  • M110: Set / Get Line Number
  • M111: Debug Level
  • M112: Full Shutdown
  • M113: Host Keepalive
  • M114: Get Current Position
  • M115: Firmware Info
  • M117: Set LCD Message
  • M118: Serial print
  • M119: Endstop States
  • M120: Enable Endstops
  • M121: Disable Endstops
  • M122: TMC Debugging
  • M123: Fan Tachometers
  • M125: Park Head
  • M126: Baricuda 1 Open
  • M127: Baricuda 1 Close
  • M128: Baricuda 2 Open
  • M129: Baricuda 2 Close
  • M140: Set Bed Temperature
  • M141: Set Chamber Temperature
  • M143: Set Laser Cooler Temperature
  • M145: Set Material Preset
  • M149: Set Temperature Units
  • M150: Set RGB(W) Color
  • M154: Position Auto-Report
  • M155: Temperature Auto-Report
  • M163: Set Mix Factor
  • M164: Save Mix
  • M165: Set Mix
  • M166: Gradient Mix
  • M190: Wait for Bed Temperature
  • M191: Wait for Chamber Temperature
  • M192: Wait for Probe temperature
  • M193: Set Laser Cooler Temperature
  • M200: Set Filament Diameter
  • M201: Print / Travel Move Limits
  • M203: Set Max Feedrate
  • M204: Set Starting Acceleration
  • M205: Set Advanced Settings
  • M206: Set Home Offsets
  • M207: Set Firmware Retraction
  • M208: Firmware Recover
  • M209: Set Auto Retract
  • M211: Software Endstops
  • M217: Filament swap parameters
  • M218: Set Hotend Offset
  • M220: Set Feedrate Percentage
  • M221: Set Flow Percentage
  • M226: Wait for Pin State
  • M240: Trigger Camera
  • M250: LCD Contrast
  • M255: LCD Sleep/Backlight Timeout
  • M256: LCD Brightness
  • M260: I2C Send
  • M261: I2C Request
  • M280: Servo Position
  • M281: Edit Servo Angles
  • M282: Detach Servo
  • M290: Babystep
  • M300: Play Tone
  • M301: Set Hotend PID
  • M302: Cold Extrude
  • M303: PID autotune
  • M304: Set Bed PID
  • M305: User Thermistor Parameters
  • M306: Model Predictive Temp. Control
  • M350: Set micro-stepping
  • M351: Set Microstep Pins
  • M355: Case Light Control
  • M360: SCARA Theta A
  • M361: SCARA Theta-B
  • M362: SCARA Psi-A
  • M363: SCARA Psi-B
  • M364: SCARA Psi-C
  • M380: Activate Solenoid
  • M381: Deactivate Solenoids
  • M400: Finish Moves
  • M401: Deploy Probe
  • M402: Stow Probe
  • M403: MMU2 Filament Type
  • M404: Set Filament Diameter
  • M405: Filament Width Sensor On
  • M406: Filament Width Sensor Off
  • M407: Filament Width
  • M410: Quickstop
  • M412: Filament Runout
  • M413: Power-loss Recovery
  • M420: Bed Leveling State
  • M421: Set Mesh Value
  • M422: Set Z Motor XY
  • M423: X Twist Compensation
  • M425: Backlash compensation
  • M428: Home Offsets Here
  • M430: Power Monitor
  • M486: Cancel Objects
  • M493: Fixed-Time Motion
  • M500: Save Settings
  • M501: Restore Settings
  • M502: Factory Reset
  • M503: Report Settings
  • M504: Validate EEPROM contents
  • M510: Lock Machine
  • M511: Unlock Machine
  • M512: Set Passcode
  • M524: Abort SD print
  • M540: Endstops Abort SD
  • M569: Set TMC stepping mode
  • M575: Serial baud rate
  • M592: Nonlinear Extrusion Control
  • M593: ZV Input Shaping
  • M600: Filament Change
  • M603: Configure Filament Change
  • M605: Multi Nozzle Mode
  • M665: Delta Configuration
  • M665: SCARA Configuration
  • M666: Set Delta endstop adjustments
  • M666: Set dual endstop offsets
  • M672: Duet Smart Effector sensitivity
  • M701: Load filament
  • M702: Unload filament
  • M710: Controller Fan settings
  • M808: Repeat Marker
  • M810-M819: G-code macros
  • M851: XYZ Probe Offset
  • M852: Bed Skew Compensation
  • M860-M869: I2C Position Encoders
  • M871: Probe temperature config
  • M876: Handle Prompt Response
  • M900: Linear Advance Factor
  • M906: Stepper Motor Current
  • M907: Set Motor Current
  • M908: Set Trimpot Pins
  • M909: DAC Print Values
  • M910: Commit DAC to EEPROM
  • M911: TMC OT Pre-Warn Condition
  • M912: Clear TMC OT Pre-Warn
  • M913: Set Hybrid Threshold Speed
  • M914: TMC Bump Sensitivity
  • M915: TMC Z axis calibration
  • M916: L6474 Thermal Warning Test
  • M917: L6474 Overcurrent Warning Test
  • M918: L6474 Speed Warning Test
  • M919: TMC Chopper Timing
  • M928: Start SD Logging
  • M951: Magnetic Parking Extruder
  • M993: Back up flash settings to SD
  • M994: Restore flash from SD
  • M995: Touch Screen Calibration
  • M997: Firmware update
  • M999: STOP Restart
  • M7219: MAX7219 Control
  • T0-T7: Select or Report Tool
  • T?-Tx: MMU2 Special Commands

thinkyhead

G0-G1 - Linear Move 1.0.0-beta motion Add a straight line movement to the planner Related codes: G2 G3 G5 M82 M83 G91

Description

The G0 and G1 commands add a linear move to the queue to be performed after all previous moves are completed. These commands yield control back to the command parser as soon as the move is queued, but they may delay the command parser while awaiting a slot in the queue.

A linear move traces a straight line from one point to another, ensuring that the specified axes will arrive simultaneously at the given coordinates (by linear interpolation). The speed may change over time following an acceleration curve, according to the acceleration and jerk settings of the given axes.

A command like G1 F1000 sets the feedrate for all subsequent moves.

By convention, most G-code generators use G0 for non-extrusion movements (those without the E axis) and G1 for moves that include extrusion. This is meant to allow a kinematic system to, optionally, do a more rapid uninterpolated movement requiring much less calculation.

For Cartesians and Deltas the G0 (rapid linear movement) command is (and must be) a direct alias for G1 (rapid movement). On SCARA machines G0 does a fast non-linear move. Marlin 2.0 introduces an option to maintain a separate default feedrate for G0. Note: Slicers tend to override firmware feedrates!

Notes

Coordinates are given in millimeters by default. Units may be set to inches by G20.

In Relative Mode (G91) all coordinates are interpreted as relative, adding onto the previous position.

In Extruder Relative Mode (M83) the E coordinate is interpreted as relative, adding onto the previous E position.

A single linear move may generate several smaller moves to the planner due to kinematics and bed leveling compensation. Printing performance can be tuned by adjusting segments-per-second.

Developer Notes

Developers: Keep using G0 for non-print moves. It makes G-code more adaptable to lasers, engravers, etc.

Usage

G0 [E<pos>] [F<rate>] [S<power>] [X<pos>] [Y<pos>] [Z<pos>] G1 [E<pos>] [F<rate>] [S<power>] [X<pos>] [Y<pos>] [Z<pos>]

Parameters

[E<pos>]

An absolute or relative coordinate on the E (extruder) axis (in current units). The E axis describes the position of the filament in terms of input to the extruder feeder.

[F<rate>]

The maximum movement rate of the move between the start and end point. The feedrate set here applies to subsequent moves that omit this parameter.

[S<power>] 2.1.1 LASER_FEATURE

Set the laser power for the move.

[X<pos>]

An absolute or relative coordinate on the X axis (in current units).

[Y<pos>]

An absolute or relative coordinate on the Y axis (in current units).

[Z<pos>]

An absolute or relative coordinate on the Z axis (in current units).

Examples

The most basic move sets a feedrate and moves the tool to the given position.

G0 X12 ; Move to 12mm on the X axis G0 F1500 ; Set the feedrate to 1500 mm/min G1 X90.6 Y13.8 ; Move to 90.6mm on the X axis and 13.8mm on the Y axis

There are some caveats related with feedrates. Consider the following:

G1 F1500 ; Set the feedrate to 1500 mm/min G92 E0 G1 X50 Y25.3 E22.4 ; Move while extruding

In the above example the feedrate is set to 1500 mm/min, then the tool is moved 50mm on the X axis and 25.3mm on the Y axis while extruding 22.4mm of filament between the two points.

G1 F1500 G92 E0 G1 X50 Y25.3 E22.4 F3000

However, in the above example, we set a feedrate of 1500 mm/min on line 1 then do the move described above, accelerating to a feedrate of 3000 mm/min (if possible). The extrusion will accelerate along with the X and Y movement, so everything stays synchronized.

Từ khóa » G0 Vs G1