Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Kevin Ruland 2015-09-11 17:00:08 -05:00
commit 9493207e2b
56 changed files with 3763 additions and 398 deletions

Binary file not shown.

View File

@ -1,3 +1,5 @@
2015-03-28 Kevin Ruland
* Released version 15.03 See Release Notes for changes.
2014-11-02 Kevin Ruland
* Released version 14.11 See Release Notes for changes.

View File

@ -1,3 +1,20 @@
OpenRocket 15.03 (2015-03-28):
------------------------------
OpenRocket now requires Java 1.7 for execution.
New Features:
* Experimental support for tube fins
* Updated thrustcurves
* Scriptable simulation extensions
* Fin fillet mass
* Better icons for different kinds of masses - altimeters, computers, etc.
* Configurable default mach number
* Improved preferences UI
Bug Fixes:
* Always use the correct filename extension when saving
OpenRocket 14.11 (2014-11-02):
------------------------------

View File

@ -47,6 +47,6 @@ The following file format versions exist:
1.6: Introduced with OpenRocket 13.04. Added component Appearances (decals & paint)
Added configurable parameters to recovery devices, motor ignition and separation.
1.7: Introduced with OpenRocket 15.01. Added simulation extensions and related
configuration.
1.7: Introduced with OpenRocket 15.03.
Added simulation extensions and related configuration.
Support for TubeFins.

View File

@ -0,0 +1,26 @@
; TODO: Length and weights taken from F72!!
; Based on
; http://www.aerotech-rocketry.com/customersite/resource_library/Instructions/MR-SU_Instructions/d-f_non-std_su_in_21002.pdf
; Made by Sampo Niskanen
F101T 24 124 5-10-15 0.0368 0.0742 AT
0.04 85.95
0.069 83.4
0.129 86.461
0.202 94.622
0.274 100.743
0.354 104.569
0.443 106.099
0.446 102.783
0.546 96.662
0.575 90.031
0.602 89.011
0.625 84.675
0.671 80.85
0.731 76.259
0.771 58.406
0.807 33.921
0.85 18.108
0.893 11.477
0.942 0.0

View File

@ -1,5 +1,5 @@
Rocket motor simulation data downloaded from ThrustCurve.org.
This ZIP file contains 1645 simulator data files.
This ZIP file contains 1656 simulator data files.
For more info, please see http://www.thrustcurve.org/
AMW_I195.eng
@ -7434,14 +7434,14 @@ Cesaroni_M1590.eng
Designation: 7545M1590-P
Data Format: RASP
Data Source: cert
Contributor: Andre Choquette
Contributor: Mark Koelsch
Cesaroni_M1590.rse
Manufacturer: Cesaroni Technology
Designation: 7545M1590-P
Data Format: RockSim
Data Source: cert
Contributor: Andre Choquette
Contributor: Mark Koelsch
Cesaroni_M1670.eng
Manufacturer: Cesaroni Technology
@ -9394,7 +9394,7 @@ Estes_B4.eng
Designation: B4
Data Format: RASP
Data Source: user
Contributor: John Coker
Contributor: Nicholas Domansky
Estes_B4.rse
Manufacturer: Estes Industries
@ -9403,6 +9403,13 @@ Estes_B4.rse
Data Source: user
Contributor: John Coker
Estes_B4_1.eng
Manufacturer: Estes Industries
Designation: B4
Data Format: RASP
Data Source: user
Contributor: John Coker
Estes_B6.eng
Manufacturer: Estes Industries
Designation: B6
@ -9450,7 +9457,7 @@ Estes_C6.eng
Designation: C6
Data Format: RASP
Data Source: user
Contributor: John Coker
Contributor: Nicholas Domansky
Estes_C6.rse
Manufacturer: Estes Industries
@ -9459,6 +9466,13 @@ Estes_C6.rse
Data Source: user
Contributor: John Coker
Estes_C6_1.eng
Manufacturer: Estes Industries
Designation: C6
Data Format: RASP
Data Source: user
Contributor: John Coker
Estes_D11.eng
Manufacturer: Estes Industries
Designation: D11
@ -9732,6 +9746,13 @@ GR_L1065.eng
Data Source: mfr
Contributor: John Coker
GR_L1112.eng
Manufacturer: Gorilla Rocket Motors
Designation: L1112BT
Data Format: RASP
Data Source: cert
Contributor: Mark Koelsch
GR_L1150.rse
Manufacturer: Gorilla Rocket Motors
Designation: L1150WC
@ -9802,6 +9823,13 @@ GR_M1665.eng
Data Source: mfr
Contributor: John Coker
GR_M1952.eng
Manufacturer: Gorilla Rocket Motors
Designation: M1952BT
Data Format: RASP
Data Source: cert
Contributor: Mark Koelsch
GR_O2700.eng
Manufacturer: Gorilla Rocket Motors
Designation: O2700BL
@ -10635,6 +10663,13 @@ Loki_J1000.rse
Data Source: mfr
Contributor: Mark Koelsch
Loki_J1026.eng
Manufacturer: Loki Research
Designation: J1026 CT
Data Format: RASP
Data Source: cert
Contributor: Mark Koelsch
Loki_J175.eng
Manufacturer: Loki Research
Designation: J175-LW
@ -10754,6 +10789,13 @@ Loki_J820.rse
Data Source: user
Contributor: John Coker
Loki_K1127.eng
Manufacturer: Loki Research
Designation: K1127LB
Data Format: RASP
Data Source: cert
Contributor: Mark Koelsch
Loki_K250.eng
Manufacturer: Loki Research
Designation: K250-LW
@ -10782,6 +10824,13 @@ Loki_K350.rse
Data Source: user
Contributor: John Coker
Loki_K527.eng
Manufacturer: Loki Research
Designation: K527LR
Data Format: RASP
Data Source: cert
Contributor: Mark Koelsch
Loki_K690.eng
Manufacturer: Loki Research
Designation: K690-SF
@ -10852,6 +10901,13 @@ Loki_L780.eng
Data Source: mfr
Contributor: John Coker
Loki_L840.eng
Manufacturer: Loki Research
Designation: L840CT
Data Format: RASP
Data Source: cert
Contributor: Mark Koelsch
Loki_L930.eng
Manufacturer: Loki Research
Designation: L930-LW
@ -10873,6 +10929,13 @@ Loki_M1200.eng
Data Source: mfr
Contributor: John Coker
Loki_M1650.eng
Manufacturer: Loki Research
Designation: M1650LC
Data Format: RASP
Data Source: cert
Contributor: Mark Koelsch
Loki_M1882.eng
Manufacturer: Loki Research
Designation: M1882-LW
@ -10887,6 +10950,13 @@ Loki_M1882.rse
Data Source: user
Contributor: John Coker
Loki_M1969.eng
Manufacturer: Loki Research
Designation: M1969SF
Data Format: RASP
Data Source: cert
Contributor: Mark Koelsch
Loki_M2550.eng
Manufacturer: Loki Research
Designation: M2550-LB
@ -10915,6 +10985,13 @@ Loki_M3000.rse
Data Source: mfr
Contributor: Mark Koelsch
Loki_M3464.eng
Manufacturer: Loki Research
Designation: M3464LB
Data Format: RASP
Data Source: cert
Contributor: Mark Koelsch
Loki_M900.rse
Manufacturer: Loki Research
Designation: M900-LR

View File

@ -1,41 +1,19 @@
;
;Aerotech G25 RASP.ENG file made from NAR published data
;File produced July 4, 2000
;The total impulse, peak thrust, average thrust and burn time are
;the same as the averaged static test data on the NAR web site in
;the certification file. The curve drawn with these data points is as
;close to the certification curve as can be with such a limited
;number of points (32) allowed with wRASP up to v1.6.
G25 29 124 5-10-15 0.0625 0.1197 AeroTech
0.035 30.499
0.047 36.712
0.059 41.18
0.13 40.669
0.177 38.969
0.295 38.969
0.343 40.947
0.413 40.38
0.437 38.69
0.484 39.824
0.532 37.845
0.65 37.557
0.721 38.969
0.803 38.69
0.85 37.279
0.98 39.535
1.063 36.434
1.098 38.124
1.252 37.845
1.37 37.279
1.583 37
1.819 35.3
1.984 33.61
2.185 31.344
2.315 28.809
2.622 24.286
3.024 18.917
3.39 13.838
3.839 7.624
4.323 4.518
4.783 2.541
5.3 0
G25W-10A 29 152.4 10 0.097 0.17 AT
0.01 38.046
0.029 21.768
0.11 30.475
0.239 35.775
0.496 40.696
0.568 42.116
0.592 45.429
0.749 46.186
0.997 45.713
1.255 44.198
1.498 39.939
1.999 31.421
2.501 23.093
3.006 14.196
3.503 7.288
3.999 4.07
4.371 1.988
4.414 0.0

View File

@ -1,19 +1,41 @@
G25W-10A 29 152.4 10 0.097 0.17 AT
0.01 38.046
0.029 21.768
0.11 30.475
0.239 35.775
0.496 40.696
0.568 42.116
0.592 45.429
0.749 46.186
0.997 45.713
1.255 44.198
1.498 39.939
1.999 31.421
2.501 23.093
3.006 14.196
3.503 7.288
3.999 4.07
4.371 1.988
4.414 0.0
;
;Aerotech G25 RASP.ENG file made from NAR published data
;File produced July 4, 2000
;The total impulse, peak thrust, average thrust and burn time are
;the same as the averaged static test data on the NAR web site in
;the certification file. The curve drawn with these data points is as
;close to the certification curve as can be with such a limited
;number of points (32) allowed with wRASP up to v1.6.
G25 29 124 5-10-15 0.0625 0.1197 AeroTech
0.035 30.499
0.047 36.712
0.059 41.18
0.13 40.669
0.177 38.969
0.295 38.969
0.343 40.947
0.413 40.38
0.437 38.69
0.484 39.824
0.532 37.845
0.65 37.557
0.721 38.969
0.803 38.69
0.85 37.279
0.98 39.535
1.063 36.434
1.098 38.124
1.252 37.845
1.37 37.279
1.583 37
1.819 35.3
1.984 33.61
2.185 31.344
2.315 28.809
2.622 24.286
3.024 18.917
3.39 13.838
3.839 7.624
4.323 4.518
4.783 2.541
5.3 0

View File

@ -1,30 +1,13 @@
; AeroTech H45W
; converted from TMT test stand data 1998 (www.tripoli.org)
; provided by ThrustCurve.org (www.thrustcurve.org)
H45W 38 194 0 0.193984 0.294784 AT
0.141 62.554
0.424 63.504
0.707 65.913
0.992 68.370
1.276 69.315
1.559 68.523
1.843 67.231
2.127 65.705
2.411 63.154
2.695 59.210
2.979 55.600
3.264 50.790
3.547 45.237
3.830 39.835
4.115 34.562
4.399 29.213
4.682 24.720
4.967 20.616
5.251 17.475
5.534 14.498
5.818 12.697
6.102 10.792
6.386 9.229
6.670 7.754
6.954 6.075
7.239 0.000
; From AT DMS announcement May 2014.
H45 38 202.7 10 0.18 0.364 AT
0.04 84.004
0.854 86.004
1.377 84.804
2.046 79.204
2.69 66.003
3.286 51.603
4.414 28.401
5.042 16.001
5.429 9.2
6.113 6.4
6.186 0.0

View File

@ -1,13 +1,30 @@
; From AT DMS announcement May 2014.
H45 38 202.7 10 0.18 0.364 AT
0.04 84.004
0.854 86.004
1.377 84.804
2.046 79.204
2.69 66.003
3.286 51.603
4.414 28.401
5.042 16.001
5.429 9.2
6.113 6.4
6.186 0.0
; AeroTech H45W
; converted from TMT test stand data 1998 (www.tripoli.org)
; provided by ThrustCurve.org (www.thrustcurve.org)
H45W 38 194 0 0.193984 0.294784 AT
0.141 62.554
0.424 63.504
0.707 65.913
0.992 68.370
1.276 69.315
1.559 68.523
1.843 67.231
2.127 65.705
2.411 63.154
2.695 59.210
2.979 55.600
3.264 50.790
3.547 45.237
3.830 39.835
4.115 34.562
4.399 29.213
4.682 24.720
4.967 20.616
5.251 17.475
5.534 14.498
5.818 12.697
6.102 10.792
6.386 9.229
6.670 7.754
6.954 6.075
7.239 0.000

View File

@ -1,30 +1,15 @@
; AeroTech I65W
; converted from TMT test stand data 1997 (www.tripoli.org)
; provided by ThrustCurve.org (www.thrustcurve.org)
I65W 54 235 0 0.41216 0.7616 AT
0.180 125.414
0.544 139.304
0.908 145.369
1.273 148.283
1.638 146.745
2.002 139.049
2.367 131.200
2.731 123.276
3.096 113.454
3.460 102.368
3.825 90.210
4.190 78.084
4.554 66.812
4.919 55.780
5.283 47.281
5.648 39.154
6.012 32.528
6.377 27.069
6.742 22.099
7.106 18.095
7.471 14.819
7.835 12.097
8.200 9.763
8.565 7.875
8.929 5.999
9.294 0.000
; From AT DMS announcement May 2014.
I65 54 218 10 0.377 0.752 AT
0.023 148.274
0.211 196.341
0.398 167.827
0.797 149.903
1.395 135.239
2.238 122.204
3.199 99.392
4.711 69.249
5.367 48.882
6.246 29.329
6.926 15.479
7.395 11.406
8.496 0.0

View File

