###### Descriptions and Examples for the POV-Ray Raytracerby Friedrich A. Lohmüller     Model Railroading / Railway Modelling with POV-Ray -
Italiano
Français
Deutsch

Home
- POV-Ray Tutorial

Railway Modelling
with POV-Ray
Index of Content

- Rail Track System
for POV-Ray
Basic Track Elements
- Straight & Curved
- Switches
- Wye + 3Ways
- Level Junctions

- Simplified Using by
RT_System_00.inc
- Rail Tracks Elements
with RT_System_00.inc

- Track Layout with
Model Scaled Tracks
- H0 Scale Tracks
- N Scale Tracks
- Z Scale Tracks

- Track Layout with
scaled Tracks
- Track Placement
- Tracks Up & Down

- Track Layout Examples
- Simple cyclic
> Simple eight

Rail Track System

Examples for Track Layouts with scaled Tracks
Example 2 : A Simple Eight
(N scale track system of geometry type A)

For the arrangment of tracks in curves upward or downward we should use short tracks of an angle of 15° and the macro 'Track_Up_00( ... )' from my include file 'RT_System/N_TypeA111/RT_N_TypeA111_Track_Up_00.inc'.
For curved tracks we often need to turn tracks by an angle around the center of the curve by using the macro 'Rotate_Around_Trans( RotationVector, Center_of_Rotation )' from the include file 'transforms.inc'.
We can replace the long command
'Rotate_Around_Trans(<0, 1*15,0>,<0,0,-R1>)' by a shorter expression like
'RTyz( 1*15, -R1 )' by declaring the following macro:
 ```//----------------------------------------------------// #include "transforms.inc" #macro RTyz( Y_Angle, Z_Distance ) Rotate_Around_Trans(<0, Y_Angle,0>,<0,0, Z_Distance>) #end //----------------------------------------------------//```
