Initial Rocksim CSV parsing support for materials and components.

This commit is contained in:
Doug Pedrick 2012-04-22 03:11:13 +00:00
parent d8821bcfdb
commit f75b03184a
14 changed files with 852 additions and 111 deletions

View File

@ -1,4 +1,5 @@
Material Name,Units,Density,Low,High,Class,Rocketry Use,Body Tubes,Fin Sets,Launch Lugs,Cords,Nose,Chute,Streamer,Trans,Ring,Bulkhead,Engine Block,Sleeve,Tube Coupler,spare,spare,spare,spare,spare,spare,spare,Fixed dim type,Fixed dim units,Fixed dim value,
Fiber,lb/ft3,41,,,,1,0,0,0,0,0,0,0,0,1,1,0,0,0,,,,,,,,None,In.,0
lite ply,lb/ft3,22,,,,1,0,1,0,0,0,0,0,0,1,1,1,0,0,,,,,,,,None,In.,0
Balsa,lb/ft3,8,,,Wood,1,1,1,0,0,1,0,0,1,1,1,1,0,0,,,,,,,,None,0,0
Paper,lb/ft3,70,,,,1,1,1,1,0,1,0,1,1,1,1,1,1,1,,,,,,,,None,0,0

1 Material Name,Units,Density,Low,High,Class,Rocketry Use,Body Tubes,Fin Sets,Launch Lugs,Cords,Nose,Chute,Streamer,Trans,Ring,Bulkhead,Engine Block,Sleeve,Tube Coupler,spare,spare,spare,spare,spare,spare,spare,Fixed dim type,Fixed dim units,Fixed dim value,
2 Fiber,lb/ft3,41,,,,1,0,0,0,0,0,0,0,0,1,1,0,0,0,,,,,,,,None,In.,0
3 lite ply,lb/ft3,22,,,,1,0,1,0,0,0,0,0,0,1,1,1,0,0,,,,,,,,None,In.,0
4 Balsa,lb/ft3,8,,,Wood,1,1,1,0,0,1,0,0,1,1,1,1,0,0,,,,,,,,None,0,0
5 Paper,lb/ft3,70,,,,1,1,1,1,0,1,0,1,1,1,1,1,1,1,,,,,,,,None,0,0

View File

@ -4,18 +4,18 @@ BalsaMachining.com,BMS50V2B,V2 Boat-tail with bored BT5 hole,in.,0.50,0.95,0.97,
BalsaMachining.com,BMS60V2B,V2 Boat-tail with bored BT20 hole,in.,0.50,1.59,1.63,3.70,1.05,0.73,0.00,0.00,,solid,Balsa,0,,0,Ogive,0
BalsaMachining.com,BMSV2BT1,V2 Boat-tail with bored BT50 hole,in.,0.50,1.59,1.63,3.70,1.11,0.97,0.00,0.00,,solid,Balsa,0,,0,Ogive,0
BalsaMachining.com,BTC55Z,V2 Boat-tail with bored BT20 hole,in.,0.50,1.28,1.32,3.00,0.97,0.73,0.00,0.00,,solid,Balsa,0,,0,Ogive,0
BalsaMachining.com,TA2050,Transition T20 to T50 2 in long,in.,0.50,0.71,0.73,2.00,0.97,,0.50,0.71,,solid,Balsa,0,oz.,0,Conical,0
BalsaMachining.com,TA2050A,Transition T20 to T50 1 in long,in.,0.50,0.71,0.73,1.00,0.97,,0.75,0.95,,solid,Balsa,0,oz.,0,Conical,0
BalsaMachining.com,TA2055,Transition T20 to T55 1.5 in long,in.,0.50,0.71,0.73,1.50,1.63,,0.75,1.28,,solid,Balsa,0,oz.,0,Conical,0
BalsaMachining.com,TA2060,Transition T20 to T80 0.84 in long,in.,0.75,0.71,0.73,0.84,2.60,,0.75,2.55,,solid,Balsa,0,oz.,0,Conical,0
BalsaMachining.com,TA5055,Transition T50 to T55 1 in long,in.,0.75,0.95,0.97,1.00,1.63,,0.75,1.28,,solid,Balsa,0,oz.,0,Conical,0
BalsaMachining.com,TA5055L,Transiition T50 to T55 1.5 in long,in.,0.75,0.95,0.97,1.50,1.63,,0.75,1.28,,solid,Balsa,0,oz.,0,Conical,0
BalsaMachining.com,TA5060,Transition T50 to T60 2 in long,in.,0.75,0.95,0.97,2.00,1.63,,0.75,1.59,,solid,Balsa,0,oz.,0,Conical,0
BalsaMachining.com,TA520,Transition T5 to T20 0.78 in long,in.,0.50,0.51,0.54,0.78,0.73,,0.50,0.71,,solid,Balsa,0,oz.,0,Conical,0
BalsaMachining.com,TA550,Transition T5 to T50 1 in long,in.,0.50,0.51,0.54,1.00,0.97,,0.50,0.95,,solid,Balsa,0,oz.,0,Conical,0
BalsaMachining.com,TA555,Transiition T5 to T55 2.75 in long,in.,0.75,0.51,0.54,2.75,1.63,,0.75,1.28,,solid,Balsa,0,oz.,0,Conical,0
BalsaMachining.com,TA5560,Transition T55 to T60 1 long,in.,1.00,1.28,1.63,1.00,1.63,,1.00,1.59,,solid,Balsa,0,oz.,0,Conical,0
BalsaMachining.com,TA5560A,Transition T55 to T60 1.3 in long,in.,0.75,1.28,1.63,1.30,1.63,,0.75,1.59,,solid,Balsa,0,oz.,0,Conical,0
BalsaMachining.com,TA6070,Transition T60 to T70 1.75 in long,in.,0.60,1.59,1.63,1.50,2.21,,0.60,2.17,,solid,Balsa,0,oz.,0,Conical,0
BalsaMachining.com,TA6080,Transition T60 to T80 2.25 in long,in.,1.25,1.59,1.63,2.25,2.60,,1.50,2.55,,solid,Balsa,0,oz.,0,Conical,0
BalsaMachining.com,TA7080,Transition T70 to T80 2 in long,in.,1.40,2.17,2.21,2.00,2.60,,1.40,2.55,,solid,Balsa,0,oz.,0,Conical,0
BalsaMachining.com,TA2050,Transition T20 to T50 2 in long,in.,0.50,0.71,0.73,2.00,0.97,0,0.50,0.71,,solid,Balsa,0,oz.,0,Conical,0
BalsaMachining.com,TA2050A,Transition T20 to T50 1 in long,in.,0.50,0.71,0.73,1.00,0.97,0,0.75,0.95,,solid,Balsa,0,oz.,0,Conical,0
BalsaMachining.com,TA2055,Transition T20 to T55 1.5 in long,in.,0.50,0.71,0.73,1.50,1.63,0,0.75,1.28,,solid,Balsa,0,oz.,0,Conical,0
BalsaMachining.com,TA2060,Transition T20 to T80 0.84 in long,in.,0.75,0.71,0.73,0.84,2.60,0,0.75,2.55,,solid,Balsa,0,oz.,0,Conical,0
BalsaMachining.com,TA5055,Transition T50 to T55 1 in long,in.,0.75,0.95,0.97,1.00,1.63,0,0.75,1.28,,solid,Balsa,0,oz.,0,Conical,0
BalsaMachining.com,TA5055L,Transiition T50 to T55 1.5 in long,in.,0.75,0.95,0.97,1.50,1.63,0,0.75,1.28,,solid,Balsa,0,oz.,0,Conical,0
BalsaMachining.com,TA5060,Transition T50 to T60 2 in long,in.,0.75,0.95,0.97,2.00,1.63,0,0.75,1.59,,solid,Balsa,0,oz.,0,Conical,0
BalsaMachining.com,TA520,Transition T5 to T20 0.78 in long,in.,0.50,0.51,0.54,0.78,0.73,0,0.50,0.71,,solid,Balsa,0,oz.,0,Conical,0
BalsaMachining.com,TA550,Transition T5 to T50 1 in long,in.,0.50,0.51,0.54,1.00,0.97,0,0.50,0.95,,solid,Balsa,0,oz.,0,Conical,0
BalsaMachining.com,TA555,Transiition T5 to T55 2.75 in long,in.,0.75,0.51,0.54,2.75,1.63,0,0.75,1.28,,solid,Balsa,0,oz.,0,Conical,0
BalsaMachining.com,TA5560,Transition T55 to T60 1 long,in.,1.00,1.28,1.63,1.00,1.63,0,1.00,1.59,,solid,Balsa,0,oz.,0,Conical,0
BalsaMachining.com,TA5560A,Transition T55 to T60 1.3 in long,in.,0.75,1.28,1.63,1.30,1.63,0,0.75,1.59,,solid,Balsa,0,oz.,0,Conical,0
BalsaMachining.com,TA6070,Transition T60 to T70 1.75 in long,in.,0.60,1.59,1.63,1.50,2.21,0,0.60,2.17,,solid,Balsa,0,oz.,0,Conical,0
BalsaMachining.com,TA6080,Transition T60 to T80 2.25 in long,in.,1.25,1.59,1.63,2.25,2.60,0,1.50,2.55,,solid,Balsa,0,oz.,0,Conical,0
BalsaMachining.com,TA7080,Transition T70 to T80 2 in long,in.,1.40,2.17,2.21,2.00,2.60,0,1.40,2.55,,solid,Balsa,0,oz.,0,Conical,0