@ -1,15 +1,30 @@
; From AT DMS announcement May 2014.
I65 54 218 10 0.377 0.752 AT
0.023 148.274
0.211 196.341
0.398 167.827
0.797 149.903
1.395 135.239
2.238 122.204
3.199 99.392
4.711 69.249
5.367 48.882
6.246 29.329
6.926 15.479
7.395 11.406
8.496 0.0
; AeroTech I65W
; converted from TMT test stand data 1997 (www.tripoli.org)
; provided by ThrustCurve.org (www.thrustcurve.org)
I65W 54 235 0 0.41216 0.7616 AT
0.180 125.414
0.544 139.304
0.908 145.369
1.273 148.283
1.638 146.745
2.002 139.049
2.367 131.200
2.731 123.276
3.096 113.454
3.460 102.368
3.825 90.210
4.190 78.084
4.554 66.812
4.919 55.780
5.283 47.281
5.648 39.154
6.012 32.528
6.377 27.069
6.742 22.099
7.106 18.095
7.471 14.819
7.835 12.097
8.200 9.763
8.565 7.875
8.929 5.999
9.294 0.000

View File

@ -1,37 +1,42 @@
; M1780NT Redesign and recert
M1780NT-PS 75 665 P 2.46 4.649 AT
0.014 1112.055
0.015 1497.932
0.022 1783.542
0.036 2105.612
0.047 2157.265
0.066 2169.419
0.104 2123.843
0.14 2108.651
0.164 2135.996
0.197 2129.92
0.238 2157.265
0.263 2205.88
0.274 2169.419
0.312 2145.112
0.411 2111.689
0.595 2081.305
0.899 2075.228
1.299 2047.883
1.601 1996.23
1.899 1938.5
2.058 1889.886
2.201 1813.926
2.3 1753.158
2.423 1701.505
2.467 1622.506
2.508 1555.662
2.566 1336.897
2.62 1112.055
2.67 893.29
2.724 668.448
2.755 568.181
2.812 486.144
2.9 267.379
2.999 75.96
3.029 0.0
; AT M1780NT 1" Core Revised
M1780NT 75 665 P 2.371 4.606 AT
0.0090 1337.154
0.026 2005.731
0.04 2106.521
0.046 2163.636
0.085 2156.916
0.108 2126.679
0.134 2113.24
0.168 2130.039
0.205 2126.679
0.259 2197.233
0.299 2156.916
0.347 2130.039
0.399 2123.32
0.495 2103.161
0.595 2089.723
0.697 2079.644
0.8 2083.003
0.9 2076.284
0.999 2069.565
1.201 2056.126
1.398 2029.248
1.603 2002.371
1.799 1965.414
1.998 1904.94
2.2 1817.588
2.3 1757.114
2.354 1723.517
2.405 1713.438
2.46 1629.446
2.502 1558.893
2.571 1333.794
2.622 1115.415
2.67 890.316
2.724 665.217
2.758 571.146
2.798 507.312
2.83 446.838
2.901 265.415
3.003 73.913
3.035 0.0

View File

@ -1,42 +1,23 @@
; AT M1780NT 1" Core Revised
M1780NT 75 665 P 2.371 4.606 AT
0.0090 1337.154
0.026 2005.731
0.04 2106.521
0.046 2163.636
0.085 2156.916
0.108 2126.679
0.134 2113.24
0.168 2130.039
0.205 2126.679
0.259 2197.233
0.299 2156.916
0.347 2130.039
0.399 2123.32
0.495 2103.161
0.595 2089.723
0.697 2079.644
0.8 2083.003
0.9 2076.284
0.999 2069.565
1.201 2056.126
1.398 2029.248
1.603 2002.371
1.799 1965.414
1.998 1904.94
2.2 1817.588
2.3 1757.114
2.354 1723.517
2.405 1713.438
2.46 1629.446
2.502 1558.893
2.571 1333.794
2.622 1115.415
2.67 890.316
2.724 665.217
2.758 571.146
2.798 507.312
2.83 446.838
2.901 265.415
3.003 73.913
3.035 0.0
M1780 75 665 P 2.56 4.715 AT
0.028 2204.193
0.118 2566.025
0.173 2566.025
0.341 2214.151
0.44 2144.44
0.636 2114.564
1.34 2134.482
1.395 2204.193
1.648 2121.203
1.841 2041.534
1.874 1895.473
2.127 1643.186
2.353 1517.042
2.584 1460.61
2.672 1347.744
2.763 1068.901
2.829 723.666
2.939 438.183
2.999 292.122
3.101 172.617
3.272 36.515
3.5 0.0

View File

@ -0,0 +1,27 @@
<engine-database>
<engine-list>
<engine mfg="CTI" code="56-F31-CL-12A" Type="unspecified" dia="24." len="98.0008"
initWt="102." propWt="32." delays="13,9,7,5,3" auto-calc-mass="1"
auto-calc-cg="1" avgThrust="30.41" peakThrust="64.053" throatDia="0."
exitDia="0." Itot="55.589" burn-time="1.83" massFrac="31.37" Isp="177.14"
tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10"
mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">
<comments>CTI 56-F31-CL-12A</comments>
<data>
<eng-data t="0." f="0." m="32." cg="49."/>
<eng-data t="0.001" f="3.483" m="31.999" cg="49."/>
<eng-data t="0.023" f="64.053" m="31.5714" cg="49."/>
<eng-data t="0.05" f="31.347" m="30.83" cg="49."/>
<eng-data t="0.059" f="28.459" m="30.6751" cg="49."/>
<eng-data t="0.095" f="32.027" m="30.0483" cg="49."/>
<eng-data t="0.212" f="36.189" m="27.7511" cg="49."/>
<eng-data t="0.344" f="37.549" m="24.9496" cg="49."/>
<eng-data t="1.567" f="26.165" m="2.5217" cg="49."/>
<eng-data t="1.631" f="26.93" m="1.54365" cg="49."/>
<eng-data t="1.663" f="25.316" m="1.06244" cg="49."/>
<eng-data t="1.785" f="3.653" m="0.0452111" cg="49."/>
<eng-data t="1.828" f="0." m="0." cg="49."/>
</data>
</engine>
</engine-list>
</engine-database>

View File

@ -1,21 +1,28 @@
; Pro75-6G 7545M1590-CL P
M1590-CL 75 893 P 3.1590000000000003 5.223 CTI
0.028 1210.592
0.059 2024.222
0.163 2235.371
0.214 2302.939
0.492 2153.727
0.767 2091.79
1.015 2103.051
1.335 2083.344
1.571 2029.852
2.366 1779.288
3.488 1534.354
3.755 1030.41
3.895 960.027
4.12 650.341
4.207 591.219
4.44 340.655
4.665 199.888
4.778 90.091
M1590 75 893 P 3.59 6.0760000000000005 CTI
0.053 2045.469
0.119 2130.875
0.133 2220.551
0.226 2305.957
0.363 2241.903
0.438 2177.849
0.571 2130.875
0.748 2092.443
0.973 2088.172
1.225 2100.983
1.433 2079.632
1.597 2032.659
1.995 1883.198
2.411 1759.36
3.362 1567.197
3.491 1533.035
3.721 1076.113
3.769 1012.059
3.871 973.626
3.946 896.761
4.074 687.517
4.132 640.544
4.203 619.192
4.504 294.65
4.641 226.325
4.716 170.812
4.8 0.0

View File

@ -1,11 +1,11 @@
<engine-database>
<engine-list>
<engine mfg="CTI" code="M1590-CL" Type="unspecified" dia="75." len="893." initWt="5223."
propWt="3159." delays="0" auto-calc-mass="1" auto-calc-cg="1" avgThrust="1574.92"
peakThrust="2302.94" throatDia="0." exitDia="0." Itot="7559.63" burn-time="4.8"
massFrac="60.48" Isp="244.02" tDiv="10" tStep="-1." tFix="1" FDiv="10"
FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10" cgStep="-1."
cgFix="1">
<engine mfg="Cesaroni Technology Inc." code="M1590-CL" Type="reloadable" dia="75."
len="893." initWt="6076." propWt="3590." delays="1000" auto-calc-mass="1"
auto-calc-cg="1" avgThrust="1574.92" peakThrust="2302.94" throatDia="0."
exitDia="0." Itot="7559.63" burn-time="4.8" massFrac="60.48" Isp="244.02"
tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10"
mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">
<comments>Pro75-6G 7545M1590-CL P</comments>
<data>
<eng-data t="0." f="0." m="3159." cg="446.5"/>

View File

@ -1,34 +1,31 @@
;
;Estes B4 RASP.ENG file made from NAR published data
;File produced October 3, 2000
;The total impulse, peak thrust, average thrust and burn time are
;the same as the averaged static test data on the NAR web site in
;the certification file. The curve drawn with these data points is as
;close to the certification curve as can be with such a limited
;number of points (32) allowed with wRASP up to v1.6.
B4 18 70 2-4 0.006 0.0189 Estes
0.02 0.418
0.04 1.673
0.065 4.076
0.085 6.69
0.105 9.304
0.119 11.496
0.136 12.75
0.153 11.916
0.173 10.666
0.187 9.304
0.198 7.214
0.207 5.645
0.226 4.809
0.258 4.182
0.326 3.763
0.422 3.554
0.549 3.345
0.665 3.345
0.776 3.345
0.863 3.345
0.94 3.449
0.991 3.449
1.002 2.404
1.01 1.254
1.03 0
; B4-4
B4-4 18 70 P 0.006 0.0195 E
0.058 2.361
0.102 2.921
0.122 3.797
0.15 5.866
0.18 8.373
0.199 9.882
0.208 10.88
0.216 11.367
0.238 11.245
0.245 10.832
0.262 8.982
0.293 6.134
0.322 5.306
0.357 4.917
0.388 4.795
0.416 4.746
0.46 4.625
0.502 4.576
0.544 4.357
0.575 4.503
0.605 4.527
0.674 4.552
0.731 4.454
0.88 4.454
0.915 4.503
0.96 4.406
1.0 4.065
1.047 2.556
1.049 0.0

View File

@ -0,0 +1,34 @@
;
;Estes B4 RASP.ENG file made from NAR published data
;File produced October 3, 2000
;The total impulse, peak thrust, average thrust and burn time are
;the same as the averaged static test data on the NAR web site in
;the certification file. The curve drawn with these data points is as
;close to the certification curve as can be with such a limited
;number of points (32) allowed with wRASP up to v1.6.
B4 18 70 2-4 0.006 0.0189 Estes
0.02 0.418
0.04 1.673
0.065 4.076
0.085 6.69
0.105 9.304
0.119 11.496
0.136 12.75
0.153 11.916
0.173 10.666
0.187 9.304
0.198 7.214
0.207 5.645
0.226 4.809
0.258 4.182
0.326 3.763
0.422 3.554
0.549 3.345
0.665 3.345
0.776 3.345
0.863 3.345
0.94 3.449
0.991 3.449
1.002 2.404
1.01 1.254
1.03 0

View File

@ -1,33 +1,23 @@
;
;Estes C6 RASP.ENG file made from NAR published data
;File produced October 3, 2000
;The total impulse, peak thrust, average thrust and burn time are
;the same as the averaged static test data on the NAR web site in
;the certification file. The curve drawn with these data points is as
;close to the certification curve as can be with such a limited
;number of points (32) allowed with wRASP up to v1.6.
C6 18 70 0-3-5-7 0.0108 0.0231 Estes
0.031 0.946
0.092 4.826
0.139 9.936
0.192 14.09
0.209 11.446
0.231 7.381
0.248 6.151
0.292 5.489
0.37 4.921
0.475 4.448
0.671 4.258
0.702 4.542
0.723 4.164
0.85 4.448
1.063 4.353
1.211 4.353
1.242 4.069
1.303 4.258
1.468 4.353
1.656 4.448
1.821 4.448
1.834 2.933
1.847 1.325
1.86 0
; C6-0
C6-0 18 70 P 0.012480000000000002 0.0227 E
0.014 0.633
0.026 1.533
0.067 2.726
0.099 5.136
0.15 9.103
0.183 11.465
0.207 11.635
0.219 11.391
0.262 6.377
0.333 5.014
0.349 5.209
0.392 4.722
0.475 4.771
0.653 4.746
0.913 4.673
1.366 4.625
1.607 4.625
1.745 4.868
1.978 4.795
2.023 0.828
2.024 0.0

View File

@ -0,0 +1,33 @@
;
;Estes C6 RASP.ENG file made from NAR published data
;File produced October 3, 2000
;The total impulse, peak thrust, average thrust and burn time are
;the same as the averaged static test data on the NAR web site in
;the certification file. The curve drawn with these data points is as
;close to the certification curve as can be with such a limited
;number of points (32) allowed with wRASP up to v1.6.
C6 18 70 0-3-5-7 0.0108 0.0231 Estes
0.031 0.946
0.092 4.826
0.139 9.936
0.192 14.09
0.209 11.446
0.231 7.381
0.248 6.151
0.292 5.489
0.37 4.921
0.475 4.448
0.671 4.258
0.702 4.542
0.723 4.164
0.85 4.448
1.063 4.353
1.211 4.353
1.242 4.069
1.303 4.258
1.468 4.353
1.656 4.448
1.821 4.448
1.834 2.933
1.847 1.325
1.86 0

View File

@ -0,0 +1,30 @@
L1112BT 75 497.8 P 1.8 3.628 Gorilla
0.05 1131.791
0.071 1174.3
0.113 1176.957
0.176 1211.495
0.263 1293.855
0.397 1145.075
0.493 1129.134
0.786 1182.27
1.062 1254.003
1.078 1232.749
1.229 1275.258
1.308 1254.003
1.492 1283.228
2.002 1293.855
2.236 1299.169
2.345 1283.228
2.545 1227.435
2.608 1198.211
2.688 1190.24
2.759 1206.181
2.809 1168.986
2.884 892.68
2.922 672.167
3.009 504.789
3.223 225.827
3.26 108.928
3.331 37.195
3.44 5.314
3.595 0.0

