diff --git a/core/.releasing.txt.swp b/core/.releasing.txt.swp deleted file mode 100644 index ca0277dfb..000000000 Binary files a/core/.releasing.txt.swp and /dev/null differ diff --git a/core/ChangeLog b/core/ChangeLog index ad4ecc9be..cc9968bf1 100644 --- a/core/ChangeLog +++ b/core/ChangeLog @@ -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. diff --git a/core/ReleaseNotes b/core/ReleaseNotes index 8657c1076..7945c0c2b 100644 --- a/core/ReleaseNotes +++ b/core/ReleaseNotes @@ -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): ------------------------------ diff --git a/core/fileformat.txt b/core/fileformat.txt index 4484bde6f..1810335a7 100644 --- a/core/fileformat.txt +++ b/core/fileformat.txt @@ -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. - \ No newline at end of file +1.7: Introduced with OpenRocket 15.03. + Added simulation extensions and related configuration. + Support for TubeFins. diff --git a/core/resources-src/datafiles/thrustcurves/manual/AT_F101T.eng b/core/resources-src/datafiles/thrustcurves/manual/AT_F101T.eng new file mode 100644 index 000000000..0afabd315 --- /dev/null +++ b/core/resources-src/datafiles/thrustcurves/manual/AT_F101T.eng @@ -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 diff --git a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/00INDEX.txt b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/00INDEX.txt index c27bc24cb..b8de3071f 100644 --- a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/00INDEX.txt +++ b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/00INDEX.txt @@ -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 diff --git a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/AeroTech_G25.eng b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/AeroTech_G25.eng index 02d639e1b..0fdfa1d30 100644 --- a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/AeroTech_G25.eng +++ b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/AeroTech_G25.eng @@ -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 diff --git a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/AeroTech_G25_1.eng b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/AeroTech_G25_1.eng index 0fdfa1d30..02d639e1b 100644 --- a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/AeroTech_G25_1.eng +++ b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/AeroTech_G25_1.eng @@ -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 diff --git a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/AeroTech_H45.eng b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/AeroTech_H45.eng index 9077b1b00..b8b3ad9cf 100644 --- a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/AeroTech_H45.eng +++ b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/AeroTech_H45.eng @@ -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 diff --git a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/AeroTech_H45_1.eng b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/AeroTech_H45_1.eng index b8b3ad9cf..9077b1b00 100644 --- a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/AeroTech_H45_1.eng +++ b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/AeroTech_H45_1.eng @@ -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 diff --git a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/AeroTech_I65.eng b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/AeroTech_I65.eng index 6e0111c66..4808b3e45 100644 --- a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/AeroTech_I65.eng +++ b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/AeroTech_I65.eng @@ -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 diff --git a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/AeroTech_I65_1.eng b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/AeroTech_I65_1.eng index 4808b3e45..6e0111c66 100644 --- a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/AeroTech_I65_1.eng +++ b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/AeroTech_I65_1.eng @@ -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 diff --git a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/AeroTech_M1780.eng b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/AeroTech_M1780.eng index a3e98ccd3..6bc79404d 100644 --- a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/AeroTech_M1780.eng +++ b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/AeroTech_M1780.eng @@ -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 diff --git a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/AeroTech_M1780_1.eng b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/AeroTech_M1780_1.eng index 6bc79404d..42b6beb7a 100644 --- a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/AeroTech_M1780_1.eng +++ b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/AeroTech_M1780_1.eng @@ -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 diff --git a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Cesaroni_F31.rse b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Cesaroni_F31.rse new file mode 100644 index 000000000..70d60e7d1 --- /dev/null +++ b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Cesaroni_F31.rse @@ -0,0 +1,27 @@ + + + + CTI 56-F31-CL-12A + + + + + + + + + + + + + + + + + + diff --git a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Cesaroni_M1590.eng b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Cesaroni_M1590.eng index 81c65efa8..d7442f0ca 100644 --- a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Cesaroni_M1590.eng +++ b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Cesaroni_M1590.eng @@ -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 diff --git a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Cesaroni_M1590.rse b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Cesaroni_M1590.rse index 5149f7bff..3ac75cefd 100644 --- a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Cesaroni_M1590.rse +++ b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Cesaroni_M1590.rse @@ -1,11 +1,11 @@ - + Pro75-6G 7545M1590-CL P diff --git a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Estes_B4.eng b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Estes_B4.eng index 64b099809..07eaa5472 100644 --- a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Estes_B4.eng +++ b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Estes_B4.eng @@ -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 diff --git a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Estes_B4_1.eng b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Estes_B4_1.eng new file mode 100644 index 000000000..64b099809 --- /dev/null +++ b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Estes_B4_1.eng @@ -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 diff --git a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Estes_C6.eng b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Estes_C6.eng index f7cf3a389..1d704125b 100644 --- a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Estes_C6.eng +++ b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Estes_C6.eng @@ -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 diff --git a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Estes_C6_1.eng b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Estes_C6_1.eng new file mode 100644 index 000000000..f7cf3a389 --- /dev/null +++ b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Estes_C6_1.eng @@ -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 diff --git a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/GR_L1112.eng b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/GR_L1112.eng new file mode 100644 index 000000000..caa9206f7 --- /dev/null +++ b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/GR_L1112.eng @@ -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 diff --git a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/GR_M1952.eng b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/GR_M1952.eng new file mode 100644 index 000000000..6e50c9ab6 --- /dev/null +++ b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/GR_M1952.eng @@ -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 diff --git a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Loki_J1026.eng b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Loki_J1026.eng new file mode 100644 index 000000000..f75d90f6d --- /dev/null +++ b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Loki_J1026.eng @@ -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 diff --git a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Loki_K1127.eng b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Loki_K1127.eng new file mode 100644 index 000000000..0bba56b34 --- /dev/null +++ b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Loki_K1127.eng @@ -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 diff --git a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Loki_K527.eng b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Loki_K527.eng new file mode 100644 index 000000000..2c72ae37a --- /dev/null +++ b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Loki_K527.eng @@ -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 diff --git a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Loki_L840.eng b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Loki_L840.eng new file mode 100644 index 000000000..334227464 --- /dev/null +++ b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Loki_L840.eng @@ -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 diff --git a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Loki_M1650.eng b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Loki_M1650.eng new file mode 100644 index 000000000..8f2702872 --- /dev/null +++ b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Loki_M1650.eng @@ -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 diff --git a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Loki_M1969.eng b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Loki_M1969.eng new file mode 100644 index 000000000..7d3c852a3 --- /dev/null +++ b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Loki_M1969.eng @@ -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 diff --git a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Loki_M3464.eng b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Loki_M3464.eng new file mode 100644 index 000000000..71a7a19e4 --- /dev/null +++ b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Loki_M3464.eng @@ -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 diff --git a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Quest_Micro_Maxx.eng b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Quest_Micro_Maxx.eng new file mode 100644 index 000000000..0caf9294c --- /dev/null +++ b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Quest_Micro_Maxx.eng @@ -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 diff --git a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Quest_Micro_Maxx_1.eng b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Quest_Micro_Maxx_1.eng new file mode 100644 index 000000000..5ea10d96a --- /dev/null +++ b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Quest_Micro_Maxx_1.eng @@ -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 diff --git a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Quest_Micro_Maxx_1.rse b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Quest_Micro_Maxx_1.rse new file mode 100644 index 000000000..2fe681673 --- /dev/null +++ b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Quest_Micro_Maxx_1.rse @@ -0,0 +1,49 @@ + + + + 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. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Quest_Micro_Maxx_2.eng b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Quest_Micro_Maxx_2.eng new file mode 100644 index 000000000..8ed80b4b4 --- /dev/null +++ b/core/resources-src/datafiles/thrustcurves/thrustcurve.org/Quest_Micro_Maxx_2.eng @@ -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 diff --git a/core/resources/build.properties b/core/resources/build.properties index 0c1acc11b..9895ce0ce 100644 --- a/core/resources/build.properties +++ b/core/resources/build.properties @@ -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 diff --git a/core/resources/datafiles/thrustcurves/thrustcurves.ser b/core/resources/datafiles/thrustcurves/thrustcurves.ser index f9226e989..4f447a542 100644 Binary files a/core/resources/datafiles/thrustcurves/thrustcurves.ser and b/core/resources/datafiles/thrustcurves/thrustcurves.ser differ diff --git a/core/resources/l10n/messages_zh_CN.properties b/core/resources/l10n/messages_zh_CN.properties index ff0bf23f8..11b77c7ee 100644 --- a/core/resources/l10n/messages_zh_CN.properties +++ b/core/resources/l10n/messages_zh_CN.properties @@ -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 = \u5C06\u9884\u4F30\u8D28\u91CF\u6DFB\u52A0\u5230\u7FFC\u6839\u90E8.
+FinsetCfg.ttip.Finfillets2 = \u5047\u5B9A\u63A5\u7F1D\u5185\u51F9\u4E14\u548C\u7BAD\u4F53\u3001\u7FFC\u677F\u76F8\u5207.
+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 = \u672C\u8BBE\u5B9A\u5C06\u5728\u4E0B\u6B21\u542F\u52A8OpenRocket\u65F6\u751F\u6548.
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 = \u6A21\u62DF\u6269\u5C55 \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 = \u9009\u62E9\u4F7F\u7528\u56FD\u9645\u6807\u51C6\u5927\u6C14\u6A21\u578B.
\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 = \u52FE\u9009\u540E\u53D1\u5C04\u6746\u5C06\u4F1A\u6307\u5411\u98CE\u5411.
+simedtdlg.checkbox.ttip.Intowind2 = 0\u89D2\u5EA6\u53D1\u5C04\u5373\u53D1\u5C04\u6746\u5782\u76F4\u5411\u4E0A.
+simedtdlg.checkbox.ttip.Intowind3 = \u8D1F\u53D1\u5C04\u6746\u89D2\u5EA6\u5C06\u987A\u98CE\u53D1\u5C04.
\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 = \u53D1\u5C04\u9AD8\u5EA6\u57FA\u4E8E\u6D77\u5E73\u9762.
\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 = \u6E4D\u6D41\u5F3A\u5EA6\u8FD1\u4F3C\u4E3A\u6807\u51C6\u5DEE\u9664\u4EE5\u5E73\u5747\u98CE\u901F.
simedtdlg.lbl.ttip.Turbulenceintensity2 = \u5178\u578B\u53D6\u503C\u8303\u56F4\u662F\u4ECE simedtdlg.lbl.ttip.Turbulenceintensity3 = \u5230 +simedtdlg.lbl.ttip.Winddirection = \u98CE\u5411, 0-360\u5EA6.
0 \u662F\u5317\u98CE,
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 = \u4EFF\u771F\u76D1\u542C\u5668(Simulation Listener)\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 = \u8BE5\u64CD\u4F5C\u65E0\u6CD5\u64A4\u9500. -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 = \u5BFC\u5165\u7684\u6570\u636E -simpanel.ttip.loaded = \u4ECE\u6587\u4EF6\u8F7D\u5165\u6570\u636E -simpanel.ttip.noData = \u6CA1\u6709\u53EF\u7528\u7684\u4EFF\u771F\u6570\u636E. -simpanel.ttip.noWarnings = \u6CA1\u6709\u8B66\u544A. -simpanel.ttip.notSimulated = \u672A\u8FDB\u884C\u8FC7\u4EFF\u771F
\u70B9\u51FB\u8FD0\u884C\u4EFF\u771F. -simpanel.ttip.outdated = \u6570\u636E\u5DF2\u8FC7\u671F
\u70B9\u51FB\u8FD0\u884C\u4EFF\u771F\u91CD\u65B0\u8BA1\u7B97. -simpanel.ttip.uptodate = \u6700\u65B0\u7684\u6570\u636E -simpanel.ttip.warnings = \u8B66\u544A: +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 = \u8BE5\u64CD\u4F5C\u65E0\u6CD5\u64A4\u9500. +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 = \u5BFC\u5165\u7684\u6570\u636E +simpanel.ttip.loaded = \u4ECE\u6587\u4EF6\u8F7D\u5165\u6570\u636E +simpanel.ttip.noData = \u6CA1\u6709\u53EF\u7528\u7684\u4EFF\u771F\u6570\u636E. +simpanel.ttip.noWarnings = \u6CA1\u6709\u8B66\u544A. +simpanel.ttip.notSimulated = \u672A\u8FDB\u884C\u8FC7\u4EFF\u771F
\u70B9\u51FB\u8FD0\u884C\u4EFF\u771F. +simpanel.ttip.outdated = \u6570\u636E\u5DF2\u8FC7\u671F
\u70B9\u51FB\u8FD0\u884C\u4EFF\u771F\u91CD\u65B0\u8BA1\u7B97. +simpanel.ttip.uptodate = \u6700\u65B0\u7684\u6570\u636E +simpanel.ttip.warnings = \u8B66\u544A: simplotpanel.AUTO_NAME = \u81EA\u52A8 simplotpanel.CUSTOM = \u81EA\u5B9A\u4E49 diff --git a/core/src/net/sf/openrocket/file/rocksim/RocksimCommonConstants.java b/core/src/net/sf/openrocket/file/rocksim/RocksimCommonConstants.java index 86cc5861d..1b8e92fca 100644 --- a/core/src/net/sf/openrocket/file/rocksim/RocksimCommonConstants.java +++ b/core/src/net/sf/openrocket/file/rocksim/RocksimCommonConstants.java @@ -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. diff --git a/core/src/net/sf/openrocket/file/rocksim/export/BodyTubeDTO.java b/core/src/net/sf/openrocket/file/rocksim/export/BodyTubeDTO.java index 4f9f708d9..18c56f70e 100644 --- a/core/src/net/sf/openrocket/file/rocksim/export/BodyTubeDTO.java +++ b/core/src/net/sf/openrocket/file/rocksim/export/BodyTubeDTO.java @@ -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 attachedParts = new ArrayList(); + List 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)); } } } diff --git a/core/src/net/sf/openrocket/file/rocksim/export/TubeFinSetDTO.java b/core/src/net/sf/openrocket/file/rocksim/export/TubeFinSetDTO.java new file mode 100644 index 000000000..8c98a066b --- /dev/null +++ b/core/src/net/sf/openrocket/file/rocksim/export/TubeFinSetDTO.java @@ -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; + } +} diff --git a/core/src/net/sf/openrocket/file/rocksim/importt/AttachedPartsHandler.java b/core/src/net/sf/openrocket/file/rocksim/importt/AttachedPartsHandler.java index 3738a160f..7c3d57285 100644 --- a/core/src/net/sf/openrocket/file/rocksim/importt/AttachedPartsHandler.java +++ b/core/src/net/sf/openrocket/file/rocksim/importt/AttachedPartsHandler.java @@ -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."); diff --git a/core/src/net/sf/openrocket/file/rocksim/importt/TubeFinSetHandler.java b/core/src/net/sf/openrocket/file/rocksim/importt/TubeFinSetHandler.java new file mode 100644 index 000000000..64c8de1b3 --- /dev/null +++ b/core/src/net/sf/openrocket/file/rocksim/importt/TubeFinSetHandler.java @@ -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 { + + /** + * The OpenRocket TubeFinSet instance. + */ + private final TubeFinSet tubeFin; + + /** + * Constructor. + * + * @param c the parent + * @param warnings the warning set + * + * @throws IllegalArgumentException thrown if c 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 attributes, final WarningSet warnings) throws SAXException { + return PlainTextHandler.INSTANCE; + } + + /** + * {@inheritDoc} + */ + @Override + public void closeElement(String element, HashMap 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."); + } + } + +} diff --git a/core/test/net/sf/openrocket/file/rocksim/importt/RocksimLoaderTest.java b/core/test/net/sf/openrocket/file/rocksim/importt/RocksimLoaderTest.java index 7711c463c..72d8be26c 100644 --- a/core/test/net/sf/openrocket/file/rocksim/importt/RocksimLoaderTest.java +++ b/core/test/net/sf/openrocket/file/rocksim/importt/RocksimLoaderTest.java @@ -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()); diff --git a/core/test/net/sf/openrocket/file/rocksim/importt/TubeFinSetHandlerTest.java b/core/test/net/sf/openrocket/file/rocksim/importt/TubeFinSetHandlerTest.java new file mode 100644 index 000000000..0bd298a67 --- /dev/null +++ b/core/test/net/sf/openrocket/file/rocksim/importt/TubeFinSetHandlerTest.java @@ -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 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(); + + + } + +} diff --git a/core/test/net/sf/openrocket/file/rocksim/importt/TubeFins1.rkt b/core/test/net/sf/openrocket/file/rocksim/importt/TubeFins1.rkt new file mode 100644 index 000000000..e91d25d50 --- /dev/null +++ b/core/test/net/sf/openrocket/file/rocksim/importt/TubeFins1.rkt @@ -0,0 +1,1127 @@ + + 4 + + + Airplane Look-A-Like Design + 0 + 1 + 1 + 0. + 0. + 0. + 0. + 0. + 1 + 0. + 0. + 0. + 0. + 0. + 0. + 0. + 0. + 4 + 914.4 + 0 + 0 + 0 + 1 + 0 + This is a neat design that shows off the ability of RockSim to compute the stability of Assymetrical fin arrangements. + Tim Van Milligan. Visit my web site at: www.ApogeeRockets.com + 4 + 29 + 1 + 0 + CSV1|1|269.85,7.10543e-15,0|234.797,725.664,238.862|-0.445864,0.260358,-0.856399|544.986,1043.28|30|2|764.769|-34.4359|0|0|0|0 + 0,429.071,0,0 + 0,17.5351,0,0 + 0,429.071,0,0 + 0,17.5351,0,0 + 0,0,0,0 + 0,0,0,0 + 2 + 1 + 1 + 1 + 0. + 0. + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0. + 10. + 10.0076 + 10.0076 + 10.0076 + 0 + 0 + 0 + 10. + 0.15 + black + 87.122 + 29.972 + 635.051 + 635.051 + 0. + 635.051 + 0,29.972,0,0 + 0,635.051,0,0 + + + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + +11 +1 +0. +0. +0 +0. +0. +0. +0. +-1 +28,28,28 +0,0,0 +0,0,0 +0,0,0 +0,0,0 +0,0,0 +0,0,0 +0,0,0 + + + + +Apogee +11.8 +1049.21 +Polystyrene PS +Nose cone +72.9996 +1 +0. +10.0765 +86.8842 +0.0068397 +0.0068397 +0. +0 +19114 +PNC 29A +0. +0. +file=()|position=(0,0,0)|origin=(0.5,0.5,0.5)|scale=(1,1,1)|repeat=(1)|interpolate=(0)|flipr(0)|flips(0)|flipt=(0)|preventseam=(1) +1. +0. +1. +0. +1. +blue +rgb(204,204,204) +white +1 +1 +0 +0 +0 +rgb(204,43,29) +2. +0.0500862 +2. +0.0500862 +1 +0 +8 +0 +0. +108.001 +29.8958 +0 +1 +1 +29.9974 +0.9906 +0. +28.8036 +0. +0. +0. + + + + +Apogee +0. +1121.29 +Paper +Forward Fuselage Tube +0. +0 +0. +10.7139 +101.6 +0.0191333 +0.0191333 +0. +0 +10110 +29mm thin wall motor mount +0. +0. +file=()|position=(0,0,0)|origin=(0.5,0.5,0.5)|scale=(1,1,1)|repeat=(1)|interpolate=(0)|flipr(0)|flips(0)|flipt=(0)|preventseam=(1) +1. +0. +1. +0. +1. +blue +rgb(102,102,102) +white +1 +2 +1 +0 +0 +rgb(102,255,102) +0. +0. +0. +0. +1 +0 +8 +0 +108.001 +29.972 +28.956 +203.2 +0 +0 +0. +0.5 +0. +0. +0 +0 + + +Apogee +0. +924.265 +Polyethylene LDPE +Parachute +0. +0 +60.325 +6.87245 +50.8 +0. +0. +0. +0 +29115 + +0. +0. +file=()|position=(0,0,0)|origin=(0.5,0.5,0.5)|scale=(1,1,1)|repeat=(1)|interpolate=(0)|flipr(0)|flips(0)|flipt=(0)|preventseam=(1) +1. +0. +1. +0. +1. +blue +rgb(255,102,0) +white +1 +11 +0 +0 +0 +rgb(255,102,0) +0. +0. +0. +0. +1 +0 +8 +0 +168.326 +609.6 +0. +6 +6 +0.0254 +609.6 +1 +0.00032972 +Carpet String (Apogee 29500) +0.75 + + + + +Estes +0. +0.00039698 +100lb Kevlar (Apogee 29505) +Shock Cord (Mass Object) +180.975 +0 +180.975 +0.483998 +0. +0. +0. +0. +2 +0. +0. +file=()|position=(0,0,0)|origin=(0.5,0.5,0.5)|scale=(1,1,1)|repeat=(1)|interpolate=(0)|flipr(0)|flips(0)|flipt=(0)|preventseam=(1) +1. +0. +1. +0. +1. +blue +blue +white +1 +12 +0 +0 +0 +rgb(204,153,0) +0. +0. +0. +0. +1 +0 +8 +0 +288.976 +1 +1219.2 + + + + +Apogee +63.786 +1121.29 +Paper +Tube coupler +0. +1 +-31.75 +2.41365 +31.75 +0. +0. +0. +0 +13008 +AC-29A +0. +0. +file=()|position=(0,0,0)|origin=(0.5,0.5,0.5)|scale=(1,1,1)|repeat=(1)|interpolate=(0)|flipr(0)|flips(0)|flipt=(0)|preventseam=(1) +1. +0. +1. +0. +1. +blue +rgb(255,55,41) +white +1 +15 +0 +0 +2 +rgb(190,11,17) +0. +0. +0. +0. +1 +0 +8 +0 +279.451 +28.702 +27.94 +63.5 +0 +4 +0 + + + + + + +Apogee +0. +1121.29 +Paper +Aft Fuselage Tube +0. +0 +0. +13.3924 +127. +0.0239166 +0.0239166 +0. +0 +10110 +29mm thin wall motor mount +0. +0. +file=()|position=(0,0,0)|origin=(0.5,0.5,0.5)|scale=(1,1,1)|repeat=(1)|interpolate=(0)|flipr(0)|flips(0)|flipt=(0)|preventseam=(1) +1. +0. +1. +0. +1. +blue +rgb(102,102,102) +white +1 +3 +1 +0 +0 +rgb(26,209,56) +0. +0. +0. +0. +1 +0 +8 +0 +311.201 +29.972 +28.956 +254. +0 +0 +0. +0.5 +0. +0. +0 +0 + + +Apogee +0. +1121.29 +Paper +Engine Mount Tube +0. +0 +-69.85 +2.17025 +50.8 +0. +0. +0. +0 +10085 +18 mm +0. +0. +file=()|position=(0,0,0)|origin=(0.5,0.5,0.5)|scale=(1,1,1)|repeat=(1)|interpolate=(0)|flipr(0)|flips(0)|flipt=(0)|preventseam=(1) +1. +0. +1. +0. +1. +blue +rgb(76,76,76) +white +1 +5 +0 +0 +2 +rgb(71,96,255) +0. +0. +0. +0. +1 +0 +8 +0 +533.451 +18.6944 +18.034 +101.6 +0 +1 +18. +12.7 +0. +0. +1 +0 + + +Apogee +0.44 +1121.29 +Paper +Engine block +0. +1 +57.15 +0.680438 +3.175 +0. +0. +0. +0 +13029 +CR 13-18 ring +0. +0. +file=()|position=(0,0,0)|origin=(0.5,0.5,0.5)|scale=(1,1,1)|repeat=(1)|interpolate=(0)|flipr(0)|flips(0)|flipt=(0)|preventseam=(1) +1. +0. +1. +0. +1. +blue +rgb(39,181,255) +white +1 +6 +0 +0 +2 +rgb(0,51,153) +0. +0. +0. +0. +1 +0 +8 +0 +571.551 +17.78 +13.9446 +6.35 +0 +2 +0 + + + + +Estes +1.4 +0.00112861 +Engine hook (mass object) +28.575 +1 +28.575 +0. +0. +0. +0. +0. +2 +Engine hook +Standard size +0. +0. +file=()|position=(0,0,0)|origin=(0.5,0.5,0.5)|scale=(1,1,1)|repeat=(1)|interpolate=(0)|flipr(0)|flips(0)|flipt=(0)|preventseam=(1) +1. +0. +1. +0. +1. +blue +blue +white +1 +8 +0 +0 +2 +rgb(204,153,0) +0. +0. +0. +0. +1 +0 +8 +0 +606.476 +0 +0. + + + + + + +Apogee +1.64 +1121.29 +Paper +Front Engine Mount Centering Ring +0. +1 +25.4 +4.60687 +3.175 +0. +0. +0. +0 +13034 +CR 18-29 +0. +0. +file=()|position=(0,0,0)|origin=(0.5,0.5,0.5)|scale=(1,1,1)|repeat=(1)|interpolate=(0)|flipr(0)|flips(0)|flipt=(0)|preventseam=(1) +1. +0. +1. +0. +1. +blue +rgb(255,102,51) +white +1 +9 +0 +0 +2 +rgb(204,0,153) +0. +0. +0. +0. +1 +0 +8 +0 +533.451 +28.702 +18.796 +6.35 +0 +0 +0 + + + + +Apogee +1.64 +1121.29 +Paper +Rear Engine Mount Centering Ring +0. +1 +0. +4.60687 +3.175 +0. +0. +0. +0 +13034 +CR 18-29 +0. +0. +file=()|position=(0,0,0)|origin=(0.5,0.5,0.5)|scale=(1,1,1)|repeat=(1)|interpolate=(0)|flipr(0)|flips(0)|flipt=(0)|preventseam=(1) +1. +0. +1. +0. +1. +blue +rgb(255,102,51) +white +1 +10 +0 +0 +2 +rgb(204,30,85) +0. +0. +0. +0. +1 +0 +8 +0 +558.851 +28.702 +18.796 +6.35 +0 +0 +0 + + + + +Custom +0. +688.794 +Cardboard +Tube fins +0. +0 +174.625 +193.542 +36.5125 +0.043181 +0.043181 +0. +0 +29.2735 +0.903382 +file=()|position=(0,0,0)|origin=(0.5,0.5,0.5)|scale=(1,1,1)|repeat=(1)|interpolate=(0)|flipr(0)|flips(0)|flipt=(0)|preventseam=(1) +1. +0. +1. +0. +1. +blue +blue +white +1 +29 +0 +0 +0 +blue +10.2204 +0.524222 +16.7631 +0.487223 +1 +0 +8 +0 +485.826 +28.575 +0. +73.025 +0 +6 +1.01975 +6 + + + + + + +Custom +0. +1049.21 +Polystyrene PS +Rear Boattail (transition) +0. +0 +0. +7.91299 +29.4088 +0.00525216 +0.00525216 +0. +0 +0. +0. +file=()|position=(0,0,0)|origin=(0.5,0.5,0.5)|scale=(1,1,1)|repeat=(1)|interpolate=(0)|flipr(0)|flips(0)|flipt=(0)|preventseam=(1) +1. +0. +1. +0. +1. +blue +rgb(204,204,204) +white +1 +4 +0 +0 +0 +rgb(0,64,128) +-1.22806 +0.605641 +-1.22806 +0.605641 +1 +0 +8 +0 +565.201 +29.972 +18.6944 +63.5 +0 +0. +0. +1 +1.524 +0. +0. +0. +1 +0. +102.846 +39.3464 + + + + + + + + + + + + + + + + + + +134.44 +45.3235 +80.1762 +5.98125 +4.53 +1 +10.207 +133.356 +5 +6.45125 +1 +1.45125 +44.3662 +6.45125 +2.10759 +44.3969 +9.12783 +78.9581 +13.9226 +129.31 +0. +0. +0 +914.4 +0 +0. +0 +0.174533 +0. +0. +759.813 +1.571 +0. +50. +15. +0. +0. +0 +3 +1.34112 +3.53162 +3 +0.04 +0.02 +0 +6 +1. +1. +1 +0. +0 +3 +300. +2000. +1 +5.99999 +0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2 +0.99 +2000. +1500. +2 +0.98 +1 +0. +0 +0.08 +1 +0. +1 +0. +1 +0. +1. +1. +0. +0 +0 +3600. +0. +0. +0. +0. +0. +0. +0. +0. +0. +0. +0. +0. +0. +0. +0. +0. +0. +0. +[C6-5] +10.1691 +0. +0. +0.25625 +1.435 +0.18 +10 +1 +800. +0 +Earth +Standard earth condistions. +2.681 +129.31 +0. +3.75682 +1.36125 +-3.50153 +0. +0,0,6.45125,0,0 +-1,-1,6.45,0,0 +0,0,6.45125,0,0 +32,32,80,32,32 +0.25 +1 +0.149308 +0.356462 +0.00433885 +3.02787e-05 +0. +0. +0. + + +0 +0 +0. +0. +0 +0. +0. +0. +0. +-1 +0,0,0 +0,0,0 +0,0,0 +0,0,0 +0,0,0 +0,0,0 +0,0,0 +0,0,0 + + + + +0 +0 +0. +0. +0 +0. +0. +0. +0. +-1 +0,0,0 +0,0,0 +0,0,0 +0,0,0 +0,0,0 +0,0,0 +0,0,0 +0,0,0 + + + + +11 +1 +0. +0. +1 +133.356 +10.207 +58.8311 +6.45125 +128 +28,28,28 +0,0,0 +0,0,0 +0,0,0 +0,0,0 +0,0,0 +0,0,0 +0,0,0 + + + + + + + + +1 +C6 +0. +Estes +12.7 +0. +5 +5. +0. +0. + + + + + + + diff --git a/core/test/net/sf/openrocket/file/rocksim/importt/TubeFins2.rkt b/core/test/net/sf/openrocket/file/rocksim/importt/TubeFins2.rkt new file mode 100644 index 000000000..ea1c6673c --- /dev/null +++ b/core/test/net/sf/openrocket/file/rocksim/importt/TubeFins2.rkt @@ -0,0 +1,1127 @@ + + 4 + + + Airplane Look-A-Like Design + 0 + 1 + 1 + 0. + 0. + 0. + 0. + 0. + 1 + 0. + 0. + 0. + 0. + 0. + 0. + 0. + 0. + 4 + 914.4 + 0 + 0 + 0 + 1 + 0 + This is a neat design that shows off the ability of RockSim to compute the stability of Assymetrical fin arrangements. + Tim Van Milligan. Visit my web site at: www.ApogeeRockets.com + 4 + 29 + 1 + 0 + CSV1|1|269.85,7.10543e-15,0|234.797,725.664,238.862|-0.445864,0.260358,-0.856399|544.986,1043.28|30|2|764.769|-34.4359|0|0|0|0 + 0,329.307,0,0 + 0,9.1535,0,0 + 0,329.307,0,0 + 0,9.1535,0,0 + 0,0,0,0 + 0,0,0,0 + 2 + 1 + 1 + 1 + 0. + 0. + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0. + 10. + 10.0076 + 10.0076 + 10.0076 + 0 + 0 + 0 + 10. + 0.15 + black + 87.122 + 29.972 + 635.051 + 635.051 + 0. + 635.051 + 0,29.972,0,0 + 0,635.051,0,0 + + + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + +11 +1 +0. +0. +0 +0. +0. +0. +0. +-1 +28,28,28 +0,0,0 +0,0,0 +0,0,0 +0,0,0 +0,0,0 +0,0,0 +0,0,0 + + + + +Apogee +11.8 +1049.21 +Polystyrene PS +Nose cone +72.9996 +1 +0. +10.0765 +86.8842 +0.0068397 +0.0068397 +0. +0 +19114 +PNC 29A +0. +0. +file=()|position=(0,0,0)|origin=(0.5,0.5,0.5)|scale=(1,1,1)|repeat=(1)|interpolate=(0)|flipr(0)|flips(0)|flipt=(0)|preventseam=(1) +1. +0. +1. +0. +1. +blue +rgb(204,204,204) +white +1 +1 +0 +0 +0 +rgb(204,43,29) +2. +0.0500862 +2. +0.0500862 +1 +0 +8 +0 +0. +108.001 +29.8958 +0 +1 +1 +29.9974 +0.9906 +0. +28.8036 +0. +0. +0. + + + + +Apogee +0. +1121.29 +Paper +Forward Fuselage Tube +0. +0 +0. +10.7139 +101.6 +0.0191333 +0.0191333 +0. +0 +10110 +29mm thin wall motor mount +0. +0. +file=()|position=(0,0,0)|origin=(0.5,0.5,0.5)|scale=(1,1,1)|repeat=(1)|interpolate=(0)|flipr(0)|flips(0)|flipt=(0)|preventseam=(1) +1. +0. +1. +0. +1. +blue +rgb(102,102,102) +white +1 +2 +1 +0 +0 +rgb(102,255,102) +0. +0. +0. +0. +1 +0 +8 +0 +108.001 +29.972 +28.956 +203.2 +0 +0 +0. +0.5 +0. +0. +0 +0 + + +Apogee +0. +924.265 +Polyethylene LDPE +Parachute +0. +0 +60.325 +6.87245 +50.8 +0. +0. +0. +0 +29115 + +0. +0. +file=()|position=(0,0,0)|origin=(0.5,0.5,0.5)|scale=(1,1,1)|repeat=(1)|interpolate=(0)|flipr(0)|flips(0)|flipt=(0)|preventseam=(1) +1. +0. +1. +0. +1. +blue +rgb(255,102,0) +white +1 +11 +0 +0 +0 +rgb(255,102,0) +0. +0. +0. +0. +1 +0 +8 +0 +168.326 +609.6 +0. +6 +6 +0.0254 +609.6 +1 +0.00032972 +Carpet String (Apogee 29500) +0.75 + + + + +Estes +0. +0.00039698 +100lb Kevlar (Apogee 29505) +Shock Cord (Mass Object) +180.975 +0 +180.975 +0.483998 +0. +0. +0. +0. +2 +0. +0. +file=()|position=(0,0,0)|origin=(0.5,0.5,0.5)|scale=(1,1,1)|repeat=(1)|interpolate=(0)|flipr(0)|flips(0)|flipt=(0)|preventseam=(1) +1. +0. +1. +0. +1. +blue +blue +white +1 +12 +0 +0 +0 +rgb(204,153,0) +0. +0. +0. +0. +1 +0 +8 +0 +288.976 +1 +1219.2 + + + + +Apogee +63.786 +1121.29 +Paper +Tube coupler +0. +1 +-31.75 +2.41365 +31.75 +0. +0. +0. +0 +13008 +AC-29A +0. +0. +file=()|position=(0,0,0)|origin=(0.5,0.5,0.5)|scale=(1,1,1)|repeat=(1)|interpolate=(0)|flipr(0)|flips(0)|flipt=(0)|preventseam=(1) +1. +0. +1. +0. +1. +blue +rgb(255,55,41) +white +1 +15 +0 +0 +2 +rgb(190,11,17) +0. +0. +0. +0. +1 +0 +8 +0 +279.451 +28.702 +27.94 +63.5 +0 +4 +0 + + + + + + +Apogee +0. +1121.29 +Paper +Aft Fuselage Tube +0. +0 +0. +13.3924 +127. +0.0239166 +0.0239166 +0. +0 +10110 +29mm thin wall motor mount +0. +0. +file=()|position=(0,0,0)|origin=(0.5,0.5,0.5)|scale=(1,1,1)|repeat=(1)|interpolate=(0)|flipr(0)|flips(0)|flipt=(0)|preventseam=(1) +1. +0. +1. +0. +1. +blue +rgb(102,102,102) +white +1 +3 +1 +0 +0 +rgb(26,209,56) +0. +0. +0. +0. +1 +0 +8 +0 +311.201 +29.972 +28.956 +254. +0 +0 +0. +0.5 +0. +0. +0 +0 + + +Apogee +0. +1121.29 +Paper +Engine Mount Tube +0. +0 +-69.85 +2.17025 +50.8 +0. +0. +0. +0 +10085 +18 mm +0. +0. +file=()|position=(0,0,0)|origin=(0.5,0.5,0.5)|scale=(1,1,1)|repeat=(1)|interpolate=(0)|flipr(0)|flips(0)|flipt=(0)|preventseam=(1) +1. +0. +1. +0. +1. +blue +rgb(76,76,76) +white +1 +5 +0 +0 +2 +rgb(71,96,255) +0. +0. +0. +0. +1 +0 +8 +0 +533.451 +18.6944 +18.034 +101.6 +0 +1 +18. +12.7 +0. +0. +1 +0 + + +Apogee +0.44 +1121.29 +Paper +Engine block +0. +1 +57.15 +0.680438 +3.175 +0. +0. +0. +0 +13029 +CR 13-18 ring +0. +0. +file=()|position=(0,0,0)|origin=(0.5,0.5,0.5)|scale=(1,1,1)|repeat=(1)|interpolate=(0)|flipr(0)|flips(0)|flipt=(0)|preventseam=(1) +1. +0. +1. +0. +1. +blue +rgb(39,181,255) +white +1 +6 +0 +0 +2 +rgb(0,51,153) +0. +0. +0. +0. +1 +0 +8 +0 +571.551 +17.78 +13.9446 +6.35 +0 +2 +0 + + + + +Estes +1.4 +0.00112861 +Engine hook (mass object) +28.575 +1 +28.575 +0. +0. +0. +0. +0. +2 +Engine hook +Standard size +0. +0. +file=()|position=(0,0,0)|origin=(0.5,0.5,0.5)|scale=(1,1,1)|repeat=(1)|interpolate=(0)|flipr(0)|flips(0)|flipt=(0)|preventseam=(1) +1. +0. +1. +0. +1. +blue +blue +white +1 +8 +0 +0 +2 +rgb(204,153,0) +0. +0. +0. +0. +1 +0 +8 +0 +606.476 +0 +0. + + + + + + +Apogee +1.64 +1121.29 +Paper +Front Engine Mount Centering Ring +0. +1 +25.4 +4.60687 +3.175 +0. +0. +0. +0 +13034 +CR 18-29 +0. +0. +file=()|position=(0,0,0)|origin=(0.5,0.5,0.5)|scale=(1,1,1)|repeat=(1)|interpolate=(0)|flipr(0)|flips(0)|flipt=(0)|preventseam=(1) +1. +0. +1. +0. +1. +blue +rgb(255,102,51) +white +1 +9 +0 +0 +2 +rgb(204,0,153) +0. +0. +0. +0. +1 +0 +8 +0 +533.451 +28.702 +18.796 +6.35 +0 +0 +0 + + + + +Apogee +1.64 +1121.29 +Paper +Rear Engine Mount Centering Ring +0. +1 +0. +4.60687 +3.175 +0. +0. +0. +0 +13034 +CR 18-29 +0. +0. +file=()|position=(0,0,0)|origin=(0.5,0.5,0.5)|scale=(1,1,1)|repeat=(1)|interpolate=(0)|flipr(0)|flips(0)|flipt=(0)|preventseam=(1) +1. +0. +1. +0. +1. +blue +rgb(255,102,51) +white +1 +10 +0 +0 +2 +rgb(204,30,85) +0. +0. +0. +0. +1 +0 +8 +0 +558.851 +28.702 +18.796 +6.35 +0 +0 +0 + + + + +Custom +10. +688.794 +Cardboard +Tube fins +0. +1 +123.825 +20.31 +36.5125 +0.0375518 +0.0375518 +0. +0 +29.2735 +3.14177 +file=()|position=(0,0,0)|origin=(0.5,0.5,0.5)|scale=(1,1,1)|repeat=(1)|interpolate=(0)|flipr(0)|flips(0)|flipt=(0)|preventseam=(1) +1. +0. +1. +0. +1. +blue +blue +white +1 +29 +0 +0 +0 +blue +5.11021 +0.459553 +8.38157 +0.436423 +1 +0 +8 +0 +435.026 +28.575 +25.4 +73.025 +0 +3 +1.01975 +6 + + + + + + +Custom +0. +1049.21 +Polystyrene PS +Rear Boattail (transition) +0. +0 +0. +7.91299 +29.4088 +0.00525216 +0.00525216 +0. +0 +0. +0. +file=()|position=(0,0,0)|origin=(0.5,0.5,0.5)|scale=(1,1,1)|repeat=(1)|interpolate=(0)|flipr(0)|flips(0)|flipt=(0)|preventseam=(1) +1. +0. +1. +0. +1. +blue +rgb(204,204,204) +white +1 +4 +0 +0 +0 +rgb(0,64,128) +-1.22806 +0.605641 +-1.22806 +0.605641 +1 +0 +8 +0 +565.201 +29.972 +18.6944 +63.5 +0 +0. +0. +1 +1.524 +0. +0. +0. +1 +0. +102.846 +39.3464 + + + + + + + + + + + + + + + + + + +134.44 +45.3235 +80.1762 +5.98125 +4.53 +1 +10.207 +133.356 +5 +6.45125 +1 +1.45125 +44.3662 +6.45125 +2.10759 +44.3969 +9.12783 +78.9581 +13.9226 +129.31 +0. +0. +0 +914.4 +0 +0. +0 +0.174533 +0. +0. +759.813 +1.571 +0. +50. +15. +0. +0. +0 +3 +1.34112 +3.53162 +3 +0.04 +0.02 +0 +6 +1. +1. +1 +0. +0 +3 +300. +2000. +1 +5.99999 +0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2 +0.99 +2000. +1500. +2 +0.98 +1 +0. +0 +0.08 +1 +0. +1 +0. +1 +0. +1. +1. +0. +0 +0 +3600. +0. +0. +0. +0. +0. +0. +0. +0. +0. +0. +0. +0. +0. +0. +0. +0. +0. +0. +[C6-5] +10.1691 +0. +0. +0.25625 +1.435 +0.18 +10 +1 +800. +0 +Earth +Standard earth condistions. +2.681 +129.31 +0. +3.75682 +1.36125 +-3.50153 +0. +0,0,6.45125,0,0 +-1,-1,6.45,0,0 +0,0,6.45125,0,0 +32,32,80,32,32 +0.25 +1 +0.149308 +0.356462 +0.00433885 +3.02787e-05 +0. +0. +0. + + +0 +0 +0. +0. +0 +0. +0. +0. +0. +-1 +0,0,0 +0,0,0 +0,0,0 +0,0,0 +0,0,0 +0,0,0 +0,0,0 +0,0,0 + + + + +0 +0 +0. +0. +0 +0. +0. +0. +0. +-1 +0,0,0 +0,0,0 +0,0,0 +0,0,0 +0,0,0 +0,0,0 +0,0,0 +0,0,0 + + + + +11 +1 +0. +0. +1 +133.356 +10.207 +58.8311 +6.45125 +128 +28,28,28 +0,0,0 +0,0,0 +0,0,0 +0,0,0 +0,0,0 +0,0,0 +0,0,0 + + + + + + + + +1 +C6 +0. +Estes +12.7 +0. +5 +5. +0. +0. + + + + + + + diff --git a/core/web/html/actions/updates.php b/core/web/html/actions/updates.php index 3d6f337e7..0960f6c4e 100644 --- a/core/web/html/actions/updates.php +++ b/core/web/html/actions/updates.php @@ -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" . diff --git a/core/web/html/download.html b/core/web/html/download.html index bbec666a6..6d8d1af19 100644 --- a/core/web/html/download.html +++ b/core/web/html/download.html @@ -48,6 +48,9 @@