1 Mfg.,Part No.,Desc.,Units,Front Insert Len,Front Insert OD,Front OD,Length,Rear OD,Core Dia.,Rear Insert Len,Rear Insert OD,Thickness,Config,Material,CG Loc,Mass Units,Mass,Shape,Shape Param,0,0,0,0,0,0,0,0,0,0
4 BalsaMachining.com,BMS60V2B,V2 Boat-tail with bored BT20 hole,in.,0.50,1.59,1.63,3.70,1.05,0.73,0.00,0.00,,solid,Balsa,0,,0,Ogive,0
5 BalsaMachining.com,BMSV2BT1,V2 Boat-tail with bored BT50 hole,in.,0.50,1.59,1.63,3.70,1.11,0.97,0.00,0.00,,solid,Balsa,0,,0,Ogive,0
6 BalsaMachining.com,BTC55Z,V2 Boat-tail with bored BT20 hole,in.,0.50,1.28,1.32,3.00,0.97,0.73,0.00,0.00,,solid,Balsa,0,,0,Ogive,0
7 BalsaMachining.com,TA2050,Transition T20 to T50 2 in long,in.,0.50,0.71,0.73,2.00,0.97,,0.50,0.71,,solid,Balsa,0,oz.,0,Conical,0 BalsaMachining.com,TA2050,Transition T20 to T50 2 in long,in.,0.50,0.71,0.73,2.00,0.97,0,0.50,0.71,,solid,Balsa,0,oz.,0,Conical,0
8 BalsaMachining.com,TA2050A,Transition T20 to T50 1 in long,in.,0.50,0.71,0.73,1.00,0.97,,0.75,0.95,,solid,Balsa,0,oz.,0,Conical,0 BalsaMachining.com,TA2050A,Transition T20 to T50 1 in long,in.,0.50,0.71,0.73,1.00,0.97,0,0.75,0.95,,solid,Balsa,0,oz.,0,Conical,0
9 BalsaMachining.com,TA2055,Transition T20 to T55 1.5 in long,in.,0.50,0.71,0.73,1.50,1.63,,0.75,1.28,,solid,Balsa,0,oz.,0,Conical,0 BalsaMachining.com,TA2055,Transition T20 to T55 1.5 in long,in.,0.50,0.71,0.73,1.50,1.63,0,0.75,1.28,,solid,Balsa,0,oz.,0,Conical,0
10 BalsaMachining.com,TA2060,Transition T20 to T80 0.84 in long,in.,0.75,0.71,0.73,0.84,2.60,,0.75,2.55,,solid,Balsa,0,oz.,0,Conical,0 BalsaMachining.com,TA2060,Transition T20 to T80 0.84 in long,in.,0.75,0.71,0.73,0.84,2.60,0,0.75,2.55,,solid,Balsa,0,oz.,0,Conical,0
11 BalsaMachining.com,TA5055,Transition T50 to T55 1 in long,in.,0.75,0.95,0.97,1.00,1.63,,0.75,1.28,,solid,Balsa,0,oz.,0,Conical,0 BalsaMachining.com,TA5055,Transition T50 to T55 1 in long,in.,0.75,0.95,0.97,1.00,1.63,0,0.75,1.28,,solid,Balsa,0,oz.,0,Conical,0
12 BalsaMachining.com,TA5055L,Transiition T50 to T55 1.5 in long,in.,0.75,0.95,0.97,1.50,1.63,,0.75,1.28,,solid,Balsa,0,oz.,0,Conical,0 BalsaMachining.com,TA5055L,Transiition T50 to T55 1.5 in long,in.,0.75,0.95,0.97,1.50,1.63,0,0.75,1.28,,solid,Balsa,0,oz.,0,Conical,0
13 BalsaMachining.com,TA5060,Transition T50 to T60 2 in long,in.,0.75,0.95,0.97,2.00,1.63,,0.75,1.59,,solid,Balsa,0,oz.,0,Conical,0 BalsaMachining.com,TA5060,Transition T50 to T60 2 in long,in.,0.75,0.95,0.97,2.00,1.63,0,0.75,1.59,,solid,Balsa,0,oz.,0,Conical,0
14 BalsaMachining.com,TA520,Transition T5 to T20 0.78 in long,in.,0.50,0.51,0.54,0.78,0.73,,0.50,0.71,,solid,Balsa,0,oz.,0,Conical,0 BalsaMachining.com,TA520,Transition T5 to T20 0.78 in long,in.,0.50,0.51,0.54,0.78,0.73,0,0.50,0.71,,solid,Balsa,0,oz.,0,Conical,0
15 BalsaMachining.com,TA550,Transition T5 to T50 1 in long,in.,0.50,0.51,0.54,1.00,0.97,,0.50,0.95,,solid,Balsa,0,oz.,0,Conical,0 BalsaMachining.com,TA550,Transition T5 to T50 1 in long,in.,0.50,0.51,0.54,1.00,0.97,0,0.50,0.95,,solid,Balsa,0,oz.,0,Conical,0
16 BalsaMachining.com,TA555,Transiition T5 to T55 2.75 in long,in.,0.75,0.51,0.54,2.75,1.63,,0.75,1.28,,solid,Balsa,0,oz.,0,Conical,0 BalsaMachining.com,TA555,Transiition T5 to T55 2.75 in long,in.,0.75,0.51,0.54,2.75,1.63,0,0.75,1.28,,solid,Balsa,0,oz.,0,Conical,0
17 BalsaMachining.com,TA5560,Transition T55 to T60 1 long,in.,1.00,1.28,1.63,1.00,1.63,,1.00,1.59,,solid,Balsa,0,oz.,0,Conical,0 BalsaMachining.com,TA5560,Transition T55 to T60 1 long,in.,1.00,1.28,1.63,1.00,1.63,0,1.00,1.59,,solid,Balsa,0,oz.,0,Conical,0
18 BalsaMachining.com,TA5560A,Transition T55 to T60 1.3 in long,in.,0.75,1.28,1.63,1.30,1.63,,0.75,1.59,,solid,Balsa,0,oz.,0,Conical,0 BalsaMachining.com,TA5560A,Transition T55 to T60 1.3 in long,in.,0.75,1.28,1.63,1.30,1.63,0,0.75,1.59,,solid,Balsa,0,oz.,0,Conical,0
19 BalsaMachining.com,TA6070,Transition T60 to T70 1.75 in long,in.,0.60,1.59,1.63,1.50,2.21,,0.60,2.17,,solid,Balsa,0,oz.,0,Conical,0 BalsaMachining.com,TA6070,Transition T60 to T70 1.75 in long,in.,0.60,1.59,1.63,1.50,2.21,0,0.60,2.17,,solid,Balsa,0,oz.,0,Conical,0
20 BalsaMachining.com,TA6080,Transition T60 to T80 2.25 in long,in.,1.25,1.59,1.63,2.25,2.60,,1.50,2.55,,solid,Balsa,0,oz.,0,Conical,0 BalsaMachining.com,TA6080,Transition T60 to T80 2.25 in long,in.,1.25,1.59,1.63,2.25,2.60,0,1.50,2.55,,solid,Balsa,0,oz.,0,Conical,0
21 BalsaMachining.com,TA7080,Transition T70 to T80 2 in long,in.,1.40,2.17,2.21,2.00,2.60,,1.40,2.55,,solid,Balsa,0,oz.,0,Conical,0 BalsaMachining.com,TA7080,Transition T70 to T80 2 in long,in.,1.40,2.17,2.21,2.00,2.60,0,1.40,2.55,,solid,Balsa,0,oz.,0,Conical,0

View File

@ -0,0 +1,5 @@
Material Name,Units,Density,Low,High,Class,Rocketry Use,Body Tubes,Fin Sets,Launch Lugs,Cords,Nose,Chute,Stream,Trans,Ring,Bulkhead,Engine Block,Sleeve,Tube Coupler,spare,spare,spare,spare,spare,spare,spare,Known Dim type,Known Dim Units,Known Dim Value
Cardboard,lb/ft3,43,,,,1,1,1,1,0,1,0,0,1,1,1,1,1,1,,,,,,,,None,0,0
Birch,lb/ft3,42.5,,,Wood,1,0,1,0,0,1,0,1,1,1,1,1,0,0,,,,,,,,None,0,0
Kraft phenolic,lb/ft3,59.85,,,,1,1,0,0,0,0,0,0,0,1,0,0,1,1,,,,,,,,None,0,0
Polycarbonate,lb/ft3,74.9,,,,1,1,1,1,0,1,0,0,1,1,1,1,1,1,,,,,,,,None,0,0
1 Material Name Units Density Low High Class Rocketry Use Body Tubes Fin Sets Launch Lugs Cords Nose Chute Stream Trans Ring Bulkhead Engine Block Sleeve Tube Coupler spare spare spare spare spare spare spare Known Dim type Known Dim Units Known Dim Value
2 Cardboard lb/ft3 43 1 1 1 1 0 1 0 0 1 1 1 1 1 1 None 0 0
3 Birch lb/ft3 42.5 Wood 1 0 1 0 0 1 0 1 1 1 1 1 0 0 None 0 0
4 Kraft phenolic lb/ft3 59.85 1 1 0 0 0 0 0 0 0 1 0 0 1 1 None 0 0
5 Polycarbonate lb/ft3 74.9 1 1 1 1 0 1 0 0 1 1 1 1 1 1 None 0 0

View File

@ -1,24 +1,24 @@
Mfg.,Part No.,Desc.,Units,ID,OD,Length,Material,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine,Engine
Performance Rocketry,G10 Bulkplate,G10 Fiberglass 38mm x 3/32 Airframe,in,0,1.52,0.094,G10 fiberglass,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G10 Bulkplate,G10 Fiberglass 38mm x 3/32 Coupler,in,0,1.37,0.094,G10 fiberglass,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G10 Bulkplate,G10 Fiberglass 54mm x 3/32 Airframe,in,0,2.152,0.094,G10 fiberglass,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G10 Bulkplate,G10 Fiberglass 54mm x 3/32 Coupler,in,0,2,0.094,G10 fiberglass,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G10 Bulkplate,G10 Fiberglass 3in x 3/32 Airframe,in,0,3,0.094,G10 fiberglass,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G10 Bulkplate,G10 Fiberglass 3in x 3/32 Coupler,in,0,2.875,0.094,G10 fiberglass,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G10 Bulkplate,G10 Fiberglass 4 in x 3/32 Airframe,in,0,3.9,0.094,G10 fiberglass,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G10 Bulkplate,G10 Fiberglass 4 in x 3/32 Coupler,in,0,3.775,0.094,G10 fiberglass,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G10 Bulkplate,G10 Fiberglass 5in x 1/8 Airframe,in,0,5,0.125,G10 fiberglass,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G10 Bulkplate,G10 Fiberglass 5in x 1/8 Coupler,in,0,4.85,0.125,G10 fiberglass,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G10 Bulkplate,G10 Fiberglass 5.5in x 1/8 Airframe,in,0,5.375,0.125,G10 fiberglass,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G10 Bulkplate,G10 Fiberglass 5.5in x 1/8 Coupler,in,0,5.225,0.125,G10 fiberglass,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G10 Bulkplate,G10 Fiberglass 6in x 1/8 Airframe,in,0,6,0.125,G10 fiberglass,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G10 Bulkplate,G10 Fiberglass 6in x 1/8 Coupler,in,0,5.775,0.125,G10 fiberglass,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G10 Bulkplate,G10 Fiberglass 7.5 inx 1/8 Airframe,in,0,7.518,0.125,G10 fiberglass,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G10 Bulkplate,G10 Fiberglass 7.5 inx 1/8 Coupler,in,0,7.33,0.125,G10 fiberglass,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G10 Bulkplate,G10 Fiberglass 8in x 1/8 Airframe,in,0,7.815,0.125,G10 fiberglass,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G10 Bulkplate,G10 Fiberglass 8in x 1/8 Coupler,in,0,7.815,0.125,G10 fiberglass,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G10 Bulkplate,G10 Fiberglass 9in x 1/8 Airframe,in,0,9,0.125,G10 fiberglass,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G10 Bulkplate,G10 Fiberglass 11.5in x 3/16 Airframe,in,0,11.42,0.188,G10 fiberglass,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G10 Bulkplate,G10 Fiberglass 38mm x 3/32 Airframe,in,0,1.52,0.094,G10 Fiberglass,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G10 Bulkplate,G10 Fiberglass 38mm x 3/32 Coupler,in,0,1.37,0.094,G10 Fiberglass,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G10 Bulkplate,G10 Fiberglass 54mm x 3/32 Airframe,in,0,2.152,0.094,G10 Fiberglass,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G10 Bulkplate,G10 Fiberglass 54mm x 3/32 Coupler,in,0,2,0.094,G10 Fiberglass,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G10 Bulkplate,G10 Fiberglass 3in x 3/32 Airframe,in,0,3,0.094,G10 Fiberglass,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G10 Bulkplate,G10 Fiberglass 3in x 3/32 Coupler,in,0,2.875,0.094,G10 Fiberglass,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G10 Bulkplate,G10 Fiberglass 4 in x 3/32 Airframe,in,0,3.9,0.094,G10 Fiberglass,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G10 Bulkplate,G10 Fiberglass 4 in x 3/32 Coupler,in,0,3.775,0.094,G10 Fiberglass,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G10 Bulkplate,G10 Fiberglass 5in x 1/8 Airframe,in,0,5,0.125,G10 Fiberglass,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G10 Bulkplate,G10 Fiberglass 5in x 1/8 Coupler,in,0,4.85,0.125,G10 Fiberglass,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G10 Bulkplate,G10 Fiberglass 5.5in x 1/8 Airframe,in,0,5.375,0.125,G10 Fiberglass,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G10 Bulkplate,G10 Fiberglass 5.5in x 1/8 Coupler,in,0,5.225,0.125,G10 Fiberglass,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G10 Bulkplate,G10 Fiberglass 6in x 1/8 Airframe,in,0,6,0.125,G10 Fiberglass,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G10 Bulkplate,G10 Fiberglass 6in x 1/8 Coupler,in,0,5.775,0.125,G10 Fiberglass,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G10 Bulkplate,G10 Fiberglass 7.5 inx 1/8 Airframe,in,0,7.518,0.125,G10 Fiberglass,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G10 Bulkplate,G10 Fiberglass 7.5 inx 1/8 Coupler,in,0,7.33,0.125,G10 Fiberglass,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G10 Bulkplate,G10 Fiberglass 8in x 1/8 Airframe,in,0,7.815,0.125,G10 Fiberglass,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G10 Bulkplate,G10 Fiberglass 8in x 1/8 Coupler,in,0,7.815,0.125,G10 Fiberglass,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G10 Bulkplate,G10 Fiberglass 9in x 1/8 Airframe,in,0,9,0.125,G10 Fiberglass,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G10 Bulkplate,G10 Fiberglass 11.5in x 3/16 Airframe,in,0,11.42,0.188,G10 Fiberglass,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,Birch Bulkplate,Baltic Birch 54mm x 1/16,in,0,2.152,0.0625,Birch,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,Birch Bulkplate,Baltic Birch 2.5in x 1/16,in,0,2.5,0.0625,Birch,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,Birch Bulkplate,Baltic Birch 3in x 3/32,in,0,3,0.094,Birch,0,g,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