View File

@ -0,0 +1,33 @@
M1952BT 75 784.9 P 2.97 5.4430000000000005 Gorilla
0.025 1639.097
0.033 2397.644
0.046 2100.59
0.075 2519.648
0.096 2599.215
0.104 2689.392
0.187 2689.392
0.228 2620.434
0.274 2445.384
0.316 2328.685
0.403 2275.64
0.523 2291.553
1.001 2339.294
1.188 2344.598
1.499 2328.685
1.637 2302.162
1.794 2270.335
2.093 2238.508
2.193 2206.681
2.243 2143.027
2.368 1777.015
2.505 1310.217
2.525 1241.258
2.584 1220.04
2.609 1119.254
2.663 960.118
2.733 763.851
2.8 567.584
2.87 413.753
2.987 238.703
3.178 63.654
3.41 0.0

View File

@ -0,0 +1,27 @@
J1026 38 625.5 P 0.616 1.172 Loki
0.019 62.798
0.034 795.446
0.045 1167.004
0.07 1182.703
0.149 1153.921
0.249 1146.071
0.4 1161.77
0.49 1185.32
0.6 1193.17
0.8 1180.087
0.851 1172.237
0.899 1169.62
0.922 1159.154
0.947 1167.004
0.979 1127.755
1.009 1067.573
1.089 669.85
1.13 486.688
1.142 468.371
1.151 408.19
1.161 316.609
1.176 222.411
1.201 128.213
1.227 65.415
1.264 26.166
1.297 0.0

View File

@ -0,0 +1,37 @@
K1127LB 38 625.5 P 0.624 1.172 Loki
0.009 77.978
0.021 1002.962
0.033 1368.654
0.045 1210.008
0.058 1365.965
0.067 1263.786
0.08 1360.587
0.092 1255.719
0.105 1331.009
0.117 1242.275
0.13 1312.186
0.142 1261.097
0.155 1304.12
0.167 1261.097
0.218 1290.675
0.395 1325.631
0.542 1368.654
0.689 1392.854
0.726 1382.098
0.755 1344.453
0.814 1110.518
0.867 949.184
0.874 1099.763
0.883 962.629
0.908 847.006
0.989 548.537
0.997 363.002
1.003 715.249
1.014 494.759
1.048 406.025
1.091 352.247
1.152 228.557
1.198 158.645
1.244 69.912
1.286 32.267
1.37 0.0

View File

@ -0,0 +1,27 @@
K527LR 54 492.1 P 1.0150000000000001 1.973 Loki
0.023 87.866
0.051 624.477
0.06 701.36
0.079 759.414
0.125 707.636
0.176 682.531
0.269 654.288
0.501 649.581
1.01 644.874
1.265 640.167
1.52 646.443
1.701 643.305
2.035 618.201
2.526 567.991
2.827 539.749
2.943 530.335
2.999 513.075
3.04 442.468
3.115 356.171
3.309 219.665
3.481 91.004
3.546 59.623
3.652 43.933
3.791 37.657
3.967 10.983
4.129 0.0

View File

@ -0,0 +1,25 @@
L840CT 75 498 P 2.074 3.748 Loki
0.021 889.644
0.046 1182.485
0.077 1082.4
0.139 978.608
0.303 971.195
0.662 1015.677
1.011 1108.348
1.33 1149.124
1.689 1189.899
1.971 1163.951
2.089 1145.417
2.3 1034.211
2.633 893.351
2.823 822.921
3.455 656.112
3.737 596.803
3.891 585.682
3.984 385.512
4.112 355.858
4.215 203.877
4.292 140.86
4.384 103.792
4.589 63.016
4.8 0.0

View File

@ -0,0 +1,22 @@
M1650LC 76 784.2 P 3.23 5.63 Loki
0.015 1912.965
0.046 3779.835
0.097 3149.862
0.132 2865.606
0.183 2642.811
0.295 2458.429
0.407 2350.873
0.509 2297.095
0.91 2097.347
1.495 1920.648
1.612 1882.235
2.772 1336.771
3.266 1044.832
3.342 960.324
3.398 860.45
3.505 798.989
3.606 629.972
3.81 361.082
3.901 238.16
4.008 153.652
4.613 0.0

View File

@ -0,0 +1,28 @@
M1969SF 75 1038 P 4.266 7.189 Loki
0.036 263.323
0.044 1504.064
0.075 2204.77
0.087 2356.515
0.186 2204.77
0.23 2280.643
0.274 2240.475
0.503 2347.589
1.003 2432.388
1.058 2454.703
1.495 2307.421
2.002 2236.012
2.315 2186.918
2.501 2182.454
2.628 2169.065
2.815 2244.938
2.882 2191.381
3.045 1338.929
3.096 1142.553
3.164 1044.365
3.267 964.029
3.378 807.821
3.5 504.33
3.639 267.786
3.77 102.651
3.881 22.315
3.96 0.0

View File

@ -0,0 +1,25 @@
M3400LB 76 1038.2 P 4.464 7.597 Loki
0.007 4907.495
0.02 4008.216
0.047 3866.9
0.35 3866.9
0.502 3866.9
0.579 3892.594
1.239 4277.999
1.808 4303.693
1.886 4303.693
1.919 4188.071
2.0 3404.414
2.064 2916.234
2.152 2569.369
2.242 2569.369
2.283 2440.901
2.347 1965.567
2.384 1541.621
2.434 1104.829
2.485 835.045
2.545 719.423
2.596 475.333
2.717 205.55
2.862 51.387
2.976 0.0

View File

@ -0,0 +1,35 @@
; @File: q003.txt, @Pts-I: 769, @Pts-O: 31, @Sm: 0, @CO: 0%
; @TI: 0.1991613, @TIa: 0.1991608, @TIe: +0.1%, @ThMax: 1.624927, @ThAvg: 0.255335, @Tb: 0.78
; Exported using ThrustCurveTool, www.ThrustGear.com
MAXXII 0 0 0.76 0.0 0.0 QUEST
0.026 0.0394607
0.036 0.1214556
0.04 0.206028
0.05 0.444676
0.056 0.680251
0.06 0.899565
0.066 1.358816
0.068 1.475611
0.07 1.56653
0.074 1.624927
0.088 1.190166
0.112 0.830955
0.126 0.439917
0.134 0.319751
0.144 0.248959
0.174 0.1656754
0.206 0.1918503
0.258 0.1262147
0.342 0.1601231
0.366 0.1386081
0.384 0.1794569
0.494 0.218422
0.546 0.1540751
0.56 0.178168
0.608 0.1523896
0.682 0.209499
0.698 0.1837202
0.712 0.220206
0.742 0.209003
0.768 0.040353
0.785 0

View File

@ -0,0 +1,35 @@
; @File: q0016.txt, @Pts-I: 815, @Pts-O: 31, @Sm: 0, @CO: 3%
; @TI: 0.1497473, @TIa: 0.1488623, @TIe: -0.06%, @ThMax: 2.09889, @ThAvg: 0.1862529, @Tb: 0.804
; Exported using ThrustCurveTool, www.ThrustGear.com
1/8A0.2 0 0 0.81 0.0 0.0 QUEST
0.016 0.0530363
0.02 0.0985533
0.024 0.176654
0.03 0.415869
0.032 0.434918
0.038 0.657991
0.052 1.247306
0.058 1.453536
0.064 1.700872
0.066 1.755612
0.07 1.951716
0.074 2.06541
0.076 2.09889
0.078 2.09889
0.08 2.02811
0.082 1.911814
0.084 1.619262
0.086 1.151861
0.088 0.728272
0.09 0.433614
0.092 0.292953
0.098 0.217459
0.154 0.224377
0.172 0.150186
0.196 0.0998567
0.23 0.078602
0.414 0.0625608
0.7559 0.082111
0.8219 0.0607562
0.8339 0.0208536
0.834 0

View File

@ -0,0 +1,49 @@
<engine-database>
<engine-list>
<engine FDiv="10" FFix="1" FStep="-1." Isp="60.9" Itot="0.299" Type="single-use" auto-calc-cg="1" auto-calc-mass="1" avgThrust="0.452" burn-time="0.66" cgDiv="10" cgFix="1" cgStep="-1." code="Micro Maxx II" delays="1" dia="6." exitDia="0." initWt="1.2" len="26." mDiv="10" mFix="1" mStep="-1." massFrac="41.67" mfg="Quest" peakThrust="3.21" propWt="0.5" tDiv="10" tFix="1" tStep="-1." throatDia="0.">
<comments>QUEST MICROMAXX II RASP.ENG file made from NAR published data
File produced Dec 29, 2001
The total impulse, peak thrust, average thrust and burn time are
the same as the averaged static test data on the NAR web site in
the certification file. The curve drawn with these data points is as
close to the certification curve as can be with such a limited
number of points (32) allowed with wRASP up to v1.6.
</comments>
<data>
<eng-data cg="13." f="0." m="0.5" t="0."/>
<eng-data cg="13." f="0.16" m="0.498928" t="0.008"/>
<eng-data cg="13." f="0.482" m="0.493554" t="0.018"/>
<eng-data cg="13." f="0.993" m="0.486144" t="0.024"/>
<eng-data cg="13." f="1.534" m="0.473451" t="0.03"/>
<eng-data cg="13." f="2.032" m="0.461509" t="0.034"/>
<eng-data cg="13." f="2.397" m="0.454093" t="0.036"/>
<eng-data cg="13." f="2.543" m="0.43755" t="0.04"/>
<eng-data cg="13." f="3.025" m="0.40958" t="0.046"/>
<eng-data cg="13." f="3.21" m="0.37826" t="0.052"/>
<eng-data cg="13." f="2.864" m="0.342664" t="0.059"/>
<eng-data cg="13." f="2.191" m="0.300344" t="0.069"/>
<eng-data cg="13." f="1.094" m="0.270091" t="0.08"/>
<eng-data cg="13." f="0.539" m="0.260521" t="0.087"/>
<eng-data cg="13." f="0.378" m="0.256683" t="0.092"/>
<eng-data cg="13." f="0.304" m="0.248689" t="0.106"/>
<eng-data cg="13." f="0.26" m="0.233107" t="0.139"/>
<eng-data cg="13." f="0.303" m="0.215196" t="0.177"/>
<eng-data cg="13." f="0.287" m="0.192474" t="0.223"/>
<eng-data cg="13." f="0.243" m="0.176944" t="0.258"/>
<eng-data cg="13." f="0.198" m="0.165868" t="0.288"/>
<eng-data cg="13." f="0.27" m="0.143143" t="0.346"/>
<eng-data cg="13." f="0.298" m="0.116513" t="0.402"/>
<eng-data cg="13." f="0.254" m="0.112354" t="0.411"/>
<eng-data cg="13." f="0.312" m="0.10335" t="0.43"/>
<eng-data cg="13." f="0.282" m="0.0859449" t="0.465"/>
<eng-data cg="13." f="0.238" m="0.0694017" t="0.503"/>
<eng-data cg="13." f="0.281" m="0.0637531" t="0.516"/>
<eng-data cg="13." f="0.28" m="0.0421482" t="0.562"/>
<eng-data cg="13." f="0.294" m="0.0137954" t="0.621"/>
<eng-data cg="13." f="0.279" m="0.00420109" t="0.641"/>
<eng-data cg="13." f="0.176" m="0.00191552" t="0.647"/>
<eng-data cg="13." f="0." m="-0." t="0.66"/>
</data>
</engine>
</engine-list>
</engine-database>

View File

@ -0,0 +1,39 @@
; Traced from NAR certification data dated 1-29-2009
MicroMaxxII 6 26 NE-1 5.0E-4 0.0010 Q
0.021 0.015
0.036 0.05
0.043 0.103
0.049 0.198
0.08 1.636
0.092 1.3
0.109 0.995
0.124 0.805
0.133 0.442
0.143 0.301
0.164 0.21
0.186 0.149
0.199 0.183
0.235 0.145
0.256 0.145
0.293 0.149
0.327 0.164
0.367 0.156
0.387 0.175
0.409 0.183
0.431 0.191
0.461 0.21
0.474 0.202
0.49 0.217
0.505 0.175
0.513 0.198
0.537 0.172
0.553 0.175
0.602 0.156
0.623 0.175
0.644 0.183
0.674 0.21
0.689 0.191
0.697 0.229
0.731 0.21
0.753 0.092
0.771 0.0

View File

@ -1,7 +1,7 @@
# The OpenRocket build version
build.version=14.11dev
build.version=15.03dev
# The source of the package. When building a package for a specific

View File