Recent news:

+

28.03.2015: Version 15.03 is + released! This release contains scriptable simulation extensions and experimental support for tube fins along with many additional improvements. +

02.11.2014: Version 14.11 is released! This release contains very few changes. Thrustcurves have been updated and now include AeroTech DMS motors. A few bugs have been fixed.

@@ -87,20 +90,20 @@ Support This Project

OpenRocket can be started in most graphical environments (including Windows) by double-clicking the package icon. No installation is required.

From the command line OpenRocket can be started by - java -jar OpenRocket-14.11.jar

+ java -jar OpenRocket-15.03.jar

Android version

The Android version allows opening OpenRocket files, viewing simulations and motors. Later versions will allow running @@ -115,7 +118,7 @@

  1. Go to SettingsApplications and check Unknown sources.
  2. -
  3. Download OpenRocket-Android-12.09.apk +
  4. Download OpenRocket-Android-13.11.apk on your device and accept installation.
diff --git a/core/web/html/index.html b/core/web/html/index.html index 43307edae..cacd8184f 100644 --- a/core/web/html/index.html +++ b/core/web/html/index.html @@ -49,12 +49,12 @@

Introduction

@@ -108,6 +108,9 @@ Profiler.

News

+

28.03.2015: Version 15.03 is + released! This release contains scriptable simulation extensions and experimental support for tube fins along with many additional improvements. +

