discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

How to calculate inclined curved train track?

E
EdgE
Fri, Jun 29, 2018 10:39 AM

Hello,

I've got a math question, about how to calculate both rail sides of a
inclined curved train track.
This for creating a working duplo compatible curved bridge.

Some basic requirements:

  • Bridge is duplo track compatible: radius 260 mm, 1 curved section equals
    30 degrees bend. (Track width ~64 mm.)
  • Bridge is divided into at least 3 section: begin, mid, end. Bridge could
    be enlarged by multiple mid-sections.
  • Begin (pnt A in picture) and end point (D), should be horizontal.
  • Mid section should have constant slope, so it's possible to repeat these
    sections.
    (The slope is: 1 standard curved length, moving 2 bricks up, which equals
    to ~16 degrees.)
  • Since issue's with maximum curvatures etc, the start & end section
    inclination is only one brick high (19.2mm).
  • Should work with standard duplo locomotives (& wagons).
  • (Since the locomotive has 4 wheels, without springs, the track should be
    "flat" according to these 4 points...)

Currently I've one OpenSCAD script, able to generate these 3 sections, based
on some configuration settings.
It basically uses the path_extrude.scad (from github.com/JustinSDK/dotSCAD),
generating both sides of the track.

The path is generated with a list of points [ [x1,y1,z1], etc ] and the same
amount of cross-sections:

  • X, Y points, following sin & cos.
  • Z points, following a 3th order polynomial, where the begin & end slopes
    (A,B,C,D) could be controlled.
    Sections are first rotated and moved (and scaled in z direction), so a solid
    could be made.

Currently, the Z points are equal for left & right side of the track, which
is (of course) wrong.
Any way, since I had no clue if this is a practical problem or not, I just
printed, tested and      failed...

What happens:
Since I did expect something like this already, I did create the
traction-ribs on both sides, so at least one of the driven wheels should
have traction. But when the locomotive is tipping a little, one of the back
wheels could loss track, then the train could move in traversal direction a
little and completely losing traction. So this is not working.
It's also not possible the make the rim on the rail wider, limiting the
transverse play, since the wheels will not fit on the track anymore.

What is necessary:
Having a train track where both sides of the rail have the appropriate
height.
(Let's say appropriate height within +/-1 mm error, since the traction ribs
are 2.5 mm high.)
Could someone please give me some direction, how this could be calculated?
Many thanks.

Picture & 3mf file: curved_bridge_issue.3mf
http://forum.openscad.org/file/t2250/curved_bridge_issue.3mf
http://forum.openscad.org/file/t2250/track_issue.jpg

--
Sent from: http://forum.openscad.org/

Hello, I've got a math question, about how to calculate both rail sides of a inclined curved train track. This for creating a working duplo compatible curved bridge. Some basic requirements: * Bridge is duplo track compatible: radius 260 mm, 1 curved section equals 30 degrees bend. (Track width ~64 mm.) * Bridge is divided into at least 3 section: begin, mid, end. Bridge could be enlarged by multiple mid-sections. * Begin (pnt A in picture) and end point (D), should be horizontal. * Mid section should have constant slope, so it's possible to repeat these sections. (The slope is: 1 standard curved length, moving 2 bricks up, which equals to ~16 degrees.) * Since issue's with maximum curvatures etc, the start & end section inclination is only one brick high (19.2mm). * Should work with standard duplo locomotives (& wagons). * (Since the locomotive has 4 wheels, without springs, the track should be "flat" according to these 4 points...) Currently I've one OpenSCAD script, able to generate these 3 sections, based on some configuration settings. It basically uses the path_extrude.scad (from github.com/JustinSDK/dotSCAD), generating both sides of the track. The path is generated with a list of points [ [x1,y1,z1], etc ] and the same amount of cross-sections: * X, Y points, following sin & cos. * Z points, following a 3th order polynomial, where the begin & end slopes (A,B,C,D) could be controlled. Sections are first rotated and moved (and scaled in z direction), so a solid could be made. Currently, the Z points are equal for left & right side of the track, which is (of course) wrong. Any way, since I had no clue if this is a practical problem or not, I just printed, tested and failed... What happens: Since I did expect something like this already, I did create the traction-ribs on both sides, so at least one of the driven wheels should have traction. But when the locomotive is tipping a little, one of the back wheels could loss track, then the train could move in traversal direction a little and completely losing traction. So this is not working. It's also not possible the make the rim on the rail wider, limiting the transverse play, since the wheels will not fit on the track anymore. What is necessary: Having a train track where both sides of the rail have the appropriate height. (Let's say appropriate height within +/-1 mm error, since the traction ribs are 2.5 mm high.) Could someone please give me some direction, how this could be calculated? Many thanks. Picture & 3mf file: curved_bridge_issue.3mf <http://forum.openscad.org/file/t2250/curved_bridge_issue.3mf> <http://forum.openscad.org/file/t2250/track_issue.jpg> -- Sent from: http://forum.openscad.org/
N
NateTG
Fri, Jun 29, 2018 8:20 PM