@ -42,7 +42,7 @@ AppearanceCfg.lbl.texture.repeat = \u91CD\u590D:
AppearanceCfg.lbl.texture.rotation = \u65CB\u8F6C:
AppearanceCfg.lbl.texture.scale = \u7F29\u653E:
BasicEventSimulationEngine.error.NaNResult = \u6A21\u62DF\u7ED3\u679C\u5E76\u4E0D\u662F\u4E2A\u6570\u503C,\u8BF7\u6C47\u62A5bug
BasicEventSimulationEngine.error.NaNResult = \u6A21\u62DF\u7ED3\u679C\u975E\u6570\u503C,\u8BF7\u6C47\u62A5bug
BasicEventSimulationEngine.error.earlyMotorBurnout = \u53D1\u52A8\u673A\u8D77\u98DE\u524D\u5DF2\u71C3\u5C3D.
BasicEventSimulationEngine.error.noIgnition = \u53D1\u52A8\u673A\u672A\u70B9\u706B
BasicEventSimulationEngine.error.noMotorsDefined = \u53D1\u52A8\u673A\u672A\u5B9A\u4E49
@ -128,11 +128,15 @@ ComponentCfgDlg.Modify = \u4FEE\u6539
!ComponentConfigDialog
ComponentCfgDlg.configuration = \u8BBE\u7F6E
ComponentIcons.Altimeter = \u9AD8\u5EA6\u8BA1
ComponentIcons.Battery = \u7535\u6C60
ComponentIcons.Bodytube = \u7BAD\u4F53
ComponentIcons.Bulkhead = \u9694\u677F
ComponentIcons.Centeringring = \u4E2D\u5FC3\u73AF
ComponentIcons.Deploymentcharge = \u5F00\u4F1E\u836F
ComponentIcons.Ellipticalfinset = \u692D\u5706\u7A33\u5B9A\u7FFC
ComponentIcons.Engineblock = \u53D1\u52A8\u673A
ComponentIcons.Flightcomputer = \u98DE\u63A7
ComponentIcons.Freeformfinset = \u66F2\u9762\u7A33\u5B9A\u7FFC
ComponentIcons.Innertube = \u5185\u7BA1
ComponentIcons.Launchlug = \u53D1\u5C04\u8854\u5957
@ -140,11 +144,15 @@ ComponentIcons.Masscomponent = \u8D28\u91CF\u7EC4\u4EF6
!ComponentIcons
ComponentIcons.Nosecone = \u5934\u9525
ComponentIcons.Parachute = \u964D\u843D\u4F1E
ComponentIcons.Payload = \u6709\u6548\u8F7D\u8377
ComponentIcons.Recoveryhardware = \u56DE\u6536\u8BBE\u5907
ComponentIcons.Shockcord = \u51CF\u9707\u7D22
ComponentIcons.Streamer = \u98D8\u5E26
ComponentIcons.Tracker = \u8DDF\u8E2A\u5668
ComponentIcons.Transition = \u7EA7\u95F4\u6BB5
ComponentIcons.Trapezoidalfinset = \u68AF\u5F62\u7A33\u5B9A\u7FFC
ComponentIcons.Tubecoupler = \u8FDE\u63A5\u5668
ComponentIcons.Tubefinset = \u7BA1\u5F62\u7FFC
ComponentIcons.disabled = (\u5DF2\u7981\u7528)
ComponentPresetChooserDialog.checkbox.filterAftDiameter = \u5339\u914D\u540E\u76F4\u5F84
@ -264,6 +272,9 @@ FinSet.TabRelativePosition.CENTER = \u7FFC\u6839\u5F26\u4E2D\u70B9
FinSet.TabRelativePosition.END = \u7FFC\u6839\u5F26\u540E\u7F18
FinSet.TabRelativePosition.FRONT = \u7FFC\u6839\u5F26\u524D\u7F18
FinSetCfg.lbl.Filletradius = \u63A5\u7F1D\u534A\u5F84:
FinSetCfg.lbl.Finfilletmaterial = \u63A5\u7F1D\u6750\u6599:
FinSetConfig.Convertfinset = \u8F6C\u6362\u7FFC
FinSetConfig.but.AutoCalc = \u81EA\u52A8\u8BA1\u7B97
FinSetConfig.but.Converttofreeform = \u8F6C\u4E3A\u81EA\u7531\u66F2\u9762
@ -282,6 +293,10 @@ FinSetConfig.ttip.Tabheight = \u7FFC\u5C55\u65B9\u5411\u7684\u9AD8\u
FinSetConfig.ttip.Tablength = \u7FFC\u677F\u7684\u957F\u5EA6.
FinSetConfig.ttip.Tabposition = \u7FFC\u677F\u7684\u4F4D\u7F6E.
FinsetCfg.ttip.Finfillets1 = <HTML>\u5C06\u9884\u4F30\u8D28\u91CF\u6DFB\u52A0\u5230\u7FFC\u6839\u90E8.<br>
FinsetCfg.ttip.Finfillets2 = \u5047\u5B9A\u63A5\u7F1D\u5185\u51F9\u4E14\u548C\u7BAD\u4F53\u3001\u7FFC\u677F\u76F8\u5207.<br>
FinsetCfg.ttip.Finfillets3 = \u65E0\u63A5\u7F1D\u60C5\u51B5\u4E0B\u5C06\u8BBE\u5B9A\u63A5\u7F1D\u534A\u5F84\u4E3A0.
FlightDataType.TYPE_ACCELERATION_TOTAL = \u603B\u52A0\u901F\u5EA6
FlightDataType.TYPE_ACCELERATION_XY = \u6A2A\u5411\u52A0\u901F\u5EA6
FlightDataType.TYPE_ACCELERATION_Z = \u5782\u76F4\u52A0\u901F\u5EA6
@ -508,8 +523,15 @@ LineStyle.Dotted = \u70B9\u865A\u7EBF
! LineStyle
LineStyle.Solid = \u5B9E\u7EBF
MassComponent.Altimeter = \u9AD8\u5EA6\u8BA1
MassComponent.Battery = \u7535\u6C60
MassComponent.DeploymentCharge = \u5F00\u4F1E\u836F
MassComponent.FlightComputer = \u98DE\u63A7
!MassComponent
MassComponent.MassComponent = \u8D28\u91CF\u7EC4\u4EF6
MassComponent.Payload = \u6709\u6548\u8F7D\u8377
MassComponent.RecoveryHardware = \u56DE\u6536\u8BBE\u5907
MassComponent.Tracker = \u8FFD\u8E2A\u5668
MassComponentCfg.but.Reset = \u91CD\u7F6E
MassComponentCfg.lbl.Density = \u8FD1\u4F3C\u5BC6\u5EA6:
@ -521,6 +543,7 @@ MassComponentCfg.lbl.PosRelativeto = \u76F8\u5BF9\u4F4D\u7F6E:
MassComponentCfg.lbl.Radialdirection = \u5F84\u5411\u65B9\u5411:
MassComponentCfg.lbl.Radialdistance = \u5F84\u5411\u8DDD\u79BB:
MassComponentCfg.lbl.plus = \u52A0
MassComponentCfg.lbl.type = \u7C7B\u578B
MassComponentCfg.tab.General = \u5E38\u89C4
MassComponentCfg.tab.Radialpos = \u5F84\u5411\u4F4D\u7F6E
MassComponentCfg.tab.ttip.General = \u5E38\u89C4\u5C5E\u6027
@ -551,7 +574,7 @@ MotorCfg.checkbox.compmotormount = \u8BE5\u7EC4\u4EF6\u4E3A\u53D1\u52A8\u673A\u5
MotorCfg.lbl.Currentmotor = \u5F53\u524D\u53D1\u52A8\u673A:
MotorCfg.lbl.Flightcfg = \u98DE\u884C\u914D\u7F6E:
MotorCfg.lbl.Ignitionat = \u70B9\u706B\u65F6\u523B:
MotorCfg.lbl.Motoroverhang = \u53D1\u52A8\u673A\u7A81\u51FA:
MotorCfg.lbl.Motoroverhang = \u53D1\u52A8\u673A\u6A2A\u7F69\u91CF:
MotorCfg.lbl.longA1 = \u5F53\u524D\u8BBE\u8BA1\u7A3F\u4E3A\u5355\u7EA7\u706B\u7BAD.
MotorCfg.lbl.longA2 = \u70B9\u51FB"\u65B0\u5EFA\u7EA7"\u5EFA\u7ACB\u65B0\u7684\u706B\u7BAD\u7EA7.
MotorCfg.lbl.longB1 = \u5F53\u524D\u8BBE\u8BA1\u7A3F\u6709
@ -723,15 +746,46 @@ PhotoFrame.menu.window.size = \u5927\u5C0F
PhotoFrame.menu.window.size.portrait = {0} \u76F8\u7247
PhotoFrame.title = \u7167\u76F8\u9986
PhotoSettingsConfig.colorChooser.title = \u9009\u8272\u5668
PhotoSettingsConfig.tab.effects = \u7279\u6548
PhotoSettingsConfig.tab.environment = \u73AF\u5883
PhotoSettingsConfig.tab.orientation = \u65B9\u5411
PhotoSettingsConfig.title = \u8BBE\u7F6E
PhotoSettingsConfig.colorChooser.title = \u9009\u8272\u677F
PhotoSettingsConfig.lbl.advance = \u9AD8\u7EA7
PhotoSettingsConfig.lbl.amb = \u73AF\u5883
PhotoSettingsConfig.lbl.camera = \u76F8\u673A
PhotoSettingsConfig.lbl.effects = \u6548\u679C
PhotoSettingsConfig.lbl.exhaustScale = \u5C3E\u6C14\u5927\u5C0F
PhotoSettingsConfig.lbl.flame = \u706B\u7130
PhotoSettingsConfig.lbl.flameAspect = \u706B\u7130\u5916\u89C2\u89D2\u5EA6
PhotoSettingsConfig.lbl.fov = \u89C6\u573A
PhotoSettingsConfig.lbl.light = \u5149\u7167
PhotoSettingsConfig.lbl.lightAlt = \u5149\u7167\u9AD8\u5EA6
PhotoSettingsConfig.lbl.lightAz = \u5149\u7167\u65B9\u4F4D
PhotoSettingsConfig.lbl.pitch = \u503E\u89D2
PhotoSettingsConfig.lbl.rocket = \u706B\u7BAD
PhotoSettingsConfig.lbl.roll = \u65CB\u8F6C
PhotoSettingsConfig.lbl.sky = \u5929\u7A7A
PhotoSettingsConfig.lbl.skyColor = \u5929\u7A7A\u989C\u8272
PhotoSettingsConfig.lbl.skyCredit = \u56FE\u7247\u6CE8\u89E3
PhotoSettingsConfig.lbl.skyImage = \u5929\u7A7A\u56FE\u7247
PhotoSettingsConfig.lbl.smoke = \u70DF\u96FE
PhotoSettingsConfig.lbl.smokeFlame = \u7130\u70DF
PhotoSettingsConfig.lbl.smokeOpacity = \u70DF\u900F\u660E\u5EA6
PhotoSettingsConfig.lbl.sparkConcentration = \u706B\u661F\u6D53\u5EA6
PhotoSettingsConfig.lbl.sparkWeight = \u706B\u661F\u91CD\u91CF
PhotoSettingsConfig.lbl.sparks = \u706B\u661F
PhotoSettingsConfig.lbl.speed = \u901F\u5EA6
PhotoSettingsConfig.lbl.sun = \u9633\u5149
PhotoSettingsConfig.lbl.vAlt = \u89C6\u9AD8\u5EA6
PhotoSettingsConfig.lbl.vAz = \u89C6\u65B9\u4F4D\u89D2
PhotoSettingsConfig.lbl.vDist = \u89C6\u8DDD
PhotoSettingsConfig.lbl.yaw = \u65CB\u89D2
PhotoSettingsConfig.tab.effects = \u7279\u6548
PhotoSettingsConfig.tab.environment = \u73AF\u5883
PhotoSettingsConfig.tab.orientation = \u65B9\u5411
PhotoSettingsConfig.title = \u8BBE\u7F6E
PlotConfiguration.Angleofattack = \u653B\u89D2\u548C\u65B9\u5411 vs. \u65F6\u95F4
PlotConfiguration.Dragcoef = \u963B\u529B\u7CFB\u6570 vs. \u9A6C\u8D6B\u6570
PlotConfiguration.Flightside = \u98DE\u884C\u4FA7\u89C6\u5256\u9762
PlotConfiguration.Groundtrack = \u5730\u9762\u822A\u8FF9
PlotConfiguration.Rollcharacteristics = \u6EDA\u8F6C\u7279\u5F81
PlotConfiguration.Simulationtime = \u6A21\u62DF\u65F6\u95F4\u6B65\u957F vs. \u8BA1\u7B97\u65F6\u95F4
PlotConfiguration.Stability = \u7A33\u5B9A\u6027 vs. \u65F6\u95F4
@ -1015,6 +1069,23 @@ SimulationEditDialog.btn.plot = \u6570\u636E\u56FE
SimulationEditDialog.btn.simulate = \u4EFF\u771F
SimulationEditDialog.btn.simulateAndPlot = \u4EFF\u771F & \u6570\u636E\u56FE
SimulationExtension.javacode.className = \u5B8C\u6574\u7684Java\u7C7B\u540D:
SimulationExtension.javacode.desc = \u6DFB\u52A0\u81EA\u5B9A\u4E49SimulationListener(\u76D1\u542C\u4E8B\u4EF6)
SimulationExtension.javacode.name = Java\u4EE3\u7801
SimulationExtension.javacode.name.none = \u65E0
SimulationExtension.scripting.desc = \u81EA\u5B9A\u4E49OpenRocket\u6269\u5C55\u811A\u672C.
SimulationExtension.scripting.language.label = \u8BED\u8A00:
SimulationExtension.scripting.name = {language}\u811A\u672C
SimulationExtension.scripting.text.enabled = \u542F\u7528\u811A\u672C
SimulationExtension.scripting.text.enabled.ttip = \u811A\u672C\u53EA\u6709\u5728\u542F\u7528\u540E\u624D\u4F1A\u88AB\u6267\u884C.
SimulationExtension.scripting.text.trusted = \u5728\u672C\u673A\u4E0A\u4FE1\u4EFB\u8BE5\u811A\u672C
SimulationExtension.scripting.text.trusted.clear = \u6E05\u9664\u811A\u672C\u4FE1\u4EFB
SimulationExtension.scripting.text.trusted.clear.ttip = \u6E05\u9664\u5BF9\u6240\u6709\u811A\u672C\u7684\u4FE1\u4EFB
SimulationExtension.scripting.text.trusted.cleared = \u6240\u6709\u811A\u672C\u5DF2\u4E0D\u88AB\u672C\u673A\u4FE1\u4EFB.
SimulationExtension.scripting.text.trusted.cleared.title = \u5DF2\u6E05\u9664
SimulationExtension.scripting.text.trusted.msg = \u4E0D\u53EF\u4FE1\u7684\u811A\u672C\u4F1A\u5728\u8BFB\u53D6\u65F6\u88AB\u7981\u7528
SimulationExtension.scripting.warning.disabled = \u4E0D\u53EF\u4FE1\u811A\u672C\u5DF2\u88AB\u7981\u7528. \u4F60\u9700\u8981\u5728\u4EFF\u771F\u9009\u9879\u4E2D\u624B\u52A8\u542F\u7528.
SimulationModifierTree.OptimizationParameters = \u4F18\u5316\u53C2\u6570
SimulationPlotPanel.error.noPlotSelected = \u8BF7\u5728Y\u8F74\u6DFB\u52A0\u81F3\u5C111\u4E2A\u53D8\u91CF.
@ -1034,7 +1105,7 @@ SleeveCfg.tab.Wallthickness = \u58C1\u539A:
SlideShowDialog.btn.next = \u4E0B\u4E00\u9875
SlideShowDialog.btn.prev = \u4E0A\u4E00\u9875
SlideShowLinkListener.error.msg = \u5F88\u62B1\u6B49, \u6240\u9009\u7684\u6559\u7A0B\u8FD8\u672A\u5B8C\u6210.
SlideShowLinkListener.error.msg = \u5F88\u9057\u61BE, \u6240\u9009\u7684\u6559\u7A0B\u8FD8\u672A\u88AB\u64B0\u5199.
SlideShowLinkListener.error.title = \u6CA1\u6709\u627E\u5230\u76F8\u5173\u6559\u7A0B
StabilityParameter.name = \u7A33\u5B9A\u6027
@ -1215,6 +1286,17 @@ TrapezoidFinSetCfg.tab.Generalproperties = \u5E38\u89C4\u5C5E\u6027
! TubeCoupler
TubeCoupler.TubeCoupler = \u8FDE\u63A5\u5668
TubeFinSet.TubeFinSet = \u7BA1\u5F62\u7FFC
TubeFinSetCfg.checkbox.Automatic = \u81EA\u52A8
TubeFinSetCfg.lbl.Finrotation = \u7FFC\u7FC5\u65CB\u5EA6:
TubeFinSetCfg.lbl.Innerdiam = \u5185\u76F4\u5F84:
TubeFinSetCfg.lbl.Length = \u957F\u5EA6:
TubeFinSetCfg.lbl.Nbroffins = \u7FFC\u6570\u91CF:
TubeFinSetCfg.lbl.Outerdiam = \u5916\u76F4\u5F84:
TubeFinSetCfg.lbl.Thickness = \u539A\u5EA6:
TubeFinSetCfg.lbl.ttip.Finrotation = \u7A33\u5B9A\u7FFC\u7EC4\u5408\u91CC\u7B2C\u4E00\u7247\u7684\u89D2\u5EA6
Warning.DISCONTINUITY = \u7BAD\u4F53\u76F4\u5F84\u4E0D\u8FDE\u7EED.
Warning.FILE_INVALID_PARAMETER = \u65E0\u6548\u53C2\u6570, \u5FFD\u7565.
Warning.JAGGED_EDGED_FIN = \u952F\u9F7F\u7FFC\u9884\u6D4B\u53EF\u80FD\u4E0D\u51C6\u786E.
@ -1228,6 +1310,7 @@ Warning.RECOVERY_HIGH_SPEED = \u56DE\u6536\u88C5\u7F6E\u5206\u79BB
Warning.RECOVERY_LAUNCH_ROD = \u56DE\u6536\u88C5\u7F6E\u5728\u53D1\u5C04\u67B6\u4E0A\u89E6\u53D1.
Warning.SUPERSONIC = \u8D85\u97F3\u901F\u73AF\u5883\u4E0B\u7684\u8BA1\u7B97\u7ED3\u679C\u53EF\u80FD\u4E0D\u51C6\u786E.
Warning.THICK_FIN = \u539A\u7FFC\u6A21\u578B\u53EF\u80FD\u4E0D\u51C6\u786E.
Warning.TUMBLE_UNDER_THRUST = \u706B\u7BAD\u7EA7\u5728\u63A8\u529B\u4F5C\u7528\u4E0B\u5F00\u59CB\u503E\u8986.
bugreport.dlg.but.Sendbugreport = \u53D1\u9001\u9519\u8BEF\u62A5\u544A
bugreport.dlg.but.Sendbugreport.Ttip = \u81EA\u52A8\u53D1\u9001\u9519\u8BEF\u62A5\u544A\u7ED9OpenRocket\u5F00\u53D1\u7EC4
@ -1275,6 +1358,7 @@ compaddbuttons.Shockcord = \u51CF\u9707\u7D22
compaddbuttons.Streamer = \u98D8\u5E26
compaddbuttons.Transition = \u7EA7\u95F4\u6BB5
compaddbuttons.Trapezoidal = \u68AF\u5F62\u7A33\u5B9A\u7FFC
compaddbuttons.Tubefin = \u7BA1\u5F62\u7FFC
compaddbuttons.askPosition.Addtotheend = \u5728\u5C3E\u90E8\u6DFB\u52A0
compaddbuttons.askPosition.Cancel = \u53D6\u6D88
compaddbuttons.askPosition.Inserthere = \u5728\u6B64\u63D2\u5165
@ -1417,6 +1501,10 @@ filetypes.images = \u56FE\u50CF\u6587\u4EF6
! General file type names
filetypes.pdf = PDF \u6587\u4EF6 (*.pdf)
generalprefs.languages.default = \u7CFB\u7EDF\u9ED8\u8BA4
generalprefs.lbl.language = \u754C\u9762\u8BED\u8A00
generalprefs.lbl.languageEffect = \u65B0\u7684\u8BED\u8A00\u5C06\u5728\u4E0B\u6B21\u542F\u52A8OpenRocket\u65F6\u751F\u6548.
main.menu.analyze = \u5206\u6790
main.menu.analyze.componentAnalysis = \u7EC4\u4EF6\u5206\u6790
main.menu.analyze.componentAnalysis.desc = \u4EC5\u5206\u6790\u706B\u7BAD\u90E8\u4EF6
@ -1620,12 +1708,15 @@ optimization.modifier.trapezoidfinset.tipChord.desc = \u4F18\u5316\u7FFC\u6
pref.dlg.Add = \u6DFB\u52A0
pref.dlg.Allthrustcurvefiles = \u652F\u6301\u7684\u63A8\u529B\u66F2\u7EBF\u6587\u4EF6(*.eng; *.rse; *.zip; \u6587\u4EF6\u5939)
pref.dlg.DescriptionArea.Adddirectories = \u4EFB\u4F55\u65B0\u6DFB\u52A0\u7684RASP\u53D1\u52A8\u673A\u6587\u4EF6(*.eng), RockSim\u53D1\u52A8\u673A\u6587\u4EF6(*.rse), ZIP\u538B\u7F29\u5305\u6216\u6587\u4EF6\u5939\u6240\u5305\u542B\u7684\u63A8\u529B\u66F2\u7EBF\u5C06\u5728\u4E0B\u6B21\u542F\u52A8OpenRocket\u540E\u751F\u6548
pref.dlg.DescriptionArea.Adddirectories = \u4EFB\u4F55\u65B0\u6DFB\u52A0\u7684RASP\u53D1\u52A8\u673A\u6587\u4EF6(*.eng), RockSim\u53D1\u52A8\u673A\u6587\u4EF6(*.rse), ZIP\u538B\u7F29\u5305\u6216\u6587\u4EF6\u5939\u6240\u5305\u542B\u7684\u63A8\u529B\u66F2\u7EBF\u5C06\u5728\u4E0B\u6B21\u542F\u52A8OpenRocket\u65F6\u751F\u6548
pref.dlg.PrefBooleanSelector1 = \u5220\u9664
pref.dlg.PrefBooleanSelector2 = \u786E\u8BA4
pref.dlg.PrefChoiseSelector1 = \u603B\u662F\u8BE2\u95EE
pref.dlg.PrefChoiseSelector2 = \u63D2\u5728\u4E2D\u95F4
pref.dlg.PrefChoiseSelector3 = \u63D2\u5728\u6700\u540E
pref.dlg.PrefFontLarge = \u5927
pref.dlg.PrefFontMedium = \u4E2D
pref.dlg.PrefFontSmall = \u5C0F
pref.dlg.RASPfiles = RASP\u53D1\u52A8\u673A\u6587\u4EF6(*.eng)
pref.dlg.RockSimfiles = RockSim\u53D1\u52A8\u673A\u6587\u4EF6(*.rse)
pref.dlg.ZIParchives = ZIP\u538B\u7F29\u5305(*.zip)
@ -1637,6 +1728,8 @@ pref.dlg.but.defaultmetric = \u7F3A\u7701\u516C\u5236
pref.dlg.but.openlast = \u5728\u542F\u52A8\u7684\u65F6\u5019\u6253\u5F00\u4E0A\u6B21\u8BBE\u8BA1
pref.dlg.but.reset = \u91CD\u7F6E
pref.dlg.checkbox.Checkupdates = \u542F\u52A8\u65F6\u68C0\u67E5\u66F4\u65B0
pref.dlg.checkbox.Runsimulations = \u5728\u67E5\u770B\u4EFF\u771F\u9762\u677F\u65F6\u91CD\u65B0\u8FD0\u884C\u8FC7\u65F6\u7684\u4EFF\u771F\u9879.
pref.dlg.checkbox.Updateestimates = \u5728\u8BBE\u8BA1\u7A97\u53E3\u66F4\u65B0\u9884\u4F30\u7684\u98DE\u884C\u53C2\u6570.
pref.dlg.lbl.Acceleration = \u52A0\u901F\u5EA6:
pref.dlg.lbl.Angle = \u89D2\u5EA6:
pref.dlg.lbl.Area = \u9762\u79EF:
@ -1654,6 +1747,7 @@ pref.dlg.lbl.Motordimensions = \u53D1\u52A8\u673A\u5C3A\u5BF8:
pref.dlg.lbl.Positiontoinsert = \u65B0\u7EC4\u4EF6\u63D2\u5165\u4F4D\u7F6E:
pref.dlg.lbl.Pressure = \u538B\u529B:
pref.dlg.lbl.Rocketdimensions = \u706B\u7BAD\u5C3A\u5BF8:
pref.dlg.lbl.Rocketinfofontsize = \u706B\u7BAD\u8BBE\u8BA1\u9762\u677F\u7684\u6587\u5B57\u5927\u5C0F:
pref.dlg.lbl.Rollrate = \u89D2\u901F\u5EA6:
pref.dlg.lbl.Selectprefunits = \u8BF7\u9009\u62E9\u5355\u4F4D\u5236:
pref.dlg.lbl.Stability = \u7A33\u5B9A\u6027:
@ -1673,15 +1767,19 @@ pref.dlg.opengl.but.enableAA = \u542F\u7528\u53CD\u952F\u9F7F
pref.dlg.opengl.but.enableGL = \u542F\u7528\u4E09\u7EF4\u56FE\u50CF
pref.dlg.opengl.lbl.title = \u4E09\u7EF4\u56FE\u50CF
pref.dlg.opengl.lbl.useFBO = \u79BB\u7EBF\u6E32\u67D3
pref.dlg.tab.Colors = \u663E\u793A:
pref.dlg.tab.Custommaterials = \u81EA\u5B9A\u4E49\u6750\u6599
pref.dlg.tab.Defaultunits = \u7F3A\u7701\u5355\u4F4D
pref.dlg.tab.Graphics = \u56FE\u50CF
pref.dlg.tab.Launch = \u53D1\u5C04
pref.dlg.tab.Materials = \u6750\u6599
pref.dlg.tab.Miscellaneousoptions = \u6742\u9879
pref.dlg.tab.Options = \u9009\u9879
pref.dlg.tab.Simulation = \u4EFF\u771F
pref.dlg.tab.Units = \u5355\u4F4D\u5236
pref.dlg.title.Preferences = \u9996\u9009\u9879
pref.dlg.ttip.Checkupdatesnow = \u73B0\u5728\u68C0\u67E5\u8F6F\u4EF6\u66F4\u65B0
pref.dlg.ttip.DefaultMach1 = <HTML><b>\u672C\u8BBE\u5B9A\u5C06\u5728\u4E0B\u6B21\u542F\u52A8OpenRocket\u65F6\u751F\u6548.</b> <BR>
printdlg.but.preview = \u9884\u89C8
printdlg.but.saveaspdf = \u4FDD\u5B58\u4E3A PDF
@ -1712,9 +1810,13 @@ simedtdlg.IntensityDesc.Medium = \u4E2D
simedtdlg.IntensityDesc.None = \u65E0
simedtdlg.IntensityDesc.Veryhigh = \u5F88\u9AD8
simedtdlg.IntensityDesc.Verylow = \u5F88\u4F4E
simedtdlg.SimExt.add = \u6DFB\u52A0\u6269\u5C55
simedtdlg.SimExt.copyExtension = \u590D\u5236\u6269\u5C55
simedtdlg.SimExt.desc = <html><i>\u6A21\u62DF\u6269\u5C55</i> \u80FD\u5728\u6A21\u62DF\u8FC7\u7A0B\u4E2D\u542F\u7528\u9AD8\u7EA7\u7279\u6027\u4EE5\u53CA\u81EA\u5B9A\u4E49\u529F\u80FD. \u6BD4\u5982\u4F60\u53EF\u4EE5\u505A hardware-in-the-loop \u6D4B\u8BD5.
simedtdlg.SimExt.noExtensions = \u65E0\u6269\u5C55\u5B9A\u4E49\u9879.
simedtdlg.border.Atmoscond = \u5927\u6C14\u6761\u4EF6
simedtdlg.border.Launchrod = \u53D1\u5C04\u67B6
simedtdlg.border.Simlist = \u4EFF\u771F\u76D1\u542C\u5668
simedtdlg.border.SimExt = \u6A21\u62DF\u6269\u5C55
simedtdlg.border.Simopt = \u4EFF\u771F\u9009\u9879
simedtdlg.but.add = \u6DFB\u52A0
simedtdlg.but.remove = \u79FB\u9664
@ -1725,9 +1827,14 @@ simedtdlg.but.savedefault = \u8BBE\u4E3A\u9ED8\u8BA4
simedtdlg.but.ttip.resettodefault = \u91CD\u7F6E\u65F6\u95F4\u6B65\u957F\u4E3A\u7F3A\u7701\u503C (
simedtdlg.chart.Simflight = \u5DF2\u4EFF\u771F\u7684\u98DE\u884C
simedtdlg.checkbox.InterStdAtmosphere = \u4F7F\u7528\u56FD\u9645\u6807\u51C6\u5927\u6C14\u6A21\u578B
simedtdlg.checkbox.Intowind = \u603B\u662F\u987A\u98CE\u6216\u9006\u98CE\u53D1\u5C04
simedtdlg.checkbox.ttip.InterStdAtmosphere1 = <html>\u9009\u62E9\u4F7F\u7528\u56FD\u9645\u6807\u51C6\u5927\u6C14\u6A21\u578B.<br>\u8BE5\u6A21\u578B\u7684\u5927\u6C14\u6E29\u5EA6\u4E3A
simedtdlg.checkbox.ttip.InterStdAtmosphere2 = , \u5927\u6C14\u538B\u4E3A
simedtdlg.checkbox.ttip.InterStdAtmosphere3 = \u4E14\u5747\u4E3A\u6D77\u5E73\u9762\u503C.
simedtdlg.checkbox.ttip.Intowind1 = <html>\u52FE\u9009\u540E\u53D1\u5C04\u6746\u5C06\u4F1A\u6307\u5411\u98CE\u5411.<br>
simedtdlg.checkbox.ttip.Intowind2 = 0\u89D2\u5EA6\u53D1\u5C04\u5373\u53D1\u5C04\u6746\u5782\u76F4\u5411\u4E0A. <br>
simedtdlg.checkbox.ttip.Intowind3 = \u8D1F\u53D1\u5C04\u6746\u89D2\u5EA6\u5C06\u987A\u98CE\u53D1\u5C04.<br>\u53D6\u6D88\u52FE\u9009\u672C\u9879\u540E\u4F60\u53EF\u4EE5\u6307\u5B9A\u4EFB\u610F\u53D1\u5C04\u6746\u89D2\u5EA6.
simedtdlg.checkbox.ttip.Intowind4 = \u53D6\u6D88\u52FE\u9009\u672C\u9879\u540E\u4F60\u53EF\u4EE5\u6307\u5B9A\u4EFB\u610F\u53D1\u5C04\u6746\u89D2\u5EA6.
simedtdlg.combo.ttip.Flightcfg = \u9009\u62E9\u8981\u4F7F\u7528\u7684\u98DE\u884C\u914D\u7F6E.
simedtdlg.dlg.Simres = \u4EFF\u771F\u7ED3\u679C
simedtdlg.lbl.Addsimlist = \u6DFB\u52A0\u4EFF\u771F\u76D1\u542C\u5668
@ -1753,6 +1860,7 @@ simedtdlg.lbl.Temperature = \u6E29\u5EA6:
simedtdlg.lbl.Timestep = \u65F6\u95F4\u6B65\u957F:
simedtdlg.lbl.Turbulenceintensity = \u6E4D\u6D41\u5F3A\u5EA6:
simedtdlg.lbl.Wind = \u98CE\u573A\u6761\u4EF6
simedtdlg.lbl.Winddirection = \u98CE\u5411:
simedtdlg.lbl.runsimfirst = \u8BF7\u5148\u8FD0\u884C\u4EFF\u771F
simedtdlg.lbl.ttip.Altitude = <html>\u53D1\u5C04\u9AD8\u5EA6\u57FA\u4E8E\u6D77\u5E73\u9762.<br>\u8FD9\u4F1A\u5F71\u54CD\u5927\u6C14\u6A21\u578B\u4E2D\u706B\u7BAD\u7684\u4F4D\u7F6E.
simedtdlg.lbl.ttip.Angle = \u53D1\u5C04\u67B6\u76F8\u5BF9\u4E8E\u5782\u76F4\u65B9\u5411\u7684\u89D2\u5EA6
@ -1776,6 +1884,7 @@ simedtdlg.lbl.ttip.Timestep2 = 4\u9636\u6A21\u62DF\u65B9\u6CD5\u9
simedtdlg.lbl.ttip.Turbulenceintensity1 = <html>\u6E4D\u6D41\u5F3A\u5EA6\u8FD1\u4F3C\u4E3A\u6807\u51C6\u5DEE\u9664\u4EE5\u5E73\u5747\u98CE\u901F.<br>
simedtdlg.lbl.ttip.Turbulenceintensity2 = \u5178\u578B\u53D6\u503C\u8303\u56F4\u662F\u4ECE
simedtdlg.lbl.ttip.Turbulenceintensity3 = \u5230
simedtdlg.lbl.ttip.Winddirection = <html>\u98CE\u5411, 0-360\u5EA6. <br>0 \u662F\u5317\u98CE,<br> 90 \u662F\u4E1C\u98CE
simedtdlg.tab.CustomExpressions = \u81EA\u5B9A\u4E49\u8868\u8FBE\u5F0F
simedtdlg.tab.Exportdata = \u8F93\u51FA\u6570\u636E
simedtdlg.tab.Launchcond = \u53D1\u5C04\u6761\u4EF6
@ -1785,40 +1894,42 @@ simedtdlg.title.Editsim = \u7F16\u8F91\u4EFF\u771F
simedtdlg.txt.longA1 = <html><i>\u4EFF\u771F\u76D1\u542C\u5668(Simulation Listener)</i>\u662F\u4E00\u4E2A\u9AD8\u7EA7\u7279\u6027,\u5141\u8BB8\u7528\u6237\u81EA\u5B9A\u4E49\u4EE3\u7801\u4E0E\u4EFF\u771F\u8FC7\u7A0B\u4EA4\u4E92
simedtdlg.txt.longA2 = \u5173\u4E8E\u4EFF\u771F\u76D1\u542C\u5668\u7684\u8BE6\u7EC6\u4FE1\u606F,\u8BF7\u53C2\u9605OpenRocket\u76F8\u5173\u6280\u672F\u6587\u6863.
simpanel.but.deletesimulations = \u5220\u9664\u4EFF\u771F
simpanel.but.editsimulation = \u7F16\u8F91\u4EFF\u771F
simpanel.but.deletesimulations = \u5220\u9664\u4EFF\u771F
simpanel.but.editsimulation = \u7F16\u8F91\u4EFF\u771F
! Simulation Panel
simpanel.but.newsimulation = \u65B0\u5EFA\u4EFF\u771F
simpanel.but.plotexport = \u7ED8\u56FE/\u8F93\u51FA
simpanel.but.runsimulations = \u8FD0\u884C\u4EFF\u771F
simpanel.but.ttip.deletesim = \u5220\u9664\u9009\u4E2D\u7684\u4EFF\u771F
simpanel.but.ttip.editsim = \u7F16\u8F91\u9009\u4E2D\u7684\u4EFF\u771F
simpanel.but.ttip.newsimulation = \u6DFB\u52A0\u4E00\u4E2A\u65B0\u7684\u4EFF\u771F
simpanel.but.ttip.runsimu = \u91CD\u65B0\u8FD0\u884C\u9009\u4E2D\u7684\u4EFF\u771F
simpanel.checkbox.donotask = \u4E0D\u518D\u8BE2\u95EE
simpanel.col.Apogee = \u6700\u9AD8\u70B9
simpanel.col.Configuration = \u914D\u7F6E
simpanel.col.Flighttime = \u98DE\u884C\u65F6\u95F4
simpanel.col.Groundhitvelocity = \u649E\u51FB\u5730\u9762\u901F\u5EA6
simpanel.col.Maxacceleration = \u6700\u5927\u52A0\u901F\u5EA6
simpanel.col.Maxvelocity = \u6700\u5927\u901F\u5EA6
simpanel.col.Motors = \u53D1\u52A8\u673A
simpanel.col.Name = \u540D\u79F0
simpanel.col.Timetoapogee = \u6700\u9AD8\u70B9\u65F6\u95F4
simpanel.col.Velocityatdeploy = \u6709\u6548\u8D1F\u8377\u901F\u5EA6
simpanel.col.Velocityoffrod = \u79BB\u67B6\u901F\u5EA6
simpanel.dlg.lbl.DeleteSim1 = \u5220\u9664\u9009\u4E2D\u7684\u4EFF\u771F?
simpanel.dlg.lbl.DeleteSim2 = <html><i>\u8BE5\u64CD\u4F5C\u65E0\u6CD5\u64A4\u9500.</i>
simpanel.dlg.lbl.DeleteSim3 = \u5220\u9664\u4EFF\u771F
simpanel.lbl.defpref = \u60A8\u53EF\u5728\u9996\u9009\u9879\u4E2D\u4FEE\u6539\u9ED8\u8BA4\u64CD\u4F5C.
simpanel.ttip.external = <i>\u5BFC\u5165\u7684\u6570\u636E</i>
simpanel.ttip.loaded = <i>\u4ECE\u6587\u4EF6\u8F7D\u5165\u6570\u636E</i>
simpanel.ttip.noData = \u6CA1\u6709\u53EF\u7528\u7684\u4EFF\u771F\u6570\u636E.
simpanel.ttip.noWarnings = <font color="gray">\u6CA1\u6709\u8B66\u544A.</font>
simpanel.ttip.notSimulated = <i>\u672A\u8FDB\u884C\u8FC7\u4EFF\u771F</i><br>\u70B9\u51FB<i><b>\u8FD0\u884C\u4EFF\u771F</b></i>.
simpanel.ttip.outdated = <i><font color="red">\u6570\u636E\u5DF2\u8FC7\u671F</font></i><br>\u70B9\u51FB<i><b>\u8FD0\u884C\u4EFF\u771F</b></i>\u91CD\u65B0\u8BA1\u7B97.
simpanel.ttip.uptodate = <i>\u6700\u65B0\u7684\u6570\u636E</i>
simpanel.ttip.warnings = <font color="red">\u8B66\u544A:</font>
simpanel.but.newsimulation = \u65B0\u5EFA\u4EFF\u771F
simpanel.but.plotexport = \u7ED8\u56FE/\u8F93\u51FA
simpanel.but.runsimulations = \u8FD0\u884C\u4EFF\u771F
simpanel.but.ttip.deletesim = \u5220\u9664\u9009\u4E2D\u7684\u4EFF\u771F
simpanel.but.ttip.editsim = \u7F16\u8F91\u9009\u4E2D\u7684\u4EFF\u771F
simpanel.but.ttip.newsimulation = \u6DFB\u52A0\u4E00\u4E2A\u65B0\u7684\u4EFF\u771F
simpanel.but.ttip.runsimu = \u91CD\u65B0\u8FD0\u884C\u9009\u4E2D\u7684\u4EFF\u771F
simpanel.checkbox.donotask = \u4E0D\u518D\u8BE2\u95EE
simpanel.col.Apogee = \u6700\u9AD8\u70B9
simpanel.col.Configuration = \u914D\u7F6E
simpanel.col.Flighttime = \u98DE\u884C\u65F6\u95F4
simpanel.col.Groundhitvelocity = \u649E\u51FB\u5730\u9762\u901F\u5EA6
simpanel.col.Maxacceleration = \u6700\u5927\u52A0\u901F\u5EA6
simpanel.col.Maxvelocity = \u6700\u5927\u901F\u5EA6
simpanel.col.Motors = \u53D1\u52A8\u673A
simpanel.col.Name = \u540D\u79F0
simpanel.col.OptimumCoastTime = \u6700\u957F\u5EF6\u6EDE\u65F6\u95F4
simpanel.col.OptimumCoastTime.ttip = \u4ECE\u6700\u540E\u4E00\u7EA7\u53D1\u52A8\u673A\u71C3\u5C3D\u81F3\u8FBE\u5230\u6700\u9AD8\u9AD8\u5EA6\u7684\u65F6\u95F4.
simpanel.col.Timetoapogee = \u6700\u9AD8\u70B9\u65F6\u95F4
simpanel.col.Velocityatdeploy = \u6709\u6548\u8D1F\u8377\u901F\u5EA6
simpanel.col.Velocityoffrod = \u79BB\u67B6\u901F\u5EA6
simpanel.dlg.lbl.DeleteSim1 = \u5220\u9664\u9009\u4E2D\u7684\u4EFF\u771F?
simpanel.dlg.lbl.DeleteSim2 = <html><i>\u8BE5\u64CD\u4F5C\u65E0\u6CD5\u64A4\u9500.</i>
simpanel.dlg.lbl.DeleteSim3 = \u5220\u9664\u4EFF\u771F
simpanel.lbl.defpref = \u60A8\u53EF\u5728\u9996\u9009\u9879\u4E2D\u4FEE\u6539\u9ED8\u8BA4\u64CD\u4F5C.
simpanel.ttip.external = <i>\u5BFC\u5165\u7684\u6570\u636E</i>
simpanel.ttip.loaded = <i>\u4ECE\u6587\u4EF6\u8F7D\u5165\u6570\u636E</i>
simpanel.ttip.noData = \u6CA1\u6709\u53EF\u7528\u7684\u4EFF\u771F\u6570\u636E.
simpanel.ttip.noWarnings = <font color="gray">\u6CA1\u6709\u8B66\u544A.</font>
simpanel.ttip.notSimulated = <i>\u672A\u8FDB\u884C\u8FC7\u4EFF\u771F</i><br>\u70B9\u51FB<i><b>\u8FD0\u884C\u4EFF\u771F</b></i>.
simpanel.ttip.outdated = <i><font color="red">\u6570\u636E\u5DF2\u8FC7\u671F</font></i><br>\u70B9\u51FB<i><b>\u8FD0\u884C\u4EFF\u771F</b></i>\u91CD\u65B0\u8BA1\u7B97.
simpanel.ttip.uptodate = <i>\u6700\u65B0\u7684\u6570\u636E</i>
simpanel.ttip.warnings = <font color="red">\u8B66\u544A:</font>
simplotpanel.AUTO_NAME = \u81EA\u52A8
simplotpanel.CUSTOM = \u81EA\u5B9A\u4E49

View File

@ -84,6 +84,8 @@ public class RocksimCommonConstants {
public static final String RING_TAIL = "RingTail";
public static final String EXTERNAL_POD = "ExternalPod";
public static final String TEXTURE = "Texture";
public static final String TUBE_COUNT = "TubeCount";
public static final String MAX_TUBES_ALLOWED = "MaxTubesAllowed";
/**
* Length conversion. Rocksim is in millimeters, OpenRocket in meters.

View File

@ -15,6 +15,7 @@ import net.sf.openrocket.rocketcomponent.RocketComponent;
import net.sf.openrocket.rocketcomponent.Streamer;
import net.sf.openrocket.rocketcomponent.Transition;
import net.sf.openrocket.rocketcomponent.TubeCoupler;
import net.sf.openrocket.rocketcomponent.TubeFinSet;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
@ -53,10 +54,11 @@ public class BodyTubeDTO extends BasePartDTO implements AttachableParts {
@XmlElementRef(name = RocksimCommonConstants.LAUNCH_LUG, type = LaunchLugDTO.class),
@XmlElementRef(name = RocksimCommonConstants.FIN_SET, type = FinSetDTO.class),
@XmlElementRef(name = RocksimCommonConstants.CUSTOM_FIN_SET, type = CustomFinSetDTO.class),
@XmlElementRef(name = RocksimCommonConstants.TUBE_FIN_SET, type = TubeFinSetDTO.class),
@XmlElementRef(name = RocksimCommonConstants.STREAMER, type = StreamerDTO.class),
@XmlElementRef(name = RocksimCommonConstants.PARACHUTE, type = ParachuteDTO.class),
@XmlElementRef(name = RocksimCommonConstants.MASS_OBJECT, type = MassObjectDTO.class)})
List<BasePartDTO> attachedParts = new ArrayList<BasePartDTO>();
List<BasePartDTO> attachedParts = new ArrayList();
/**
* Constructor.
@ -121,6 +123,8 @@ public class BodyTubeDTO extends BasePartDTO implements AttachableParts {
attachedParts.add(new CustomFinSetDTO((FreeformFinSet) rocketComponents));
} else if (rocketComponents instanceof FinSet) {
attachedParts.add(new FinSetDTO((FinSet) rocketComponents));
} else if (rocketComponents instanceof TubeFinSet) {
attachedParts.add(new TubeFinSetDTO((TubeFinSet) rocketComponents));
}
}
}

View File

@ -0,0 +1,109 @@
package net.sf.openrocket.file.rocksim.export;
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
import net.sf.openrocket.rocketcomponent.TubeFinSet;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
/**
* This class models an XML element for a Rocksim TubeFinSet.
*/
@XmlRootElement(name = RocksimCommonConstants.TUBE_FIN_SET)
@XmlAccessorType(XmlAccessType.FIELD)
public class TubeFinSetDTO extends BasePartDTO {
@XmlElement(name = RocksimCommonConstants.OD)
private double od = 0d;
@XmlElement(name = RocksimCommonConstants.ID)
private double id = 0d;
@XmlElement(name = RocksimCommonConstants.TUBE_COUNT)
private int tubeCount = 0;
@XmlElement(name = RocksimCommonConstants.MAX_TUBES_ALLOWED)
private int maxTubeCount = 0;
/**
* Default constructor.
*/
public TubeFinSetDTO() {
}
/**
* Copy constructor. Fully populates this instance with values taken from the OR TubeFinSet.
*
* @param theORTubeFinSet The OR TubeFinSet component to be serialized in Rocksim format
*/
public TubeFinSetDTO(TubeFinSet theORTubeFinSet) {
super(theORTubeFinSet);
setId(theORTubeFinSet.getInnerRadius() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS);
setOd(theORTubeFinSet.getOuterRadius() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS);
setRadialAngle(theORTubeFinSet.getBaseRotation());
setTubeCount(theORTubeFinSet.getFinCount());
}
/**
* Set the outer diameter of the tube fin(s).
*
* @return diameter in meters
*/
public double getOd() {
return od;
}
/**
* Set the outer diameter of the tube fin(s).
*
* @param theOd diameter in meters
*/
public void setOd(double theOd) {
od = theOd;
}
/**
* Get the inner diameter of the tube fin(s).
*
* @return diameter in meters
*/
public double getId() {
return id;
}
/**
* Set the inner diameter of the tube fin(s).
*
* @param theId diameter in meters
*/
public void setId(double theId) {
id = theId;
}
/**
* Get the tube fin count.
*
* @return # tube fins
*/
public int getTubeCount() {
return tubeCount;
}
/**
* Set the tube fin count.
*
* @param theTubeCount # tube fins
*/
public void setTubeCount(final int theTubeCount) {
tubeCount = theTubeCount;
maxTubeCount = tubeCount;
}
/**
* Get the max tube fin count. Since OR doesn't have this concept, just set it to the actual count.
*
* @return # tube fins
*/
public int getMaxTubeCount() {
return maxTubeCount;
}
}

View File

@ -77,7 +77,7 @@ class AttachedPartsHandler extends AbstractElementHandler {
return new SubAssemblyHandler(context, component);
}
if (RocksimCommonConstants.TUBE_FIN_SET.equals(element)) {
warnings.add("Tube fins are not currently supported. Ignoring.");
return new TubeFinSetHandler(context, component, warnings);
}
if (RocksimCommonConstants.RING_TAIL.equals(element)) {
warnings.add("Ring tails are not currently supported. Ignoring.");

View File

@ -0,0 +1,119 @@
package net.sf.openrocket.file.rocksim.importt;
import net.sf.openrocket.aerodynamics.WarningSet;
import net.sf.openrocket.file.DocumentLoadingContext;
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
import net.sf.openrocket.file.rocksim.RocksimFinishCode;
import net.sf.openrocket.file.simplesax.ElementHandler;
import net.sf.openrocket.file.simplesax.PlainTextHandler;
import net.sf.openrocket.material.Material;
import net.sf.openrocket.rocketcomponent.RocketComponent;
import net.sf.openrocket.rocketcomponent.TubeFinSet;
import org.xml.sax.SAXException;
import java.util.HashMap;
/**
* Rocksim import SAX handler for Tube Fin Sets.
*/
public class TubeFinSetHandler extends PositionDependentHandler<TubeFinSet> {
/**
* The OpenRocket TubeFinSet instance.
*/
private final TubeFinSet tubeFin;
/**
* Constructor.
*
* @param c the parent
* @param warnings the warning set
*
* @throws IllegalArgumentException thrown if <code>c</code> is null
*/
public TubeFinSetHandler(DocumentLoadingContext context, RocketComponent c, WarningSet warnings) throws IllegalArgumentException {
super(context);
if (c == null) {
throw new IllegalArgumentException("The parent component of a tube fin may not be null.");
}
tubeFin = new TubeFinSet();
if (isCompatible(c, TubeFinSet.class, warnings)) {
c.addChild(tubeFin);
}
}
/**
* Set the relative position onto the component.
*
* @param position the OpenRocket position
*/
@Override
protected void setRelativePosition(final RocketComponent.Position position) {
tubeFin.setRelativePosition(position);
}
/**
* Get the OR instance after the XML parsing is done.
*
* @return a TubeFinSet instance
*/
@Override
protected TubeFinSet getComponent() {
return tubeFin;
}
/**
* Get the type of material the tube fins are constructed from.
*
* @return Material.Type
*/
@Override
protected Material.Type getMaterialType() {
return Material.Type.BULK;
}
/**
* {@inheritDoc}
*/
@Override
public ElementHandler openElement(final String element, final HashMap<String, String> attributes, final WarningSet warnings) throws SAXException {
return PlainTextHandler.INSTANCE;
}
/**
* {@inheritDoc}
*/
@Override
public void closeElement(String element, HashMap<String, String> attributes, String content, WarningSet warnings)
throws SAXException {
super.closeElement(element, attributes, content, warnings);
try {
if (RocksimCommonConstants.OD.equals(element)) {
tubeFin.setOuterRadius(Math.max(0, Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS));
}
if (RocksimCommonConstants.ID.equals(element)) {
tubeFin.setInnerRadius(Math.max(0, Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS));
}
if (RocksimCommonConstants.LEN.equals(element)) {
tubeFin.setLength(Math.max(0, Double.parseDouble(content) / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH));
}
if (RocksimCommonConstants.MATERIAL.equals(element)) {
setMaterialName(content);
}
if (RocksimCommonConstants.RADIAL_ANGLE.equals(element)) {
tubeFin.setBaseRotation(Double.parseDouble(content));
}
if (RocksimCommonConstants.TUBE_COUNT.equals(element)) {
tubeFin.setFinCount(Integer.parseInt(content));
}
if (RocksimCommonConstants.FINISH_CODE.equals(element)) {
tubeFin.setFinish(RocksimFinishCode.fromCode(Integer.parseInt(content)).asOpenRocket());
}
} catch (NumberFormatException nfe) {
warnings.add("Could not convert " + element + " value of " + content + ". It is expected to be a number.");
}
}
}

View File

@ -122,7 +122,7 @@ public class RocksimLoaderTest extends BaseTestCase {
Assert.assertEquals(0.185d, stage1.getOverrideMass(), 0.001);
Assert.assertTrue(stage1.isCGOverridden());
Assert.assertEquals(0.3d, stage1.getOverrideCG().x, 0.001);
Assert.assertEquals(4, loader.getWarnings().size());
Assert.assertEquals(3, loader.getWarnings().size());
Assert.assertEquals(1, stage2.getChildCount());
Assert.assertEquals("2nd Stage Tube", stage2.getChild(0).getName());

View File

@ -0,0 +1,84 @@
package net.sf.openrocket.file.rocksim.importt;
import net.sf.openrocket.aerodynamics.WarningSet;
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
import net.sf.openrocket.rocketcomponent.BodyTube;
import net.sf.openrocket.rocketcomponent.ExternalComponent;
import net.sf.openrocket.rocketcomponent.TubeFinSet;
import org.junit.Assert;
import java.util.HashMap;
/**
* Test for importing a Rocksim TubeFinSet into OR.
*/
public class TubeFinSetHandlerTest {
/**
* Method: asOpenRocket(WarningSet warnings)
*
* @throws Exception thrown if something goes awry
*/
@org.junit.Test
public void testAsOpenRocket() throws Exception {
WarningSet warnings = new WarningSet();
TubeFinSetHandler handler = new TubeFinSetHandler(null, new BodyTube(), warnings);
HashMap<String, String> attributes = new HashMap<>();
handler.closeElement("Name", attributes, "The name", warnings);
handler.closeElement("TubeCount", attributes, "4", warnings);
handler.closeElement("RadialAngle", attributes, ".123", warnings);
TubeFinSet fins = handler.getComponent();
Assert.assertNotNull(fins);
Assert.assertEquals(0, warnings.size());
Assert.assertEquals("The name", fins.getName());
Assert.assertEquals(4, fins.getFinCount());
Assert.assertEquals(.123d, fins.getBaseRotation(), 0d);
handler.closeElement("OD", attributes, "-1", warnings);
Assert.assertEquals(0d, fins.getOuterRadius(), 0.001);
handler.closeElement("OD", attributes, "0", warnings);
Assert.assertEquals(0d, fins.getOuterRadius(), 0.001);
handler.closeElement("OD", attributes, "75", warnings);
Assert.assertEquals(75d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS, fins.getOuterRadius(), 0.001);
handler.closeElement("OD", attributes, "foo", warnings);
Assert.assertEquals(1, warnings.size());
warnings.clear();
handler.closeElement("ID", attributes, "-1", warnings);
Assert.assertEquals(0d, fins.getInnerRadius(), 0.001);
handler.closeElement("ID", attributes, "0", warnings);
Assert.assertEquals(0d, fins.getInnerRadius(), 0.001);
handler.closeElement("ID", attributes, "75", warnings);
Assert.assertEquals(75d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS, fins.getInnerRadius(), 0.001);
handler.closeElement("ID", attributes, "foo", warnings);
Assert.assertEquals(1, warnings.size());
warnings.clear();
handler.closeElement("Len", attributes, "-1", warnings);
Assert.assertEquals(0d, fins.getLength(), 0.001);
handler.closeElement("Len", attributes, "10", warnings);
Assert.assertEquals(10d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH, fins.getLength(), 0.001);
handler.closeElement("Len", attributes, "10.0", warnings);
Assert.assertEquals(10d / RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH, fins.getLength(), 0.001);
handler.closeElement("Len", attributes, "foo", warnings);
Assert.assertEquals(1, warnings.size());
warnings.clear();
handler.closeElement("FinishCode", attributes, "-1", warnings);
Assert.assertEquals(ExternalComponent.Finish.NORMAL, fins.getFinish());
handler.closeElement("FinishCode", attributes, "100", warnings);
Assert.assertEquals(ExternalComponent.Finish.NORMAL, fins.getFinish());
handler.closeElement("FinishCode", attributes, "foo", warnings);
Assert.assertEquals(1, warnings.size());
warnings.clear();
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -80,11 +80,19 @@ header("Content-type: text/plain");
$version = $_GET["version"];
$updates = "";
$unstable = "14.11";
$unstable = "15.03";
$stable = "1.0.0";
if (preg_match("/^14.06$/", $version)) {
if (preg_match("/^14.11$/", $version)) {
$updates = "Version: " . $unstable . "\n" .
"10: Experimental support for TubeFins\n".
"10: Scriptable simulation extensions\n".
"10: User configurable default mach\n".
"6: Updated thrustcurves\n" .
"4: Fixed a few bugs\n" .
"";
} else if (preg_match("/^14.06$/", $version)) {
$updates = "Version: " . $unstable . "\n" .
"6: Updated thrustcurves\n" .
"4: Fixed a few bugs\n" .

View File

@ -48,6 +48,9 @@
<div class="content">
<div class="news">
<h2>Recent news:</h2>
<p><span class="date">28.03.2015:</span> Version 15.03 is
<a href="download.html">released</a>! This release contains scriptable simulation extensions and experimental support for tube fins along with many additional improvements.
</p>
<p><span class="date">02.11.2014:</span> Version 14.11 is
<a href="download.html">released</a>! This release contains very few changes. Thrustcurves have been updated and now include AeroTech DMS motors. A few bugs have been fixed.
</p>
@ -87,20 +90,20 @@
<a href="http://sourceforge.net/donate/index.php?group_id=260357"><img src="project-support.jpg" width="88" height="32" alt="Support This Project" /></a>
</div>
<div class="downloadbox">
<a class="main" href="https://sourceforge.net/projects/openrocket/files/openrocket/14.11/OpenRocket-14.11.jar/download">
<a class="main" href="https://sourceforge.net/projects/openrocket/files/openrocket/15.03/OpenRocket-15.03.jar/download">
<strong>Download now!</strong>
<span>OpenRocket-14.11.jar</span>
<span>OpenRocket-15.03.jar</span>
</a>
<span class="alternative">
<a href="https://sourceforge.net/projects/openrocket/files/openrocket/14.11/ReleaseNotes/view">Release notes</a> |
<a href="https://sourceforge.net/projects/openrocket/files/openrocket/14.11/OpenRocket-14.11-src.zip/download">Source code</a>
<a href="https://sourceforge.net/projects/openrocket/files/openrocket/15.03/ReleaseNotes/view">Release notes</a> |
<a href="https://sourceforge.net/projects/openrocket/files/openrocket/15.03/OpenRocket-15.03-src.zip/download">Source code</a>
</span>
</div>
<p>OpenRocket can be started in most graphical environments (including
Windows) by double-clicking the package icon. No installation is
required.</p>
<p>From the command line OpenRocket can be started by
<span class="command">java -jar OpenRocket-14.11.jar</span></p>
<span class="command">java -jar OpenRocket-15.03.jar</span></p>
<h3>Android version</h3>
<p>The Android version allows opening OpenRocket files, viewing
simulations and motors. Later versions will allow running
@ -115,7 +118,7 @@
<ol>
<li>Go to <em>Settings</em> &rarr; <em>Applications</em> and
check <em>Unknown sources</em>.</li>
<li>Download <a href="https://sourceforge.net/projects/openrocket/files/openrocket/12.09/OpenRocket-Android-12.09.apk/download">OpenRocket-Android-12.09.apk</a>
<li>Download <a href="https://sourceforge.net/projects/openrocket/files/openrocket/13.11/OpenRocket-Android-13.11.apk/download">OpenRocket-Android-13.11.apk</a>
on your device and accept installation.</li>
</ol>
</div>

View File

@ -49,12 +49,12 @@
<h2>Introduction</h2>
<div class="rightpane">
<div class="downloadbox">
<a class="main" href="https://sourceforge.net/projects/openrocket/files/openrocket/14.11/OpenRocket-14.11.jar/download">
<a class="main" href="https://sourceforge.net/projects/openrocket/files/openrocket/15.03/OpenRocket-15.03.jar/download">
<strong>Download now!</strong>
<span>OpenRocket-14.11.jar</span>
<span>OpenRocket-15.03.jar</span>
</a>
<span class="alternative">
<a href="https://sourceforge.net/projects/openrocket/files/openrocket/14.11/ReleaseNotes/view">Release notes</a> |
<a href="https://sourceforge.net/projects/openrocket/files/openrocket/15.03/ReleaseNotes/view">Release notes</a> |
<a href="download.html">Other versions</a>
</span>
</div>
@ -108,6 +108,9 @@ Profiler</a>.
<div class="clear"></div>
<div class="news">
<h2>News</h2>
<p><span class="date">28.03.2015:</span> Version 15.03 is
<a href="download.html">released</a>! This release contains scriptable simulation extensions and experimental support for tube fins along with many additional improvements.
</p>
<p><span class="date">02.11.2014:</span> Version 14.11 is
<a href="download.html">released</a>! This release contains very few changes. Thrustcurves have been updated and now include AeroTech DMS motors. A few bugs have been fixed.
</p>

View File

@ -1,5 +1,5 @@
<set version="14.11">
<set androidversion="12.09">
<set version="15.03">
<set androidversion="13.11">
<def name="downloadbox">
<div class="downloadbox">

View File

@ -8,6 +8,10 @@
</if>
<!--- Remember to move the position of "onlyrecent" below! --->
<p><span class="date">28.03.2015:</span> Version 15.03 is
<a href="download.html">released</a>! This release contains scriptable simulation extensions and experimental support for tube fins along with many additional improvements.
</p>
<p><span class="date">02.11.2014:</span> Version 14.11 is
<a href="download.html">released</a>! This release contains very few changes. Thrustcurves have been updated and now include AeroTech DMS motors. A few bugs have been fixed.
</p>

View File

@ -1,9 +1,13 @@
package net.sf.openrocket.gui.adaptors;
import java.util.ArrayList;
import java.util.EventObject;
import javax.swing.AbstractListModel;
import javax.swing.ComboBoxModel;
import javax.swing.MutableComboBoxModel;
import org.jfree.util.Log;
import net.sf.openrocket.util.ChangeSource;
import net.sf.openrocket.util.Reflection;
@ -11,7 +15,7 @@ import net.sf.openrocket.util.StateChangeListener;
public class EnumModel<T extends Enum<T>> extends AbstractListModel
implements ComboBoxModel, StateChangeListener {
implements ComboBoxModel, MutableComboBoxModel, StateChangeListener {
private final ChangeSource source;
private final String valueName;
@ -20,6 +24,8 @@ public class EnumModel<T extends Enum<T>> extends AbstractListModel
private final Enum<T>[] values;
private Enum<T> currentValue = null;
ArrayList<Enum<T>> displayedValues = new ArrayList<Enum<T>>();
private final Reflection.Method getMethod;
private final Reflection.Method setMethod;
@ -60,6 +66,9 @@ public class EnumModel<T extends Enum<T>> extends AbstractListModel
else
this.values = enumClass.getEnumConstants();
for (Enum<T> e : this.values){
this.displayedValues.add( e );
}
this.nullText = nullText;
stateChanged(null); // Update current value
@ -99,20 +108,20 @@ public class EnumModel<T extends Enum<T>> extends AbstractListModel
@Override
public Object getElementAt(int index) {
if( ( index < 0 ) || ( index >= this.displayedValues.size())){
return nullText; // bad parameter
}
if (values[index] == null)
return nullText;
return values[index];
return displayedValues.get( index);
}
@Override
public int getSize() {
return values.length;
return displayedValues.size();
}
@SuppressWarnings("unchecked")
@Override
public void stateChanged(EventObject e) {
@ -130,4 +139,31 @@ public class EnumModel<T extends Enum<T>> extends AbstractListModel
return "EnumModel["+source.getClass().getCanonicalName()+":"+valueName+"]";
}
@Override
public void addElement(Object item) {
// Not actually allowed. The model starts out with all the enums, and only allows hiding some.
}
@Override
public void removeElement(Object obj) {
if( null == obj ){
return;
}
this.displayedValues.remove( obj );
}
@Override
public void insertElementAt(Object item, int index) {
// Not actually allowed. The model starts out with all the enums, and only allows hiding some.
}
@Override
public void removeElementAt(int index) {
if( ( index < 0 ) || ( index >= this.displayedValues.size())){
return; // bad parameter
}
this.displayedValues.remove( index );
}
}

View File

@ -4,6 +4,7 @@ package net.sf.openrocket.gui.configdialog;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
@ -25,6 +26,7 @@ import net.sf.openrocket.gui.components.UnitSelector;
import net.sf.openrocket.l10n.Translator;
import net.sf.openrocket.material.Material;
import net.sf.openrocket.rocketcomponent.DeploymentConfiguration;
import net.sf.openrocket.rocketcomponent.DeploymentConfiguration.DeployEvent;
import net.sf.openrocket.rocketcomponent.Parachute;
import net.sf.openrocket.rocketcomponent.RocketComponent;
import net.sf.openrocket.startup.Application;
@ -85,7 +87,7 @@ public class ParachuteConfig extends RecoveryDeviceConfig {
//// Material:
panel.add(new JLabel(trans.get("ParachuteCfg.lbl.Material")));
JComboBox combo = new JComboBox(new MaterialModel(panel, component,
JComboBox<?> combo = new JComboBox(new MaterialModel(panel, component,
Material.Type.SURFACE));
combo.setToolTipText(trans.get("ParachuteCfg.combo.MaterialModel"));
panel.add(combo, "spanx 3, growx, wrap 30lp");
@ -193,7 +195,13 @@ public class ParachuteConfig extends RecoveryDeviceConfig {
panel.add(new JLabel(trans.get("ParachuteCfg.lbl.Deploysat") + " " + CommonStrings.dagger), "");
DeploymentConfiguration deploymentConfig = parachute.getDeploymentConfiguration().getDefault();
combo = new JComboBox(new EnumModel<DeploymentConfiguration.DeployEvent>(deploymentConfig, "DeployEvent"));
// this issues a warning because EnumModel ipmlements ComboBoxModel without a parameter...
ComboBoxModel<DeploymentConfiguration.DeployEvent> deployOptionsModel = new EnumModel<DeploymentConfiguration.DeployEvent>(deploymentConfig, "DeployEvent");
combo = new JComboBox<DeploymentConfiguration.DeployEvent>( deployOptionsModel );
if( (component.getStageNumber() + 1 ) == d.getRocket().getStageCount() ){
// This is the bottom stage: Restrict deployment options.
combo.removeItem( DeployEvent.LOWER_STAGE_SEPARATION );
}
panel.add(combo, "spanx 3, growx, wrap");
// ... and delay

View File

@ -13,6 +13,8 @@ import net.sf.openrocket.rocketcomponent.RocketComponent;
public abstract class RecoveryDeviceConfig extends RocketComponentConfig {
private static final long serialVersionUID = 7263235700953855062L;
protected final List<JComponent> altitudeComponents = new ArrayList<JComponent>();
public RecoveryDeviceConfig(OpenRocketDocument d, RocketComponent component) {

View File

@ -4,6 +4,7 @@ package net.sf.openrocket.gui.configdialog;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ComboBoxModel;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
@ -26,6 +27,7 @@ import net.sf.openrocket.material.Material;
import net.sf.openrocket.rocketcomponent.DeploymentConfiguration;
import net.sf.openrocket.rocketcomponent.RocketComponent;
import net.sf.openrocket.rocketcomponent.Streamer;
import net.sf.openrocket.rocketcomponent.DeploymentConfiguration.DeployEvent;
import net.sf.openrocket.startup.Application;
import net.sf.openrocket.unit.UnitGroup;
@ -196,6 +198,10 @@ public class StreamerConfig extends RecoveryDeviceConfig {
DeploymentConfiguration deploymentConfig = streamer.getDeploymentConfiguration().getDefault();
combo = new JComboBox(new EnumModel<DeploymentConfiguration.DeployEvent>(deploymentConfig, "DeployEvent"));
if( (component.getStageNumber() + 1 ) == d.getRocket().getStageCount() ){
// This is the bottom stage. restrict deployment options.
combo.removeItem( DeployEvent.LOWER_STAGE_SEPARATION );
}
panel.add(combo, "spanx 3, growx, wrap");
// ... and delay

View File

@ -76,7 +76,11 @@ public class DeploymentSelectionDialog extends JDialog {
//// Deploys at:
panel.add(new JLabel(trans.get("ParachuteCfg.lbl.Deploysat")), "");
final JComboBox event = new JComboBox(new EnumModel<DeployEvent>(newConfiguration, "DeployEvent"));
final JComboBox<?> event = new JComboBox(new EnumModel<DeployEvent>(newConfiguration, "DeployEvent"));
if( (component.getStageNumber() + 1 ) == rocket.getStageCount() ){
// This is the bottom stage: Restrict deployment options.
event.removeItem( DeployEvent.LOWER_STAGE_SEPARATION );
}
panel.add(event, "spanx 3, growx, wrap");
// ... and delay