5 Axis CNC cutting where not suppsed.
-
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:
There is g code view:
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
-
@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.
-
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: