wrong behaviour of interpreter
- Reinhard
- Offline
- Platinum Member
Less
More
- Posts: 508
- Thank you received: 94
27 Sep 2021 02:54 #221680
by Reinhard
wrong behaviour of interpreter was created by Reinhard
Hi,
at recent testing I discovered, that interpreter does wrong calculations. Not sure, but if I remember well, I reported that bug some time ago.
With this tooltable:
I get this result:When you look at the beginning of output: using mm as units is default and G21 is commanded - so interpreter should use mm.
But when you look at processing of G43 - you'll see, that tool-length is set to 1346.2mm
Tool-length from tooltable is 53mm so againgst claimed settings, interpreter "converts" the mm as inch-values to mm.
This does not happen, with using interpreter internally in applications, like axis and all other gui apps do.
It only happens to commandline variant of interpreter - which is used for all testings.
at recent testing I discovered, that interpreter does wrong calculations. Not sure, but if I remember well, I reported that bug some time ago.
With this tooltable:
T2 P1 Z20 D2 ;2.00mm 4 schneiden fräser
T3 P2 Z53 D3 ;3.00mm 2 flute endmill
T6 P3 Z30 D6 ;6.00mm 4 schneiden fräser
T4 P5 Z40 D8 ;8,00mm 4 schneiden fräser
T23 P7 Z50 D10 ;10,00mm 4 schneiden fräser
T7 P8 Z50 D12 ;12,00mm 4 schneiden fräser
T1 P9 Z123 D4.568 ;45 deg v cutter [/quote]
and this command-line:
[code]cat gmoccapy_2_tools_with_cutter_radius_compensation.ngc | rs274 -g -v linuxcnc.var -i some.ini -t tool.tbl
I get this result:
executing
1 N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
2 N..... SET_G5X_OFFSET(1, 8165.0024, 12700.0000, -5080.0000, 0.0000, 0.0000, 0.0000)
3 N..... SET_G92_OFFSET(3004.1677, 209.2678, 78.7400, 0.0000, 0.0000, 0.0000)
4 N..... SET_XY_ROTATION(0.0000)
5 N..... SET_FEED_REFERENCE(CANON_XYZ)
READ => ; Gmoccapy_2_tools_with_compensation.ngc
READ => ; testprogram to mill two circles with cutter radius compensation
READ => ; and two different tools
READ =>
READ => ; set the basic settings, this should be
READ => ; on every program the beginning
READ => G17
6 N..... SELECT_PLANE(CANON_PLANE_XY)
READ => G21
7 N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
READ => G54
8 N..... COMMENT("interpreter: continuing to use same coordinate system")
READ => G61
9 N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
READ => G40
10 N..... COMMENT("interpreter: cutter radius compensation off")
READ => G49
11 N..... USE_TOOL_LENGTH_OFFSET(0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
READ => G80
12 N..... COMMENT("interpreter: motion mode set to none")
READ => G90
READ =>
READ => ; get the first tool
READ => T3 M6
13 N..... SELECT_TOOL(3)
14 N..... START_CHANGE()
15 N..... STOP_SPINDLE_TURNING(0)
16 N..... COMMENT("AXIS,hide")
17 N..... STRAIGHT_TRAVERSE(-11169.1702, -12909.2678, 5001.2600, 0.0000, 0.0000, 0.0000)
18 N..... COMMENT("AXIS,show")
19 N..... CHANGE_TOOL(2)
READ => G43
20 N..... USE_TOOL_LENGTH_OFFSET(0.0000 0.0000 1346.2000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
READ => T1
21 N..... SELECT_TOOL(1)
READ =>
READ => ; go to center of the workpiece
READ => G0 X50 Y50
22 N..... STRAIGHT_TRAVERSE(50.0000, 50.0000, 3655.0600, 0.0000, 0.0000, 0.0000)
READ => G0 Z30
23 N..... STRAIGHT_TRAVERSE(50.0000, 50.0000, 30.0000, 0.0000, 0.0000, 0.0000)
READ =>
READ => ; turn on spindle clockwise
READ => S3000
24 N..... SET_SPINDLE_SPEED(0, 3000.0000)
READ => M3
25 N..... START_SPINDLE_CLOCKWISE(0)
READ =>
READ => ; coolant on
READ => M8
26 N..... FLOOD_ON()
READ =>
READ => G0 Z10
27 N..... STRAIGHT_TRAVERSE(50.0000, 50.0000, 10.0000, 0.0000, 0.0000, 0.0000)
READ => F250
28 N..... SET_FEED_RATE(250.0000)
READ => G1 Z0
29 N..... STRAIGHT_FEED(50.0000, 50.0000, 0.0000, 0.0000, 0.0000, 0.0000)
READ =>
READ => ; tool radius compensation
READ => ; go in circle with lower feed rate
READ => G41
30 N..... COMMENT("interpreter: cutter radius compensation on left")
READ => G3 X70 Y50 Z-1 I10 J0
Radius of cutter compensation entry arc is not greater than the tool radius
G3 X70 Y50 Z-1 I10 J0
READ =>
READ => ; make first circle with normal feed
READ => F2000
31 N..... SET_FEED_RATE(2000.0000)
READ => G3 I -20
Radius of cutter compensation entry arc is not greater than the tool radius
G3 I -20
READ =>
READ => ; out of the workpiece
READ => G3 X50 Y50 Z1 I-10 J0
Radius of cutter compensation entry arc is not greater than the tool radius
G3 X50 Y50 Z1 I-10 J0
READ => G0 Z30
Length of cutter compensation entry move is not greater than the tool radius
G0 Z30
READ =>
READ => ; coolant off
READ => M9
32 N..... MIST_OFF()
33 N..... FLOOD_OFF()
READ =>
READ => ; turn off cutter radius compensation, otherwise no tool change is possible
READ => G40
34 N..... COMMENT("interpreter: cutter radius compensation off")
READ => M6
35 N..... START_CHANGE()
36 N..... STOP_SPINDLE_TURNING(0)
37 N..... COMMENT("AXIS,hide")
38 N..... STRAIGHT_TRAVERSE(50.0000, 50.0000, 3655.0600, 0.0000, 0.0000, 0.0000)
39 N..... COMMENT("AXIS,show")
40 N..... CHANGE_TOOL(7)
READ => G43
41 N..... USE_TOOL_LENGTH_OFFSET(0.0000 0.0000 3124.2000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
READ =>
READ => ; optional stop for testing
READ => (MSG, optional stop, i.e. for cleaning the workpiece, or other thinks)
42 N..... MESSAGE(" optional stop, i.e. for cleaning the workpiece, or other thinks")
READ => M1
43 N..... OPTIONAL_PROGRAM_STOP()
READ =>
READ => ; go again to the center of the workpiece
READ => G0 X50 Y50
44 N..... STRAIGHT_TRAVERSE(50.0000, 50.0000, 1877.0600, 0.0000, 0.0000, 0.0000)
READ => G0 Z10
45 N..... STRAIGHT_TRAVERSE(50.0000, 50.0000, 10.0000, 0.0000, 0.0000, 0.0000)
READ =>
READ => ; turn on spindle clockwise
READ => S6000
46 N..... SET_SPINDLE_SPEED(0, 6000.0000)
READ => M3
47 N..... START_SPINDLE_CLOCKWISE(0)
READ =>
READ => ; mist on
READ => M7
48 N..... MIST_ON()
READ =>
READ => G0 Z10
49 N..... STRAIGHT_TRAVERSE(50.0000, 50.0000, 10.0000, 0.0000, 0.0000, 0.0000)
READ => F400
50 N..... SET_FEED_RATE(400.0000)
READ => G1 Z1
51 N..... STRAIGHT_FEED(50.0000, 50.0000, 1.0000, 0.0000, 0.0000, 0.0000)
READ =>
READ => ; Werkzeugradienkompensation ein
READ => ; Anfahrradius mit Eintauchgeschwindigkeit
READ => G41
52 N..... COMMENT("interpreter: cutter radius compensation on left")
READ => G3 X65 Y50 Z-1 I7.5 J0
Radius of cutter compensation entry arc is not greater than the tool radius
G3 X65 Y50 Z-1 I7.5 J0
READ =>
READ => ; 2. Kreis mit Vorschubgeschwindigkeit fräsen
READ => F1000
53 N..... SET_FEED_RATE(1000.0000)
READ => G3 I-15
Radius of cutter compensation entry arc is not greater than the tool radius
G3 I-15
READ =>
READ => ; Aus dem Werkstück
READ => G3 X50 Y50 Z1 I-7.5 J0
Radius of cutter compensation entry arc is not greater than the tool radius
G3 X50 Y50 Z1 I-7.5 J0
READ => G0 Z30
Length of cutter compensation entry move is not greater than the tool radius
G0 Z30
READ =>
READ => G0 Z30
Length of cutter compensation entry move is not greater than the tool radius
G0 Z30
READ => G0 X50 Y50
Length of cutter compensation entry move is not greater than the tool radius
G0 X50 Y50
READ =>
READ => M9 ; coolant off
54 N..... MIST_OFF()
55 N..... FLOOD_OFF()
READ => M5 ; spindle off
56 N..... STOP_SPINDLE_TURNING(0)
READ => M2 ; program end
57 N..... SET_G5X_OFFSET(1, 8165.0024, 12700.0000, -5080.0000, 0.0000, 0.0000, 0.0000)
58 N..... SET_XY_ROTATION(0.0000)
59 N..... SET_FEED_MODE(0, 0)
60 N..... SET_FEED_RATE(0.0000)
61 N..... STOP_SPINDLE_TURNING(0)
62 N..... SET_SPINDLE_MODE(0 0.0000)
63 N..... PROGRAM_END()
READ => 64 N..... ON_RESET()
But when you look at processing of G43 - you'll see, that tool-length is set to 1346.2mm
Tool-length from tooltable is 53mm so againgst claimed settings, interpreter "converts" the mm as inch-values to mm.
This does not happen, with using interpreter internally in applications, like axis and all other gui apps do.
It only happens to commandline variant of interpreter - which is used for all testings.
Please Log in or Create an account to join the conversation.
- Aciera
- Offline
- Administrator
Less
More
- Posts: 4023
- Thank you received: 1734
27 Sep 2021 08:01 #221691
by Aciera
Replied by Aciera on topic wrong behaviour of interpreter
Not sure if you already did, but things like that are usually best reported as an 'issue' on the github page.
Please Log in or Create an account to join the conversation.
- Reinhard
- Offline
- Platinum Member
Less
More
- Posts: 508
- Thank you received: 94
27 Sep 2021 11:18 #221698
by Reinhard
Replied by Reinhard on topic wrong behaviour of interpreter
Hi,
thank you for the hint! You're right.
I'm not that used to github, but will create an issue there.
thank you for the hint! You're right.
I'm not that used to github, but will create an issue there.
Please Log in or Create an account to join the conversation.
Time to create page: 0.062 seconds