]> git.gag.com Git - debian/openrocket/commitdiff
First cut at making component presets work for nose cones.
authorkruland2607 <kruland2607@180e2498-e6e9-4542-8430-84ac67f01cd8>
Thu, 12 Apr 2012 05:55:07 +0000 (05:55 +0000)
committerkruland2607 <kruland2607@180e2498-e6e9-4542-8430-84ac67f01cd8>
Thu, 12 Apr 2012 05:55:07 +0000 (05:55 +0000)
git-svn-id: https://openrocket.svn.sourceforge.net/svnroot/openrocket/trunk@542 180e2498-e6e9-4542-8430-84ac67f01cd8

core/resources/datafiles/ncpresets.csv [new file with mode: 0644]
core/resources/l10n/messages.properties
core/src/net/sf/openrocket/file/preset/ColumnDefinition.java
core/src/net/sf/openrocket/gui/configdialog/NoseConeConfig.java
core/src/net/sf/openrocket/gui/dialogs/preset/ComponentPresetChooserDialog.java
core/src/net/sf/openrocket/preset/ComponentPreset.java
core/src/net/sf/openrocket/preset/TypedKey.java
core/src/net/sf/openrocket/rocketcomponent/BodyTube.java
core/src/net/sf/openrocket/rocketcomponent/NoseCone.java
core/src/net/sf/openrocket/rocketcomponent/RocketComponent.java
core/src/net/sf/openrocket/rocketcomponent/SymmetricComponent.java