1 Mfg. Part No. Desc. Units ID OD Length Material Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine Engine
2 Performance Rocketry G10 Bulkplate G10 Fiberglass 38mm x 3/32 Airframe in 0 1.52 0.094 G10 fiberglass G10 Fiberglass 0 g 0 0
3 Performance Rocketry G10 Bulkplate G10 Fiberglass 38mm x 3/32 Coupler in 0 1.37 0.094 G10 fiberglass G10 Fiberglass 0 g 0 0
4 Performance Rocketry G10 Bulkplate G10 Fiberglass 54mm x 3/32 Airframe in 0 2.152 0.094 G10 fiberglass G10 Fiberglass 0 g 0 0
5 Performance Rocketry G10 Bulkplate G10 Fiberglass 54mm x 3/32 Coupler in 0 2 0.094 G10 fiberglass G10 Fiberglass 0 g 0 0
6 Performance Rocketry G10 Bulkplate G10 Fiberglass 3in x 3/32 Airframe in 0 3 0.094 G10 fiberglass G10 Fiberglass 0 g 0 0
7 Performance Rocketry G10 Bulkplate G10 Fiberglass 3in x 3/32 Coupler in 0 2.875 0.094 G10 fiberglass G10 Fiberglass 0 g 0 0
8 Performance Rocketry G10 Bulkplate G10 Fiberglass 4 in x 3/32 Airframe in 0 3.9 0.094 G10 fiberglass G10 Fiberglass 0 g 0 0
9 Performance Rocketry G10 Bulkplate G10 Fiberglass 4 in x 3/32 Coupler in 0 3.775 0.094 G10 fiberglass G10 Fiberglass 0 g 0 0
10 Performance Rocketry G10 Bulkplate G10 Fiberglass 5in x 1/8 Airframe in 0 5 0.125 G10 fiberglass G10 Fiberglass 0 g 0 0
11 Performance Rocketry G10 Bulkplate G10 Fiberglass 5in x 1/8 Coupler in 0 4.85 0.125 G10 fiberglass G10 Fiberglass 0 g 0 0
12 Performance Rocketry G10 Bulkplate G10 Fiberglass 5.5in x 1/8 Airframe in 0 5.375 0.125 G10 fiberglass G10 Fiberglass 0 g 0 0
13 Performance Rocketry G10 Bulkplate G10 Fiberglass 5.5in x 1/8 Coupler in 0 5.225 0.125 G10 fiberglass G10 Fiberglass 0 g 0 0
14 Performance Rocketry G10 Bulkplate G10 Fiberglass 6in x 1/8 Airframe in 0 6 0.125 G10 fiberglass G10 Fiberglass 0 g 0 0
15 Performance Rocketry G10 Bulkplate G10 Fiberglass 6in x 1/8 Coupler in 0 5.775 0.125 G10 fiberglass G10 Fiberglass 0 g 0 0
16 Performance Rocketry G10 Bulkplate G10 Fiberglass 7.5 inx 1/8 Airframe in 0 7.518 0.125 G10 fiberglass G10 Fiberglass 0 g 0 0
17 Performance Rocketry G10 Bulkplate G10 Fiberglass 7.5 inx 1/8 Coupler in 0 7.33 0.125 G10 fiberglass G10 Fiberglass 0 g 0 0
18 Performance Rocketry G10 Bulkplate G10 Fiberglass 8in x 1/8 Airframe in 0 7.815 0.125 G10 fiberglass G10 Fiberglass 0 g 0 0
19 Performance Rocketry G10 Bulkplate G10 Fiberglass 8in x 1/8 Coupler in 0 7.815 0.125 G10 fiberglass G10 Fiberglass 0 g 0 0
20 Performance Rocketry G10 Bulkplate G10 Fiberglass 9in x 1/8 Airframe in 0 9 0.125 G10 fiberglass G10 Fiberglass 0 g 0 0
21 Performance Rocketry G10 Bulkplate G10 Fiberglass 11.5in x 3/16 Airframe in 0 11.42 0.188 G10 fiberglass G10 Fiberglass 0 g 0 0
22 Performance Rocketry Birch Bulkplate Baltic Birch 54mm x 1/16 in 0 2.152 0.0625 Birch 0 g 0 0
23 Performance Rocketry Birch Bulkplate Baltic Birch 2.5in x 1/16 in 0 2.5 0.0625 Birch 0 g 0 0
24 Performance Rocketry Birch Bulkplate Baltic Birch 3in x 3/32 in 0 3 0.094 Birch 0 g 0 0

View File

@ -0,0 +1,7 @@
Material Name,Units,Density,Low,High,Class,Rocketry Use,Body Tubes,Fin Sets,Launch Lugs,Cords,Nose,Chute,Stream,Trans,Ring,Bulkhead,Engine Block,Sleeve,Tube Coupler,spare,spare,spare,spare,spare,spare,spare,Known Dim type,Known Dim Units,Known Dim Value
Birch,lb/ft3,42.5,,,Wood,1,0,1,0,0,1,0,1,1,1,1,1,0,0,,,,,,,,None,0,0
Carbon Fiber,kg/m3,1400,,,,1,1,1,0,0,0,1,0,0,1,1,1,1,1,,,,,,,,None,0,0
Fiberglass,kg/m3,128.147704,,,,1,1,1,0,0,1,0,0,1,1,1,1,1,1,,,,,,,,None,0,0
G10 Fiberglass,lb/ft3,118.94,,,,1,1,1,0,0,1,0,0,0,1,1,1,1,1,,,,,,,,None,0,0
G12 Fiberglass,lb/ft3,118.94,,,,1,1,1,0,0,1,0,0,0,1,1,1,1,1,,,,,,,,None,0,0
Polystyrene PS,lb/ft3,65.5,,,,1,1,1,1,0,1,0,0,1,1,1,1,1,1,,,,,,,,None,0,0
1 Material Name Units Density Low High Class Rocketry Use Body Tubes Fin Sets Launch Lugs Cords Nose Chute Stream Trans Ring Bulkhead Engine Block Sleeve Tube Coupler spare spare spare spare spare spare spare Known Dim type Known Dim Units Known Dim Value
2 Birch lb/ft3 42.5 Wood 1 0 1 0 0 1 0 1 1 1 1 1 0 0 None 0 0
3 Carbon Fiber kg/m3 1400 1 1 1 0 0 0 1 0 0 1 1 1 1 1 None 0 0
4 Fiberglass kg/m3 128.147704 1 1 1 0 0 1 0 0 1 1 1 1 1 1 None 0 0
5 G10 Fiberglass lb/ft3 118.94 1 1 1 0 0 1 0 0 0 1 1 1 1 1 None 0 0
6 G12 Fiberglass lb/ft3 118.94 1 1 1 0 0 1 0 0 0 1 1 1 1 1 None 0 0
7 Polystyrene PS lb/ft3 65.5 1 1 1 1 0 1 0 0 1 1 1 1 1 1 None 0 0

View File

@ -62,15 +62,15 @@ Performance Rocketry,11.5 in,Fiberglass Ogive 3:1,in,38,11.67,0,6,11.42,0.25,ogi
Performance Rocketry,11.5 in,Fiberglass Conical 4:1,in,47.25,11.67,0,6,11.42,0.25,cone,hollow,G10 Fiberglass,,oz,0,0,,,,,,,,,,,,,
Performance Rocketry,11.5 in,Fiberglass Nike Smoke,in,66.5,13.17,0,8,11.42,0.25,cone,hollow,G10 Fiberglass,,oz,0,3,,,,,,,,,,,,,
Performance Rocketry,16.5 in,Fiberglass Nike Smoke 6:1,in,93.5,18.75,0,10,16.25,0.25,cone,hollow,G10 Fiberglass,,oz,0,4.5,,,,,,,,,,,,,
Performance Rocketry,24mm,Graphite Composite Conical 5:1,in,5.5,1.045,0,1.5,0.945,0.125,cone,hollow,Carbon fiber,,oz,0,0,,,,,,,,,,,,,
Performance Rocketry,38mm ,Graphite Composite Conical 5:1,in,8.19,1.645,0,1.52,1.52,0.125,cone,hollow,Carbon fiber,,oz,0,0,,,,,,,,,,,,,
Performance Rocketry,38mm,Graphite Composite Von Karman 5:1,in,8.19,1.645,0,1.52,1.52,0.125,sh,hollow,Carbon fiber,,oz,0,0,,,,,,,,,,,,,
Performance Rocketry,54mm,Graphite Composite Conical 5:1,in,11,2.279,0,2.88,2.154,0.125,cone,hollow,Carbon fiber,,oz,0,0.5,,,,,,,,,,,,,
Performance Rocketry,54mm,Graphite Composite Von Karman 5:1,in,11.5,2.279,0,2.88,2.154,0.125,sh,hollow,Carbon fiber,,oz,0,0,,,,,,,,,,,,,
Performance Rocketry,3 in,Graphite Composite Conical 5:1,in,15.5,3.125,0,3.25,3,0.125,cone,hollow,Carbon fiber,,oz,0,0,,,,,,,,,,,,,
Performance Rocketry,3 in,Graphite Composite Von Karman 5:1,in,15.5,3.125,0,3.25,3,0.125,sh,hollow,Carbon fiber,,oz,0,0,,,,,,,,,,,,,
Performance Rocketry,4 in,Graphite Composite Conical 5:1,in,20.125,4.15,0,4.5,3.9,0.125,cone,hollow,Carbon fiber,,oz,0,0,,,,,,,,,,,,,
Performance Rocketry,4 in,Graphite Composite Von Karman 5:1,in,20.125,4.15,0,4.5,3.9,0.125,sh,hollow,Carbon fiber,,oz,0,0,,,,,,,,,,,,,
Performance Rocketry,5.5 in,Graphite Composite Conical 5:1,in,27.75,5.525,0,6,5.375,0.125,cone,hollow,Carbon fiber,,oz,0,0,,,,,,,,,,,,,
Performance Rocketry,6 in,Graphite Composite Conical 5:1,in,31,6.17,0,6.5,6,0.125,cone,hollow,Carbon fiber,,oz,0,0,,,,,,,,,,,,,
Performance Rocketry,7.5 in,Graphite Composite Conical 5:1,in,39,7.708,0,8,7.518,0.125,cone,hollow,Carbon fiber,,oz,0,0,,,,,,,,,,,,,
Performance Rocketry,24mm,Graphite Composite Conical 5:1,in,5.5,1.045,0,1.5,0.945,0.125,cone,hollow,Carbon Fiber,,oz,0,0,,,,,,,,,,,,,
Performance Rocketry,38mm ,Graphite Composite Conical 5:1,in,8.19,1.645,0,1.52,1.52,0.125,cone,hollow,Carbon Fiber,,oz,0,0,,,,,,,,,,,,,
Performance Rocketry,38mm,Graphite Composite Von Karman 5:1,in,8.19,1.645,0,1.52,1.52,0.125,sh,hollow,Carbon Fiber,,oz,0,0,,,,,,,,,,,,,
Performance Rocketry,54mm,Graphite Composite Conical 5:1,in,11,2.279,0,2.88,2.154,0.125,cone,hollow,Carbon Fiber,,oz,0,0.5,,,,,,,,,,,,,
Performance Rocketry,54mm,Graphite Composite Von Karman 5:1,in,11.5,2.279,0,2.88,2.154,0.125,sh,hollow,Carbon Fiber,,oz,0,0,,,,,,,,,,,,,
Performance Rocketry,3 in,Graphite Composite Conical 5:1,in,15.5,3.125,0,3.25,3,0.125,cone,hollow,Carbon Fiber,,oz,0,0,,,,,,,,,,,,,
Performance Rocketry,3 in,Graphite Composite Von Karman 5:1,in,15.5,3.125,0,3.25,3,0.125,sh,hollow,Carbon Fiber,,oz,0,0,,,,,,,,,,,,,
Performance Rocketry,4 in,Graphite Composite Conical 5:1,in,20.125,4.15,0,4.5,3.9,0.125,cone,hollow,Carbon Fiber,,oz,0,0,,,,,,,,,,,,,
Performance Rocketry,4 in,Graphite Composite Von Karman 5:1,in,20.125,4.15,0,4.5,3.9,0.125,sh,hollow,Carbon Fiber,,oz,0,0,,,,,,,,,,,,,
Performance Rocketry,5.5 in,Graphite Composite Conical 5:1,in,27.75,5.525,0,6,5.375,0.125,cone,hollow,Carbon Fiber,,oz,0,0,,,,,,,,,,,,,
Performance Rocketry,6 in,Graphite Composite Conical 5:1,in,31,6.17,0,6.5,6,0.125,cone,hollow,Carbon Fiber,,oz,0,0,,,,,,,,,,,,,
Performance Rocketry,7.5 in,Graphite Composite Conical 5:1,in,39,7.708,0,8,7.518,0.125,cone,hollow,Carbon Fiber,,oz,0,0,,,,,,,,,,,,,