A simple eight of tracks up and down
Arrangment of the tracks:
 ```//-----------------------------------------------------------------------------------------// union{ // western curve object{ Track_Up_00 ("T_R1_15", Step_1/2,1) RTyz( 0*15,-R1) translate<0, 0.0*Step_1*N,0> } object{ Track_Up_00 ("T_R1_15", Step_1, 0) RTyz( 1*15,-R1) translate<0, 0.5*Step_1*N,0> } object{ Track_Up_00 ("T_R1_15", Step_1, 0) RTyz( 2*15,-R1) translate<0, 1.5*Step_1*N,0> } object{ Track_Up_00 ("T_R1_15", Step_1, 0) RTyz( 3*15,-R1) translate<0, 2.5*Step_1*N,0> } object{ Track_Up_00 ("T_R1_15", Step_1, 0) RTyz( 4*15,-R1) translate<0, 3.5*Step_1*N,0> } object{ Track_Up_00 ("T_R1_15", Step_1, 0) RTyz( 5*15,-R1) translate<0, 4.5*Step_1*N,0> } object{ Track_Up_00 ("T_R1_15", Step_1, 0) RTyz( 6*15,-R1) translate<0, 5.5*Step_1*N,0> } object{ Track_Up_00 ("T_R1_15", Step_1, 0) RTyz( 7*15,-R1) translate<0, 6.5*Step_1*N,0> } object{ Track_Up_00 ("T_R1_15", Step_1, 0) RTyz( 8*15,-R1) translate<0, 7.5*Step_1*N,0> } object{ Track_Up_00 ("T_R1_15", Step_1, 0) RTyz( 9*15,-R1) translate<0, 8.5*Step_1*N,0> } object{ Track_Up_00 ("T_R1_15", Step_1, 0) RTyz(10*15,-R1) translate<0, 9.5*Step_1*N,0> } object{ Track_Up_00 ("T_R1_15", Step_1, 0) RTyz(11*15,-R1) translate<0,10.5*Step_1*N,0> } object{ Track_Up_00 ("T_R1_15", Step_1, 0) RTyz(12*15,-R1) translate<0,11.5*Step_1*N,0> } object{ Track_Up_00 ("T_R1_15", Step_1, 0) RTyz(13*15,-R1) translate<0,12.5*Step_1*N,0> } object{ Track_Up_00 ("T_R1_15", Step_1, 0) RTyz(14*15,-R1) translate<0,13.5*Step_1*N,0> } object{ Track_Up_00 ("T_R1_15", Step_1, 0) RTyz(15*15,-R1) translate<0,14.5*Step_1*N,0> } object{ Track_Up_00 ("T_R1_15", Step_1, 0) RTyz(16*15,-R1) translate<0,15.5*Step_1*N,0> } rotate<0,180,0> RTyz(-2*15, R1 ) } // end western curve union{ // simple station // starting at western end: object{ SW_L( SD_1) translate< 0*L111 ,0,0>} object{ T_R9_15 Rotate_Around_Trans(<0,-1*15,0>,<0,0, R9>) translate< 0*L111 ,0,0>} object{ T_111 translate< 1*L111 ,0,0>} object{ T_111 translate<2*L111 ,0, 1*Track_Distance> } object{ T_111 translate<2*L111 ,0, 0> } object{ SW_R( SD_2) translate<3*L111 ,0, 1*Track_Distance>} object{ T_111 translate<3*L111 ,0, 0> } object{ T_111 translate<4*L111 ,0, 1*Track_Distance> } object{ SW_R( SD_2) rotate<0,180,0> translate<5*L111 ,0, 0> } RTyz(-2*15, R1 ) } // ----- end station union{ // eastern curve object{ Track_Up_00 ("T_R1_15", Step_2/2,1) RTyz( 0*15,-R1) translate<0, 0.0*Step_2*N,0> } object{ Track_Up_00 ("T_R1_15", Step_2, 0) RTyz( 1*15,-R1) translate<0, 0.5*Step_2*N,0> } object{ Track_Up_00 ("T_R1_15", Step_2, 0) RTyz( 2*15,-R1) translate<0, 1.5*Step_2*N,0> } object{ Track_Up_00 ("T_R1_15", Step_2, 0) RTyz( 3*15,-R1) translate<0, 2.5*Step_2*N,0> } object{ Track_Up_00 ("T_R1_15", Step_2, 0) RTyz( 4*15,-R1) translate<0, 3.5*Step_2*N,0> } object{ Track_Up_00 ("T_R1_15", Step_2, 0) RTyz( 5*15,-R1) translate<0, 4.5*Step_2*N,0> } object{ Track_Up_00 ("T_R1_15", Step_2, 0) RTyz( 6*15,-R1) translate<0, 5.5*Step_2*N,0> } object{ Track_Up_00 ("T_R1_15", Step_2, 0) RTyz( 7*15,-R1) translate<0, 6.5*Step_2*N,0> } object{ Track_Up_00 ("T_R1_15", Step_2, 0) RTyz( 8*15,-R1) translate<0, 7.5*Step_2*N,0> } object{ Track_Up_00 ("T_R1_15", Step_2, 0) RTyz( 9*15,-R1) translate<0, 8.5*Step_2*N,0> } object{ Track_Up_00 ("T_R1_15", Step_2, 0) RTyz(10*15,-R1) translate<0, 9.5*Step_2*N,0> } object{ Track_Up_00 ("T_R1_15", Step_2, 0) RTyz(11*15,-R1) translate<0,10.5*Step_2*N,0> } object{ Track_Up_00 ("T_R1_15", Step_2, 0) RTyz(12*15,-R1) translate<0,11.5*Step_2*N,0> } object{ Track_Up_00 ("T_R1_15", Step_2, 0) RTyz(13*15,-R1) translate<0,12.5*Step_2*N,0> } object{ Track_Up_00 ("T_R1_15", Step_2, 0) RTyz(14*15,-R1) translate<0,13.5*Step_2*N,0> } object{ Track_Up_00 ("T_R1_15", Step_2, 0) RTyz(15*15,-R1) translate<0,14.5*Step_2*N,0> } object{ Track_Up_00 ("T_R1_15", Step_2, 0) RTyz(16*15,-R1) translate<0,15.5*Step_2*N,0> } translate<4.5*L111,0,0> RTyz(-2*15, R1 ) } // end eastern curve union{ // cross line southeast to northwest object{ Track_Up_00 ("T_111", Step_1 , 0) translate< 0*L111, 0.0*Step_2*N,0> } object{ Track_Up_00 ("T_111", Step_1/2, 2) translate< 1*L111, 1.0*Step_2*N,0> } object{ T_Straight( 0.062*N ) translate< 2*L111 ,1.5*Step_2*N,0> } object{ Track_Up_00 ("T_111",-Step_1/2, 1) translate< 2*L111+0.062*N ,1.5*Step_2*N,0> } object{ Track_Up_00 ("T_111",-Step_1 , 0) translate< 3*L111+0.062*N, 1.0*Step_2*N,0> } rotate<0,180+1.0,0> translate<0, 16.5*Step_1*N,0> RTyz( 15*15, R1 ) } // end cross line southeast to northwest //-----------------------------------------------//```
And here the same eight with provisorial bridge piers:
Simple cyclic eight.
Simple cyclic eight
Expansion with 3-Way-Switch and sidetrack:
Necessary changes in red!
 ```//-----------------------------------------------------------------------------------------// union{ // simple station // starting at western end: object{ SW3( SD_1) rotate<0,0,0> translate< 0*L111 ,0,0> } object{ T_R9_15 Rotate_Around_Trans(<0,-1*15,0>,<0,0, R9>) translate< 0*L111 ,0,0>} object{ T_111 rotate<0,0,0> translate< 1*L111 ,0,0> } // side line union{ object{ T_111 translate< 0*L111 ,0,0> } object{ T_111 translate< 1*L111 ,0,0> } object{ T_111 translate< 2*L111 ,0,0> } object{ T_111 translate< 3*L111 ,0,0> } Rotate_Around_Trans(<0, 1*15,0>,<0,0,-R9>) translate< 0*L111 ,0,0> } // end side line object{ T_055 rotate<0,0,0> translate< 2*L111 ,0, 1*Track_Distance> } object{ T_055 rotate<0,0,0> translate< 2*L111 ,0, 0> } object{ SW_R( SD_2) rotate<0,0,0> translate< 2*L111+1*L055 ,0, 1*Track_Distance> } object{ T_111 rotate<0,0,0> translate< 2*L111+1*L055 ,0, 0> } object{ T_111 rotate<0,0,0> translate< 3*L111+1*L055 ,0, 1*Track_Distance> } object{ SW_R( SD_2) rotate<0,180,0> translate< 4*L111+1*L055 ,0, 0> } RTyz(-2*15, R1 ) } // //-----------------------------------------------//```

Simple eight + sidetrack.

top

 © Friedrich A. Lohmueller, 2012 www.f-lohmueller.de