diff --git a/core/resources/datafiles/ncpresets.csv b/core/resources/datafiles/ncpresets.csv
new file mode 100644 (file)
index 0000000..8dad15f
--- /dev/null
@@ -0,0 +1,276 @@
+Manufacturer,PartNo,Description,Type,Length,OuterDiameter,ShoulderLength,ShoulderDiameter,Filled,Shape,Material,CGOverride,Mass\r
+Semroc,BC-08542,Ogive,NOSE_CONE,0.10668,0.023876,0.0127,0.02159,1,ogive,Balsa,0.0847598,0.004252428\r
+Semroc,BC-1016,Ogive,NOSE_CONE,0.04064,0.026416,0.0127,0.0254,1,ogive,Balsa,0.0378714,0.003401943\r
+Semroc,BC-1019,Ogive,NOSE_CONE,0.04826,0.026416,0.0127,0.0254,1,ogive,Balsa,0.0432816,0.003685438\r
+Semroc,BC-1020E,Elliptical,NOSE_CONE,0.0508,0.026416,0.0127,0.0254,1,elliptical,Balsa,0.045085,0.003685438\r
+Semroc,BC-1022,Bezier,NOSE_CONE,0.05588,0.026416,0.0127,0.0254,1,elliptical,Balsa,0.0486918,0.004252428\r
+Semroc,BC-1024,Ogive,NOSE_CONE,0.06096,0.026416,0.0127,0.0254,1,ogive,Balsa,0.0522986,0.004252428\r
+Semroc,BC-1031,Bezier,NOSE_CONE,0.07874,0.026416,0.0127,0.0254,1,elliptical,Balsa,0.0649224,0.004252428\r
+Semroc,BC-1032,Ogive,NOSE_CONE,0.08128,0.026416,0.0127,0.0254,1,ogive,Balsa,0.0667258,0.004252428\r
+Semroc,BC-1037,Ogive,NOSE_CONE,0.09398,0.026416,0.0127,0.0254,1,ogive,Balsa,0.0757428,0.004535924\r
+Semroc,BC-1039,Ogive,NOSE_CONE,0.09906,0.026416,0.0127,0.0254,1,ogive,Balsa,0.0793496,0.004819419\r
+Semroc,BC-1041,Conical,NOSE_CONE,0.10414,0.026416,0.0127,0.0254,1,cone,Balsa,0.0829564,0.005102914\r
+Semroc,BC-1041G,Bezier,NOSE_CONE,0.10414,0.026416,0.0127,0.0254,1,elliptical,Balsa,0.0829564,0.005102914\r
+Semroc,BC-1041P,Bezier,NOSE_CONE,0.10414,0.026416,0.0127,0.0254,1,elliptical,Balsa,0.0829564,0.005102914\r
+Semroc,BC-1045,Ogive,NOSE_CONE,0.1143,0.026416,0.0127,0.0254,1,ogive,Balsa,0.09017,0.005386409\r
+Semroc,BC-1045P,Rounded Ogive,NOSE_CONE,0.1143,0.026416,0.0127,0.0254,1,ogive,Balsa,0.09017,0.005386409\r
+Semroc,BC-1048,Rounded Ogive,NOSE_CONE,0.12192,0.026416,0.0127,0.0254,1,ogive,Balsa,0.0955802,0.005386409\r
+Semroc,BC-1050,Bezier,NOSE_CONE,0.127,0.026416,0.0127,0.0254,1,elliptical,Balsa,0.099187,0.005669905\r
+Semroc,BC-1051,Conical,NOSE_CONE,0.12954,0.026416,0.0127,0.0254,1,cone,Balsa,0.1009904,0.005669905\r
+Semroc,BC-1052,Ogive,NOSE_CONE,0.13208,0.026416,0.0127,0.0254,1,ogive,Balsa,0.1027938,0.006236895\r
+Semroc,BC-1135,Rounded Ogive,NOSE_CONE,0.0889,0.029718,0.0127,0.028702,1,ogive,Balsa,0.072136,0.004252428\r
+Semroc,BC-11518,Elliptical,NOSE_CONE,0.0889,0.030988,0.02032,0.028956,1,elliptical,Balsa,0.0775462,0.003685438\r
+Semroc,BC-11524,Bezier,NOSE_CONE,0.06096,0.030988,0.02032,0.028956,1,elliptical,Balsa,0.0577088,0.004252428\r
+Semroc,BC-11535,Bezier,NOSE_CONE,0.0889,0.030988,0.02032,0.028956,1,elliptical,Balsa,0.0775462,0.005669905\r
+Semroc,BC-11544,Ogive,NOSE_CONE,0.11176,0.030988,0.02032,0.028956,1,ogive,Balsa,0.0937768,0.006236895\r
+Semroc,BC-11546,Ogive,NOSE_CONE,0.11684,0.030988,0.02032,0.028956,1,ogive,Balsa,0.0973836,0.00652039\r
+Semroc,BC-11549,Ogive,NOSE_CONE,0.12446,0.030988,0.02032,0.028956,1,ogive,Balsa,0.1027938,0.007087381\r
+Semroc,BC-11554,Ogive,NOSE_CONE,0.13716,0.030988,0.02032,0.028956,1,ogive,Balsa,0.1118108,0.007654371\r
+Semroc,BC-11560,Ogive,NOSE_CONE,0.1524,0.030988,0.02032,0.028956,1,ogive,Balsa,0.1226312,0.007937866\r
+Semroc,BC-12525,Ogive,NOSE_CONE,0.0635,0.034036,0.02032,0.03175,1,ogive,Balsa,0.0595122,0.004252428\r
+Semroc,BC-12536,Bezier,NOSE_CONE,0.09144,0.034036,0.02032,0.028956,1,elliptical,Balsa,0.0793496,0.0059534\r
+Semroc,BC-12545,Elliptical,NOSE_CONE,0.1143,0.034036,0.02032,0.028956,1,elliptical,Balsa,0.0955802,0.006803886\r
+Semroc,BC-12548,Ogive,NOSE_CONE,0.12192,0.034036,0.02032,0.028956,1,ogive,Balsa,0.1009904,0.007087381\r
+Semroc,BC-12555,Ogive,NOSE_CONE,0.1397,0.034036,0.02032,0.028956,1,ogive,Balsa,0.1136142,0.009638838\r
+Semroc,BC-12561,Ogive,NOSE_CONE,0.15494,0.034036,0.02032,0.028956,1,ogive,Balsa,0.1244346,0.010489324\r
+Semroc,BC-1319,Elliptical,NOSE_CONE,0.04826,0.034036,0.0127,0.03302,1,elliptical,Balsa,0.0432816,0.005102914\r
+Semroc,BC-1321,Bezier,NOSE_CONE,0.05334,0.034036,0.0127,0.03302,1,ogive,Balsa,0.0468884,0.005386409\r
+Semroc,BC-1327,Bezier,NOSE_CONE,0.06858,0.034036,0.0127,0.03302,1,ogive,Balsa,0.0577088,0.0059534\r
+Semroc,BC-1329,Rounded-Ogive,NOSE_CONE,0.07366,0.034036,0.0127,0.03302,1,ogive,Balsa,0.0613156,0.006803886\r
+Semroc,BC-1330,Ogive,NOSE_CONE,0.0762,0.034036,0.0127,0.03302,1,ogive,Balsa,0.063119,0.007087381\r
+Semroc,BC-1331,Elliptical,NOSE_CONE,0.07874,0.034036,0.0127,0.03302,1,elliptical,Balsa,0.0649224,0.007654371\r
+Semroc,BC-1336,Ogive,NOSE_CONE,0.09144,0.034036,0.0127,0.03302,1,ogive,Balsa,0.0739394,0.007937866\r
+Semroc,BC-1339,Rounded-Ogive,NOSE_CONE,0.09906,0.034036,0.0127,0.03302,1,ogive,Balsa,0.0793496,0.008504857\r
+Semroc,BC-1344,Ogive,NOSE_CONE,0.11176,0.034036,0.0127,0.03302,1,ogive,Balsa,0.0883666,0.009071847\r
+Semroc,BC-1345,Elliptical,NOSE_CONE,0.11176,0.034036,0.0127,0.03302,1,elliptical,Balsa,0.0883666,0.009071847\r
+Semroc,BC-1353,Secant Ogive,NOSE_CONE,0.136398,0.034036,0.0127,0.03302,1,ogive,Balsa,0.1058672,0.013891266\r
+Semroc,BC-1353F,Ogive,NOSE_CONE,0.13462,0.034036,0.0127,0.03302,1,ogive,Balsa,0.1045972,0.013324276\r
+Semroc,BC-1354,Ogive,NOSE_CONE,0.13716,0.034036,0.0127,0.03302,1,ogive,Balsa,0.1064006,0.015592238\r
+Semroc,BC-1354C,Parabolic,NOSE_CONE,0.13716,0.034036,0.0127,0.03302,1,parabolic,Balsa,0.1064006,0.016442723\r
+Semroc,BC-1364,Rounded-Ogive,NOSE_CONE,0.16256,0.034036,0.0127,0.03302,1,ogive,Balsa,0.1244346,0.017576704\r
+Semroc,BC-15044,Conical,NOSE_CONE,0.11176,0.040386,0.02032,0.0381,1,cone,Balsa,0.0937768,0.007087381\r
+Semroc,BC-15066,Ogive,NOSE_CONE,0.16764,0.040386,0.02032,0.0381,1,ogive,Balsa,0.1334516,0.009922333\r
+Semroc,BC-15070,Ogive,NOSE_CONE,0.1778,0.040386,0.02032,0.0381,1,ogive,Balsa,0.1406652,0.011056314\r
+Semroc,BC-15080,Ogive,NOSE_CONE,0.2032,0.040386,0.02032,0.0381,1,ogive,Balsa,0.1586992,0.012757285\r
+Semroc,BC-15081,Rounded Ogive,NOSE_CONE,0.20574,0.040386,0.02032,0.0381,1,elliptical,Balsa,0.1605026,0.012190295\r
+Semroc,BC-16100,Conical,NOSE_CONE,0.254,0.041656,0.0127,0.04064,1,cone,Balsa,0.189357,0.012927383\r
+Semroc,BC-1625,Elliptical,NOSE_CONE,0.0635,0.041656,0.0127,0.04064,1,elliptical,Balsa,0.054102,0.005669905\r
+Semroc,BC-1625P,Bezier,NOSE_CONE,0.0635,0.041656,0.0127,0.04064,1,ogive,Balsa,0.054102,0.005669905\r
+Semroc,BC-1631,Ogive,NOSE_CONE,0.07874,0.041656,0.0127,0.04064,1,ogive,Balsa,0.0649224,0.008504857\r
+Semroc,BC-1634,Rounded-Ogive,NOSE_CONE,0.08636,0.041656,0.0127,0.04064,1,elliptical,Balsa,0.0703326,0.008788352\r
+Semroc,BC-1636,Bezier,NOSE_CONE,0.09144,0.041656,0.0127,0.04064,1,ogive,Balsa,0.0739394,0.009922333\r
+Semroc,BC-1646,Ogive,NOSE_CONE,0.11684,0.041656,0.0127,0.04064,1,ogive,Balsa,0.0919734,0.011056314\r
+Semroc,BC-1647,Ogive,NOSE_CONE,0.11938,0.041656,0.0127,0.04064,1,ogive,Balsa,0.0937768,0.011339809\r
+Semroc,BC-1648,Ogive,NOSE_CONE,0.12192,0.041656,0.0127,0.04064,1,ogive,Balsa,0.0955802,0.011623304\r
+Semroc,BC-1650,Parabolic,NOSE_CONE,0.127,0.041656,0.0127,0.04064,1,parabolic,Balsa,0.099187,0.012190295\r
+Semroc,BC-1655,Ogive,NOSE_CONE,0.1397,0.041656,0.0127,0.04064,1,ogive,Balsa,0.108204,0.013040781\r
+Semroc,BC-1660,Ogive,NOSE_CONE,0.1524,0.041656,0.0127,0.04064,1,ogive,Balsa,0.117221,0.013607771\r
+Semroc,BC-1667,Parabolic,NOSE_CONE,0.17018,0.041656,0.0127,0.04064,1,parabolic,Balsa,0.1298448,0.014458257\r
+Semroc,BC-1672,Conical-Ogive,NOSE_CONE,0.18288,0.041656,0.0127,0.04064,1,ogive,Balsa,0.1388618,0.016442723\r
+Semroc,BC-1674,Ogive,NOSE_CONE,0.18796,0.041656,0.0127,0.04064,1,ogive,Balsa,0.1424686,0.017576704\r
+Semroc,BC-17535,Ogive,NOSE_CONE,0.0889,0.046736,0.02032,0.04445,1,ogive,Balsa,0.0775462,0.013607771\r
+Semroc,BC-17541,Ogive,NOSE_CONE,0.10414,0.046736,0.02032,0.04445,1,ogive,Balsa,0.0883666,0.015025247\r
+Semroc,BC-17560,Ogive,NOSE_CONE,0.1524,0.046736,0.02032,0.04445,1,ogive,Balsa,0.1226312,0.019561171\r
+Semroc,BC-17561,Elliptical,NOSE_CONE,0.15494,0.046736,0.02032,0.04445,1,elliptical,Balsa,0.1244346,0.020411657\r
+Semroc,BC-17567,Bezier,NOSE_CONE,0.17018,0.046736,0.02032,0.04445,1,elliptical,Balsa,0.135255,0.021545638\r
+Semroc,BC-17585,Ogive,NOSE_CONE,0.2159,0.046736,0.02032,0.04445,1,ogive,Balsa,0.1677162,0.026081561\r
+Semroc,BC-17590,Conical,NOSE_CONE,0.2286,0.046736,0.02032,0.04445,1,cone,Balsa,0.1767332,0.032034961\r
+Semroc,BC-17592,Ogive,NOSE_CONE,0.23368,0.046736,0.02032,0.04445,1,ogive,Balsa,0.18034,0.053580599\r
+Semroc,BC-1828,Elliptical,NOSE_CONE,0.07112,0.046736,0.01778,0.04572,1,elliptical,Balsa,0.063119,0.019844666\r
+Semroc,BC-1835,Elliptical,NOSE_CONE,0.0889,0.046736,0.01778,0.04572,1,elliptical,Balsa,0.0757428,0.028349523\r
+Semroc,BC-1837,Bezier,NOSE_CONE,0.09398,0.046736,0.01778,0.04572,1,elliptical,Balsa,0.0793496,0.028349523\r
+Semroc,BC-1842,Elliptical,NOSE_CONE,0.10668,0.046736,0.01778,0.04572,1,elliptical,Balsa,0.0883666,0.028349523\r
+Semroc,BC-1853,Ogive,NOSE_CONE,0.13462,0.046736,0.01778,0.04572,1,ogive,Balsa,0.108204,0.01842719\r
+Semroc,BC-1856,Ogive,NOSE_CONE,0.14224,0.046736,0.01778,0.04572,1,ogive,Balsa,0.1136142,0.031184475\r
+Semroc,BC-1861,Elliptical,NOSE_CONE,0.15494,0.046736,0.01778,0.04572,1,elliptical,Balsa,0.1226312,0.034019428\r
+Semroc,BC-1869,Ogive,NOSE_CONE,0.17526,0.046736,0.01778,0.04572,1,ogive,Balsa,0.1370584,0.034019428\r
+Semroc,BC-1869C,Conical,NOSE_CONE,0.17526,0.046736,0.01778,0.04572,1,cone,Balsa,0.1370584,0.034019428\r
+Semroc,BC-20045,Elliptical,NOSE_CONE,0.1143,0.051816,0.02032,0.0508,1,elliptical,Balsa,0.0955802,0.0178602\r
+Semroc,BC-20107,Conical,NOSE_CONE,0.27178,0.051816,0.01778,0.0508,1,cone,Balsa,0.2055876,0.050462151\r
+Semroc,BC-2025,Elliptical,NOSE_CONE,0.0635,0.051816,0.01778,0.0508,1,elliptical,Balsa,0.0577088,0.0119068\r
+Semroc,BC-2026,Bezier,NOSE_CONE,0.06604,0.051816,0.01778,0.0508,1,elliptical,Balsa,0.0595122,0.012190295\r
+Semroc,BC-2033,Elliptical,NOSE_CONE,0.08382,0.051816,0.01778,0.0508,1,elliptical,Balsa,0.072136,0.017293209\r
+Semroc,BC-2039,Bezier,NOSE_CONE,0.09906,0.051816,0.01778,0.0508,1,elliptical,Balsa,0.0829564,0.019561171\r
+Semroc,BC-2045,Ogive,NOSE_CONE,0.1143,0.051816,0.01778,0.0508,1,ogive,Balsa,0.0937768,0.043658266\r
+Semroc,BC-2050,Conical,NOSE_CONE,0.127,0.051816,0.01778,0.0508,1,cone,Balsa,0.1027938,0.038555352\r
+Semroc,BC-2057,Ogive,NOSE_CONE,0.14478,0.051816,0.01778,0.0508,1,ogive,Balsa,0.1154176,0.047627199\r
+Semroc,BC-2065,Ogive,NOSE_CONE,0.1651,0.051816,0.01778,0.0508,1,ogive,Balsa,0.1298448,0.050178656\r
+Semroc,BC-2080,Elliptical,NOSE_CONE,0.2032,0.051816,0.01778,0.0508,1,elliptical,Balsa,0.1568958,0.055848561\r
+Semroc,BC-225103,Fat Ogive,NOSE_CONE,0.26162,0.059436,0.02032,0.05715,1,ogive,Balsa,0.2001774,0.082213617\r
+Semroc,BC-22530,Bezier,NOSE_CONE,0.0762,0.059436,0.02032,0.05715,1,elliptical,Balsa,0.0685292,0.025514571\r
+Semroc,BC-22545,Elliptical,NOSE_CONE,0.1143,0.059436,0.02032,0.05715,1,elliptical,Balsa,0.0955802,0.029766999\r
+Semroc,BC-22563,Bezier,NOSE_CONE,0.16002,0.059436,0.02032,0.05715,1,elliptical,Balsa,0.1280414,0.041957294\r
+Semroc,BC-22567,Bezier,NOSE_CONE,0.17018,0.059436,0.02032,0.05715,1,elliptical,Balsa,0.135255,0.043941761\r
+Semroc,BC-22567E,Ogive,NOSE_CONE,0.17018,0.059436,0.02032,0.05715,1,ogive,Balsa,0.135255,0.04280778\r
+Semroc,BC-22569,Ogive,NOSE_CONE,0.17526,0.059436,0.02032,0.05715,1,ogive,Balsa,0.1388618,0.047343704\r
+Semroc,BC-22578,Elliptical,NOSE_CONE,0.19812,0.059436,0.02032,0.05715,1,elliptical,Balsa,0.1550924,0.051029142\r
+Semroc,BC-22579,Ogive,NOSE_CONE,0.20066,0.059436,0.02032,0.05715,1,ogive,Balsa,0.1568958,0.048194189\r
+Semroc,BC-22588,Elliptical,NOSE_CONE,0.22352,0.059436,0.02032,0.05715,1,elliptical,Balsa,0.1731264,0.062368951\r
+Semroc,BC-22595,Secant-Ogive,NOSE_CONE,0.2413,0.059436,0.02032,0.05715,1,Sears-haack,Balsa,0.1857502,0.070873808\r
+Semroc,BC-22597,Ogive,NOSE_CONE,0.24638,0.059436,0.02032,0.05715,1,ogive,Balsa,0.189357,0.07370876\r
+Semroc,BC-27540,Blunt Ogive,NOSE_CONE,0.1016,0.072136,0.02032,0.06985,1,elliptical,Balsa,0.0865632,0.034869913\r
+Semroc,BC-27554,Ogive,NOSE_CONE,0.13716,0.072136,0.02032,0.06985,1,ogive,Balsa,0.1118108,0.043941761\r
+Semroc,BC-27555,Bezier,NOSE_CONE,0.1397,0.072136,0.02032,0.06985,1,elliptical,Balsa,0.1136142,0.045642732\r
+Semroc,BC-505,Spherical,NOSE_CONE,0.0127,0.0137922,0.01016,0.013081,1,elliptical,Balsa,0.0162306,0.00056699\r
+Semroc,BC-508,Elliptical,NOSE_CONE,0.02032,0.0137922,0.01016,0.013081,1,elliptical,Balsa,0.0216408,0.00056699\r
+Semroc,BC-510,Conical,NOSE_CONE,0.0254,0.0137922,0.01016,0.013081,1,cone,Balsa,0.0252476,0.005669905\r
+Semroc,BC-510P,Elliptical,NOSE_CONE,0.0254,0.0137922,0.01016,0.013081,1,elliptical,Balsa,0.0252476,0.00056699\r
+Semroc,BC-512,Ogive,NOSE_CONE,0.03048,0.0137922,0.01016,0.013081,1,ogive,Balsa,0.0288544,0.00056699\r
+Semroc,BC-514,Ogive,NOSE_CONE,0.03556,0.0137922,0.01016,0.013081,1,ogive,Balsa,0.0324612,0.000850486\r
+Semroc,BC-515,Conical,NOSE_CONE,0.0381,0.0137922,0.01016,0.013081,1,cone,Balsa,0.0342646,0.000850486\r
+Semroc,BC-515E,Ogive,NOSE_CONE,0.0381,0.0137922,0.01016,0.013081,1,ogive,Balsa,0.0342646,0.000850486\r
+Semroc,BC-516,Conical,NOSE_CONE,0.04064,0.0137922,0.01016,0.013081,1,cone,Balsa,0.036068,0.000850486\r
+Semroc,BC-517,Ogive,NOSE_CONE,0.04318,0.0137922,0.01016,0.013081,1,ogive,Balsa,0.0378714,0.000850486\r
+Semroc,BC-518,Ogive,NOSE_CONE,0.04572,0.0137922,0.01016,0.013081,1,ogive,Balsa,0.0396748,0.000850486\r
+Semroc,BC-522,Elliptical,NOSE_CONE,0.05588,0.0137922,0.01016,0.013081,1,elliptical,Balsa,0.0468884,0.001133981\r
+Semroc,BC-522P,Ogive,NOSE_CONE,0.05588,0.0137922,0.01016,0.013081,1,ogive,Balsa,0.0468884,0.001133981\r
+Semroc,BC-523,Taper-Conical,NOSE_CONE,0.05842,0.0137922,0.01016,0.013081,1,Power-series,Balsa,0.0486918,0.001700971\r
+Semroc,BC-524,Ogive,NOSE_CONE,0.06096,0.0137922,0.01016,0.013081,1,ogive,Balsa,0.0504952,0.001133981\r
+Semroc,BC-526,Conical,NOSE_CONE,0.06604,0.0137922,0.01016,0.013081,1,cone,Balsa,0.054102,0.000850486\r
+Semroc,BC-528,Conical,NOSE_CONE,0.07112,0.0137922,0.01016,0.013081,1,cone,Balsa,0.0577088,0.000850486\r
+Semroc,BC-529,Ogive,NOSE_CONE,0.07366,0.0137922,0.01016,0.013081,1,ogive,Balsa,0.0595122,0.001133981\r
+Semroc,BC-708,Conical,NOSE_CONE,0.02032,0.0192786,0.0127,0.018161,1,cone,Balsa,0.0234442,0.005669905\r
+Semroc,BC-710,Conical,NOSE_CONE,0.0254,0.0192786,0.0127,0.018161,1,cone,Balsa,0.027051,0.000850486\r
+Semroc,BC-711,Conical,NOSE_CONE,0.02794,0.0192786,0.0127,0.018161,1,cone,Balsa,0.0288544,0.000850486\r
+Semroc,BC-714,Ogive,NOSE_CONE,0.03556,0.0192786,0.0127,0.018161,1,ogive,Balsa,0.0342646,0.001133981\r
+Semroc,BC-715,Rounded Ogive,NOSE_CONE,0.0381,0.0192786,0.0127,0.018161,1,elliptical,Balsa,0.036068,0.001133981\r
+Semroc,BC-716,Elliptical,NOSE_CONE,0.04064,0.0192786,0.0127,0.018161,1,elliptical,Balsa,0.0378714,0.001133981\r
+Semroc,BC-719,Ogive,NOSE_CONE,0.04826,0.0192786,0.0127,0.018161,1,ogive,Balsa,0.0432816,0.001133981\r
+Semroc,BC-720,Bezier,NOSE_CONE,0.0508,0.0192786,0.0127,0.018161,1,elliptical,Balsa,0.045085,0.001133981\r
+Semroc,BC-721,Ogive,NOSE_CONE,0.05334,0.0192786,0.0127,0.018161,1,ogive,Balsa,0.0468884,0.001133981\r
+Semroc,BC-722,Rounded Ogive,NOSE_CONE,0.05588,0.0192786,0.0127,0.018161,1,elliptical,Balsa,0.0486918,0.001133981\r
+Semroc,BC-723,Ogive,NOSE_CONE,0.05842,0.0192786,0.0127,0.018161,1,ogive,Balsa,0.0504952,0.001133981\r
+Semroc,BC-723P,Rounded Ogive,NOSE_CONE,0.05842,0.0192786,0.0127,0.018161,1,elliptical,Balsa,0.0504952,0.001417476\r
+Semroc,BC-727,Ogive,NOSE_CONE,0.06858,0.0192786,0.0127,0.018161,1,ogive,Balsa,0.0577088,0.001417476\r
+Semroc,BC-728,Conical,NOSE_CONE,0.07112,0.0192786,0.0127,0.018161,1,cone,Balsa,0.0595122,0.001417476\r
+Semroc,BC-728F,Elliptical,NOSE_CONE,0.07112,0.0192786,0.0127,0.018161,1,elliptical,Balsa,0.0595122,0.001417476\r
+Semroc,BC-730,Ogive,NOSE_CONE,0.0762,0.0192786,0.0127,0.018161,1,ogive,Balsa,0.063119,0.001700971\r
+Semroc,BC-730P,Rounded Ogive,NOSE_CONE,0.0762,0.0192786,0.0127,0.018161,1,elliptical,Balsa,0.063119,0.001700971\r
+Semroc,BC-731,Rounded Ogive,NOSE_CONE,0.07874,0.0192786,0.0127,0.018161,1,elliptical,Balsa,0.0649224,0.001700971\r
+Semroc,BC-731F,Ogive,NOSE_CONE,0.07874,0.0192786,0.0127,0.018161,1,ogive,Balsa,0.0649224,0.001700971\r
+Semroc,BC-733,Ogive,NOSE_CONE,0.08382,0.0192786,0.0127,0.018161,1,ogive,Balsa,0.0685292,0.001700971\r
+Semroc,BC-734P,Pointed Ogive,NOSE_CONE,0.08636,0.0192786,0.0127,0.018161,1,ogive,Balsa,0.0703326,0.001700971\r
+Semroc,BC-735,Ogive,NOSE_CONE,0.0889,0.0192786,0.0127,0.018161,1,ogive,Balsa,0.072136,0.001700971\r
+Semroc,BC-736,Conical,NOSE_CONE,0.09144,0.0192786,0.0127,0.018161,1,cone,Balsa,0.0739394,0.001700971\r
+Semroc,BC-737,Ogive,NOSE_CONE,0.09398,0.0192786,0.0127,0.018161,1,ogive,Balsa,0.0757428,0.001700971\r
+Semroc,BC-739,Conical,NOSE_CONE,0.09906,0.0192786,0.0127,0.018161,1,cone,Balsa,0.0793496,0.001700971\r
+Semroc,BC-739O,Ogive,NOSE_CONE,0.09906,0.0192786,0.0127,0.018161,1,ogive,Balsa,0.0793496,0.001984467\r
+Semroc,BC-744,Ogive,NOSE_CONE,0.11176,0.0192786,0.0127,0.018161,1,ogive,Balsa,0.0883666,0.001984467\r
+Semroc,BC-812,Conical,NOSE_CONE,0.03048,0.0230632,0.0127,0.021971,1,cone,Balsa,0.0306578,0.001133981\r
+Semroc,BC-813,Elliptical,NOSE_CONE,0.03302,0.0230632,0.0127,0.021971,1,elliptical,Balsa,0.0324612,0.001417476\r
+Semroc,BC-814,Elliptical,NOSE_CONE,0.03556,0.0230632,0.0127,0.021971,1,elliptical,Balsa,0.0342646,0.001984467\r
+Semroc,BC-815,Ogive,NOSE_CONE,0.0381,0.0230632,0.0127,0.021971,1,ogive,Balsa,0.036068,0.001984467\r
+Semroc,BC-817,Ogive,NOSE_CONE,0.04318,0.0230632,0.0127,0.021971,1,ogive,Balsa,0.0396748,0.002267962\r
+Semroc,BC-818,Bezier,NOSE_CONE,0.04572,0.0230632,0.0127,0.021971,1,elliptical,Balsa,0.0414782,0.002267962\r
+Semroc,BC-818L,Ogive,NOSE_CONE,0.04572,0.0230632,0.0127,0.021971,1,ogive,Balsa,0.0414782,0.002267962\r
+Semroc,BC-819,Ogive,NOSE_CONE,0.04826,0.0230632,0.0127,0.021971,1,ogive,Balsa,0.0432816,0.002267962\r
+Semroc,BC-820,Bezier,NOSE_CONE,0.0508,0.0230632,0.0127,0.021971,1,elliptical,Balsa,0.045085,0.002267962\r
+Semroc,BC-821,Elliptical,NOSE_CONE,0.05334,0.0230632,0.0127,0.021971,1,elliptical,Balsa,0.0468884,0.002551457\r
+Semroc,BC-823,Ogive,NOSE_CONE,0.05842,0.0230632,0.0127,0.021971,1,ogive,Balsa,0.0504952,0.002834952\r
+Semroc,BC-823E,Fat Ogive,NOSE_CONE,0.05842,0.0230632,0.0127,0.021971,1,elliptical,Balsa,0.0504952,0.002834952\r
+Semroc,BC-826,Rounded Ogive,NOSE_CONE,0.06604,0.0230632,0.0127,0.021971,1,elliptical,Balsa,0.0559054,0.003118448\r
+Semroc,BC-830,Ogive,NOSE_CONE,0.0762,0.0230632,0.0127,0.021971,1,ogive,Balsa,0.063119,0.003401943\r
+Semroc,BC-832,Bezier,NOSE_CONE,0.08128,0.0230632,0.0127,0.021971,1,elliptical,Balsa,0.0667258,0.003685438\r
+Semroc,BC-832C,Conical,NOSE_CONE,0.08128,0.0230632,0.0127,0.021971,1,cone,Balsa,0.0667258,0.003118448\r
+Semroc,BC-833,Elliptical,NOSE_CONE,0.08382,0.0230632,0.0127,0.021971,1,elliptical,Balsa,0.0685292,0.003685438\r
+Semroc,BC-834C,Bezier,NOSE_CONE,0.08636,0.0230632,0.0127,0.021971,1,elliptical,Balsa,0.0703326,0.003401943\r
+Semroc,BC-836,Secant-Ogive,NOSE_CONE,0.09144,0.0230632,0.0127,0.021971,1,Sears-Haack,Balsa,0.0739394,0.003685438\r
+Semroc,BC-837,Ogive,NOSE_CONE,0.09398,0.0230632,0.0127,0.021971,1,ogive,Balsa,0.0757428,0.003685438\r
+Semroc,BC-840,Elliptical,NOSE_CONE,0.1016,0.0230632,0.0127,0.021971,1,elliptical,Balsa,0.081153,0.004252428\r
+Semroc,BC-845,Ogive,NOSE_CONE,0.1143,0.0230632,0.0127,0.021971,1,ogive,Balsa,0.09017,0.004535924\r
+Semroc,BC-845P,Rounded Ogive,NOSE_CONE,0.1143,0.0230632,0.0127,0.021971,1,elliptical,Balsa,0.09017,0.004819419\r
+Semroc,BC-846,Rounded Ogive,NOSE_CONE,0.11684,0.0230632,0.0127,0.021971,1,elliptical,Balsa,0.0919734,0.004535924\r
+Semroc,BC-847,Conical,NOSE_CONE,0.11938,0.0230632,0.0127,0.021971,1,cone,Balsa,0.0937768,0.005386409\r
+Semroc,BC-847W,Ogive,NOSE_CONE,0.11938,0.0230632,0.0127,0.021971,1,ogive,Balsa,0.0937768,0.005386409\r
+Semroc,BC-848,Ogive,NOSE_CONE,0.12192,0.0230632,0.0127,0.021971,1,ogive,Balsa,0.0955802,0.005669905\r
+Semroc,BC-853,Ogive,NOSE_CONE,0.13462,0.0230632,0.0127,0.021971,1,ogive,Balsa,0.1045972,0.007654371\r
+Semroc,BC-8F28,Ogive,NOSE_CONE,0.06985,0.0233934,0.0127,0.021971,1,ogive,Balsa,0.0586232,0.003401943\r
+Semroc,BC-927,Ogive,NOSE_CONE,0.06858,0.0253492,0.01524,0.02413,1,ogive,Balsa,0.0595122,0.003685438\r
+Semroc,BC-932,Elliptical,NOSE_CONE,0.08128,0.0253492,0.01524,0.02413,1,elliptical,Balsa,0.0685292,0.004252428\r
+Semroc,BC-940,Bezier,NOSE_CONE,0.1016,0.0253492,0.01524,0.02413,1,elliptical,Balsa,0.0829564,0.004535924\r
+Semroc,BC-944,Ogive,NOSE_CONE,0.11176,0.0253492,0.01524,0.02413,1,ogive,Balsa,0.09017,0.004535924\r
+Semroc,BNC-3A,Conical,NOSE_CONE,0.01905,0.009525,0.00635,0.0088646,1,cone,Balsa,0.018034,0.000283495\r
+Semroc,BNC-5AW,Elliptical,NOSE_CONE,0.05715,0.0137414,0.00635,0.013081,1,elliptical,Balsa,0.045085,0.0059534\r
+Semroc,BNC-5AX,Ogive,NOSE_CONE,0.05715,0.0137414,0.00635,0.013081,1,ogive,Balsa,0.045085,0.005669905\r
+Semroc,BNC-5E,Ogive,NOSE_CONE,0.035052,0.0137414,0.00635,0.013081,1,ogive,Balsa,0.0293878,0.00056699\r
+Semroc,BNC-5S,Conical,NOSE_CONE,0.0381,0.0137414,0.00635,0.013081,1,cone,Balsa,0.0315722,0.000453592\r
+Semroc,BNC-5V,Elliptical,NOSE_CONE,0.01905,0.0137414,0.00635,0.013081,1,elliptical,Balsa,0.018034,0.000368544\r
+Semroc,BNC-5W,Ogive,NOSE_CONE,0.072898,0.0137414,0.00635,0.013081,1,ogive,Balsa,0.056261,0.001133981\r
+Semroc,BNC-10A,Blunt Ogive,NOSE_CONE,0.020574,0.018288,0.00635,0.018034,1,elliptical,Balsa,0.0191262,0.000850486\r
+Semroc,BNC-10B,Elliptical,NOSE_CONE,0.04318,0.018288,0.00635,0.018034,1,elliptical,Balsa,0.035179,0.001417476\r
+Semroc,BNC-20A,Blunt Ogive,NOSE_CONE,0.020574,0.0186944,0.009525,0.018034,1,elliptical,Balsa,0.0213614,0.000850486\r
+Semroc,BNC-20AZ,Ogive,NOSE_CONE,0.0635,0.0186944,0.009525,0.018034,1,ogive,Balsa,0.0518414,0.001984467\r
+Semroc,BNC-20B,Elliptical,NOSE_CONE,0.04318,0.0186944,0.009525,0.018034,1,elliptical,Balsa,0.0374142,0.001417476\r
+Semroc,BNC-20CB,Ogive,NOSE_CONE,0.04445,0.0186944,0.009525,0.018034,1,ogive,Balsa,0.0383286,0.001417476\r
+Semroc,BNC-20H,Elliptical,NOSE_CONE,0.02032,0.0186944,0.009525,0.018034,1,elliptical,Balsa,0.0211836,0.000850486\r
+Semroc,BNC-20L,Ogive,NOSE_CONE,0.03556,0.0186944,0.009525,0.018034,1,ogive,Balsa,0.032004,0.001133981\r
+Semroc,BNC-20N,Ogive,NOSE_CONE,0.06985,0.0186944,0.009525,0.018034,1,ogive,Balsa,0.0563626,0.002267962\r
+Semroc,BNC-20R,Conical,NOSE_CONE,0.06985,0.0186944,0.009525,0.018034,1,cone,Balsa,0.0563626,0.001984467\r
+Semroc,BNC-20SP,Elliptical,NOSE_CONE,0.00635,0.0186944,0.009525,0.018034,1,elliptical,Balsa,0.0112776,0.000283495\r
+Semroc,BNC-20Y,Conical,NOSE_CONE,0.0254,0.0186944,0.009525,0.018034,1,cone,Balsa,0.0247904,0.00056699\r
+Semroc,BNC-30C,Blunt Ogive,NOSE_CONE,0.01905,0.019431,0.009525,0.018415,1,elliptical,Balsa,0.0202946,0.001133981\r
+Semroc,BNC-30D,Ogive,NOSE_CONE,0.0381,0.019431,0.009525,0.018415,1,ogive,Balsa,0.0338074,0.001700971\r
+Semroc,BNC-30DE,Ogive,NOSE_CONE,0.035052,0.019431,0.009525,0.018415,1,ogive,Balsa,0.0316484,0.001700971\r
+Semroc,BNC-30E,Ogive,NOSE_CONE,0.05842,0.019431,0.009525,0.018415,1,ogive,Balsa,0.0482346,0.001984467\r
+Semroc,BNC-40D,Ogive,NOSE_CONE,0.0381,0.020955,0.01016,0.019431,1,ogive,Balsa,0.0342646,0.001133981\r
+Semroc,BNC-40F,Conical,NOSE_CONE,0.04826,0.020955,0.01016,0.019431,1,cone,Balsa,0.0414782,0.001984467\r
+Semroc,BNC-40G,Ogive,NOSE_CONE,0.1143,0.020955,0.01016,0.019431,1,ogive,Balsa,0.0883666,0.004535924\r
+Semroc,BNC-50C,Conical,NOSE_CONE,0.032258,0.0247904,0.0127,0.02413,1,cone,Balsa,0.0319278,0.001700971\r
+Semroc,BNC-50G,Ogive,NOSE_CONE,0.14478,0.0247904,0.0127,0.02413,1,ogive,Balsa,0.1118108,0.00652039\r
+Semroc,BNC-50J,Blunt Ogive,NOSE_CONE,0.034925,0.0247904,0.0127,0.02413,1,elliptical,Balsa,0.0338074,0.002267962\r
+Semroc,BNC-50K,Fat Ogive,NOSE_CONE,0.06985,0.0247904,0.0127,0.02413,1,ogive,Balsa,0.0586232,0.003685438\r
+Semroc,BNC-50KP,Parabolic,NOSE_CONE,0.06985,0.0247904,0.0127,0.02413,1,elliptical,Balsa,0.0586232,0.003685438\r
+Semroc,BNC-50V,Conical,NOSE_CONE,0.14605,0.0247904,0.0127,0.02413,1,cone,Balsa,0.1127252,0.005386409\r
+Semroc,BNC-50X,Elliptical,NOSE_CONE,0.08255,0.0247904,0.0127,0.02413,1,elliptical,Balsa,0.0676402,0.004252428\r
+Semroc,BNC-50Y,Ogive,NOSE_CONE,0.111125,0.0247904,0.0127,0.02413,1,ogive,Balsa,0.0879094,0.004535924\r
+Semroc,BNC-50YP,Ogive,NOSE_CONE,0.108712,0.0247904,0.0127,0.02413,1,ogive,Balsa,0.0862076,0.004535924\r
+Semroc,BNC-55AA,Ogive,NOSE_CONE,0.079375,0.033655,0.01524,0.0325882,1,ogive,Balsa,0.067183,0.004252428\r
+Semroc,BNC-55AC,Secant-Ogive,NOSE_CONE,0.136525,0.033655,0.01524,0.0325882,1,Sears-haack,Balsa,0.1077468,0.009071847\r
+Semroc,BNC-55ACP,Secant-Ogive,NOSE_CONE,0.14605,0.033655,0.01524,0.0325882,1,Sears-haack,Balsa,0.1145286,0.009355343\r
+Semroc,BNC-55AO,Elliptical,NOSE_CONE,0.127,0.033655,0.01524,0.0325882,1,elliptical,Balsa,0.1009904,0.012190295\r
+Semroc,BNC55B,Elliptical,NOSE_CONE,0.0762,0.033655,0.01524,0.0325882,1,elliptical,Balsa,0.0649224,0.007654371\r
+Semroc,BNC-55CT,Rounded Ogive,NOSE_CONE,0.07366,0.033655,0.01524,0.0325882,1,elliptical,Balsa,0.063119,0.006803886\r
+Semroc,BNC-55EX,Fat Ogive,NOSE_CONE,0.08636,0.033655,0.01524,0.0325882,1,ogive,Balsa,0.072136,0.008221362\r
+Semroc,BNC-55F,Ogive,NOSE_CONE,0.10668,0.033655,0.01524,0.0325882,1,ogive,Balsa,0.0865632,0.010205828\r
+Semroc,BNC-55FD,Base-Drilled Ogive,NOSE_CONE,0.10668,0.033655,0.01524,0.0325882,1,ogive,Balsa,0.0865632,0.0059534\r
+Semroc,BNC-55PT,Conical,NOSE_CONE,0.15621,0.033655,0.01524,0.0325882,1,cone,Balsa,0.1217422,0.015875733\r
+Semroc,BNC-55X,Elliptical,NOSE_CONE,0.10414,0.033655,0.01524,0.0325882,1,elliptical,Balsa,0.0847598,0.010489324\r
+Semroc,BNC-55Z,Ogive,NOSE_CONE,0.0762,0.033655,0.01524,0.0325882,1,ogive,Balsa,0.0649224,0.007087381\r
+Semroc,BNC-60AH,Elliptical,NOSE_CONE,0.168275,0.0415798,0.02032,0.040513,1,elliptical,Balsa,0.1339088,0.022679619\r
+Semroc,BNC-60L,Elliptical,NOSE_CONE,0.079375,0.0415798,0.02032,0.040513,1,elliptical,Balsa,0.0707898,0.009638838\r
+Semroc,BNC-60LP,Elliptical,NOSE_CONE,0.06985,0.0415798,0.02032,0.040513,1,elliptical,Balsa,0.0640334,0.006803886\r
+Semroc,BNC-60MS,Elliptical,NOSE_CONE,0.06604,0.0415798,0.02032,0.040513,1,elliptical,Balsa,0.0613156,0.0059534\r
+Semroc,BNC-60NA,Rounded Ogive,NOSE_CONE,0.12192,0.0415798,0.02032,0.040513,1,elliptical,Balsa,0.1009904,0.010489324\r
+Semroc,BNC-60NS,Conical,NOSE_CONE,0.254,0.0415798,0.02032,0.040513,1,cone,Balsa,0.1947672,0.012927383\r
+Semroc,BNC-60RL,Ogive,NOSE_CONE,0.212725,0.0415798,0.02032,0.040513,1,ogive,Balsa,0.1654556,0.022963114\r
+Semroc,BNC-60X,Elliptical,NOSE_CONE,0.138684,0.0415798,0.02032,0.040513,1,elliptical,Balsa,0.112903,0.017576704\r
+Semroc,BNC-60Y,Ogive,NOSE_CONE,0.18415,0.0415798,0.02032,0.040513,1,ogive,Balsa,0.1451864,0.020695152\r
+Semroc,BNC-65AF,Elliptical,NOSE_CONE,0.1016,0.0456184,0.02032,0.04445,1,elliptical,Balsa,0.0865632,0.014741752\r
+Semroc,BNC-65L,Elliptical,NOSE_CONE,0.08255,0.0456184,0.02032,0.04445,1,elliptical,Balsa,0.0730504,0.011623304\r
+Semroc,BNC-70AJ,Elliptical,NOSE_CONE,0.10795,0.0563118,0.02032,0.055245,1,elliptical,Balsa,0.0910844,0.024097095\r
+Semroc,BNC-70CT,Bezier,NOSE_CONE,0.1143,0.0563118,0.02032,0.055245,1,elliptical,Balsa,0.0955802,0.025514571\r
+Semroc,BNC-70D,Ogive,NOSE_CONE,0.10795,0.0563118,0.02032,0.055245,1,ogive,Balsa,0.0910844,0.025514571\r
+Semroc,BNC-70MS,Elliptical,NOSE_CONE,0.089916,0.0563118,0.02032,0.055245,1,elliptical,Balsa,0.0782574,0.028349523\r
+Semroc,BNC-70NH,Elliptical,NOSE_CONE,0.24765,0.0563118,0.02032,0.055245,1,elliptical,Balsa,0.1902714,0.041957294\r
+Semroc,BNC-70HAC,Secant-Ogive,NOSE_CONE,0.232664,0.0570738,0.02032,0.055245,1,Sears-haack,Balsa,0.1796288,0.056699046\r
+Semroc,BNC-70HAJ,Elliptical,NOSE_CONE,0.10795,0.0570738,0.02032,0.055245,1,elliptical,Balsa,0.0910844,0.024097095\r
+Semroc,BNC-70HB,Ogive,NOSE_CONE,0.1778,0.0570738,0.02032,0.055245,1,ogive,Balsa,0.1406652,0.032034961\r
+Semroc,BNC-70HCT,Bezier,NOSE_CONE,0.1143,0.0570738,0.02032,0.055245,1,elliptical,Balsa,0.0955802,0.025514571\r
+Semroc,BNC-70HD,Ogive,NOSE_CONE,0.109982,0.0570738,0.02032,0.055245,1,ogive,Balsa,0.0925068,0.02494758\r
+Semroc,BNC-80AH,Ogive,NOSE_CONE,0.2667,0.06604,0.0254,0.0649732,1,ogive,Balsa,0.207391,0.07966216\r
+Semroc,BNC-80AO,Ogive,NOSE_CONE,0.25146,0.06604,0.0254,0.0649732,1,ogive,Balsa,0.1965706,0.037988361\r
+Semroc,BNC-80BB,Elliptical,NOSE_CONE,0.1016,0.06604,0.0254,0.0649732,1,elliptical,Balsa,0.09017,0.031184475\r
+Semroc,BNC-80D,Ogive,NOSE_CONE,0.127,0.06604,0.0254,0.0649732,1,ogive,Balsa,0.108204,0.027782533\r
+Semroc,BNC-80K,Ogive,NOSE_CONE,0.20828,0.06604,0.0254,0.0649732,1,ogive,Balsa,0.1659128,0.034869913\r
+Semroc,BNC-80KA,Ogive,NOSE_CONE,0.186182,0.06604,0.0254,0.0649732,1,ogive,Balsa,0.1502156,0.032034961\r
+Semroc,BNC-80KP,Rounded Ogive,NOSE_CONE,0.176022,0.06604,0.0254,0.0649732,1,elliptical,Balsa,0.143002,0.031751466\r
+Semroc,BNC-80L,Elliptical,NOSE_CONE,0.127,0.06604,0.0254,0.0649732,1,elliptical,Balsa,0.108204,0.03685438\r
+Semroc,BNC-80VE,Ogive,NOSE_CONE,0.12446,0.06604,0.0254,0.0649732,1,ogive,Balsa,0.1064006,0.03685438\r
+Semroc,BNC-80HAH,Ogive,NOSE_CONE,0.2667,0.067056,0.0254,0.0649732,1,ogive,Balsa,0.207391,0.07966216\r
+Semroc,BNC-80HAO,Ogive,NOSE_CONE,0.25146,0.067056,0.0254,0.0649732,1,ogive,Balsa,0.1965706,0.037988361\r
+Semroc,BNC-80HBB,Elliptical,NOSE_CONE,0.1016,0.067056,0.0254,0.0649732,1,elliptical,Balsa,0.09017,0.031184475\r
+Semroc,BNC-80HD,Ogive,NOSE_CONE,0.127,0.067056,0.0254,0.0649732,1,ogive,Balsa,0.108204,0.027782533\r
+Semroc,BNC-80HK,Ogive,NOSE_CONE,0.20828,0.067056,0.0254,0.0649732,1,ogive,Balsa,0.1659128,0.034869913\r
+Semroc,BNC-80HKA,Ogive,NOSE_CONE,0.186182,0.067056,0.0254,0.0649732,1,ogive,Balsa,0.1502156,0.032034961\r
+Semroc,BNC-80HKP,Rounded Ogive,NOSE_CONE,0.176022,0.067056,0.0254,0.0649732,1,elliptical,Balsa,0.143002,0.031751466\r
+Semroc,BNC-80HL,Ogive,NOSE_CONE,0.127,0.067056,0.0254,0.0649732,1,ogive,Balsa,0.108204,0.03685438\r
index 0268342a388b730334eb3a69856eb22e8fc18ebd..3356d151c1d9f6f51ff95a9704d940b1171a1587 100644 (file)
@@ -1597,4 +1597,5 @@ table.column.OuterDiameter = Outer Diameter
 table.column.InnerDiameter = Inner Diameter
 table.column.Length = Length
 table.column.Favorite = Favorite