1 Mfg. Part No. Desc. Units Length Outer Dia L/D Ratio Insert Length Insert OD Thickness Shape Config Material CG Loc Mass Units Mass Base Ext. Len Base Ext. Len Base Ext. Len Base Ext. Len Base Ext. Len Base Ext. Len Base Ext. Len Base Ext. Len Base Ext. Len Base Ext. Len Base Ext. Len Base Ext. Len Base Ext. Len Base Ext. Len
62 Performance Rocketry 11.5 in Fiberglass Conical 4:1 in 47.25 11.67 0 6 11.42 0.25 cone hollow G10 Fiberglass oz 0 0
63 Performance Rocketry 11.5 in Fiberglass Nike Smoke in 66.5 13.17 0 8 11.42 0.25 cone hollow G10 Fiberglass oz 0 3
64 Performance Rocketry 16.5 in Fiberglass Nike Smoke 6:1 in 93.5 18.75 0 10 16.25 0.25 cone hollow G10 Fiberglass oz 0 4.5
65 Performance Rocketry 24mm Graphite Composite Conical 5:1 in 5.5 1.045 0 1.5 0.945 0.125 cone hollow Carbon fiber Carbon Fiber oz 0 0
66 Performance Rocketry 38mm Graphite Composite Conical 5:1 in 8.19 1.645 0 1.52 1.52 0.125 cone hollow Carbon fiber Carbon Fiber oz 0 0
67 Performance Rocketry 38mm Graphite Composite Von Karman 5:1 in 8.19 1.645 0 1.52 1.52 0.125 sh hollow Carbon fiber Carbon Fiber oz 0 0
68 Performance Rocketry 54mm Graphite Composite Conical 5:1 in 11 2.279 0 2.88 2.154 0.125 cone hollow Carbon fiber Carbon Fiber oz 0 0.5
69 Performance Rocketry 54mm Graphite Composite Von Karman 5:1 in 11.5 2.279 0 2.88 2.154 0.125 sh hollow Carbon fiber Carbon Fiber oz 0 0
70 Performance Rocketry 3 in Graphite Composite Conical 5:1 in 15.5 3.125 0 3.25 3 0.125 cone hollow Carbon fiber Carbon Fiber oz 0 0
71 Performance Rocketry 3 in Graphite Composite Von Karman 5:1 in 15.5 3.125 0 3.25 3 0.125 sh hollow Carbon fiber Carbon Fiber oz 0 0
72 Performance Rocketry 4 in Graphite Composite Conical 5:1 in 20.125 4.15 0 4.5 3.9 0.125 cone hollow Carbon fiber Carbon Fiber oz 0 0
73 Performance Rocketry 4 in Graphite Composite Von Karman 5:1 in 20.125 4.15 0 4.5 3.9 0.125 sh hollow Carbon fiber Carbon Fiber oz 0 0
74 Performance Rocketry 5.5 in Graphite Composite Conical 5:1 in 27.75 5.525 0 6 5.375 0.125 cone hollow Carbon fiber Carbon Fiber oz 0 0
75 Performance Rocketry 6 in Graphite Composite Conical 5:1 in 31 6.17 0 6.5 6 0.125 cone hollow Carbon fiber Carbon Fiber oz 0 0
76 Performance Rocketry 7.5 in Graphite Composite Conical 5:1 in 39 7.708 0 8 7.518 0.125 cone hollow Carbon fiber Carbon Fiber oz 0 0

View File

@ -22,28 +22,28 @@ Performance Rocketry,Std. G10 Fiberglass Coupler,8 Inch Coupler/16in,in,7.518,7.
Performance Rocketry,Std. G10 Fiberglass Coupler,8.25 Inch Coupler/16in,in,7.815,7.998,16,G10 Fiberglass,8,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,Std. G10 Fiberglass Coupler,9 Inch Coupler/16in,in,8.75,8.998,16,G10 Fiberglass,8,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,Std. G10 Fiberglass Coupler,11.5 Inch Coupler/24in,in,11.15,11.415,24,G10 Fiberglass,12,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,.94in Coupler/4in,in,0.75,0.943,4,G12 Fiberglass Filament Wound,2,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,1.14in Coupler/4in,in,1,1.143,4,G12 Fiberglass Filament Wound,2,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,1.52in Coupler/4in,in,1.37,1.518,4,G12 Fiberglass Filament Wound,2,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,2.15in Coupler/6in,in,2,2.15,6,G12 Fiberglass Filament Wound,3,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,2.15in Coupler Long/8in,in,2,2.15,8,G12 Fiberglass Filament Wound,4,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,2.5 Inch Coupler/6in,in,2.375,2.558,6,G12 Fiberglass Filament Wound,3,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,3 Inch Coupler/6in,in,2.875,2.998,6,G12 Fiberglass Filament Wound,3,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,3 Inch Coupler Long/9in,in,2.875,2.998,9,G12 Fiberglass Filament Wound,4.5,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,3.5 Inch Coupler/8in,in,3.25,3.398,8,G12 Fiberglass Filament Wound,4,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,4 Inch Coupler/9in,in,3.755,3.898,9,G12 Fiberglass Filament Wound,4.5,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,4 Inch Coupler Long/12in,in,3.755,3.898,12,G12 Fiberglass Filament Wound,6,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,4.1 Inch Coupler/9in,in,3.9,3.998,9,G12 Fiberglass Filament Wound,4.5,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,4.5 Inch Coupler/9in,in,4.25,4.373,9,G12 Fiberglass Filament Wound,4.5,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,5 Inch Coupler/12in,in,4.815,4.998,12,G12 Fiberglass Filament Wound,6,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,5 Inch Coupler Long/12in,in,4.815,4.998,12,G12 Fiberglass Filament Wound,6,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,5.5 Inch Coupler/12in,in,5.18,5.373,12,G12 Fiberglass Filament Wound,6,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,6 Inch Coupler/12in,in,5.775,5.998,12,G12 Fiberglass Filament Wound,6,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,6 Inch Coupler Long/18in,in,5.775,5.998,18,G12 Fiberglass Filament Wound,9,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,7 Inch Coupler/16in,in,6.5,6.808,16,G12 Fiberglass Filament Wound,8,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,7.5 Inch Coupler/16in,in,7.33,7.516,16,G12 Fiberglass Filament Wound,8,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,8 Inch Coupler/16in,in,7.518,7.813,16,G12 Fiberglass Filament Wound,8,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,8.25 Inch Coupler/16in,in,7.815,7.998,16,G12 Fiberglass Filament Wound,8,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,.94in Coupler/4in,in,0.75,0.943,4,G12 Fiberglass,2,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,1.14in Coupler/4in,in,1,1.143,4,G12 Fiberglass,2,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,1.52in Coupler/4in,in,1.37,1.518,4,G12 Fiberglass,2,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,2.15in Coupler/6in,in,2,2.15,6,G12 Fiberglass,3,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,2.15in Coupler Long/8in,in,2,2.15,8,G12 Fiberglass,4,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,2.5 Inch Coupler/6in,in,2.375,2.558,6,G12 Fiberglass,3,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,3 Inch Coupler/6in,in,2.875,2.998,6,G12 Fiberglass,3,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,3 Inch Coupler Long/9in,in,2.875,2.998,9,G12 Fiberglass,4.5,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,3.5 Inch Coupler/8in,in,3.25,3.398,8,G12 Fiberglass,4,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,4 Inch Coupler/9in,in,3.755,3.898,9,G12 Fiberglass,4.5,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,4 Inch Coupler Long/12in,in,3.755,3.898,12,G12 Fiberglass,6,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,4.1 Inch Coupler/9in,in,3.9,3.998,9,G12 Fiberglass,4.5,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,4.5 Inch Coupler/9in,in,4.25,4.373,9,G12 Fiberglass,4.5,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,5 Inch Coupler/12in,in,4.815,4.998,12,G12 Fiberglass,6,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,5 Inch Coupler Long/12in,in,4.815,4.998,12,G12 Fiberglass,6,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,5.5 Inch Coupler/12in,in,5.18,5.373,12,G12 Fiberglass,6,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,6 Inch Coupler/12in,in,5.775,5.998,12,G12 Fiberglass,6,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,6 Inch Coupler Long/18in,in,5.775,5.998,18,G12 Fiberglass,9,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,7 Inch Coupler/16in,in,6.5,6.808,16,G12 Fiberglass,8,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,7.5 Inch Coupler/16in,in,7.33,7.516,16,G12 Fiberglass,8,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,8 Inch Coupler/16in,in,7.518,7.813,16,G12 Fiberglass,8,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,G12 Fiberglass FW Coupler,8.25 Inch Coupler/16in,in,7.815,7.998,16,G12 Fiberglass,8,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,Carbon Fiber FW Coupler,.94in Coupler/4in,in,0.75,0.943,4,Carbon Fiber,2,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,Carbon Fiber FW Coupler,1.14in Coupler/4in,in,1,1.143,4,Carbon Fiber,2,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Performance Rocketry,Carbon Fiber FW Coupler,1.52in Coupler/4in,in,1.37,1.518,4,Carbon Fiber,2,oz,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

