Hello Guest it is May 12, 2021, 02:27:26 PM

Author Topic: Feedrate on multi-segment curves  (Read 7897 times)

0 Members and 1 Guest are viewing this topic.

Feedrate on multi-segment curves
« on: September 21, 2014, 07:14:09 PM »
I'm trying to understand what factors dictate the feed rate when doing curves made from many line segments.  For example, if I am pen plotting a circle made from 360 segments, the feed rate will vary according to the diameter of the circle.  When the circle is larger, the feed rate is higher, while when it is smaller diameter the feed rate is lower.   On a non circular curve where some of the segments are short and others are long, the feed rate will slow down on the short segments.  So feed rate seems to be related to the distance being traveled between successive line segments using G1 X Y commands.

I realize there are G codes for dedicated circles, and those don't have the feed rate problem.  I'm only using a circle to test with, but my application involves non circular curves that must have a constant feed rate because a heat sealing wheel is being used to make seems.  The heat sealer needs to have a specific feed rate, temperature and pressure for optimum sealing.  If the feed rate slows down the way it currently does when the line segments of a curve are shorter, the dwell time on the seam will be too high and the film can get melted, whereas if it is too fast then there will not be enough dwell time to make the seal.

Feedrate on multi-segment curves
« Reply #1 on: September 22, 2014, 05:46:16 PM »
The cutter accelerates and decelerates for each segment.  The shorter the segment the less time it has to speed up.  You could generate the curve to keep the feed rate constant perhaps?

Sent from my iPad using Tapatalk
Re: Feedrate on multi-segment curves
« Reply #2 on: September 22, 2014, 09:45:23 PM »
The tool head is not stopping and starting between points though, or even slowing down.  I'm using CV mode which is supposed to maintain a constant velocity on successive points without slowing down or stopping between them.  It does maintain a constant velocity when all the segments are the same length.  I could play with the acceleration settings to see if it really is a factor though.  As a last resort I could always rebuild the curves using equally spaced points, which I think is something that Rhino can do.  Then it would just be a matter of playing with the feed rate to find an F value that results in the proper real world feed rate.  That's a lot of trouble to go through though for something that should be fixable through the settings, be they motor tuning settings or something else.

Offline Chaoticone

  • *
  •  5,626 5,626
  • Precision Chaos
    • View Profile
Re: Feedrate on multi-segment curves
« Reply #3 on: September 23, 2014, 12:57:35 AM »
I could play with the acceleration settings to see if it really is a factor though.
It will be. The higher accels the better you will fair out. Nothing happens instantly but the closer you can get to it the better. Keep in mind though, the higher the accels the more rigid the machine will need to be to benefit from the results.

That's a lot of trouble to go through though for something that should be fixable through the settings, be they motor tuning settings or something else.
The something else would be the Gcode. Garbage in is garbage out. No controller (Mach or any other) will accept any old gcode you load and then produce the moves you think it should. You can't expect to load Gcode telling the machine to make certain moves and then be upset with the machine because it did what you told it to instead of what you wanted it to. It may be a bit of trouble to make all of the line segments equal but I bet it isn't as hard as it would be to build a controller that can read the programmers mind. I'm not trying to be short but trying to put things into perspective.

