mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-10-20 11:34:53 +02:00
fix(track): the tip of a blade lying tangent to its stock rail, as in 60E1 and 49E1 switches with cut tips, is where its theoretical arc gets 5 mm off the gauge face of the stock rail less the 125 mm the nose is planed over, instead of where it gets 3 mm off, so the tips lie 1.25, 1.60, 2.11, 2.63 and 3.34 m from the start of the switch at R190, 300, 500, 760 and 1200 as in the tables of these switches instead of 0.2 to 0.65 m nearer it; blades cutting into the stock rail at an angle, as in S42 switches, keep their tips
This commit is contained in:
@@ -710,6 +710,9 @@ track_rails::switch_blade const &TTrack::blade( int const Path ) const {
|
||||
glm::dvec3 point, tangent;
|
||||
ours.at( 0.0, point, tangent );
|
||||
auto otherat { nearest_distance( theirs, point ) };
|
||||
glm::dvec3 start, along;
|
||||
theirs.at( otherat, start, along );
|
||||
auto const tangential { std::abs( glm::cross( glm::normalize( glm::dvec3 { tangent.x, 0.0, tangent.z } ), glm::normalize( glm::dvec3 { along.x, 0.0, along.z } ) ).y ) < blade_tangent };
|
||||
for( int i = 0; i <= count; ++i ) {
|
||||
auto const distance { length * i / count };
|
||||
ours.at( distance, point, tangent );
|
||||
@@ -734,6 +737,9 @@ track_rails::switch_blade const &TTrack::blade( int const Path ) const {
|
||||
}
|
||||
return -1.0; };
|
||||
result.tip = reach( blade_point );
|
||||
if( auto const nose { reach( blade_nose ) }; tangential && nose >= 0.0 ) {
|
||||
result.tip = std::max( result.tip, nose - blade_planed );
|
||||
}
|
||||
result.full = reach( size.head + blade_gap );
|
||||
auto const clear { reach( size.head + blade_clearance ) };
|
||||
auto const foot { reach( size.high + blade_gap ) };
|
||||
|
||||
@@ -38,6 +38,9 @@ double constexpr check_flangeway { 0.041 };
|
||||
double constexpr blade_throw { 0.160 };
|
||||
double constexpr blade_clearance { 0.058 };
|
||||
double constexpr blade_point { 0.003 };
|
||||
double constexpr blade_nose { 0.005 };
|
||||
double constexpr blade_planed { 0.125 };
|
||||
double constexpr blade_tangent { 0.00175 };
|
||||
double constexpr blade_gap { 0.0005 };
|
||||
double constexpr blade_lowered { 0.050 };
|
||||
double constexpr blade_spacing { 0.5 };
|
||||
|
||||
Reference in New Issue
Block a user