02.11.2014: Version 14.11 is released! This release contains very few changes. Thrustcurves have been updated and now include AeroTech DMS motors. A few bugs have been fixed.

diff --git a/core/web/htp/htp.def b/core/web/htp/htp.def index 6e8e1bc86..7167b7b60 100644 --- a/core/web/htp/htp.def +++ b/core/web/htp/htp.def @@ -1,5 +1,5 @@ - - + +
diff --git a/core/web/htp/news.htp b/core/web/htp/news.htp index c01b32185..4a612519d 100644 --- a/core/web/htp/news.htp +++ b/core/web/htp/news.htp @@ -8,6 +8,10 @@ +

28.03.2015: Version 15.03 is + released! This release contains scriptable simulation extensions and experimental support for tube fins along with many additional improvements. +

+

02.11.2014: Version 14.11 is released! This release contains very few changes. Thrustcurves have been updated and now include AeroTech DMS motors. A few bugs have been fixed.

diff --git a/swing/src/net/sf/openrocket/gui/adaptors/EnumModel.java b/swing/src/net/sf/openrocket/gui/adaptors/EnumModel.java index a6757a380..4a7b49f98 100644 --- a/swing/src/net/sf/openrocket/gui/adaptors/EnumModel.java +++ b/swing/src/net/sf/openrocket/gui/adaptors/EnumModel.java @@ -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> extends AbstractListModel - implements ComboBoxModel, StateChangeListener { + implements ComboBoxModel, MutableComboBoxModel, StateChangeListener { private final ChangeSource source; private final String valueName; @@ -20,6 +24,8 @@ public class EnumModel> extends AbstractListModel private final Enum[] values; private Enum currentValue = null; + ArrayList> displayedValues = new ArrayList>(); + private final Reflection.Method getMethod; private final Reflection.Method setMethod; @@ -60,6 +66,9 @@ public class EnumModel> extends AbstractListModel else this.values = enumClass.getEnumConstants(); + for (Enum e : this.values){ + this.displayedValues.add( e ); + } this.nullText = nullText; stateChanged(null); // Update current value @@ -99,20 +108,20 @@ public class EnumModel> 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> 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 ); + } + } diff --git a/swing/src/net/sf/openrocket/gui/configdialog/ParachuteConfig.java b/swing/src/net/sf/openrocket/gui/configdialog/ParachuteConfig.java index d20ee770e..107fca930 100644 --- a/swing/src/net/sf/openrocket/gui/configdialog/ParachuteConfig.java +++ b/swing/src/net/sf/openrocket/gui/configdialog/ParachuteConfig.java @@ -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(deploymentConfig, "DeployEvent")); + // this issues a warning because EnumModel ipmlements ComboBoxModel without a parameter... + ComboBoxModel deployOptionsModel = new EnumModel(deploymentConfig, "DeployEvent"); + combo = new JComboBox( 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 diff --git a/swing/src/net/sf/openrocket/gui/configdialog/RecoveryDeviceConfig.java b/swing/src/net/sf/openrocket/gui/configdialog/RecoveryDeviceConfig.java index 2f5f37c30..ea5a71438 100644 --- a/swing/src/net/sf/openrocket/gui/configdialog/RecoveryDeviceConfig.java +++ b/swing/src/net/sf/openrocket/gui/configdialog/RecoveryDeviceConfig.java @@ -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 altitudeComponents = new ArrayList(); public RecoveryDeviceConfig(OpenRocketDocument d, RocketComponent component) { diff --git a/swing/src/net/sf/openrocket/gui/configdialog/StreamerConfig.java b/swing/src/net/sf/openrocket/gui/configdialog/StreamerConfig.java index a9977abb7..68ad60ccf 100644 --- a/swing/src/net/sf/openrocket/gui/configdialog/StreamerConfig.java +++ b/swing/src/net/sf/openrocket/gui/configdialog/StreamerConfig.java @@ -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(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 diff --git a/swing/src/net/sf/openrocket/gui/dialogs/flightconfiguration/DeploymentSelectionDialog.java b/swing/src/net/sf/openrocket/gui/dialogs/flightconfiguration/DeploymentSelectionDialog.java index 6744f07eb..3b8430153 100644 --- a/swing/src/net/sf/openrocket/gui/dialogs/flightconfiguration/DeploymentSelectionDialog.java +++ b/swing/src/net/sf/openrocket/gui/dialogs/flightconfiguration/DeploymentSelectionDialog.java @@ -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(newConfiguration, "DeployEvent")); + final JComboBox event = new JComboBox(new EnumModel(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