The simplest answer is that the track is just 'too curved'.  To make the
geometry work out nicely for a piecewise modular track with a sloped curve
like that you'll need to allow the seams to be at odd angles, or make the
radius of curvature larger.

There is no 'flat helix' that you can easily use to make a curve like that.
The same length on the inside of the curve will always be a bigger angle
from center of curvature than the outside of the curve so it will always
climb 'faster' from the POV of the train.

The duplo trains also have solid axles and not a lot of wheel taper which
means self-stabilization is limited.

--
Sent from: http://forum.openscad.org/

The simplest answer is that the track is just 'too curved'. To make the geometry work out nicely for a piecewise modular track with a sloped curve like that you'll need to allow the seams to be at odd angles, or make the radius of curvature larger. There is no 'flat helix' that you can easily use to make a curve like that. The same length on the inside of the curve will always be a bigger angle from center of curvature than the outside of the curve so it will always climb 'faster' from the POV of the train. The duplo trains also have solid axles and not a lot of wheel taper which means self-stabilization is limited. -- Sent from: http://forum.openscad.org/
NH
nop head
Sat, Jun 30, 2018 9:36 AM

My first thought was that it is impossible but what if you do the
following? :

Generate the inner rail and the straight part of the outer rail.
Place the train with its front wheels at the end of the straight.

Repeat:
Step it forward a little and keep the inner front and the back wheels on
the existing track.
Generate a short section of outer track that meets the outer front wheel.

Would that not generate a banked outer rail that always keeps four wheels
on the rails? Or would it generate a corkscrew and flip the train over?

On 29 June 2018 at 21:20, NateTG nate-openscadforum@pedantic.org wrote:

The simplest answer is that the track is just 'too curved'.  To make the
geometry work out nicely for a piecewise modular track with a sloped curve
like that you'll need to allow the seams to be at odd angles, or make the
radius of curvature larger.

There is no 'flat helix' that you can easily use to make a curve like
that.
The same length on the inside of the curve will always be a bigger angle
from center of curvature than the outside of the curve so it will always
climb 'faster' from the POV of the train.

The duplo trains also have solid axles and not a lot of wheel taper which
means self-stabilization is limited.

--
Sent from: http://forum.openscad.org/


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