+table.column.Shape = Shape
 
index 534925594a83bbfb9475415c1c5a43d7b61f36e5..5be16945de9507077e2f2ec5b9905362510fa058 100644 (file)
@@ -10,6 +10,8 @@ public class ColumnDefinition<T> {
        }
        public void setProperty( TypedPropertyMap preset, String value ) {
                T o = (T) key.parseFromString(value);
-               preset.put(key, o);
+               if ( o != null ) {
+                       preset.put(key, o);
+               }
        }
 }
index 682f6d3507b44b30229481791037bb4a0037e798..78d02f8f869d6b31a2c77373b9fa7ffe6be5cb60 100644 (file)
@@ -12,10 +12,12 @@ import javax.swing.JSlider;
 import javax.swing.JSpinner;
 
 import net.miginfocom.swing.MigLayout;
+import net.sf.openrocket.database.ComponentPresetDatabase;
 import net.sf.openrocket.document.OpenRocketDocument;
 import net.sf.openrocket.gui.SpinnerEditor;
 import net.sf.openrocket.gui.adaptors.BooleanModel;
 import net.sf.openrocket.gui.adaptors.DoubleModel;
+import net.sf.openrocket.gui.adaptors.PresetModel;
 import net.sf.openrocket.gui.components.BasicSlider;
 import net.sf.openrocket.gui.components.DescriptionArea;
 import net.sf.openrocket.gui.components.UnitSelector;