Look at some of the topics on lasers, laser engraving. Fine control of timing and power is extremely critical. What you are trying to do is going to be close I would say in the amount of control needed but worse in some ways. With the lasers if they change the power or turn it off, the effects are realized almost instantaneously. In your case it will not be. Your roller that is contacting the material will have mass and it will take some time to dissipate the heat (correct me if I'm wrong). What you are trying to do is interesting and seems pretty simple but I think you may be underestimating the demands that will actually need to be met for you to meet your goals. If you have some hard numbers to work with it may not be as critical as I am thinking. Do you know what size windows you have to work with? What are the min and max speeds and pressures that will produce acceptable results? How do they relate to one another? Are they linear? Could you control another variable easier or faster? Can you control the heat faster (maybe a hot air gun using PWM)? Maybe you could make the line segments longer than needed so that the welding wheel is traveling at a constant speed the whole length of the part needing welded (essentially lead in and lead out moves) and fire a solenoid to bring the roller in contact with the material? This would be a Gcode nightmare for sure. Maybe you could vary the pressure on the wheel based on the blended velocity? Maybe you could use a rotating wheel and friction to generate the heat and have better control? Maybe a water cooled wheel and a heat gun on an axis that moves the heat closer when velocity is higher and further away as it slows down (kind of like torch height control but not really  :P )? I wonder if G93 (Inverse time feed rate mode) may be the answer for you? Maybe a laser for the heat source and the wheel just to mash it together at the right time? I'm really just thinking out loud but this is interesting when you think about it.

Hopefully if nothing else this is food for thought.
« Last Edit: September 23, 2014, 01:00:31 AM by Chaoticone »
;D If you could see the things I have in my head, you would be laughing too. ;D

My guard dog is not what you need to worry about!
Re: Feedrate on multi-segment curves
« Reply #4 on: September 23, 2014, 11:41:13 AM »
Well, I don't know how a series of straight forward G1 codes could be considered garbage.  These aren't stair-step curves or something strange like that, it's just a series of straight lines connecting one to the next in gradual curves.   I use Rhino for the initial layout, then export to DXF and load that into  Cam-Bam to generate the tool paths.  I then feed the G-code output from Cam-Bam into my own post processor that strips out all the Z axis codes and adds A axis codes to keep the wheel tangent to the line being traveled, and also lifts the wheel and rotates it 360 when needed to avoid wire entanglement.  But I've tested without the A axis codes to verify that the feed rate problem occurs with just X and Y parameters.

The machine is a home built 6' x 16' fabric cutter/plotter which I designed myself.  I put a build log up for it on CNC zone:  http://www.cnczone.com/forums/diy-cnc-router-table-machines/195858-new-machine-build-16-x-5-5-a.html

The tool head and gantry started out pretty light weight when it was just a fabric cutter, but as it evolved into a triple tool head with temperature control, cooling fan and the heat sealing wheel and hot knife it has gained mass and can not be started and stopped as quickly as it once could.  I've included some pictures below of the heat wheel and some of the projects being built with it.

Also here is a video of some seams being done on metalized nylon film:  https://www.youtube.com/watch?v=zYXIaeAq4X0&list=UU9U_WRmBemqeEoXccpORKLA

Offline Chaoticone

  • *
  •  5,626 5,626
  • Precision Chaos
    • View Profile
Re: Feedrate on multi-segment curves
« Reply #5 on: September 23, 2014, 06:16:06 PM »
Very neat! Post your Gcode and xml. I will have a look as soon as I can. I have a video and some notes I hope to post on tangential soon.

;D If you could see the things I have in my head, you would be laughing too. ;D

My guard dog is not what you need to worry about!
Re: Feedrate on multi-segment curves
« Reply #6 on: September 23, 2014, 08:36:08 PM »
For the flying saucers I'm using a little app I wrote that just generates all the G-code without having to go through the Rhino-Cam Bam process.  You just enter the diameter of saucer you want and it creates a multi-step G-code file for building the saucer on the machine.  Here's a sample of a section that seals a circular seam, with the G1 commands being in one degree increments.  Feed rate is not a problem with this however since all the segments are the same length, but the code looks the same as what is used for the blimps that don't have equal length segments:

(Created by UF-O-Matic G-code generator)
G20 G90 G91.1 G64 G40
(============= STEP 2 =================)
(Inner Seam)
G52 X3.16 Y1.62
G0 X0 Y16.697 A0
G1 X-0.000 Y16.697 A0
G1 X-0.291 Y16.694 A1
G1 X-0.583 Y16.687 A2
G1 X-0.874 Y16.674 A3
G1 X-1.165 Y16.656 A4
G1 X-1.455 Y16.633 A5
G1 X-1.745 Y16.606 A6
G1 X-2.035 Y16.573 A7
G1 X-2.324 Y16.535 A8
G1 X-2.612 Y16.491 A9
G1 X-2.899 Y16.443 A10
G1 X-3.186 Y16.390 A11
G1 X-3.472 Y16.332 A12
G1 X-3.756 Y16.269 A13
G1 X-4.039 Y16.201 A14
G1 X-4.322 Y16.128 A15
G1 X-4.602 Y16.050 A16
G1 X-4.882 Y15.967 A17
G1 X-5.160 Y15.880 A18
G1 X-5.436 Y15.787 A19
G1 X-5.711 Y15.690 A20
G1 X-5.984 Y15.588 A21
G1 X-6.255 Y15.481 A22
G1 X-6.524 Y15.370 A23
G1 X-6.791 Y15.253 A24
G1 X-7.056 Y15.133 A25
G1 X-7.319 Y15.007 A26
G1 X-7.580 Y14.877 A27
G1 X-7.839 Y14.743 A28
G1 X-8.095 Y14.604 A29
G1 X-8.349 Y14.460 A30
G1 X-8.600 Y14.312 A31
G1 X-8.848 Y14.160 A32
G1 X-9.094 Y14.003 A33
G1 X-9.337 Y13.842 A34
G1 X-9.577 Y13.677 A35
G1 X-9.814 Y13.508 A36
G1 X-10.049 Y13.335 A37
G1 X-10.280 Y13.157 A38
G1 X-10.508 Y12.976 A39
G1 X-10.733 Y12.791 A40
G1 X-10.954 Y12.601 A41
G1 X-11.172 Y12.408 A42
G1 X-11.387 Y12.211 A43
G1 X-11.599 Y12.011 A44
G1 X-11.807 Y11.807 A45
G1 X-12.011 Y11.599 A46
G1 X-12.211 Y11.387 A47
G1 X-12.408 Y11.172 A48
G1 X-12.601 Y10.954 A49
G1 X-12.791 Y10.733 A50
G1 X-12.976 Y10.508 A51
G1 X-13.157 Y10.280 A52
G1 X-13.335 Y10.049 A53
G1 X-13.508 Y9.814 A54
G1 X-13.677 Y9.577 A55
G1 X-13.842 Y9.337 A56
G1 X-14.003 Y9.094 A57
G1 X-14.160 Y8.848 A58
G1 X-14.312 Y8.600 A59
G1 X-14.460 Y8.349 A60
G1 X-14.604 Y8.095 A61
G1 X-14.743 Y7.839 A62
G1 X-14.877 Y7.580 A63
G1 X-15.007 Y7.319 A64
G1 X-15.133 Y7.056 A65
G1 X-15.253 Y6.791 A66
G1 X-15.370 Y6.524 A67
G1 X-15.481 Y6.255 A68
G1 X-15.588 Y5.984 A69
G1 X-15.690 Y5.711 A70
G1 X-15.787 Y5.436 A71
G1 X-15.880 Y5.160 A72
G1 X-15.967 Y4.882 A73
G1 X-16.050 Y4.602 A74
G1 X-16.128 Y4.322 A75
G1 X-16.201 Y4.039 A76
G1 X-16.269 Y3.756 A77
G1 X-16.332 Y3.472 A78
G1 X-16.390 Y3.186 A79
G1 X-16.443 Y2.899 A80
G1 X-16.491 Y2.612 A81
G1 X-16.535 Y2.324 A82
G1 X-16.573 Y2.035 A83
G1 X-16.606 Y1.745 A84
G1 X-16.633 Y1.455 A85
G1 X-16.656 Y1.165 A86
G1 X-16.674 Y0.874 A87
G1 X-16.687 Y0.583 A88
G1 X-16.694 Y0.291 A89
G1 X-16.697 Y-0.000 A90
G1 X-16.694 Y-0.291 A91
G1 X-16.687 Y-0.583 A92
G1 X-16.674 Y-0.874 A93
G1 X-16.656 Y-1.165 A94
G1 X-16.633 Y-1.455 A95
G1 X-16.606 Y-1.745 A96
G1 X-16.573 Y-2.035 A97
G1 X-16.535 Y-2.324 A98
G1 X-16.491 Y-2.612 A99
G1 X-16.443 Y-2.899 A100
G1 X-16.390 Y-3.186 A101
G1 X-16.332 Y-3.472 A102
G1 X-16.269 Y-3.756 A103
G1 X-16.201 Y-4.039 A104
G1 X-16.128 Y-4.322 A105
G1 X-16.050 Y-4.602 A106
G1 X-15.967 Y-4.882 A107
G1 X-15.880 Y-5.160 A108
G1 X-15.787 Y-5.436 A109
G1 X-15.690 Y-5.711 A110
G1 X-15.588 Y-5.984 A111
G1 X-15.481 Y-6.255 A112
G1 X-15.370 Y-6.524 A113
G1 X-15.253 Y-6.791 A114
G1 X-15.133 Y-7.056 A115
G1 X-15.007 Y-7.319 A116
G1 X-14.877 Y-7.580 A117
G1 X-14.743 Y-7.839 A118
G1 X-14.604 Y-8.095 A119
G1 X-14.460 Y-8.349 A120
G1 X-14.312 Y-8.600 A121
G1 X-14.160 Y-8.848 A122
G1 X-14.003 Y-9.094 A123
G1 X-13.842 Y-9.337 A124
G1 X-13.677 Y-9.577 A125
G1 X-13.508 Y-9.814 A126
G1 X-13.335 Y-10.049 A127
G1 X-13.157 Y-10.280 A128
G1 X-12.976 Y-10.508 A129
G1 X-12.791 Y-10.733 A130
G1 X-12.601 Y-10.954 A131
G1 X-12.408 Y-11.172 A132
G1 X-12.211 Y-11.387 A133
G1 X-12.011 Y-11.599 A134
G1 X-11.807 Y-11.807 A135
G1 X-11.599 Y-12.011 A136
G1 X-11.387 Y-12.211 A137
G1 X-11.172 Y-12.408 A138
G1 X-10.954 Y-12.601 A139
G1 X-10.733 Y-12.791 A140
G1 X-10.508 Y-12.976 A141
G1 X-10.280 Y-13.157 A142
G1 X-10.049 Y-13.335 A143
G1 X-9.814 Y-13.508 A144
G1 X-9.577 Y-13.677 A145
G1 X-9.337 Y-13.842 A146
G1 X-9.094 Y-14.003 A147
G1 X-8.848 Y-14.160 A148
G1 X-8.600 Y-14.312 A149
G1 X-8.349 Y-14.460 A150
G1 X-8.095 Y-14.604 A151
G1 X-7.839 Y-14.743 A152
G1 X-7.580 Y-14.877 A153
G1 X-7.319 Y-15.007 A154
G1 X-7.056 Y-15.133 A155
G1 X-6.791 Y-15.253 A156
G1 X-6.524 Y-15.370 A157
G1 X-6.255 Y-15.481 A158
G1 X-5.984 Y-15.588 A159
G1 X-5.711 Y-15.690 A160
G1 X-5.436 Y-15.787 A161
G1 X-5.160 Y-15.880 A162
G1 X-4.882 Y-15.967 A163
G1 X-4.602 Y-16.050 A164
G1 X-4.322 Y-16.128 A165
G1 X-4.039 Y-16.201 A166
G1 X-3.756 Y-16.269 A167
G1 X-3.472 Y-16.332 A168
G1 X-3.186 Y-16.390 A169
G1 X-2.899 Y-16.443 A170
G1 X-2.612 Y-16.491 A171
G1 X-2.324 Y-16.535 A172
G1 X-2.035 Y-16.573 A173
G1 X-1.745 Y-16.606 A174
G1 X-1.455 Y-16.633 A175
G1 X-1.165 Y-16.656 A176
G1 X-0.874 Y-16.674 A177
G1 X-0.583 Y-16.687 A178
G1 X-0.291 Y-16.694 A179
G1 X0.000 Y-16.697 A180
G1 X0.291 Y-16.694 A181
G1 X0.583 Y-16.687 A182
G1 X0.874 Y-16.674 A183
G1 X1.165 Y-16.656 A184
G1 X1.455 Y-16.633 A185
G1 X1.745 Y-16.606 A186
G1 X2.035 Y-16.573 A187
G1 X2.324 Y-16.535 A188
G1 X2.612 Y-16.491 A189
G1 X2.899 Y-16.443 A190
G1 X3.186 Y-16.390 A191
G1 X3.472 Y-16.332 A192
G1 X3.756 Y-16.269 A193
G1 X4.039 Y-16.201 A194
G1 X4.322 Y-16.128 A195
G1 X4.602 Y-16.050 A196
G1 X4.882 Y-15.967 A197
G1 X5.160 Y-15.880 A198
G1 X5.436 Y-15.787 A199
G1 X5.711 Y-15.690 A200
G1 X5.984 Y-15.588 A201
G1 X6.255 Y-15.481 A202
G1 X6.524 Y-15.370 A203
G1 X6.791 Y-15.253 A204
G1 X7.056 Y-15.133 A205
G1 X7.319 Y-15.007 A206
G1 X7.580 Y-14.877 A207
G1 X7.839 Y-14.743 A208
G1 X8.095 Y-14.604 A209
G1 X8.349 Y-14.460 A210
G1 X8.600 Y-14.312 A211
G1 X8.848 Y-14.160 A212
G1 X9.094 Y-14.003 A213
G1 X9.337 Y-13.842 A214
G1 X9.577 Y-13.677 A215
G1 X9.814 Y-13.508 A216
G1 X10.049 Y-13.335 A217
G1 X10.280 Y-13.157 A218
G1 X10.508 Y-12.976 A219
G1 X10.733 Y-12.791 A220
G1 X10.954 Y-12.601 A221
G1 X11.172 Y-12.408 A222
G1 X11.387 Y-12.211 A223
G1 X11.599 Y-12.011 A224
G1 X11.807 Y-11.807 A225
G1 X12.011 Y-11.599 A226
G1 X12.211 Y-11.387 A227
G1 X12.408 Y-11.172 A228
G1 X12.601 Y-10.954 A229
G1 X12.791 Y-10.733 A230
G1 X12.976 Y-10.508 A231
G1 X13.157 Y-10.280 A232
G1 X13.335 Y-10.049 A233
G1 X13.508 Y-9.814 A234
G1 X13.677 Y-9.577 A235
G1 X13.842 Y-9.337 A236
G1 X14.003 Y-9.094 A237
G1 X14.160 Y-8.848 A238
G1 X14.312 Y-8.600 A239
G1 X14.460 Y-8.349 A240
G1 X14.604 Y-8.095 A241
G1 X14.743 Y-7.839 A242
G1 X14.877 Y-7.580 A243
G1 X15.007 Y-7.319 A244
G1 X15.133 Y-7.056 A245
G1 X15.253 Y-6.791 A246
G1 X15.370 Y-6.524 A247
G1 X15.481 Y-6.255 A248
G1 X15.588 Y-5.984 A249
G1 X15.690 Y-5.711 A250
G1 X15.787 Y-5.436 A251
G1 X15.880 Y-5.160 A252
G1 X15.967 Y-4.882 A253
G1 X16.050 Y-4.602 A254
G1 X16.128 Y-4.322 A255
G1 X16.201 Y-4.039 A256
G1 X16.269 Y-3.756 A257
G1 X16.332 Y-3.472 A258
G1 X16.390 Y-3.186 A259
G1 X16.443 Y-2.899 A260
G1 X16.491 Y-2.612 A261
G1 X16.535 Y-2.324 A262
G1 X16.573 Y-2.035 A263
G1 X16.606 Y-1.745 A264
G1 X16.633 Y-1.455 A265
G1 X16.656 Y-1.165 A266
G1 X16.674 Y-0.874 A267
G1 X16.687 Y-0.583 A268
G1 X16.694 Y-0.291 A269
G1 X16.697 Y0.000 A270
G1 X16.694 Y0.291 A271
G1 X16.687 Y0.583 A272
G1 X16.674 Y0.874 A273
G1 X16.656 Y1.165 A274
G1 X16.633 Y1.455 A275
G1 X16.606 Y1.745 A276
G1 X16.573 Y2.035 A277
G1 X16.535 Y2.324 A278
G1 X16.491 Y2.612 A279
G1 X16.443 Y2.899 A280
G1 X16.390 Y3.186 A281
G1 X16.332 Y3.472 A282
G1 X16.269 Y3.756 A283
G1 X16.201 Y4.039 A284
G1 X16.128 Y4.322 A285
G1 X16.050 Y4.602 A286
G1 X15.967 Y4.882 A287
G1 X15.880 Y5.160 A288
G1 X15.787 Y5.436 A289
G1 X15.690 Y5.711 A290
G1 X15.588 Y5.984 A291
G1 X15.481 Y6.255 A292
G1 X15.370 Y6.524 A293
G1 X15.253 Y6.791 A294
G1 X15.133 Y7.056 A295
G1 X15.007 Y7.319 A296
G1 X14.877 Y7.580 A297
G1 X14.743 Y7.839 A298
G1 X14.604 Y8.095 A299
G1 X14.460 Y8.349 A300
G1 X14.312 Y8.600 A301
G1 X14.160 Y8.848 A302
G1 X14.003 Y9.094 A303
G1 X13.842 Y9.337 A304
G1 X13.677 Y9.577 A305
G1 X13.508 Y9.814 A306
G1 X13.335 Y10.049 A307
G1 X13.157 Y10.280 A308
G1 X12.976 Y10.508 A309
G1 X12.791 Y10.733 A310
G1 X12.601 Y10.954 A311
G1 X12.408 Y11.172 A312
G1 X12.211 Y11.387 A313
G1 X12.011 Y11.599 A314
G1 X11.807 Y11.807 A315
G1 X11.599 Y12.011 A316
G1 X11.387 Y12.211 A317
G1 X11.172 Y12.408 A318
G1 X10.954 Y12.601 A319
G1 X10.733 Y12.791 A320
G1 X10.508 Y12.976 A321
G1 X10.280 Y13.157 A322
G1 X10.049 Y13.335 A323
G1 X9.814 Y13.508 A324
G1 X9.577 Y13.677 A325
G1 X9.337 Y13.842 A326
G1 X9.094 Y14.003 A327
G1 X8.848 Y14.160 A328
G1 X8.600 Y14.312 A329
G1 X8.349 Y14.460 A330
G1 X8.095 Y14.604 A331
G1 X7.839 Y14.743 A332
G1 X7.580 Y14.877 A333
G1 X7.319 Y15.007 A334
G1 X7.056 Y15.133 A335
G1 X6.791 Y15.253 A336
G1 X6.524 Y15.370 A337
G1 X6.255 Y15.481 A338
G1 X5.984 Y15.588 A339
G1 X5.711 Y15.690 A340
G1 X5.436 Y15.787 A341
G1 X5.160 Y15.880 A342
G1 X4.882 Y15.967 A343
G1 X4.602 Y16.050 A344
G1 X4.322 Y16.128 A345
G1 X4.039 Y16.201 A346
G1 X3.756 Y16.269 A347
G1 X3.472 Y16.332 A348
G1 X3.186 Y16.390 A349
G1 X2.899 Y16.443 A350
G1 X2.612 Y16.491 A351
G1 X2.324 Y16.535 A352
G1 X2.035 Y16.573 A353
G1 X1.745 Y16.606 A354
G1 X1.455 Y16.633 A355
G1 X1.165 Y16.656 A356
G1 X0.874 Y16.674 A357
G1 X0.583 Y16.687 A358
G1 X0.291 Y16.694 A359
G1 X-0.000 Y16.697 A360
G1 X-0.291 Y16.694 A361

Re: Feedrate on multi-segment curves
« Reply #7 on: September 24, 2014, 12:05:45 PM »
Very neat! Post your Gcode and xml. I will have a look as soon as I can. I have a video and some notes I hope to post on tangential soon.


I look forward to your info on the tangential feature, as I remember reading somewhere that there is functionality for this built into Mach but have never looked into the details of it.  I have a separate problem with my G-code method of trying to do tangential cutting smoothly and I have a feeling the method built into Mach would avoid the problem I'm having.  Basically the issue is that if I issue successive commands of the G1 X Y A format, where A is the angle that corresponds to the slope of the line leading up to X,Y from the previous point, the problem is that angle is never reached until the very end of the line segment since all three values make the transition evenly from start to finish.  What I really need is a way for the A angle to just instantly get set at the start of the line since it represents the slope of the entire line that is to be traversed next, then the X and Y would proceed in the normal way.  If I issue a separate command for the angle prior to the motion command such as G1 A to set the angle first followed by G1 X Y for the tool head travel, the A-only command will interrupt the CV mode and the machine will stop between points.  Thus smooth curve tracing can not be done this way and it jolts the machine repeatedly.    So when trying to do tangential cutting using G-code to control the angle,  the choice is between smooth motion with slightly inaccurate angles, or accurate angles with jarring motion.  I've been going with the inaccurate angles for now.  If tangential functionality is built into Mach then I would imagine that is really the best solution.

Re: Feedrate on multi-segment curves
« Reply #8 on: September 24, 2014, 06:15:58 PM »
After further testing I found out that the feed rate problem is really not related to the length of the line segments like I originally thought.  I took the G-code posted above and divided the circle into four quadrants that had progressively longer line segments and all quadrants had the same feed rate.  I made a script that also tested each axis using groupings of progressively longer line segments and the feed rate was constant on that also.  So line segment length plays no role and CV mode works as expected.

What seems to be causing the problem is the angle component of the X Y A commands.  The bigger the angle movement is, the slower the feed rate gets.  If I strip off the A commands in the G-code posted above, the feed rate increases to three times faster than what it is when the A axis is included.

 My motor tuning for the three axis is this:

X axis: 1300 imp, 50 in/sec2
Y axis: 1300 ipm, 100 in/sec2
A axis: 30K ipm, 100K in/sec2

The A axis is the oddball of course, with the steps per unit value set to be the number of steps per one degree of rotation.  The acceleration value is set very high to get instantaneous movement, since there is very little mass being moved and quick movement is desired.  The 30K speed value gives a rapids rotation speed of 83 RPM for quick position changes when the wheel is off the table (jog speed is cut WAY down from this, since there is no limit switch on the wheel and it has to be zero'd manually).  But for some reason this axis is apparently the speed bottleneck that is slowing down the other two axis, which seems odd given that it is setup as the fastest moving axis.  There must be some other setting that affects the feed rate of the A axis which I am not accounting for.

« Last Edit: September 24, 2014, 06:25:44 PM by pyronaught »

Offline ger21

  • *
  •  6,293 6,293
    • View Profile
    • The CNC Woodworker
Re: Feedrate on multi-segment curves
« Reply #9 on: September 24, 2014, 06:28:23 PM »
Go to Config>Toolpath, and enable "Use Radius for Feedrate".

Depending on the version of Mach3 that you're using, you may need to enter .001 for the A rotation radius on the settings page.

This is to get the proper feedrate with a standard rotary axis. It may or may not work for your application.

2010 Screenset

JointCAM Dovetail and Box Joint software