My first thought was that it is impossible but what if you do the following? : Generate the inner rail and the straight part of the outer rail. Place the train with its front wheels at the end of the straight. Repeat: Step it forward a little and keep the inner front and the back wheels on the existing track. Generate a short section of outer track that meets the outer front wheel. Would that not generate a banked outer rail that always keeps four wheels on the rails? Or would it generate a corkscrew and flip the train over? On 29 June 2018 at 21:20, NateTG <nate-openscadforum@pedantic.org> wrote: > The simplest answer is that the track is just 'too curved'. To make the > geometry work out nicely for a piecewise modular track with a sloped curve > like that you'll need to allow the seams to be at odd angles, or make the > radius of curvature larger. > > There is no 'flat helix' that you can easily use to make a curve like > that. > The same length on the inside of the curve will always be a bigger angle > from center of curvature than the outside of the curve so it will always > climb 'faster' from the POV of the train. > > The duplo trains also have solid axles and not a lot of wheel taper which > means self-stabilization is limited. > > > > -- > Sent from: http://forum.openscad.org/ > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >
E
EdgE
Sun, Jul 1, 2018 8:08 AM

@nophead, I also thought about something you describe. What probably happens,
when the wheels on the back also tough this 'new' outside curve, they will
"roll" the locomotive a little, so the front wheels will be lifted again.
And so the track is 'not right' (again). That's also what I experience right
now. The first & last part of the track are somewhat right, but this middle
section is apparently to steep. That's also what NateTG is describing.

Reading literature about real trains, this height difference is called cant
(crosslevel or superelevation). Here train safety (self-stabilization) &
comfort is most important. Also the metal rail could bend a little and so do
the train springs. Not comparable with the duplo situation.
Thanks for the replies, I'll try a less steep situation.

--
Sent from: http://forum.openscad.org/

@nophead, I also thought about something you describe. What probably happens, when the wheels on the back also tough this 'new' outside curve, they will "roll" the locomotive a little, so the front wheels will be lifted again. And so the track is 'not right' (again). That's also what I experience right now. The first & last part of the track are somewhat right, but this middle section is apparently to steep. That's also what NateTG is describing. Reading literature about real trains, this height difference is called cant (crosslevel or superelevation). Here train safety (self-stabilization) & comfort is most important. Also the metal rail could bend a little and so do the train springs. Not comparable with the duplo situation. Thanks for the replies, I'll try a less steep situation. -- Sent from: http://forum.openscad.org/
NH
nop head
Sun, Jul 1, 2018 9:58 AM

And so the track is 'not right' (again).

It will be right because, by definition, the outer track is the locus of
the outer front wheel when the inner wheels are on the inner rail and the
outer rear wheel is further back on the outer rail that has already been
generated. The question is will it bank gently or corkscrew due to positive
feedback and tip over.

Note that when the outer rail is generated this way the gauge will reduce
slightly on the bend because the fixed axles are not quite orthogonal to
the rails.

On 1 July 2018 at 09:08, EdgE advancedvb@hotmail.com wrote:

@nophead, I also thought about something you describe. What probably
happens,
when the wheels on the back also tough this 'new' outside curve, they will
"roll" the locomotive a little, so the front wheels will be lifted again.
And so the track is 'not right' (again). That's also what I experience
right
now. The first & last part of the track are somewhat right, but this middle
section is apparently to steep. That's also what NateTG is describing.

Reading literature about real trains, this height difference is called cant
(crosslevel or superelevation). Here train safety (self-stabilization) &
comfort is most important. Also the metal rail could bend a little and so
do
the train springs. Not comparable with the duplo situation.
Thanks for the replies, I'll try a less steep situation.

--
Sent from: http://forum.openscad.org/


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

>And so the track is 'not right' (again). It will be right because, by definition, the outer track is the locus of the outer front wheel when the inner wheels are on the inner rail and the outer rear wheel is further back on the outer rail that has already been generated. The question is will it bank gently or corkscrew due to positive feedback and tip over. Note that when the outer rail is generated this way the gauge will reduce slightly on the bend because the fixed axles are not quite orthogonal to the rails. On 1 July 2018 at 09:08, EdgE <advancedvb@hotmail.com> wrote: > @nophead, I also thought about something you describe. What probably > happens, > when the wheels on the back also tough this 'new' outside curve, they will > "roll" the locomotive a little, so the front wheels will be lifted again. > And so the track is 'not right' (again). That's also what I experience > right > now. The first & last part of the track are somewhat right, but this middle > section is apparently to steep. That's also what NateTG is describing. > > Reading literature about real trains, this height difference is called cant > (crosslevel or superelevation). Here train safety (self-stabilization) & > comfort is most important. Also the metal rail could bend a little and so > do > the train springs. Not comparable with the duplo situation. > Thanks for the replies, I'll try a less steep situation. > > > > -- > Sent from: http://forum.openscad.org/ > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >
N
NateTG
Sun, Jul 1, 2018 9:28 PM