@@ -33,6 +35,9 @@ public class NoseConeConfig extends RocketComponentConfig {
        
        private DescriptionArea description;
        
+       private JComboBox presetComboBox;
+       private PresetModel presetModel;
+
        private JLabel shapeLabel;
        private JSpinner shapeSpinner;
        private JSlider shapeSlider;
@@ -48,6 +53,13 @@ public class NoseConeConfig extends RocketComponentConfig {
                JPanel panel = new JPanel(new MigLayout("", "[][65lp::][30lp::]"));
                
 
+               // FIXME: Move to proper location
+               panel.add(new JLabel(trans.get("PresetModel.lbl.select")));
+               presetModel = new PresetModel( this, component);
+               ((ComponentPresetDatabase)Application.getComponentPresetDao()).addDatabaseListener(presetModel);
+               presetComboBox = new JComboBox(presetModel);
+               presetComboBox.setEditable(false);
+               panel.add(presetComboBox, "wrap para");
 
 
                ////  Shape selection
index fc0fb8272ecd1661c0354d86cc8ac830ef6e2de1..22b9753a4142ac11f593de3de651a4e813c67282 100644 (file)
@@ -50,7 +50,7 @@ public class ComponentPresetChooserDialog extends JDialog {
                
                final TypedKey<?>[] columnKeys = component.getPresetType().getDisplayedColumns();
                
-               presets = Application.getComponentPresetDao().listAll();
+               presets = Application.getComponentPresetDao().listForType(component.getPresetType());
                
                JPanel panel = new JPanel(new MigLayout("fill"));
                JLabel filterLabel = new JLabel(trans.get("ComponentPresetChooserDialog.filter.label"));
index 97a02226253f51e1977ea424a5889131cb7c505a..025e1ee7b633234d34e116c24f289a0e927e77c7 100644 (file)
@@ -14,6 +14,7 @@ import net.sf.openrocket.material.Material;
 import net.sf.openrocket.motor.Manufacturer;
 import net.sf.openrocket.rocketcomponent.BodyTube;
 import net.sf.openrocket.rocketcomponent.ExternalComponent.Finish;
+import net.sf.openrocket.rocketcomponent.Transition.Shape;
 import net.sf.openrocket.unit.UnitGroup;
 import net.sf.openrocket.util.BugException;
 import net.sf.openrocket.util.TextUtil;
@@ -46,8 +47,8 @@ public class ComponentPreset implements Comparable<ComponentPreset> {
                NOSE_CONE( new TypedKey<?>[] {
                                ComponentPreset.MANUFACTURER,
                                ComponentPreset.PARTNO,
+                               ComponentPreset.SHAPE,
                                ComponentPreset.OUTER_DIAMETER,
-                               ComponentPreset.INNER_DIAMETER,
                                ComponentPreset.LENGTH} ) ;
 
                Type[] compatibleTypes;
@@ -82,14 +83,19 @@ public class ComponentPreset implements Comparable<ComponentPreset> {
 
        public final static TypedKey<Manufacturer> MANUFACTURER = new TypedKey<Manufacturer>("Manufacturer", Manufacturer.class);
        public final static TypedKey<String> PARTNO = new TypedKey<String>("PartNo",String.class);
+       public final static TypedKey<String> DESCRIPTION = new TypedKey<String>("Description", String.class);
        public final static TypedKey<Type> TYPE = new TypedKey<Type>("Type",Type.class);
        public final static TypedKey<Double> LENGTH = new TypedKey<Double>("Length", Double.class, UnitGroup.UNITS_LENGTH);
        public final static TypedKey<Double> INNER_DIAMETER = new TypedKey<Double>("InnerDiameter", Double.class, UnitGroup.UNITS_LENGTH);
        public final static TypedKey<Double> OUTER_DIAMETER = new TypedKey<Double>("OuterDiameter", Double.class, UnitGroup.UNITS_LENGTH);
+       public final static TypedKey<Double> SHOULDER_LENGTH = new TypedKey<Double>("ShoulderLength", Double.class, UnitGroup.UNITS_LENGTH);
+       public final static TypedKey<Double> SHOULDER_DIAMETER = new TypedKey<Double>("ShoulderDiameter", Double.class, UnitGroup.UNITS_LENGTH);
+       public final static TypedKey<Shape> SHAPE = new TypedKey<Shape>("Shape", Shape.class);
        public final static TypedKey<Material> MATERIAL = new TypedKey<Material>("Material", Material.class);
        public final static TypedKey<Finish> FINISH = new TypedKey<Finish>("Finish", Finish.class);
        public final static TypedKey<Double> THICKNESS = new TypedKey<Double>("Thickness", Double.class, UnitGroup.UNITS_LENGTH);
        public final static TypedKey<Boolean> FILLED = new TypedKey<Boolean>("Filled", Boolean.class);
+       public final static TypedKey<Double> CG_OVERRIDE = new TypedKey<Double>("CGOverride", Double.class, UnitGroup.UNITS_LENGTH);
        public final static TypedKey<Double> MASS = new TypedKey<Double>("Mass", Double.class, UnitGroup.UNITS_MASS);
 
        public final static Map<String, TypedKey<?>> keyMap = new HashMap<String, TypedKey<?>>();
@@ -97,13 +103,18 @@ public class ComponentPreset implements Comparable<ComponentPreset> {
                keyMap.put(MANUFACTURER.getName(), MANUFACTURER);
                keyMap.put(PARTNO.getName(), PARTNO);
                keyMap.put(TYPE.getName(), TYPE);
+               keyMap.put(DESCRIPTION.getName(), DESCRIPTION);
                keyMap.put(LENGTH.getName(), LENGTH);
                keyMap.put(INNER_DIAMETER.getName(), INNER_DIAMETER);
                keyMap.put(OUTER_DIAMETER.getName(), OUTER_DIAMETER);
+               keyMap.put(SHOULDER_LENGTH.getName(), SHOULDER_LENGTH);
+               keyMap.put(SHOULDER_DIAMETER.getName(), SHOULDER_DIAMETER);
+               keyMap.put(SHAPE.getName(), SHAPE);
                keyMap.put(MATERIAL.getName(), MATERIAL);
                keyMap.put(FINISH.getName(), FINISH);
                keyMap.put(THICKNESS.getName(), THICKNESS);
                keyMap.put(FILLED.getName(), FILLED);
+               keyMap.put(CG_OVERRIDE.getName(), CG_OVERRIDE);
                keyMap.put(MASS.getName(), MASS);
        }
 
@@ -182,6 +193,15 @@ public class ComponentPreset implements Comparable<ComponentPreset> {
                        break;
                }
                case NOSE_CONE: {
+                       if ( !props.containsKey(LENGTH) ) {
+                               throw new InvalidComponentPresetException( "No Length specified for nose cone preset " + props.toString());
+                       }
+                       if ( !props.containsKey(SHAPE) ) {
+                               throw new InvalidComponentPresetException( "No Shape specified for nose cone preset " + props.toString());
+                       }
+                       if ( !props.containsKey(OUTER_DIAMETER) ) {
+                               throw new InvalidComponentPresetException( "No Outer Diameter specified for nose cone preset " + props.toString());
+                       }
                        break;
                }
                }
@@ -306,6 +326,10 @@ public class ComponentPreset implements Comparable<ComponentPreset> {
                                } else if ( key.getType() == Material.class ) {
                                        double d = ((Material)value).getDensity();
                                        os.writeDouble(d);
+                               } else if ( key.getType() == Shape.class ) {
+                                       // FIXME - this is ugly to use the ordinal but what else?
+                                       int i = ((Shape)value).ordinal();
+                                       os.writeInt(i);
                                }
 
                        }
index 74caeb4dab212bce05d178002db27243a9b853b1..57652007a94a9b6a5cdba4bba4e527d39d06e9a5 100644 (file)
@@ -1,10 +1,11 @@
 package net.sf.openrocket.preset;
 
-import net.sf.openrocket.database.Databases;
+import org.jfree.util.StringUtils;
+
 import net.sf.openrocket.material.Material;
 import net.sf.openrocket.motor.Manufacturer;
 import net.sf.openrocket.rocketcomponent.ExternalComponent.Finish;
-import net.sf.openrocket.startup.Application;
+import net.sf.openrocket.rocketcomponent.Transition.Shape;
 import net.sf.openrocket.unit.UnitGroup;
 
 public class TypedKey<T> {
@@ -23,6 +24,11 @@ public class TypedKey<T> {
                this.unitGroup = unitGroup;
        }
 
+       @Override
+       public String toString() {
+               return "TypedKey [name=" + name + "]";
+       }
+
        public String getName() {
                return name;
        }
@@ -57,7 +63,9 @@ public class TypedKey<T> {
                        return Finish.valueOf(value);
                }
                if ( type.equals(Material.class) ) {
-                       // need to translate the value first!
+                       // FIXME - cannot parse Materials just yet.  Need a way to do it without worrying about locale.
+                       return null;
+                       /*
                        String translated_value = Application.getTranslator().get(value);
                        Material material;
                        material = Databases.findMaterial(Material.Type.BULK, translated_value);
@@ -73,6 +81,29 @@ public class TypedKey<T> {
                                return material;
                        }
                        throw new IllegalArgumentException("Invalid material " + value + " in component preset.");
+                       */
+               }
+               if ( type.equals(Shape.class) ) {
+                       //FIXME - ignore case!
+                       if ( "ogive".equalsIgnoreCase(value) ) {
+                               return Shape.OGIVE;
+                       }
+                       if ( "cone".equalsIgnoreCase(value) ) {
+                               return Shape.CONICAL;
+                       }
+                       if ( "elliptical".equalsIgnoreCase(value) ) {
+                               return Shape.ELLIPSOID;
+                       }
+                       if ( "parabolic".equalsIgnoreCase(value) ) {
+                               return Shape.PARABOLIC;
+                       }
+                       if ( "sears-haack".equalsIgnoreCase(value) ) {
+                               return Shape.HAACK;
+                       }
+                       if ( "power-series".equalsIgnoreCase(value) ) {
+                               return Shape.POWER;
+                       }
+                       throw new IllegalArgumentException("Invalid shape " + value + " in component preset.");
                }
                throw new IllegalArgumentException("Inavlid type " + type.getName() + " for component preset parameter " + name);
        }
index 8dae294541d4f006a02d21942492656d7fa69f91..65317a3c2f6c79a19b24a3caab32dc18f5cdfde7 100644 (file)
@@ -154,8 +154,8 @@ public class BodyTube extends SymmetricComponent implements MotorMount, Coaxial
                super.loadFromPreset(preset);
 
                fireComponentChangeEvent(ComponentChangeEvent.BOTH_CHANGE);
-               
        }
+       
        @Override
        public double getAftRadius() {
                return getOuterRadius();
index a4de3a9c8aeabcded7bc652c14c99b24539d0120..8b621c2f9c5d48e25cc7d52578de008f3d2583d7 100644 (file)
@@ -1,6 +1,8 @@
 package net.sf.openrocket.rocketcomponent;
 
 import net.sf.openrocket.l10n.Translator;
+import net.sf.openrocket.preset.ComponentPreset;
+import net.sf.openrocket.preset.ComponentPreset.Type;
 import net.sf.openrocket.startup.Application;
 
 /**
@@ -111,6 +113,36 @@ public class NoseCone extends Transition {
 
        /********** RocketComponent methods **********/
        
+       @Override
+       public Type getPresetType() {
+               return ComponentPreset.Type.NOSE_CONE;
+       }
+
+       @Override
+       protected void loadFromPreset(ComponentPreset preset) {
+               if ( preset.has(ComponentPreset.SHAPE) ) {
+                       Shape s = preset.get(ComponentPreset.SHAPE);
+                       this.setType(s);
+               }
+               if ( preset.has(ComponentPreset.OUTER_DIAMETER) )  {
+                       double outerDiameter = preset.get(ComponentPreset.OUTER_DIAMETER);
+                       this.setAftRadiusAutomatic(false);
+                       this.setAftRadius(outerDiameter/2.0);
+               }
+               if ( preset.has(ComponentPreset.SHOULDER_LENGTH) ) {
+                       double length = preset.get(ComponentPreset.SHOULDER_LENGTH);
+                       this.setAftShoulderLength(length);
+               }
+               if ( preset.has(ComponentPreset.SHOULDER_DIAMETER) ) {
+                       double d = preset.get(ComponentPreset.SHOULDER_DIAMETER);
+                       this.setAftShoulderRadius(d/2.0);
+               }
+
+               super.loadFromPreset(preset);
+
+               fireComponentChangeEvent(ComponentChangeEvent.BOTH_CHANGE);
+       }
+
        /**
         * Return component name.
         */
index 6b0a891b9ddccc71393fa4880688f1c904ac937b..ff5d8821eb4b8528671b51e8314228e1fa2fb92b 100644 (file)
@@ -745,7 +745,16 @@ public abstract class RocketComponent implements ChangeSource, Cloneable, Iterab
         * @param preset        the preset to load from
         */
        protected void loadFromPreset(ComponentPreset preset) {
-               // No-op
+               if ( preset.has(ComponentPreset.MASS) ) {
+                       double mass = preset.get(ComponentPreset.MASS);
+                       setMassOverridden(true);
+                       setOverrideMass(mass);
+               }
+               if ( preset.has(ComponentPreset.CG_OVERRIDE) ) {
+                       double cg = preset.get(ComponentPreset.CG_OVERRIDE);
+                       setCGOverridden(true);
+                       setOverrideCGX(cg);
+               }
        }
        
        
index 4e8893941d815d0b172e650fcd399597d83085d1..3342f6f1d2c77c1415b6439af055193bf8579306 100644 (file)
@@ -152,6 +152,7 @@ public abstract class SymmetricComponent extends BodyComponent implements Radial
                        this.setThickness(preset.get(ComponentPreset.THICKNESS));
                }
                if ( preset.has(ComponentPreset.FILLED)) {
+                       // FIXME - this doesn't seem to work for nose cones.
                        this.setFilled(preset.get(ComponentPreset.FILLED));
                }