1 Mfg. Part No. Desc. Units ID OD Length Material CG Mass Units Mass AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize AutoSize
22 Performance Rocketry Std. G10 Fiberglass Coupler 8.25 Inch Coupler/16in in 7.815 7.998 16 G10 Fiberglass 8 oz 0 0
23 Performance Rocketry Std. G10 Fiberglass Coupler 9 Inch Coupler/16in in 8.75 8.998 16 G10 Fiberglass 8 oz 0 0
24 Performance Rocketry Std. G10 Fiberglass Coupler 11.5 Inch Coupler/24in in 11.15 11.415 24 G10 Fiberglass 12 oz 0 0
25 Performance Rocketry G12 Fiberglass FW Coupler .94in Coupler/4in in 0.75 0.943 4 G12 Fiberglass Filament Wound G12 Fiberglass 2 oz 0 0
26 Performance Rocketry G12 Fiberglass FW Coupler 1.14in Coupler/4in in 1 1.143 4 G12 Fiberglass Filament Wound G12 Fiberglass 2 oz 0 0
27 Performance Rocketry G12 Fiberglass FW Coupler 1.52in Coupler/4in in 1.37 1.518 4 G12 Fiberglass Filament Wound G12 Fiberglass 2 oz 0 0
28 Performance Rocketry G12 Fiberglass FW Coupler 2.15in Coupler/6in in 2 2.15 6 G12 Fiberglass Filament Wound G12 Fiberglass 3 oz 0 0
29 Performance Rocketry G12 Fiberglass FW Coupler 2.15in Coupler Long/8in in 2 2.15 8 G12 Fiberglass Filament Wound G12 Fiberglass 4 oz 0 0
30 Performance Rocketry G12 Fiberglass FW Coupler 2.5 Inch Coupler/6in in 2.375 2.558 6 G12 Fiberglass Filament Wound G12 Fiberglass 3 oz 0 0
31 Performance Rocketry G12 Fiberglass FW Coupler 3 Inch Coupler/6in in 2.875 2.998 6 G12 Fiberglass Filament Wound G12 Fiberglass 3 oz 0 0
32 Performance Rocketry G12 Fiberglass FW Coupler 3 Inch Coupler Long/9in in 2.875 2.998 9 G12 Fiberglass Filament Wound G12 Fiberglass 4.5 oz 0 0
33 Performance Rocketry G12 Fiberglass FW Coupler 3.5 Inch Coupler/8in in 3.25 3.398 8 G12 Fiberglass Filament Wound G12 Fiberglass 4 oz 0 0
34 Performance Rocketry G12 Fiberglass FW Coupler 4 Inch Coupler/9in in 3.755 3.898 9 G12 Fiberglass Filament Wound G12 Fiberglass 4.5 oz 0 0
35 Performance Rocketry G12 Fiberglass FW Coupler 4 Inch Coupler Long/12in in 3.755 3.898 12 G12 Fiberglass Filament Wound G12 Fiberglass 6 oz 0 0
36 Performance Rocketry G12 Fiberglass FW Coupler 4.1 Inch Coupler/9in in 3.9 3.998 9 G12 Fiberglass Filament Wound G12 Fiberglass 4.5 oz 0 0
37 Performance Rocketry G12 Fiberglass FW Coupler 4.5 Inch Coupler/9in in 4.25 4.373 9 G12 Fiberglass Filament Wound G12 Fiberglass 4.5 oz 0 0
38 Performance Rocketry G12 Fiberglass FW Coupler 5 Inch Coupler/12in in 4.815 4.998 12 G12 Fiberglass Filament Wound G12 Fiberglass 6 oz 0 0
39 Performance Rocketry G12 Fiberglass FW Coupler 5 Inch Coupler Long/12in in 4.815 4.998 12 G12 Fiberglass Filament Wound G12 Fiberglass 6 oz 0 0
40 Performance Rocketry G12 Fiberglass FW Coupler 5.5 Inch Coupler/12in in 5.18 5.373 12 G12 Fiberglass Filament Wound G12 Fiberglass 6 oz 0 0
41 Performance Rocketry G12 Fiberglass FW Coupler 6 Inch Coupler/12in in 5.775 5.998 12 G12 Fiberglass Filament Wound G12 Fiberglass 6 oz 0 0
42 Performance Rocketry G12 Fiberglass FW Coupler 6 Inch Coupler Long/18in in 5.775 5.998 18 G12 Fiberglass Filament Wound G12 Fiberglass 9 oz 0 0
43 Performance Rocketry G12 Fiberglass FW Coupler 7 Inch Coupler/16in in 6.5 6.808 16 G12 Fiberglass Filament Wound G12 Fiberglass 8 oz 0 0
44 Performance Rocketry G12 Fiberglass FW Coupler 7.5 Inch Coupler/16in in 7.33 7.516 16 G12 Fiberglass Filament Wound G12 Fiberglass 8 oz 0 0
45 Performance Rocketry G12 Fiberglass FW Coupler 8 Inch Coupler/16in in 7.518 7.813 16 G12 Fiberglass Filament Wound G12 Fiberglass 8 oz 0 0
46 Performance Rocketry G12 Fiberglass FW Coupler 8.25 Inch Coupler/16in in 7.815 7.998 16 G12 Fiberglass Filament Wound G12 Fiberglass 8 oz 0 0
47 Performance Rocketry Carbon Fiber FW Coupler .94in Coupler/4in in 0.75 0.943 4 Carbon Fiber 2 oz 0 0
48 Performance Rocketry Carbon Fiber FW Coupler 1.14in Coupler/4in in 1 1.143 4 Carbon Fiber 2 oz 0 0
49 Performance Rocketry Carbon Fiber FW Coupler 1.52in Coupler/4in in 1.37 1.518 4 Carbon Fiber 2 oz 0 0

View File

@ -14,6 +14,7 @@ Copper (rolled),lb/ft3,556.,556.,556.,unknown,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,
Cork (Solid),lb/ft3,15,15,15,Wood,y,n,n,n,n,y,n,n,n,n,y,y,n,n,n,n,n,n,n,n,n,n,n,n
Cottonwood,lb/ft3,25,25,25,Wood,n,y,y,y,n,y,y,y,y,y,y,y,y,y,n,n,n,n,n,n,n,n,n,n
Epoxy,lb/ft3,78.3,78.3,78.3,Plastic,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n
Fiberglass,kg/m3,128.147704,n,n,n,1,1,1,0,0,1,0,0,1,1,1,1,1,1,n,n,n,n,n,n,n,None,0,0
Fir (Douglas),lb/ft3,35,35,35,Wood,y,n,y,n,n,y,n,n,y,y,y,y,n,n,n,n,n,n,n,n,n,n,n,n
Fir (White),lb/ft3,25,25,25,Wood,y,n,y,n,n,y,n,n,y,y,y,y,n,n,n,n,n,n,n,n,n,n,n,n
G10 fiberglass,lb/ft3,118.94,118.27,118.61,Plastic,y,n,y,n,n,n,n,n,n,y,y,y,n,n,n,n,n,n,n,n,n,n,n,n

1 Material Name Units Density Low High Class Rocketry Use Body Tubes Fin Sets Launch Lugs Cords Nose Chute Stream Trans Ring Bulkhead Engine Block Sleeve Tube Coupler spare spare spare spare spare spare spare spare spare spare
14 Cork (Solid) lb/ft3 15 15 15 Wood y n n n n y n n n n y y n n n n n n n n n n n n
15 Cottonwood lb/ft3 25 25 25 Wood n y y y n y y y y y y y y y n n n n n n n n n n
16 Epoxy lb/ft3 78.3 78.3 78.3 Plastic n n n n n n n n n n n n n n n n n n n n n n n n
17 Fiberglass kg/m3 128.147704 n n n 1 1 1 0 0 1 0 0 1 1 1 1 1 1 n n n n n n n None 0 0
18 Fir (Douglas) lb/ft3 35 35 35 Wood y n y n n y n n y y y y n n n n n n n n n n n n
19 Fir (White) lb/ft3 25 25 25 Wood y n y n n y n n y y y y n n n n n n n n n n n n
20 G10 fiberglass lb/ft3 118.94 118.27 118.61 Plastic y n y n n n n n n y y y n n n n n n n n n n n n

View File

@ -0,0 +1,7 @@
Material Name,Units,Density,Low,High,Class,Rocketry Use,Body Tubes,Fin Sets,Launch Lugs,Cords,Nose,Chute,Stream,Trans,Ring,Bulkhead,Engine Block,Sleeve,Tube Coupler,spare,spare,spare,spare,spare,spare,spare,Known Dim type,Known Dim Units,Known Dim Value
Balsa,lb/ft3,8,,,Wood,1,1,1,0,0,1,0,0,1,1,1,1,0,0,,,,,,,,None,0,0
Polycarbonate,lb/ft3,74.9,,,,1,1,1,1,0,1,0,0,1,1,1,1,1,1,,,,,,,,None,0,0
Spiral/Glassine,lb/ft3,53,,,,1,1,1,1,0,1,0,0,1,1,1,1,1,1,,,,,,,,None,0,0
Fiber,lb/ft3,41,,,,1,0,0,0,0,0,0,0,0,1,1,0,0,0,,,,,,,,None,0,0
lite ply,lb/ft3,22,,,Composite,1,0,1,0,0,0,0,0,0,1,1,1,0,0,,,,,,,,None,0,0
Paper,lb/ft3,70,,,,1,1,1,1,0,1,0,1,1,1,1,1,1,1,,,,,,,,None,0,0
1 Material Name Units Density Low High Class Rocketry Use Body Tubes Fin Sets Launch Lugs Cords Nose Chute Stream Trans Ring Bulkhead Engine Block Sleeve Tube Coupler spare spare spare spare spare spare spare Known Dim type Known Dim Units Known Dim Value
2 Balsa lb/ft3 8 Wood 1 1 1 0 0 1 0 0 1 1 1 1 0 0 None 0 0
3 Polycarbonate lb/ft3 74.9 1 1 1 1 0 1 0 0 1 1 1 1 1 1 None 0 0
4 Spiral/Glassine lb/ft3 53 1 1 1 1 0 1 0 0 1 1 1 1 1 1 None 0 0
5 Fiber lb/ft3 41 1 0 0 0 0 0 0 0 0 1 1 0 0 0 None 0 0
6 lite ply lb/ft3 22 Composite 1 0 1 0 0 0 0 0 0 1 1 1 0 0 None 0 0
7 Paper lb/ft3 70 1 1 1 1 0 1 0 1 1 1 1 1 1 1 None 0 0

View File

