CNC and Coordinate Systems



  • Hi all,

    Reading articles, forum posts here and there and watching videos has got me confused as hell... maybe somebody could help me shine some light here?

    Let's see if I understood that correctly:

    • G53 is the Machine coordinate system
    • G54 is the Work Coordinate System #1
    • G55 is the Work Coordinate System #2
    • and so on...

    did I get it right?

    Then I have a macro to manually set the X=0 on WCS #1 which would be:

    G10 P2 L20 X0     ; Sets new zero on WCS #2
    G54               ; switches to WCS #2
    M500
    

    would that be right?

    So when I send a G10 command:

    P2 is G54
    P3 is G55

    and so on? The Gcode wiki does not specify that...



  • The first part about G53 being machine coordinates, G54 WCS #1 etc are correct.

    In my CNC I have the G54 already in the config.g to always use it (while Fusion supports multiple WCSs, I never needed more than 1). This ensures we are on WCS #1.

    My macro for setting the XY origin then contains the line: G10 L20 P1 X0 Y0

    The P1, will thus set WCS #1 (aka G54); Therefore, P2 will set WCS #2 (aka G55) etc.



  • @Jacotheron said in CNC and Coordinate Systems:

    In my CNC I have the G54 already in the config.g to always use it (while Fusion supports multiple WCSs, I never needed more than 1). This ensures we are on WCS #1.

    Hey, thanks for your input. Would you mind sharing that part of the config.g? Nothing on my config.g resembles that... (see below)

    ; Configuration file for Duet
    ; executed by the firmware on start-up
    ; WorkBee Firmware Version 1.0.7
    
    ; Configure Connection - ENABLE ONLY ONE OF THE BELOW THREE
    M552 S1 ; Enable Wifi Network
    ;M552 S2 ; Enable Access Point Mode
    ;M552 S1 P192.168.2.14 ; Enable Ethernet - Change IP Address to suit
    
    ;	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-
    
    ; DO NOT CHANGE ANY OF SETTINGS BELOW
    ; TO MAKE A CHANGE, COPY THE LINE OF CODE, PASTE IT INTO customconfig.g. THE CHANGE CAN THEN BE MADE IN customconfig.g
    ; ANY ADDITIONAL SETTINGS SHOULD BE PUT IN customconfig.g
    
    
    ; General preferences
    M453 ; Put the machine into CNC Modes
    M550 PWorkBee CNC Machine ; Set machine name
    G90 ; Set absolute coordinates
    
    
    ; Network
    M586 P0 S1 ; Enable HTTP
    M586 P1 S0 ; Disable FTP
    M586 P2 S0 ; Disable Telnet
    
    
    ; Configure Drives
    M569 P0 S0 ; Drive 0 goes forwards
    M569 P1 S1 ; Drive 1 goes forwards
    M569 P2 S0 ; Drive 2 goes forwards
    M569 P3 S1 ; Drive 3 goes forwards                        
    M584 X0 Y1:3 Z2 ; Apply drive mapping to axes
    
    
    ; Configure Axes
    M92  X400 Y400 Z400 ; Set steps per mm
    M350 X16 Y16 Z16 I1 ; Configure microstepping
    M566 X500 Y500 Z500 ; Set maximum instantaneous speed changes (mm/min)
    M203 X2500 Y2500 Z2500 ; Set maximum speeds (mm/min)
    M201 X150 Y150 Z150 ; Set accelerations (mm/s^2)
    M906 X2400 Y2400 Z2400 I100 ; Set motor currents (mA)
    
    
    ; Configure Axis Limits
    M208 X0 Y0 Z0 S1 ; Set axis minima
    M208 X800 Y770 Z94 S0 ; Set axis maxima
    
    
    ; Configure Endstops
    M574 X2 Y2 Z2 S0 ; Set active low endstops
    
    
    ; Other Settings
    M140 H-1 ; Disable heated bed
    M564 S1 H1 ; Disable jog commands when not homed
    M911 S21.0 R23 P"G91 G1 Z3 F1000" ; Configure power loss resume
    M501 ; Load Stored Parameters 
    M98 Pcustomconfig.g ; Execute custom config settings
    


  • I added the G54 in the section "Other Settings" myself. Since it does not take further parameters, it simply does what it should.



  • Ah, OK. I understand now. Thanks!



  • Well, I finally got the time to do some experimenting. If I understood that correctly, I was mistaken regarding the G10 command. It seems it's like this:

    P1 is G54 (WCS #1)
    P2 is G55 (WCS #2)
    etc.


Log in to reply