nophead wrote

My first thought was that it is impossible but what if you do the
following? :

Generate the inner rail and the straight part of the outer rail.
Place the train with its front wheels at the end of the straight.

Repeat:
Step it forward a little and keep the inner front and the back wheels on
the existing track.
Generate a short section of outer track that meets the outer front wheel.

Would that not generate a banked outer rail that always keeps four wheels
on the rails? Or would it generate a corkscrew and flip the train over?

The 'inside' rail of the track has to be shorter that the outside one.  That
means that it has to climb faster per distance on average if the track is
going to be level at the top.  At the same time, the distance between the
front and rear wheels on each side is fixed, so the inside will always be
climbing 'faster' than the outside.  As far as I can tell, you're basically
stuck changing things slowly enough that this inside/outside difference is
small enough not to matter.

The 'inside is shorter' problem also presents problems for the 'rack and
pinion' traction system since the Duplo locomotive uses solid axles which
need slippage to work in curves.

--
Sent from: http://forum.openscad.org/

nophead wrote > My first thought was that it is impossible but what if you do the > following? : > > Generate the inner rail and the straight part of the outer rail. > Place the train with its front wheels at the end of the straight. > > Repeat: > Step it forward a little and keep the inner front and the back wheels on > the existing track. > Generate a short section of outer track that meets the outer front wheel. > > Would that not generate a banked outer rail that always keeps four wheels > on the rails? Or would it generate a corkscrew and flip the train over? The 'inside' rail of the track has to be shorter that the outside one. That means that it has to climb faster per distance on average if the track is going to be level at the top. At the same time, the distance between the front and rear wheels on each side is fixed, so the inside will always be climbing 'faster' than the outside. As far as I can tell, you're basically stuck changing things slowly enough that this inside/outside difference is small enough not to matter. The 'inside is shorter' problem also presents problems for the 'rack and pinion' traction system since the Duplo locomotive uses solid axles which need slippage to work in curves. -- Sent from: http://forum.openscad.org/
N
NateTG
Sun, Jul 1, 2018 9:56 PM

nophead wrote

My first thought was that it is impossible but what if you do the
following?...

The inside track of a curve has to be shorter.  At the same time, if the top
and bottom of the climbing curve are to be level, it has to climb the same
amount as the outside track.  That means that the inside track must be
steeper than the outside track, but the distance from front to rear wheel on
each side of the locomotive is the same.  So the only way to keep the upper
outside or lower inside wheel on the track is to make the curve or climb so
gradual that the difference in slope is so small that you don't notice.

Alternatively, you could set things up so that the top and bottom of the
climbing curve are banked differently, but that's not compatible with OP's
goal for a modular climbing curve.

--
Sent from: http://forum.openscad.org/

nophead wrote > My first thought was that it is impossible but what if you do the > following?... The inside track of a curve has to be shorter. At the same time, if the top and bottom of the climbing curve are to be level, it has to climb the same amount as the outside track. That means that the inside track must be steeper than the outside track, but the distance from front to rear wheel on each side of the locomotive is the same. So the only way to keep the upper outside or lower inside wheel on the track is to make the curve or climb so gradual that the difference in slope is so small that you don't notice. Alternatively, you could set things up so that the top and bottom of the climbing curve are banked differently, but that's not compatible with OP's goal for a modular climbing curve. -- Sent from: http://forum.openscad.org/