@ -22,6 +22,16 @@ public class ColumnDefinition<T> {
}
}
public void setProperty(TypedPropertyMap preset, T value) {
if (value != null) {
preset.put(key, value);
}
}
public TypedKey<T> getKey() {
return key;
}
private static Object parseFromString( Class<?> type, String value ) {
if ( type.equals(Manufacturer.class)) {
Manufacturer m = Manufacturer.getManufacturer(value);
@ -35,7 +45,12 @@ public class ColumnDefinition<T> {
return Boolean.parseBoolean(value);
}
if ( type.isAssignableFrom(Double.class) ) {
return Double.parseDouble(value);
try {
return Double.parseDouble(value);
}
catch (NumberFormatException nfe) {
return 0d;
}
}
if ( type.equals(String.class ) ) {
return value;
@ -85,7 +100,7 @@ public class ColumnDefinition<T> {
}
throw new IllegalArgumentException("Invalid type " + type.getName() + " for component preset parameter." );
}
private static Material getMaterialFor( String translatedName ) {
Material material;
material = Databases.findMaterial(Material.Type.BULK, translatedName);

View File

@ -5,38 +5,57 @@ package net.sf.openrocket.file.rocksim;
import net.sf.openrocket.rocketcomponent.Transition;
import java.util.HashSet;
import java.util.Set;
/**
* Models the nose cone shape of a rocket. Maps from Rocksim's notion to OpenRocket's.
*/
public enum RocksimNoseConeCode {
CONICAL (0, Transition.Shape.CONICAL),
OGIVE (1, Transition.Shape.OGIVE),
PARABOLIC (2, Transition.Shape.ELLIPSOID), //Rocksim' PARABOLIC most closely resembles an ELLIPSOID in OpenRocket
ELLIPTICAL (3, Transition.Shape.ELLIPSOID),
POWER_SERIES (4, Transition.Shape.POWER),
CONICAL(0, Transition.Shape.CONICAL, "Conic", "Cone"),
OGIVE(1, Transition.Shape.OGIVE),
PARABOLIC(2, Transition.Shape.ELLIPSOID), //Rocksim' PARABOLIC most closely resembles an ELLIPSOID in OpenRocket
ELLIPTICAL(3, Transition.Shape.ELLIPSOID),
POWER_SERIES(4, Transition.Shape.POWER),
PARABOLIC_SERIES(5, Transition.Shape.PARABOLIC),
HAACK (6, Transition.Shape.HAACK);
HAACK(6, Transition.Shape.HAACK);
/** The Rocksim enumeration value. Sent in XML. */
/**
* The Rocksim enumeration value. Sent in XML.
*/
private final int ordinal;
/** The corresponding OpenRocket shape. */
/**
* The corresponding OpenRocket shape.
*/
private final Transition.Shape shape;
/**
* Constructor.
*
* @param idx the Rocksim shape code
* @param aShape the corresponding OpenRocket shape
* Names of the shape that are sometimes found in NCDATA.CSV
*/
private RocksimNoseConeCode(int idx, Transition.Shape aShape) {
private Set<String> shapeNames = new HashSet<String>();
/**
* Constructor.
*
* @param idx the Rocksim shape code
* @param aShape the corresponding OpenRocket shape
* @param theShapeNames an array of alternate names
*/
private RocksimNoseConeCode(int idx, Transition.Shape aShape, String... theShapeNames) {
ordinal = idx;
shape = aShape;
shapeNames.add(this.name().toLowerCase());
if (theShapeNames != null) {
for (String theShapeName : theShapeNames) {
shapeNames.add(theShapeName.toLowerCase());
}
}
}
/**
* Get the OpenRocket shape that corresponds to the Rocksim shape.
*
*
* @return a shape
*/
public Transition.Shape asOpenRocket() {
@ -45,8 +64,8 @@ public enum RocksimNoseConeCode {
/**
* Lookup an instance of this enum based upon the Rocksim code.
*
* @param rocksimShapeCode the Rocksim code (from XML)
*
* @param rocksimShapeCode the Rocksim code (from XML)
* @return an instance of this enum
*/
public static RocksimNoseConeCode fromCode(int rocksimShapeCode) {
@ -61,9 +80,8 @@ public enum RocksimNoseConeCode {
/**
* Lookup an ordinal value for the Rocksim code.
*
* @param type the OR Shape
*
*
* @param type the OR Shape
* @return the Rocksim code
*/
public static int toCode(Transition.Shape type) {
@ -78,4 +96,36 @@ public enum RocksimNoseConeCode {
}
return ELLIPTICAL.ordinal; //Default
}
/**
* Given the name of a shape, map it into an instance of this enum.
*
* @param theName the name of the shape; case does not matter
* @return the corresponding enum instance; defaults to PARABOLIC if not found.
*/
public static RocksimNoseConeCode fromShapeName(String theName) {
RocksimNoseConeCode[] values = values();
for (RocksimNoseConeCode value : values) {
if (value.shapeNames.contains(theName.toLowerCase())) {
return value;
}
}
return PARABOLIC; //Default
}
/**
* Convenience method that determines if the parameter is an integer that refers to a shape code, or the name
* of the shape itself. This basically combines fromCode and fromShapeName into one method.
*
* @param nameOrOrdinalString the shape number or shape name
* @return an instance of this enum; defaults to PARABOLIC if not found
*/
public static RocksimNoseConeCode fromShapeNameOrCode(String nameOrOrdinalString) {
try {
return fromCode(Integer.parseInt(nameOrOrdinalString));
}
catch (NumberFormatException nfe) {
return fromShapeName(nameOrOrdinalString);
}
}
}

View File

@ -1,5 +1,13 @@
package net.sf.openrocket.preset;
import net.sf.openrocket.material.Material;
import net.sf.openrocket.motor.Manufacturer;
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;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.security.MessageDigest;
@ -11,21 +19,13 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.openrocket.material.Material;
import net.sf.openrocket.motor.Manufacturer;
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;
/**
* A model for a preset component.
* <p>
* A preset component contains a component class type, manufacturer information,
* part information, and a method that returns a prototype of the preset component.
*
*
* @author Sampo Niskanen <sampo.niskanen@iki.fi>
*/
// FIXME - Implement clone.
@ -44,7 +44,7 @@ public class ComponentPreset implements Comparable<ComponentPreset> {
ComponentPreset.INNER_DIAMETER,
ComponentPreset.OUTER_DIAMETER,
ComponentPreset.LENGTH} ),
NOSE_CONE( new TypedKey<?>[] {
ComponentPreset.MANUFACTURER,
ComponentPreset.PARTNO,
@ -60,16 +60,20 @@ public class ComponentPreset implements Comparable<ComponentPreset> {
ComponentPreset.DESCRIPTION,
ComponentPreset.SHAPE,
ComponentPreset.FORE_OUTER_DIAMETER,
ComponentPreset.OUTER_DIAMETER,
ComponentPreset.FORE_SHOULDER_DIAMETER,
ComponentPreset.FORE_SHOULDER_LENGTH,
ComponentPreset.AFT_OUTER_DIAMETER,
ComponentPreset.AFT_SHOULDER_DIAMETER,
ComponentPreset.AFT_SHOULDER_LENGTH,
ComponentPreset.LENGTH} ),
TUBE_COUPLER( new TypedKey<?>[] {
ComponentPreset.MANUFACTURER,
ComponentPreset.PARTNO,
ComponentPreset.OUTER_DIAMETER,
ComponentPreset.INNER_DIAMETER,
ComponentPreset.LENGTH} ),
BULK_HEAD( new TypedKey<?>[] {
ComponentPreset.MANUFACTURER,
ComponentPreset.PARTNO,
@ -106,7 +110,7 @@ public class ComponentPreset implements Comparable<ComponentPreset> {
public TypedKey<?>[] getDisplayedColumns() {
return displayedColumns;
}
private static Map<Type,List<Type>> compatibleTypeMap = new HashMap<Type,List<Type>>();
static {
@ -115,7 +119,7 @@ public class ComponentPreset implements Comparable<ComponentPreset> {
compatibleTypeMap.put( CENTERING_RING, Arrays.asList( CENTERING_RING, ENGINE_BLOCK ) );
compatibleTypeMap.put( NOSE_CONE, Arrays.asList( NOSE_CONE, TRANSITION));
}
}
public final static TypedKey<Manufacturer> MANUFACTURER = new TypedKey<Manufacturer>("Manufacturer", Manufacturer.class);
@ -130,6 +134,9 @@ public class ComponentPreset implements Comparable<ComponentPreset> {
public final static TypedKey<Double> FORE_SHOULDER_LENGTH = new TypedKey<Double>("ForeShoulderLength",Double.class, UnitGroup.UNITS_LENGTH);
public final static TypedKey<Double> FORE_SHOULDER_DIAMETER = new TypedKey<Double>("ForeShoulderDiameter",Double.class, UnitGroup.UNITS_LENGTH);
public final static TypedKey<Double> FORE_OUTER_DIAMETER = new TypedKey<Double>("ForeOuterDiameter", Double.class, UnitGroup.UNITS_LENGTH);
public final static TypedKey<Double> AFT_SHOULDER_LENGTH = new TypedKey<Double>("AftShoulderLength",Double.class, UnitGroup.UNITS_LENGTH);
public final static TypedKey<Double> AFT_SHOULDER_DIAMETER = new TypedKey<Double>("AftShoulderDiameter",Double.class, UnitGroup.UNITS_LENGTH);
public final static TypedKey<Double> AFT_OUTER_DIAMETER = new TypedKey<Double>("AftOuterDiameter", 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);
@ -177,15 +184,15 @@ public class ComponentPreset implements Comparable<ComponentPreset> {
FINISH,
MATERIAL
);
// package scope constructor to encourage use of factory.
ComponentPreset() {
}
/**
* Convenience method to retrieve the Type of this ComponentPreset.
*
*
* @return
*/
public Type getType() {
@ -235,7 +242,7 @@ public class ComponentPreset implements Comparable<ComponentPreset> {
<T> void put( TypedKey<T> key, T value ) {
properties.put(key, value);
}
public <T> T get(TypedKey<T> key) {
T value = properties.get(key);
if (value == null) {
@ -328,6 +335,7 @@ public class ComponentPreset implements Comparable<ComponentPreset> {
digest = TextUtil.hexString(md5.digest( bos.toByteArray() ));
}
catch ( Exception e ) {
e.printStackTrace();
throw new BugException(e);
}
}

View File

@ -0,0 +1,570 @@
package net.sf.openrocket.preset.loader;
import au.com.bytecode.opencsv.CSVReader;
import net.sf.openrocket.database.Databases;
import net.sf.openrocket.file.preset.ColumnDefinition;
import net.sf.openrocket.file.rocksim.RocksimNoseConeCode;
import net.sf.openrocket.gui.print.PrintUnit;
import net.sf.openrocket.gui.util.SwingPreferences;
import net.sf.openrocket.material.Material;
import net.sf.openrocket.preset.ComponentPreset;
import net.sf.openrocket.preset.ComponentPresetFactory;
import net.sf.openrocket.preset.InvalidComponentPresetException;
import net.sf.openrocket.preset.TypedKey;
import net.sf.openrocket.preset.TypedPropertyMap;
import net.sf.openrocket.startup.Application;
import net.sf.openrocket.unit.UnitGroup;
import net.sf.openrocket.util.ArrayList;
import net.sf.openrocket.util.BugException;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* Primary entry point for parsing component CSV files that are in Rocksim format.
*/
public class RocksimComponentFileLoader {
/**
* Common unit of measure key. Rocksim format allows different types of units.
*/
public final static TypedKey<String> UNITS_OF_MEASURE = new TypedKey<String>("Units", String.class);
public static List<String[]> load(RocksimComponentFileType type) {
return load(RocksimComponentFileLoader.class.getResourceAsStream("/performancerocketry/" + type.getDefaultFileName()));
}
public static List<String[]> load(File file) throws FileNotFoundException {
return load(new FileInputStream(file));
}
public static List<String[]> load(InputStream is) {
if (is == null) {
return new ArrayList<String[]>();
}
InputStreamReader r = null;
try {
r = new InputStreamReader(is);
// Create the CSV reader. Use comma separator.
CSVReader reader = new CSVReader(r, ',', '\'', '\\');
//Read and throw away the header row.
reader.readNext();
//Read the rest of the file as data rows.
return reader.readAll();
}
catch (IOException e) {
}
finally {
if (r != null) {
try {
r.close();
}
catch (IOException e) {
}
}
}
return new ArrayList<String[]>();
}
/**
* Rocksim CSV units are either inches or mm. A value of 0 or "in." indicate inches. A value of 1 or "mm" indicate
* millimeters.
*
* @param units the value from the file
* @return true if it's inches
*/
private static boolean isInches(String units) {
String tmp = units.trim().toLowerCase();
return "0".equals(tmp) || tmp.startsWith("in");
}
/**
* Convert inches or millimeters to meters.
*
* @param units a Rocksim CSV string representing the kind of units.
* @param value the original value within the CSV file
* @return the value in meters
*/
private static double convertLength(String units, double value) {
if (isInches(units)) {
return PrintUnit.INCHES.toMeters(value);
}
else {
return PrintUnit.MILLIMETERS.toMeters(value);
}
}
/**
* Remove all occurrences of the given character. Note: this is done because some manufacturers embed double
* quotes in their descriptions or material names. Those are stripped away because they cause all sorts of
* matching/lookup issues.
*
* @param target the target string to be operated upon
* @param toBeRemoved the character to remove
* @return target, minus every occurrence of toBeRemoved
*/
private static String stripAll(String target, Character toBeRemoved) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < target.length(); i++) {
Character c = target.charAt(i);
if (!c.equals(toBeRemoved)) {
sb.append(c);
}
}
return sb.toString();
}
/**
* Convert all words in a given string to Camel Case (first letter capitalized). Words are assumed to be
* separated by a space. Note: this is done because some manufacturers define their material name in Camel Case
* but the component part references the material in lower case. That causes matching/lookup issues that's
* easiest handled this way (rather than converting everything to lower case.
*
* @param target the target string to be operated upon
* @return target, with the first letter of each word in uppercase
*/
private static String toCamelCase(String target) {
StringBuilder sb = new StringBuilder();
String[] t = target.split("[ ]");
if (t != null && t.length > 0) {
for (int i = 0; i < t.length; i++) {
String s = t[i];
s = s.substring(0, 1).toUpperCase() + s.substring(1).toLowerCase();
sb.append(s).append(" ");
}
return sb.toString().trim();
}
else {
return target;
}
}
private static Collection<ComponentPreset> commonLoader(final List<String[]> theData,
final List<TypedKey<?>> keyMap,
final Map<String, Material> materialMap,
final ComponentPreset.Type type) {
Collection<ComponentPreset> result = new ArrayList<ComponentPreset>();
List<TypedPropertyMap> templates = new java.util.ArrayList<TypedPropertyMap>();
Set<String> favorites = Application.getPreferences().getComponentFavorites();
Integer uom = null;
ColumnDefinition[] columns = new ColumnDefinition[keyMap.size()];
for (int i = 0; i < keyMap.size(); i++) {
TypedKey key = keyMap.get(i);
if (key != null) {
columns[i] = new ColumnDefinition(key);
}
if (key.getName().equals("Units")) {
uom = i;
}
}
for (int i = 0; i < theData.size(); i++) {
String[] item = theData.get(i);
TypedPropertyMap preset = new TypedPropertyMap();
for (int j = 0; j < columns.length; j++) {
if (j < item.length) {
String value = item[j];
if (value == null) {
continue;
}
value = value.trim();
value = stripAll(value, '"');
if (value.length() == 0) {
continue;
}
final TypedKey typedKey = columns[j].getKey();
if (typedKey.equals(ComponentPreset.MATERIAL)) {
preset.put(ComponentPreset.MATERIAL, materialMap.get(value));
}
else if (typedKey.equals(ComponentPreset.SHAPE)) {
preset.put(ComponentPreset.SHAPE, RocksimNoseConeCode.fromShapeNameOrCode(value).asOpenRocket());
}
else {
final UnitGroup unitGroup = typedKey.getUnitGroup();
if (unitGroup != null && unitGroup.equals(UnitGroup.UNITS_LENGTH)) {
columns[j].setProperty(preset, convertLength(item[uom], Double.valueOf(value)));
}
else {
columns[j].setProperty(preset, value);
}
}
}
}
preset.put(ComponentPreset.TYPE, type);
templates.add(preset);
}
for (TypedPropertyMap o : templates) {
try {
ComponentPreset preset = ComponentPresetFactory.create(o);
if (favorites.contains(preset.preferenceKey())) {
preset.setFavorite(true);
}
result.add(preset);
}
catch (InvalidComponentPresetException ex) {
throw new BugException(ex);
}
}
return result;
}
static class BodyTubeLoader {
private final static int MFG_INDEX = 0;
private final static int PART_NO_INDEX = 1;
private final static int DESCRIPTION_INDEX = 2;
private final static int UNITS_INDEX = 3;
private final static int ID_INDEX = 4;
private final static int OD_INDEX = 5;
private final static int LENGTH_INDEX = 6;
private final static int MATERIAL_INDEX = 7;
public final static List<TypedKey<?>> keyMap = new ArrayList<TypedKey<?>>(8);
static {
keyMap.add(MFG_INDEX, ComponentPreset.MANUFACTURER);
keyMap.add(PART_NO_INDEX, ComponentPreset.PARTNO);
keyMap.add(DESCRIPTION_INDEX, ComponentPreset.DESCRIPTION);
keyMap.add(UNITS_INDEX, UNITS_OF_MEASURE);
keyMap.add(ID_INDEX, ComponentPreset.INNER_DIAMETER);
keyMap.add(OD_INDEX, ComponentPreset.OUTER_DIAMETER);
keyMap.add(LENGTH_INDEX, ComponentPreset.LENGTH);
keyMap.add(MATERIAL_INDEX, ComponentPreset.MATERIAL);
}
public Collection<ComponentPreset> load(Map<String, Material> materialMap) {
List<String[]> data = RocksimComponentFileLoader.load(RocksimComponentFileType.BODY_TUBE);
return commonLoader(data, keyMap, materialMap, ComponentPreset.Type.BODY_TUBE);
}
public Collection<ComponentPreset> load(Map<String, Material> materialMap, File file) throws
FileNotFoundException {
List<String[]> data = RocksimComponentFileLoader.load(file);
return commonLoader(data, keyMap, materialMap, ComponentPreset.Type.BODY_TUBE);
}
}
/**
* Tube coupler parser. Although there are additional fields in the file, they are not used by
* most (any?) manufacturers so we ignore them entirely.
*/
static class TubeCouplerLoader extends BodyTubeLoader {
public Collection<ComponentPreset> load(Map<String, Material> materialMap) {
List<String[]> data = RocksimComponentFileLoader.load(RocksimComponentFileType.TUBE_COUPLER);
return commonLoader(data, keyMap, materialMap, ComponentPreset.Type.TUBE_COUPLER);
}
public Collection<ComponentPreset> load(Map<String, Material> materialMap, File file) throws
FileNotFoundException {
List<String[]> data = RocksimComponentFileLoader.load(file);
return commonLoader(data, keyMap, materialMap, ComponentPreset.Type.TUBE_COUPLER);
}
}
/**
* Engine block parser. Although there are additional fields in the file, they are not used by
* most (any?) manufacturers so we ignore them entirely.
*/
static class EngineBlockLoader extends BodyTubeLoader {
public Collection<ComponentPreset> load(Map<String, Material> materialMap) {
List<String[]> data = RocksimComponentFileLoader.load(RocksimComponentFileType.ENGINE_BLOCK);
return commonLoader(data, keyMap, materialMap, ComponentPreset.Type.ENGINE_BLOCK);
}
public Collection<ComponentPreset> load(Map<String, Material> materialMap, File file) throws
FileNotFoundException {
List<String[]> data = RocksimComponentFileLoader.load(file);
return commonLoader(data, keyMap, materialMap, ComponentPreset.Type.ENGINE_BLOCK);
}
}
static class BulkheadLoader extends BodyTubeLoader {
public Collection<ComponentPreset> load(Map<String, Material> materialMap) {
List<String[]> data = RocksimComponentFileLoader.load(RocksimComponentFileType.BULKHEAD);
return commonLoader(data, keyMap, materialMap, ComponentPreset.Type.BULK_HEAD);
}
public Collection<ComponentPreset> load(Map<String, Material> materialMap, File file) throws
FileNotFoundException {
List<String[]> data = RocksimComponentFileLoader.load(file);
return commonLoader(data, keyMap, materialMap, ComponentPreset.Type.BULK_HEAD);
}
}
static class CenteringRingLoader extends BodyTubeLoader {
public Collection<ComponentPreset> load(Map<String, Material> materialMap) {
List<String[]> data = RocksimComponentFileLoader.load(RocksimComponentFileType.CENTERING_RING);
return commonLoader(data, keyMap, materialMap, ComponentPreset.Type.CENTERING_RING);
}
public Collection<ComponentPreset> load(Map<String, Material> materialMap, File file) throws
FileNotFoundException {
List<String[]> data = RocksimComponentFileLoader.load(file);
return commonLoader(data, keyMap, materialMap, ComponentPreset.Type.CENTERING_RING);
}
}
static class NoseConeLoader {
public static final int MFG_INDEX = 0;
public static final int PART_NO_INDEX = 1;
public static final int DESCRIPTION_INDEX = 2;
public static final int UNITS_INDEX = 3;
public static final int LENGTH_INDEX = 4;
public static final int OUTER_DIA_INDEX = 5;
public static final int LD_RATIO_INDEX = 6;
public static final int INSERT_LENGTH_INDEX = 7;
public static final int INSERT_OD_INDEX = 8;
public static final int THICKNESS_INDEX = 9;
public static final int SHAPE_INDEX = 10;
public static final int CONFIG_INDEX = 11;
public static final int MATERIAL_INDEX = 12;
public static final int CG_LOC_INDEX = 13;
public static final int MASS_UNITS_INDEX = 14;
public static final int MASS_INDEX = 15;
public static final int BASE_EXT_LEN_INDEX = 16;
public final static TypedKey<Double> LD_RATIO = new TypedKey<Double>("Len/Dia Ratio", Double.class);
public final static TypedKey<Double> BASE_EXT_LEN = new TypedKey<Double>("Base Ext Len", Double.class, UnitGroup.UNITS_LENGTH);
public final static TypedKey<String> CONFIG = new TypedKey<String>("Config", String.class);
public final static TypedKey<Double> CG_LOC = new TypedKey<Double>("CG Loc", Double.class, UnitGroup.UNITS_LENGTH);
public final static List<TypedKey<?>> keyMap = new ArrayList<TypedKey<?>>(17);
static {
keyMap.add(MFG_INDEX, ComponentPreset.MANUFACTURER);
keyMap.add(PART_NO_INDEX, ComponentPreset.PARTNO);
keyMap.add(DESCRIPTION_INDEX, ComponentPreset.DESCRIPTION);
keyMap.add(UNITS_INDEX, UNITS_OF_MEASURE);
keyMap.add(LENGTH_INDEX, ComponentPreset.LENGTH);
keyMap.add(OUTER_DIA_INDEX, ComponentPreset.OUTER_DIAMETER);
keyMap.add(LD_RATIO_INDEX, LD_RATIO);
keyMap.add(INSERT_LENGTH_INDEX, ComponentPreset.SHOULDER_LENGTH);
keyMap.add(INSERT_OD_INDEX, ComponentPreset.SHOULDER_DIAMETER);
keyMap.add(THICKNESS_INDEX, ComponentPreset.THICKNESS);
keyMap.add(SHAPE_INDEX, ComponentPreset.SHAPE);
keyMap.add(CONFIG_INDEX, CONFIG);
keyMap.add(MATERIAL_INDEX, ComponentPreset.MATERIAL);
keyMap.add(CG_LOC_INDEX, CG_LOC);
keyMap.add(MASS_UNITS_INDEX, UNITS_OF_MEASURE);
keyMap.add(MASS_INDEX, ComponentPreset.MASS);
keyMap.add(BASE_EXT_LEN_INDEX, BASE_EXT_LEN);
}
public Collection<ComponentPreset> load(Map<String, Material> materialMap) {
List<String[]> data = RocksimComponentFileLoader.load(RocksimComponentFileType.NOSE_CONE);
return commonLoader(data, keyMap, materialMap, ComponentPreset.Type.NOSE_CONE);
}
public Collection<ComponentPreset> load(Map<String, Material> materialMap, File file) throws
FileNotFoundException {
List<String[]> data = RocksimComponentFileLoader.load(file);
return commonLoader(data, keyMap, materialMap, ComponentPreset.Type.NOSE_CONE);
}
}
static class TransitionLoader {
public static final int MFG_INDEX = 0;
public static final int PART_NO_INDEX = 1;
public static final int DESCRIPTION_INDEX = 2;
public static final int UNITS_INDEX = 3;
public static final int FRONT_INSERT_LENGTH_INDEX = 4;
public static final int FRONT_INSERT_OD_INDEX = 5;
public static final int FRONT_OD_INDEX = 6;
public static final int LENGTH_INDEX = 7;
public static final int REAR_OD_INDEX = 8;
public static final int CORE_DIA_INDEX = 9;
public static final int REAR_INSERT_LENGTH_INDEX = 10;
public static final int REAR_INSERT_OD_INDEX = 11;
public static final int THICKNESS_INDEX = 12;
public static final int CONFIG_INDEX = 13;
public static final int MATERIAL_INDEX = 14;
public static final int CG_LOC_INDEX = 15;
public static final int MASS_UNITS_INDEX = 16;
public static final int MASS_INDEX = 17;
public static final int SHAPE_INDEX = 18;
public final static TypedKey<String> CONFIG = new TypedKey<String>("Config", String.class);
public final static TypedKey<String> IGNORE = new TypedKey<String>("Ignore", String.class);
public final static TypedKey<Double> CG_LOC = new TypedKey<Double>("CG Loc", Double.class, UnitGroup.UNITS_LENGTH);
public final static List<TypedKey<?>> keyMap = new ArrayList<TypedKey<?>>(19);
static {
keyMap.add(MFG_INDEX, ComponentPreset.MANUFACTURER);
keyMap.add(PART_NO_INDEX, ComponentPreset.PARTNO);
keyMap.add(DESCRIPTION_INDEX, ComponentPreset.DESCRIPTION);
keyMap.add(UNITS_INDEX, UNITS_OF_MEASURE);
keyMap.add(FRONT_INSERT_LENGTH_INDEX, ComponentPreset.FORE_SHOULDER_LENGTH);
keyMap.add(FRONT_INSERT_OD_INDEX, ComponentPreset.FORE_SHOULDER_DIAMETER);
keyMap.add(FRONT_OD_INDEX, ComponentPreset.FORE_OUTER_DIAMETER);
keyMap.add(LENGTH_INDEX, ComponentPreset.LENGTH);
keyMap.add(REAR_OD_INDEX, ComponentPreset.OUTER_DIAMETER);
keyMap.add(CORE_DIA_INDEX, IGNORE);
keyMap.add(REAR_INSERT_LENGTH_INDEX, ComponentPreset.SHOULDER_LENGTH);
keyMap.add(REAR_INSERT_OD_INDEX, ComponentPreset.SHOULDER_DIAMETER);
keyMap.add(THICKNESS_INDEX, ComponentPreset.THICKNESS);
keyMap.add(CONFIG_INDEX, CONFIG);
keyMap.add(MATERIAL_INDEX, ComponentPreset.MATERIAL);
keyMap.add(CG_LOC_INDEX, CG_LOC);
keyMap.add(MASS_UNITS_INDEX, UNITS_OF_MEASURE);
keyMap.add(MASS_INDEX, ComponentPreset.MASS);
keyMap.add(SHAPE_INDEX, ComponentPreset.SHAPE);
}
public Collection<ComponentPreset> load(Map<String, Material> materialMap) {
List<String[]> data = RocksimComponentFileLoader.load(RocksimComponentFileType.TRANSITION);
return commonLoader(data, keyMap, materialMap, ComponentPreset.Type.TRANSITION);
}
public Collection<ComponentPreset> load(Map<String, Material> materialMap, File file) throws
FileNotFoundException {
List<String[]> data = RocksimComponentFileLoader.load(file);
return commonLoader(data, keyMap, materialMap, ComponentPreset.Type.TRANSITION);
}
}
static class MaterialLoader {
private final static int MATERIAL_INDEX = 0;
private final static int UNITS_INDEX = 1;
private final static int DENSITY_INDEX = 2;
private final static int LOW_INDEX = 3;
private final static int HIGH_INDEX = 4;
private final static int CLASS_INDEX = 5;
private final static int ROCKETRY_USE_INDEX = 6;
private final static int BODY_TUBES_INDEX = 7;
public static final int FIN_SETS_INDEX = 8;
public static final int LAUNCH_LUGS_INDEX = 9;
public static final int CORDS_INDEX = 10;
public static final int NOSE_INDEX = 11;
public static final int PARACHUTE_INDEX = 12;
public static final int STREAMER_INDEX = 13;
public static final int TRANSITION_INDEX = 14;
public static final int RING_INDEX = 15;
public static final int BULKHEAD_INDEX = 16;
public static final int ENGINE_BLOCK_INDEX = 17;
public static final int SLEEVE_INDEX = 18;
public static final int TUBE_COUPLER_INDEX = 19;
public static final int KNOWN_DIM_TYPE_INDEX = 27;
public static final int KNOWN_DIM_UNITS_INDEX = 28;
public static final int KNOWN_DIM_VALUE_INDEX = 29;
public final static List<TypedKey<?>> keyMap = new ArrayList<TypedKey<?>>(8);
public final static TypedKey<String> MATERIAL_NAME = new TypedKey<String>("Material Name", String.class);
public final static TypedKey<Double> DENSITY = new TypedKey<Double>("Density", Double.class);
static class MaterialAdapter {
Material.Type type;
double conversionFactor;
MaterialAdapter(Material.Type theType, double cf) {
type = theType;
conversionFactor = cf;
}
}
private final static Map<String, MaterialAdapter> materialAdapterMap = new HashMap<String, MaterialAdapter>();
static {
materialAdapterMap.put("g/cm", new MaterialAdapter(Material.Type.LINE, 0.1d));
materialAdapterMap.put("g/cm2", new MaterialAdapter(Material.Type.SURFACE, 10.0d));
materialAdapterMap.put("g/cm3", new MaterialAdapter(Material.Type.BULK, 1000.0d));
materialAdapterMap.put("kg/m3", new MaterialAdapter(Material.Type.BULK, 1d));
materialAdapterMap.put("lb/ft3", new MaterialAdapter(Material.Type.BULK, 16.0184634d));
materialAdapterMap.put("oz/in", new MaterialAdapter(Material.Type.LINE, 1.11612296d));
materialAdapterMap.put("oz/in2", new MaterialAdapter(Material.Type.SURFACE, 43.9418487));
keyMap.add(MATERIAL_INDEX, MATERIAL_NAME);
keyMap.add(UNITS_INDEX, UNITS_OF_MEASURE);
keyMap.add(DENSITY_INDEX, DENSITY);
}
static Map<String, Material> load() {
List<String[]> data = RocksimComponentFileLoader.load(RocksimComponentFileType.MATERIAL);
Map<String, Material> materialMap = new HashMap<String, Material>();
for (int i = 0; i < data.size(); i++) {
try {
String[] strings = data.get(i);
MaterialAdapter ma = materialAdapterMap.get(strings[UNITS_INDEX]);
double metricDensity = ma.conversionFactor * Double.parseDouble(strings[DENSITY_INDEX]);
final String cleanedMaterialName = stripAll(strings[MATERIAL_INDEX], '"').trim();
final Material material = Databases.findMaterial(ma.type, cleanedMaterialName,
metricDensity, true);
materialMap.put(cleanedMaterialName, material);
materialMap.put(cleanedMaterialName.toLowerCase(), material);
materialMap.put(toCamelCase(cleanedMaterialName), material);
}
catch (Exception e) {
//Trap a bad row and move on
//TODO: log it? Display to user?
}
}
return materialMap;
}
}
public static void main(String[] args) {
Application.setPreferences(new SwingPreferences());
Map<String, Material> materialMap = MaterialLoader.load();
Collection<ComponentPreset> presetNC = new NoseConeLoader().load(materialMap);
Collection<ComponentPreset> presetBC = new BodyTubeLoader().load(materialMap);
Collection<ComponentPreset> presetBH = new BulkheadLoader().load(materialMap);
Collection<ComponentPreset> presetCR = new CenteringRingLoader().load(materialMap);
Collection<ComponentPreset> presetTC = new TubeCouplerLoader().load(materialMap);
Collection<ComponentPreset> presetTR = new TransitionLoader().load(materialMap);
Collection<ComponentPreset> presetEB = new EngineBlockLoader().load(materialMap);
for (Iterator<ComponentPreset> iterator = presetNC.iterator(); iterator.hasNext(); ) {
ComponentPreset next = iterator.next();
System.err.println(next);
}
for (Iterator<ComponentPreset> iterator = presetBC.iterator(); iterator.hasNext(); ) {
ComponentPreset next = iterator.next();
System.err.println(next);
}
for (Iterator<ComponentPreset> iterator = presetBH.iterator(); iterator.hasNext(); ) {
ComponentPreset next = iterator.next();
System.err.println(next);
}
for (Iterator<ComponentPreset> iterator = presetCR.iterator(); iterator.hasNext(); ) {
ComponentPreset next = iterator.next();
System.err.println(next);
}
for (Iterator<ComponentPreset> iterator = presetTC.iterator(); iterator.hasNext(); ) {
ComponentPreset next = iterator.next();
System.err.println(next);
}
for (Iterator<ComponentPreset> iterator = presetTR.iterator(); iterator.hasNext(); ) {
ComponentPreset next = iterator.next();
System.err.println(next);
}
for (Iterator<ComponentPreset> iterator = presetEB.iterator(); iterator.hasNext(); ) {
ComponentPreset next = iterator.next();
System.err.println(next);
}
}
}
//Errata:
//The oddities I've found thus far in the stock Rocksim data:
//1. BTDATA.CSV - Totally Tubular goofed up their part no. and description columns (They messed up TCDATA also)
//2. NCDATA.CSV - Estes Balsa nose cones are classified as G10 Fiberglass
//3. TRDATA.CSV - Apogee Saturn LEM Transition has no part number; Balsa Machining transitions have blank diameter

View File

@ -0,0 +1,77 @@
package net.sf.openrocket.preset.loader;
import java.util.Arrays;
/**
* Definition of the typical Rocksim component files and their formats.
*/
public enum RocksimComponentFileType {
BODY_TUBE("BTDATA.CSV", "Mfg.", "Part No.", "Desc.", "Units", "ID", "OD", "Length", "Material", "Engine"),
BULKHEAD("BHDATA.CSV", "Mfg.", "Part No.", "Desc.", "Units", "ID", "OD", "Length", "Material", "Engine", "Engine",
"Engine", "Engine", "Engine", "Engine", "Engine", "Engine", "Engine", "Engine", "Engine"),
CENTERING_RING("CRDATA.CSV", "Mfg.", "Part No.", "Desc.", "Units", "ID", "OD", "Length", "Material", "AutoSize"),
CUSTOM_FIN("CSDATA.CSV"),
ENGINE_BLOCK("EBDATA.CSV", "Mfg.", "Part No.", "Desc.", "Units", "ID", "OD", "Length", "Material", "CG", "Mass Units", "Mass", "AutoSize"),
FIN("FSDATA.CSV"),
LAUNCH_LUG("LLDATA.CSV"),
MASS_OBJECT("MODATA.CSV", "Mfg.", "Part no", "Desc", "Units", "Name", "Type", "Length", "Material", "Mass units", "Mass"),
MATERIAL("MATERIAL.CSV", "Material Name", "Units", "Density", "Low", "High", "Class", "Rocketry Use", "Body Tubes",
"Fin Sets", "Launch Lugs", "Cords", "Nose", "Chute", "Stream", "Trans", "Ring", "Bulkhead", "Engine Block", "Sleeve",
"Tube Coupler", "spare", "spare", "spare", "spare", "spare", "spare", "spare", "Known Dim type", "Known Dim Units", "Known Dim Value"),
NOSE_CONE("NCDATA.CSV", "Mfg.","Part No.","Desc.","Units","Length","Outer Dia","L/D Ratio","Insert Length","Insert OD",
"Thickness","Shape","Config","Material","CG Loc","Mass Units","Mass","Base Ext. Len"),
PARACHUTE("PCDATA.CSV"),
SLEEVE("SLDATA.CSV"),
STREAMER("STDATA.CSV"),
TUBE_COUPLER("TCDATA.CSV", "Mfg.", "Part No.", "Desc.", "Units", "ID", "OD", "Length", "Material", "Mass Units", "CG", "Mass", "AutoSize"),
TRANSITION("TRDATA.CSV", "Mfg.", "Part No.", "Desc.", "Units", "Front Insert Len", "Front Insert OD", "Front OD", "Length",
"Rear OD", "Core Dia.", "Rear Insert Len", "Rear Insert OD", "Thickness", "Config", "Material", "CG Loc",
"Mass Units", "Mass", "Shape", "Shape", "Shape", "Shape", "Shape", "Shape", "Shape", "Shape", "Shape", "Shape", "Shape", "Shape");
/**
* The default filename for the type of data.
*/
private final String defaultFileName;
/**
* The column names.
*/
private final String[] columns;
/**
* Constructor.
*
* @param theDefaultFileName the default filename
* @param theColumns the array of column names in the file
*/
private RocksimComponentFileType(final String theDefaultFileName, String... theColumns) {
defaultFileName = theDefaultFileName;
columns = theColumns;
}
/**
* Get the typical file name used for this type of component data.
*
* @return a filename
*/
public String getDefaultFileName() {
return defaultFileName;
}
/**
* Try to be omniscient and figure out what kind of data file it is given an array of header (column) names.
*
* @param headers an array of column names
* @return the data type of the file, or null if unable to match the header names
*/
public static RocksimComponentFileType determineType(String[] headers) {
RocksimComponentFileType[] types = values();
for (int i = 0; i < types.length; i++) {
RocksimComponentFileType type = types[i];
if (Arrays.equals(headers, type.columns)) {
return type;
}
}
return null;
}
}