Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    5 Axis CNC cutting where not suppsed.

    Scheduled Pinned Locked Moved
    CNC
    2
    3
    213
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • CvetanTokovundefined
      CvetanTokov
      last edited by

      Hello ,
      i had build 5 axis cnc mill machine ,
      i had problem with 5 axis simultaneous machining , it seems that one of rotational axes doesnt go with
      desired feed rate and it is faster , so i left with cutted part every time in same possition.

      In this picture you can see the cutted edge:

      p1.jpg

      There is g code view:
      p4.jpg

      The machine is build with external drivers , it is configureted and calibrated , i tried to implement bed compensation , but i didnt manage, and after this it start to make this cuttings, before it was perfect.
      I tryed many diferent jerk policy and speeds but nothing helps.
      I this it doesnt read go code good , and go beyond the points it supposed go be.
      Any suggestions?
      Here is my config.g file:

      ; Configuration file for Duet
      ; executed by the firmware on start-up
      ; WorkBee Firmware Version 1.1
      M98 P"config-network.g"
      M575 P1 S1 B57600
      ;                         OUTPUTS:
      M950 P0 C"FAN0"Q250;G LED
      M950 P1 C"FAN1"Q500;B LED
      M950 P2 C"FAN2"Q500;R :ED
      M950 P3 C"^!spi.cs4";  VACUUM RELAY
      M950 P4 C"^!exp.31";    nonair     VALVE 4
      M950 P5 C"^!exp.50";    gnd        
      M950 P6 C"^!exp.4";     cooling    VALVE 2
      M950 P7 C"^!exp.9";     collet     VALVE 1
      M950 P8 C"^!exp.14";TOOL AIR CLEANER VALVE 3
      M950 P9 C"^!spi.cs1";   DOOR UP     VALVE 5
      M950 P10 C"^!spi.cs2";   DOOR DOWN   VALVE 6
      M950 P11 C"^!spi.cs3";  VACUM VALVE
      M950 P12 C"!exp.38";EMERGENCY VACUUM
      
      m42p12s1
      ;                        INPUTS:
      
      ;M950 J1 C"!^exp.24";EMERGENCY
      M950 J2 C"!^exp.29";AIR
      M950 J3 C"!^exp.19";DOOR
      
      ;M950 P8 C"!exp.heater7";spindle
      
      m42P5S1
      ; Configuration files
      
      M98 P"config-drives.g"
      M98 P"config-axes.g"
      M98 P"config-axes-calibration.g"
      M98 P"config-axes-endstops.g"
      M98 P"config-probe.g"
      M98 P"config-spindle.g"
      M98 P"config-laser.g"
      
      ; Other Settings
      M453 ; Put the machine into CNC Modes
      G90 ; Set absolute coordinates
      M558 P8 C"^zprobe.in" F100   T100 H5 ;zProbe
      ; Heaters
      M140 H-1
      ;M307 H0 A-1 C-1 D-1 
      ;M307 H1 A-1 C-1 D-1                                ; Set temperature limit for heater 0 to 120C
      ;M307 H2 A-1 C-1 D-1
      ;M307 H3 A-1 C-1 D-1
      ;M307 H4 A-1 C-1 D-1
      ;M307 H5 A-1 C-1 D-1
      ;M307 H6 A-1 C-1 D-1
      ;M307 H7 A-1 C-1 D-1 
      m42P7S1
      M42P6S1
      
      ; Fans
      ;M106 P0 S0     I-1                    ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned on
      ;M106 P1 S0  I-1              ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
      ;M106 P2 S0 I-1  
      ;M106 P3 I-1
      ;M106 P4 I-1
      ;M106 P5 I-1
      ;M106 P6 I-1
      ;M106 P7 I-1
      M950 R0 C"^bedheat+exp.8"  L60000
      
      ; Tools
      M563 P1 R0 S"Tool 1"
      M563 P2 R0 S"Tool 2"     
      M563 P3 R0 S"Tool 3"
      M563 P4 R0 S"Tool 4"
      M563 P5 R0 S"Tool 5"
      M563 P6 R0 S"Tool 6"
      M563 P7 R0 S"Tool 7"     
      M563 P8 R0 S"Tool 8"
      M563 P9 R0 S"Tool 9"
      M563 P10 R0 S"Tool 10"
      ; Automatic power saving
      M911 S21 R23 P"M913 X0 Y0 A0 B0 G91 Z3 F1000" ; POWER LOSS
      ; Custom settings are not configured
      
      M564 S1 H1 ; Disable jog commands when not homed
      ;variables:
      if {!exists(currentToolNumber)}
       global currentToolNumber = -1
      if {!exists(ZToolZero)}
       global ZToolZero =-1
      if {!exists(ToolZPos)}
       global ToolZPos =-1
       
      if {!exists(ToolSens)}
       global ToolSens =-1
       
      if {!exists(T1XPos)}
       global T1XPos =-1
      if {!exists(T1YPos)}
       global T1YPos =-1
      
      if {!exists(T2XPos)}
       global T2XPos =-1
      if {!exists(T2YPos)}
       global T2YPos =-1
      
      if {!exists(T3XPos)}
       global T3XPos =-1
      if {!exists(T3YPos)}
       global T3YPos =-1
      
      if {!exists(T4XPos)}
       global T4XPos =-1
      if {!exists(T4YPos)}
       global T4YPos =-1
      
      if {!exists(T5XPos)}
       global T5XPos =-1
      if {!exists(T5YPos)}
       global T5YPos =-1
      
      if {!exists(T6XPos)}
       global T6XPos =-1
      if {!exists(T6YPos)}
       global T6YPos =-1
      
      if {!exists(T7XPos)}
       global T7XPos =-1
      if {!exists(T7YPos)}
       global T7YPos =-1
      
      if {!exists(T8XPos)}
       global T8XPos =-1
      if {!exists(T8YPos)}
       global T8YPos =-1
      
      if {!exists(T9XPos)}
       global T9XPos =-1
      if {!exists(T9YPos)}
       global T9YPos =-1
      
      if {!exists(T10XPos)}
       global T10XPos =-1
      if {!exists(T10YPos)}
       global T10YPos =-1
      
      if {!exists(TZUPPos)} 
       global TZUPPos = -1
      if {!exists(TZTESTMINPos)} 
       global TZTESTMINPos = -1
      
      if {!exists(XZero)} 
       global XZero = -1
      if {!exists(YZero)} 
       global YZero = -1
      if {!exists(ZZero)} 
       global ZZero = -1
      if {!exists(AZero)} 
       global AZero = -1
      if {!exists(BZero)} 
       global BZero = -1
      if {!exists(ToolZero)} 
       global ToolZero = -1
      if {!exists(ToolzeroXcoord)} 
       global ToolzeroXcoord = -1
       if {!exists(ToolzeroXcoord)} 
       global ToolzeroYcoord = -1
      if {!exists(pE)} 
       global pE = -1
      if {!exists(checktool)} 
       global checktool = -1
      ; User Configuration files
      M98 P"config-user-settings.g"
      M98 P"XZero.g"
      M98 P"YZero.g"
      M98 P"ZZero.g"
      M98 P"AZero.g"
      M98 P"BZero.g"
      ;M98 P"ZToolZero.g"
      ;M98 p"ToolTestOffset.g"
      M98 P"config-axes-limits.g"
      ;M98 P"ToolTestXCord.g"
      ;M98 P"ToolTestYCord.g"
      M98 P"toolPOSITIONS.g"
      M98 P"restoreToolNumber.g"
      M98 P"checktool.g"
      ;triggers
      G4P5000
      M581 T0 P1 S1
      M581 T2 P2 S1
      M581 T5 P3 S0
      
      M582 T2
      
      ;global currentToolNumber=-1
      ;M98 P"restoreToolNumber.g"
      if global.currentToolNumber != -1
       T{global.currentToolNumber} P0
      
      M556 S65X0.32Y0 Z0 P1;axis skew
      G54
      M501 ; Load Stored Parameters 
      m42P0S1
      m42P1S0
      m42P2S1
      

      Here is my driver configurations:

      ; Drive configuration executed by config.g
      
      M569 P5 S1 T10:5.0:6.0:11                             ; Physical drive 0 goes forwards
      M569 P6 S0 T10:5.0:6.0:11                          ; Physical drive 1 goes forwards
      M569 P7 S0 T10:5.0:6.0:11                               ; Physical drive 2 goes forwards
      M569 P8 S0 T10:5.0:6.0:11                                   ; Physical drive 3 goes forwards
      M569 P9 S0 T10:5.0:6.0:11                               ; Physical drive 4 goes forwards
      

      and speeds and steps configuration:

      ; Axes configuration executed by config.g
      M584 X5 Y6 Z7 A8 B9 
      ;M584 A8 B9 R0 S0
      ;M350 X1Y1Z1A1B1 I0             ; Configure microstepping with interpolation
      M92 X320 Y320 Z320 A111.1111 B55.5555  ; Set steps per mm
      M566 X250 Y250 Z250 A900 B900 P0   ; Set maximum instantaneous speed changes (mm/min)
      M203 X6000 Y6000 Z5000 A5000 B8000; Set maximum speeds (mm/min)
      M201 X250 Y250 Z250 A700 B700; Set accelerations (mm/s^2)
      M203 X2000 Y2000 Z2000 A7500 B7500 I0.1
      ;M906 X2100 Y2100 Z2000 A2500 B2000    ; Set motor currents (mA) and motor idle factor in per cent
      M84 S30                                            ; Set idle timeout
      
      
      rjenkinsgbundefined 1 Reply Last reply Reply Quote 0
      • rjenkinsgbundefined
        rjenkinsgb @CvetanTokov
        last edited by

        @cvetantokov
        You have higher values for instantaneous speed change and acceleration, on the A and B axes, than X Y Z.

        Try matching the other axes?
        I don't know if that is the problem, but if A or B can change speed faster than the other axes I can imagine it causing mismatched movements on velocity changes.

        It's a critical setting on industrial CNCs - the axes servo responses must all be matched or shapes can be cut incorrectly.

        Robert J.

        Printers: Overlord pro, Kossel XL+ with Duet 6HC and "Frankentron", TronXY X5SA Pro converted to E3D toolchange with Duet 6HC and 1LC toolboards.

        1 Reply Last reply Reply Quote 0
        • CvetanTokovundefined
          CvetanTokov
          last edited by

          Yes i tryed it , the speeds are even, same problem . Now i will try with slow instantaneous speed changes - around 100 to see if there is any change.
          I am not sure about kinematics, i rely on only the CAM software, should i change any kinematics setting on duet ?
          This is the configuration of machine:

          IMG-6139 - Copy.jpg

          1 Reply Last reply Reply Quote 0
          • First post
            Last post
          Unless otherwise noted, all forum content is licensed under CC-BY-SA