discourse-legacysite-perl/site/Fit_Calculator/fit_calculator.php
2024-06-17 22:42:14 +10:00

324 lines
20 KiB
PHP

<?PHP include("config.php"); ?>
<!DOCTYPE html >
<html lang="en">
<head>
<title>&lt;:: Welcome to Slowtwitch.com ::&gt;: Custom Tri Geometry Calculator</title>
<meta name="KEYWORDS" content="bike, geometry, custom" />
<meta name="DESCRIPTION" content="Are you trying to find custom geometry based off a fitting session? Use our calculator to help."/>
<? include($common_path . "/templates/include_global_head.php"); ?>
<? include($common_path . "/templates/google_analytics.html"); ?>
</head>
<body id="home">
<? include($common_path . "/ads/ad_wallpaper.html"); ?>
<div class="container">
<? include($common_path . "/templates/include_header.php"); ?>
<div class="main">
<div class="contentwrapper clearfix">
<? include("include_breadcrumb.php"); ?>
<section class="section listings section-has-widgets section-static remove-sidebar">
<div class="sidebar-b">
<? include("include_sidebar.php") ?>
</div>
<div class="content content-has-widgets">
<div class="grid">
<div class="clearfix">
<h1>F.I.S.T Custom Bike Calculator</h1>
<hr class="line" />
<p>All values are in millimeters!</p>
<form name="calcForm" id="calcForm" method="post" action="do_calc.php">
<div class="dtable form">
<? if ($_GET['use'] == 'serotta') { /** begin Serotta XY **/ ?>
<div class="drow">
<div class="dcell name">Serotta X</div>
<div class="dcell divider"></div>
<div class="dcell value">
<input type="text" id="serottaX" name="serottaX" class="txt shotext" /> <a href="fit_calculator.php?">Click here to use Stack &amp; Reach</a>
</div>
</div>
<div class="drow">
<div class="dcell name">Head Angle</div>
<div class="dcell divider"></div>
<div class="dcell value">
<input type="text" id="head_angle" name="head_angle" class="txt shotext" />
</div>
</div>
<div class="drow">
<div class="dcell name">Stem Length</div>
<div class="dcell divider"></div>
<div class="dcell value">
<select id="stem_length" name="stem_length">
<option value="50">50 mm</option>
<option value="60">60 mm</option>
<option value="70">70 mm</option>
<option value="80">80 mm</option>
<option value="90">90 mm</option>
<option value="100">100 mm</option>
<option value="110">110 mm</option>
<option value="120">120 mm</option>
<option value="130">130 mm</option>
<option value="140">140 mm</option>
<option value="150">150 mm</option>
</select>
</div>
</div>
<div class="drow">
<div class="dcell name">Stem Angle</div>
<div class="dcell divider"></div>
<div class="dcell value">
<input type="text" id="stem_angle" name="stem_angle" class="txt shotext" /><br />
Plug in actual stem pitch. Write 0 [the number zero] for an extension <strong>perpendicular to the steerer</strong>; -6 for 6&deg; down from perpendicular, 6 for 6&deg; up; -17&deg; for a "7-shaped" stem; and so forth.
</div>
</div>
<div class="drow">
<div class="dcell name">Stem Clamp Height</div>
<div class="dcell divider"></div>
<div class="dcell value">
<input type="text" id="clamp" name="clamp" class="txt shotext" />
</div>
</div>
<div class="drow">
<div class="dcell name">Spacer Height</div>
<div class="dcell divider"></div>
<div class="dcell value">
<input type="text" id="spacer" name="spacer" class="txt shotext" />
</div>
</div>
<div class="drow">
<div class="dcell name">Headset Topcap</div>
<div class="dcell divider"></div>
<div class="dcell value">
<input type="text" id="headset" name="headset" class="txt shotext" />
<input type="hidden" id="coordinates" name="coordinates" value="serotta_xy" />
<input type="hidden" name="stack" />
<input type="hidden" name="reach" />
</div>
</div>
<? } else { ?>
<div class="drow">
<div class="dcell name">Stack</div>
<div class="dcell divider"></div>
<div class="dcell value">
<input type="text" id="stack" name="stack" class="txt shotext" /> <a href="fit_calculator.php?use=serotta">Click here to use Serotta XY</a>
</div>
</div>
<div class="drow">
<div class="dcell name">Reach</div>
<div class="dcell divider"></div>
<div class="dcell value">
<input type="text" id="reach" name="reach" class="txt shotext" />
</div>
</div>
<? } // endif ?>
<div class="drow">
<div class="dcell name">Chain Stay</div>
<div class="dcell divider"></div>
<div class="dcell value">
<input type="text" id="chain_stay" name="chain_stay" class="txt shotext" /><br />
(Note that some custom tri bike makers have a standard chain
stay length, because these builders fair the rear wheel with the trailing
edge of the seat tube. Find your chosen bike maker's chain
stay value before you send him calcs generated here.)
</div>
</div>
<div class="drow">
<div class="dcell name">Seat Angle</div>
<div class="dcell divider"></div>
<div class="dcell value">
<input type="text" id="seat_angle" name="seat_angle" class="txt shotext" />
</div>
</div>
<? if ($_GET['use'] != 'serotta') { ?>
<div class="drow">
<div class="dcell name">Head Angle</div>
<div class="dcell divider"></div>
<div class="dcell value">
<input type="text" id="head_angle" name="head_angle" class="txt shotext" />
</div>
</div>
<? } // endif ?>
<div class="drow">
<div class="dcell name">Fork Offset</div>
<div class="dcell divider"></div>
<div class="dcell value">
<input type="text" id="fork_offset" name="fork_offset" class="txt shotext" />
</div>
</div>
<div class="drow">
<div class="dcell name">Fork Length</div>
<div class="dcell divider"></div>
<div class="dcell value">
<input type="text" id="fork_length" name="fork_length" class="txt shotext" />
</div>
</div>
<div class="drow">
<div class="dcell name"></div>
<div class="dcell divider"></div>
<div class="dcell value">
</div>
</div>
<div class="drow">
<div class="dcell name">HS Lower Stack</div>
<div class="dcell divider"></div>
<div class="dcell value">
<input type="text" id="hs_lower_stack" name="hs_lower_stack" class="txt shotext" /><br />
(1.5mm is a typical value for integrated headsets; you'll want to change this if your custom builder builds with external headsets, which is frequently the case. The oft-used Chris King headset has a lower stack of 13.7mm.)
</div>
</div>
<div class="drow">
<div class="dcell name">BB Drop</div>
<div class="dcell divider"></div>
<div class="dcell value">
<input type="text" id="bb_drop" name="bb_drop" class="txt shotext" />
</div>
</div>
<div class="drow">
<div class="dcell name">Rear Wheel</div>
<div class="dcell divider"></div>
<div class="dcell value">
<input type="text" id="rear_wheel" name="rear_wheel" class="txt shotext" />
</div>
</div>
<div class="drow">
<div class="dcell name">Wheel Size</div>
<div class="dcell divider"></div>
<div class="dcell value">
<input type="radio" id="wheel_size" name="wheel_size" checked onclick="set700Defaults();" value="700" /> 700C (Note: Changing this will reset certain values) </br>
<input type="radio" id="wheel_size" name="wheel_size" onclick="set650Defaults();" value="650" /> 650C
</div>
</div>
<div class="drow">
<div class="dcell name">Morphology</div>
<div class="dcell divider"></div>
<div class="dcell value">
<input type="radio" id="morphology" name="morphology" checked onclick="setStandardLeggedDefaultValues();" /> Standard (Note: Changing this will reset certain values)<br />
<input type="radio" id="morphology" name="morphology" onclick="setLongLeggedDefaultValues();" /> Long Legged
</div>
</div>
<div class="drow">
<div class="dcell name"></div>
<div class="dcell divider"></div>
<div class="dcell value">
<input type="checkbox" name="terms"> Agree to Terms
</div>
</div>
<div class="drow actions">
<div class="dcell name"></div>
<div class="dcell divider"></div>
<div class="dcell value">
<input type="button" name="calculateButton" value="Calculate" onclick="checkAgreeToTerms();" class="btn"/>
<input type="button" name="allDefaultButton" value="Reset all Defaults" onclick="setAllDefaults();" class="btn" />
</div>
</div>
</div>
</form>
<p>The calculator above is designed to help fitters trained in the F.I.S.T. tri
bike fit protocol to generate geometries for custom triathlon bikes. Note
that the inputs required to use this calculator include "stack" and "reach."
These values are described at length in our <a href="/Bike_Fit/The_F.I.S.T._Method_for_fitting_triathletes_to_their_bikes_16.html ">tri bike fit articles</a> on Slowtwitch.com.
</p>
<p>
The F.I.S.T. fitting protocol is a two-step process: First, the fitter
finds the rider's "fit coordinates," aka his "points in space." The second
part of the protocol focuses on finding the right production bike to match
those fit coordinates or, in this case, generating a custom geometry that
matches the fit coordinates. But, know this: It is remarkably easy to
calculate a "bad" custom geometry for a rider. The culprit is most often a
badly executed "Part I" of this protocol, that is, the fitter executed a
poor fit session. If this happens, the calculator below will faithfully
generate the geometry for a bad bike to perfectly match the bad fit.
Forewarned is forearmed.
</p>
<div class="advert float-right">
<? include($common_path . "/ads/ad_300x250_roadblocks.html"); ?>
</div>
<p>
Even if the fit is performed correctly, pitfalls loom. You must have the
tools to accurately find the stack and reach of the bike that fits under the
rider. The fitter is required to account for the stem length, stem pitch,
height of the stem clamp, headset upper stack, spacers under the stem if
any, and of course the choice of aerobar. He then must have an accurate way
of generating the stack and reach measures, using either a fit bike (best is
the bike made by Exit Cycling) that accurately generates these values
(taking into consideration <a href="/Bike_Fit/Fudging_for_negative_reach_123.html">negative reach</a> if applicable), or he must use an external tool, such
as Serotta's X/Y tool.
</p><p>
Anyone who uses this calculator can change any of the defaults below.
Toggling from 700c to 650c, or from standard to long-legged morphology, will
change the defaults, but you can still override our defaults and insert your
own values. There are explanatory notes below, and you are encouraged to
heed them.
</p><p>
<h3>OTHER NOTES</h3>
This calculator "refuses" to return geometry for bikes with
front/center values less than 560mm on a 700c bike and 525mm on a 650c bike.
This, because of shoe overlap. Some bike makers think these minimum values
should be even higher, by 5mm or 10mm. If the calculator displays this
error message, you'll need to add reach; or you'll need to shallow the head
angle and add fork offset; or both.
</p><p>
All bike makers, custom makers included, feature a minimum head tube length
for the bikes they can build. Find this value out, from your chosen custom
builder(s), because this calculator doesn't know what those minimum values
are for each builder. Keep in mind that if your custom builder builds with
external headsets, you must change the default lower headset stack in the
calculator, and you must account for the potentially significant upper
stack.
</p><p>
Morphologies: The calculator generates a geometry for long-legged,
short-torsoed riders by employing two tactical changes, designed to grant
the rider a lower center of mass, and a longer base of support for his
otherwise high center of mass. When you select "Long Legged" the calculator
drops the bottom bracket 10 extra millimeters below the bike's centerline;
and it also shallows the head angle one degree, and adds 6mm of fork offset
in order to keep the trail a constant value (our default settings generate a
trail of about 61mm, more or less). Of course, you can override these
defaults, and if your rider wishes (let us say) a higher bottom bracket
notwithstanding his high center of mass, so be it. Just change the default.
</p><p>
Yes, lengthening the front/center of the bike while keeping the cockpit
distance and trail constant can be achieved through shallowing the head
angle while adding to the fork offset. The calculator will employ this
tactic when you choose the long legged morphology option. This may result
in a fork with an offset greater than 45mm. Not many fork manufacturers
make forks with offsets greater than 45mm, so you'll want to check
availability before you build or cause to have built a bike requiring this
fork offset.
</p><p>
<h3>TERMS OF USE</h3>
<a name="terms"></a>
This calculator consists of a set of trigonometric and geometric equations.
It solves math equations. That's all it does. There are no warranties
expressed or implied that these geometries cause a bike to be safe, or
comfortable, or powerful, or aerodynamic, or even be ridden; or indeed can
even be built. Should you build or cause to build a bike based on
geometries calculated by this generator, you do so at your own risk. You
agree to hold harmless Slowtwitch.com, its owners, employees and contractors
against all claims arising out of your use of this calculator. You agree to
assume all risk and liability associated with using this calculator. You
agree that the final determination of an appropriate geometry rests with you
and/or any customer for whom you may be building this bike, or causing it to
be built, and with the company building the bike.
</p>
</div><!-- end col-2/3 -->
</div><!-- end grid -->
</div><!-- end content -->
</section>
</div><!-- end contentwrapper -->
</div> <!-- end main -->
<? include($common_path . "/templates/include_footer.php") ?>
</div> <!-- container -->
</body>
<? include($common_path . "/templates/include_global_js.php") ?>
</html>