Advertisement
Guest User

Paracord Bullwhip Calculator

a guest
Feb 8th, 2016
828
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.76 KB | None | 0 0
  1. <html>
  2. <head>
  3. <title>Paracord Whip Taper Worksheet</title>
  4. <style type="text/css">
  5. table,
  6. table td
  7. {
  8. border:1px solid black;
  9. }
  10. table tr input
  11. {
  12. width:80px;
  13. }
  14. input.calculated,
  15. .calculated input
  16. {
  17. color:red;
  18. }
  19. body
  20. {
  21. background-color:#808080;
  22. }
  23. </style>
  24. <script type="text/javascript">
  25. function calculate()
  26. {
  27. var handle = Math.round(Number(calculator.final_handle.value) * 10) / 10;
  28. var untapered = Math.round(Number(calculator.final_untapered.value) * 10) / 10;
  29. var taper = Math.round(Number(calculator.final_taper.value) * 10) / 10;
  30. var fall = Math.round(Number(calculator.final_fall.value) * 10) / 10;
  31. var cracker = Math.round(Number(calculator.final_cracker.value) * 10) / 10;
  32.  
  33. calculator.final_total.value = handle + untapered + taper + fall + cracker;
  34.  
  35. var taper_section = taper / 11;
  36.  
  37. // Total lengths
  38. calculator.total_chain_3.value = untapered + Math.round(1 * taper_section * 10) / 10;
  39. calculator.total_chain_2.value = untapered + Math.round(4 * taper_section * 10) / 10;
  40. calculator.total_chain_1.value = untapered + Math.round(7 * taper_section * 10) / 10;
  41.  
  42. calculator.total_belly_4.value = handle + untapered + Math.round(1 * taper_section * 10) / 10;
  43. calculator.total_belly_3.value = handle + untapered + Math.round(4 * taper_section * 10) / 10;
  44. calculator.total_belly_2.value = handle + untapered + Math.round(7 * taper_section * 10) / 10;
  45. calculator.total_belly_1.value = handle + untapered + Math.round(11 * taper_section * 10) / 10 + fall;
  46.  
  47. calculator.total_inner_8.value = handle + untapered + Math.round(2 * taper_section * 10) / 10;
  48. calculator.total_inner_6.value = handle + untapered + Math.round(6 * taper_section * 10) / 10;
  49. calculator.total_inner_4.value = handle + untapered + Math.round(9 * taper_section * 10) / 10;
  50.  
  51. calculator.total_outer_12.value = handle + untapered + Math.round(3 * taper_section * 10) / 10;
  52. calculator.total_outer_10.value = handle + untapered + Math.round(5 * taper_section * 10) / 10;
  53. calculator.total_outer_8.value = handle + untapered + Math.round(8 * taper_section * 10) / 10;
  54. calculator.total_outer_6.value = handle + untapered + Math.round(10 * taper_section * 10) / 10;
  55. calculator.total_outer_4.value = handle + untapered + Math.round(11 * taper_section * 10) / 10;
  56.  
  57. // Fudged lengths
  58. var fudge1 = 12;
  59. var fudge2 = 20;
  60.  
  61. calculator.fudged_chain_3.value = Math.round(calculator.total_chain_3.value * fudge1) / 10;
  62. calculator.fudged_chain_2.value = Math.round(calculator.total_chain_2.value * fudge1) / 10;
  63. calculator.fudged_chain_1.value = Math.round(calculator.total_chain_1.value * fudge1) / 10;
  64.  
  65. calculator.fudged_belly_4.value = Math.round(calculator.total_belly_4.value * fudge1) / 10;
  66. calculator.fudged_belly_3.value = Math.round(calculator.total_belly_3.value * fudge1) / 10;
  67. calculator.fudged_belly_2.value = Math.round(calculator.total_belly_2.value * fudge1) / 10;
  68. calculator.fudged_belly_1.value = Math.round(calculator.total_belly_1.value * fudge1) / 10;
  69.  
  70. calculator.fudged_inner_8.value = Math.round(calculator.total_inner_8.value * fudge2) / 10;
  71. calculator.fudged_inner_6.value = Math.round(calculator.total_inner_6.value * fudge2) / 10;
  72. calculator.fudged_inner_4.value = Math.round(calculator.total_inner_4.value * fudge2) / 10;
  73.  
  74. calculator.fudged_outer_12.value = Math.round(calculator.total_outer_12.value * fudge2) / 10;
  75. calculator.fudged_outer_10.value = Math.round(calculator.total_outer_10.value * fudge2) / 10;
  76. calculator.fudged_outer_8.value = Math.round(calculator.total_outer_8.value * fudge2) / 10;
  77. calculator.fudged_outer_6.value = Math.round(calculator.total_outer_6.value * fudge2) / 10;
  78. calculator.fudged_outer_4.value = Math.round(calculator.total_outer_4.value * fudge2) / 10;
  79.  
  80. // Lengths to cut
  81. calculator.cut_chain_3.value = calculator.fudged_chain_3.value;
  82. calculator.cut_chain_2.value = calculator.fudged_chain_2.value;
  83. calculator.cut_chain_1.value = calculator.fudged_chain_1.value;
  84.  
  85. calculator.cut_belly_4.value = calculator.fudged_belly_4.value;
  86. calculator.cut_belly_3.value = calculator.fudged_belly_3.value;
  87. calculator.cut_belly_2.value = calculator.fudged_belly_2.value;
  88. calculator.cut_belly_1.value = calculator.fudged_belly_1.value;
  89.  
  90. calculator.cut_inner_8.value = calculator.fudged_inner_8.value * 2;
  91. calculator.cut_inner_6.value = calculator.fudged_inner_6.value * 2;
  92. calculator.cut_inner_4.value = calculator.fudged_inner_4.value * 2;
  93.  
  94. calculator.cut_outer_12.value = calculator.fudged_outer_12.value * 2;
  95. calculator.cut_outer_10.value = calculator.fudged_outer_10.value * 2;
  96. calculator.cut_outer_8.value = calculator.fudged_outer_8.value * 2;
  97. calculator.cut_outer_6.value = calculator.fudged_outer_6.value * 2;
  98. calculator.cut_outer_4.value = calculator.fudged_outer_4.value * 2;
  99. }
  100. </script>
  101. </head>
  102. <body onload="calculate()">
  103. <form name="calculator">
  104. <h1>For a 12-strand paracord bullwhip of 3 layers:
  105. <ul>
  106. <li>4-strand belly (shortest 3 with strands removed and lamp chain instead. Longest with strands intact)</li>
  107. <li>8-strand inner plait (strands removed)</li>
  108. <li>12-strand outer plait (strands removed)</li>
  109. </ul>
  110. </h1>
  111. <br/>
  112. Basically we're working backwards here. We decide the lengths of each section of the whip and derive the rest.
  113. <br/>
  114. <table>
  115. <th>
  116. <td colspan="5">Overall length of sections after completion</td>
  117. </th>
  118. <tr>
  119. <td/>
  120. <td>Handle</td>
  121. <td>Untapered region</td>
  122. <td>Tapered region</td>
  123. <td>Fall</td>
  124. <td>Cracker/Popper</td>
  125. </tr>
  126. <tr class="input">
  127. <td/>
  128. <td><input type="text" name="final_handle" onblur="calculate()" value="7" /></td>
  129. <td><input type="text" name="final_untapered" onblur="calculate()" value="7" /></td>
  130. <td><input type="text" name="final_taper" onblur="calculate()" value="88"/></td>
  131. <td><input type="text" name="final_fall" onblur="calculate()" value="12"/></td>
  132. <td><input type="text" name="final_cracker" onblur="calculate()" value="6" /></td>
  133. </tr>
  134. <tr>
  135. <td>Total</td>
  136. <td colspan="5"><input type="text" name="final_total" value="120" class="calculated"/></td>
  137. </tr>
  138. </table>
  139. <input type="button" onclick="calculate()" value="Calculate"/>
  140. <br/>
  141. <br/>
  142. <table class="calculated">
  143. <th>
  144. <td colspan="15">Final Length of whip sections </td>
  145. </th>
  146. <tr>
  147. <td/>
  148. <td>Handle</td>
  149. <td>Untapered region</td>
  150. <td colspan="11">Tapered region</td>
  151. <td>Fall</td>
  152. <td>Cracker/Popper</td>
  153. </tr>
  154. <!-- Chain (final length) -->
  155. <tr>
  156. <td colspan="16">Chain</td>
  157. </tr>
  158. <tr>
  159. <td>3 Strands</td>
  160. <td/>
  161. <td colspan="2"><input type="text" name="total_chain_3" value="15" /></td>
  162. </tr>
  163. <tr>
  164. <td>2 Strands</td>
  165. <td/>
  166. <td colspan="5"><input type="text" name="total_chain_2" value="39" /></td>
  167. </tr>
  168. <tr>
  169. <td>1 Strands</td>
  170. <td/>
  171. <td colspan="8"><input type="text" name="total_chain_1" value="63" /></td>
  172. </tr>
  173. <!-- Belly (final length) -->
  174. <tr>
  175. <td colspan="16">Belly</td>
  176. </tr>
  177. <tr>
  178. <td>4 Strands</td>
  179. <td colspan="3"><input type="text" name="total_belly_4" value="22" /></td>
  180. </tr>
  181. <tr>
  182. <td>3 Strands</td>
  183. <td colspan="6"><input type="text" name="total_belly_3" value="46" /></td>
  184. </tr>
  185. <tr>
  186. <td>2 Strands</td>
  187. <td colspan="9"><input type="text" name="total_belly_2" value="70" /></td>
  188. </tr>
  189. <tr>
  190. <td>1 Strand</td>
  191. <td colspan="14"><input type="text" name="total_belly_1" value="114" /></td>
  192. </tr>
  193. <!-- Inner Plait (final length) -->
  194. <tr>
  195. <td colspan="16">Inner Plait</td>
  196. </tr>
  197. <tr>
  198. <td>8 Strands</td>
  199. <td colspan="4"><input type="text" name="total_inner_8" value="30" /></td>
  200. </tr>
  201. <tr>
  202. <td>6 Strands</td>
  203. <td colspan="8"><input type="text" name="total_inner_6" value="62" /></td>
  204. </tr>
  205. <tr>
  206. <td>4 Strands</td>
  207. <td colspan="11"><input type="text" name="total_inner_4" value="86" /></td>
  208. </tr>
  209. <!-- Outer Plait (final length) -->
  210. <tr>
  211. <td colspan="16">Outer Plait</td>
  212. </tr>
  213. <tr>
  214. <td>12 Strands</td>
  215. <td colspan="5"><input type="text" name="total_outer_12" value="38" /></td>
  216. </tr>
  217. <tr>
  218. <td>10 Strands</td>
  219. <td colspan="7"><input type="text" name="total_outer_10" value="54" /></td>
  220. </tr>
  221. <tr>
  222. <td>8 Strands</td>
  223. <td colspan="10"><input type="text" name="total_outer_8" value="78" /></td>
  224. </tr>
  225. <tr>
  226. <td>6 Strands</td>
  227. <td colspan="12"><input type="text" name="total_outer_6" value="94" /></td>
  228. </tr>
  229. <tr>
  230. <td>4 Strands</td>
  231. <td colspan="13"><input type="text" name="total_outer_4" value="102" /></td>
  232. </tr>
  233. </table>
  234. <br/>
  235. <table class="calculated">
  236. <th>
  237. <td colspan="15">Final Length of whip sections with "Fudge Factor"</td>
  238. </th>
  239. <tr>
  240. <td/>
  241. <td>Handle</td>
  242. <td>Untapered region</td>
  243. <td colspan="11">Tapered region</td>
  244. <td>Fall</td>
  245. <td>Cracker/Popper</td>
  246. </tr>
  247. <!-- Chain (final with fudge) -->
  248. <tr>
  249. <td colspan="16">Chain (fudge factor = 1.2)</td>
  250. </tr>
  251. <tr>
  252. <td>3 Strands</td>
  253. <td/>
  254. <td colspan="2"><input type="text" name="fudged_chain_3" value="18" /></td>
  255. </tr>
  256. <tr>
  257. <td>2 Strands</td>
  258. <td/>
  259. <td colspan="5"><input type="text" name="fudged_chain_2" value="46.8" /></td>
  260. </tr>
  261. <tr>
  262. <td>1 Strands</td>
  263. <td/>
  264. <td colspan="8"><input type="text" name="fudged_chain_1" value="75.6" /></td>
  265. </tr>
  266. <!-- Belly (final with fudge) -->
  267. <tr>
  268. <td colspan="16">Belly (fudge factor = 1.2)</td>
  269. </tr>
  270. <tr>
  271. <td>4 Strands</td>
  272. <td colspan="3"><input type="text" name="fudged_belly_4" value="26.4" /></td>
  273. </tr>
  274. <tr>
  275. <td>3 Strands</td>
  276. <td colspan="6"><input type="text" name="fudged_belly_3" value="55.2" /></td>
  277. </tr>
  278. <tr>
  279. <td>2 Strands</td>
  280. <td colspan="9"><input type="text" name="fudged_belly_2" value="84" /></td>
  281. </tr>
  282. <tr>
  283. <td>1 Strand</td>
  284. <td colspan="14"><input type="text" name="fudged_belly_1" value="136.8" /></td>
  285. </tr>
  286. <!-- Inner Plait (final with fudge) -->
  287. <tr>
  288. <td colspan="16">Inner Plait (fudge factor = 2)</td>
  289. </tr>
  290. <tr>
  291. <td>8 Strands</td>
  292. <td colspan="4"><input type="text" name="fudged_inner_8" value="60" /></td>
  293. </tr>
  294. <tr>
  295. <td>6 Strands</td>
  296. <td colspan="8"><input type="text" name="fudged_inner_6" value="124" /></td>
  297. </tr>
  298. <tr>
  299. <td>4 Strands</td>
  300. <td colspan="11"><input type="text" name="fudged_inner_4" value="172" /></td>
  301. </tr>
  302. <!-- Outer Plait (final with fudge) -->
  303. <tr>
  304. <td colspan="16">Outer Plait (fudge factor = 2)</td>
  305. </tr>
  306. <tr>
  307. <td>12 Strands</td>
  308. <td colspan="5"><input type="text" name="fudged_outer_12" value="76" /></td>
  309. </tr>
  310. <tr>
  311. <td>10 Strands</td>
  312. <td colspan="7"><input type="text" name="fudged_outer_10" value="108" /></td>
  313. </tr>
  314. <tr>
  315. <td>8 Strands</td>
  316. <td colspan="10"><input type="text" name="fudged_outer_8" value="156" /></td>
  317. </tr>
  318. <tr>
  319. <td>6 Strands</td>
  320. <td colspan="12"><input type="text" name="fudged_outer_6" value="188" /></td>
  321. </tr>
  322. <tr>
  323. <td>4 Strands</td>
  324. <td colspan="13"><input type="text" name="fudged_outer_4" value="204" /></td>
  325. </tr>
  326. </table>
  327. <br/>
  328. <table class="calculated">
  329. <th>
  330. <td colspan="15">Cord lengths you need to cut (it might a good idea to cut an extra foot or so for the plait layers)</td>
  331. </th>
  332. <tr>
  333. <td/>
  334. <td>Handle</td>
  335. <td>Untapered region</td>
  336. <td colspan="11">Tapered region</td>
  337. <td>Fall</td>
  338. <td>Cracker/Popper</td>
  339. </tr>
  340. <!-- Chain (length to cut) -->
  341. <tr>
  342. <td colspan="16">Chain (fudge factor = 1.2)</td>
  343. </tr>
  344. <tr>
  345. <td>3 Strands</td>
  346. <td/>
  347. <td colspan="2"><input type="text" name="cut_chain_3" value="18" /></td>
  348. </tr>
  349. <tr>
  350. <td>2 Strands</td>
  351. <td/>
  352. <td colspan="5"><input type="text" name="cut_chain_2" value="46.8" /></td>
  353. </tr>
  354. <tr>
  355. <td>1 Strands</td>
  356. <td/>
  357. <td colspan="8"><input type="text" name="cut_chain_1" value="75.6" /></td>
  358. </tr>
  359. <!-- Belly (cord to cut) -->
  360. <tr>
  361. <td colspan="16">Belly (fudge factor = 1.2)</td>
  362. </tr>
  363. <tr>
  364. <td>4 Strands</td>
  365. <td colspan="3"><input type="text" name="cut_belly_4" value="26.4" /></td>
  366. </tr>
  367. <tr>
  368. <td>3 Strands</td>
  369. <td colspan="6"><input type="text" name="cut_belly_3" value="55.2" /></td>
  370. </tr>
  371. <tr>
  372. <td>2 Strands</td>
  373. <td colspan="9"><input type="text" name="cut_belly_2" value="84" /></td>
  374. </tr>
  375. <tr>
  376. <td>1 Strand</td>
  377. <td colspan="14"><input type="text" name="cut_belly_1" value="136.8" /></td>
  378. </tr>
  379. <!-- Inner Plait (cord to cut) -->
  380. <tr>
  381. <td colspan="16">Inner Plait (fudge factor = 2)</td>
  382. </tr>
  383. <tr>
  384. <td>8 Strands</td>
  385. <td colspan="4"><input type="text" name="cut_inner_8" value="120" /></td>
  386. </tr>
  387. <tr>
  388. <td>6 Strands</td>
  389. <td colspan="8"><input type="text" name="cut_inner_6" value="248" /></td>
  390. </tr>
  391. <tr>
  392. <td>4 Strands (cut 2 of these)</td>
  393. <td colspan="11"><input type="text" name="cut_inner_4" value="344" /></td>
  394. </tr>
  395. <!-- Outer Plait (cord to cut) -->
  396. <tr>
  397. <td colspan="16">Outer Plait (fudge factor = 2)</td>
  398. </tr>
  399. <tr>
  400. <td>12 Strands</td>
  401. <td colspan="5"><input type="text" name="cut_outer_12" value="152" /></td>
  402. </tr>
  403. <tr>
  404. <td>10 Strands</td>
  405. <td colspan="7"><input type="text" name="cut_outer_10" value="216" /></td>
  406. </tr>
  407. <tr>
  408. <td>8 Strands</td>
  409. <td colspan="10"><input type="text" name="cut_outer_8" value="312" /></td>
  410. </tr>
  411. <tr>
  412. <td>6 Strands</td>
  413. <td colspan="12"><input type="text" name="cut_outer_6" value="376" /></td>
  414. </tr>
  415. <tr>
  416. <td>4 Strands (cut 2 of these)</td>
  417. <td colspan="13"><input type="text" name="cut_outer_4" value="408" /></td>
  418. </tr>
  419. </table>
  420. </form>
  421. </body>
  422. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement