-#Sun Jun 13 15:09:13 EEST 2010
+#Tue Dec 27 21:59:43 EET 2011
eclipse.preferences.version=1
encoding//doc/design/simulation-sequence.uml=UTF-8
encoding//doc/design/simulation-sequence.umlseq=UTF-8
+encoding/<project>=UTF-8
--- /dev/null
+#Tue Dec 27 21:59:43 EET 2011
+eclipse.preferences.version=1
+line.separator=\n
--- /dev/null
+
+Creating a simple rocket design
+
+<p>This tour shows how to create a simple rocket design from scratch.
+
+
+[none]
+
+<p>When you choose to create a new design, you are presented with a blank
+design and the <em>Rocket configuration</em> dialog is displayed.
+Here you can enter general information on the rocket design, such as
+the design name, designer, comments and revision information.
+
+<p>You can later open this dialog by double-clicking on the root
+component in the component tree.
+
+
+[none]
+
+<p>Next, add a <em>Nose cone</em> to the design by clicking the
+corresponding component addition button. This opens the nose cone
+configuration dialog.
+
+
+[none]
+
+<p>The configuration dialog contains settings for the nose cone shape,
+dimensions and material. Set the nose cone length to 10 cm,
+base diameter to 2.5 cm and material to Polystyrene (plastic).
+
+<p>To use inches, either click the unit to change it, or change the
+default units in <a href="FIXME">Preferences</a>.
+
+
+[none]
+
+<p>The design window displays the nose cone. Next, add a <em>Body
+tube</em> to the design.
+
+
+[none]
+
+<p>Change the body tube length to 25 cm. The <em>Automatic</em>
+option for the outer diameter is ticked by default, in which case the
+diameter is automatically the same as that of the nose cone.
+
+
+[none]
+
+<p>Next, add a <em>Trapezoidal fin set</em> to the rocket. The body
+tube must be selected in order to add the component.
+
+
+[none]
+
+<p>The trapezoidal fin set has numerous dimension parameters. The
+most important are the root and tip chord (length next to the body
+tube and tip), height and sweep.
+
+<p>The default values are okay for the example design.
+
+
+[none]
+
+<p>Next, add an <em>Inner tube</em> as a motor mount. Select the body
+tube, and then click the component addition button.
+
+
+[none]
+
+<p>The default dimensions are suitable for Estes A-C motors. To have
+the motor mount overhang a bit, change the position parameter to
+<em>Bottom of parent component</em> plus 0.5 cm.
+
+
+[none]
+
+<p>To add <em>Centering rings</em> to keep the mount in place, select
+the body tube and click the centering ring button.
+
+<p>(If you have the inner tube selected when clicking, the centering
+ring will be added inside the inner tube. Use <b>Edit</b> →
+<b>Undo</b> to undo the latest action.)
+
+
+[none]
+
+<p>The centering ring automatically selects the appropriate outer and
+inner diameter when the <em>Automatic</em> checkboxes are selected.
+
+<p>Move the centering ring to the front of the engine mount by setting
+the position parameter to <em>Bottom of parent component</em> plus
+-5.0 cm.
+
+<p>Next add another centering ring at the aft end with position
+parameter zero.
+
+
+[none]
+
+<p>Next add a <em>Parachute</em> to the body tube.
+
+
+[none]
+
+<p>The <em>canopy diameter</em> and <em>drag coefficient</em>
+determine how much the parachute slows down the rocket during descent.
+The <em>material</em> and <em>shroud lines</em> affect the total
+mass. The <em>packed length</em>, <em>diameter</em> and
+<em>position</em> affect the packed size and location of the
+parachute.
+
+<p>The <em>Deploys at</em> propery can be used to affect when the
+parachute deploys. For <em>First ejection charge of this stage</em>
+option will deploy the parachute when the ejection charge is fired, as
+is typical in small model rockets.
+
+
+[none]
+
+<p>Now the functional aspects of the rocket design are complete.
+
+<p>For completeness you can still attach a <em>Mass component</em> to
+the body tube for wadding, and an <em>Engine block</em> to the inner
+tube for holding the motor in place.
+
+
+[none]
+
+<p>Now the rocket design is complete.
+
+<p>You can now continue to
+<a href="defining_motors/defining_motors">defining motors</a> to your
+rocket.
+
+
+
+
Introduction
-<p>Ce premier tour d'horizon donne un apperçu rapide des écrans et fonctionnalités
+<p>Ce premier tour d'horizon donne un apperçu rapide des écrans et fonctionnalités
d'OpenRocket.
-[logo.png]
+[logo_fr.png]
<p><b>OpenRocket</b> est une application pour concevoir,
-simuler et optimiser des fusées modèle réduit. Ce premier tour d'horizon
-montre une vue globale des écrans et fonctionnalités d'OpenRocket.
+simuler et optimiser des fusées modèle réduit. Ce premier tour d'horizon
+montre une vue globale des écrans et fonctionnalités d'OpenRocket.
-<p>Vous pouvez vous déplacer dans le tour d'horizon en utilisant les boutons <b>Suivant</b>
-et <b>Précédant</b>, ou en utilisant les flèches <em>gauche</em> et <em>droite
+<p>Vous pouvez vous déplacer dans le tour d'horizon en utilisant les boutons <b>Suivant</b>
+et <b>Précédant</b>, ou en utilisant les flèches <em>gauche</em> et <em>droite
</em> sur votre clavier.
[none]
# FIXME: Add screenshot after dialog is complete
-<p>Ceci est l'écran de démarrage depuis lequel vous pouvez créer une nouvelle fusée
+<p>Ceci est l'écran de démarrage depuis lequel vous pouvez créer une nouvelle fusée
ou ouvrir des projets existant.
-<p>Pour ce tour d'horizon, ouvrons le projet exemple nommé <em>A simple model
+<p>Pour ce tour d'horizon, ouvrons le projet exemple nommé <em>A simple model
rocket</em>.
[main_window.jpg]
-<p>Ceci est l'écran principal d'OpenRocket. Il est divisé horizontalement en
-deux parties: la partie projet fusée / simulation de vol
-et la partie conception fusée.
+<p>Ceci est l'écran principal d'OpenRocket. Il est divisé horizontalement en
+deux parties: la partie projet fusée / simulation de vol
+et la partie conception fusée.
[main_window_top.jpg]
-<p>En haut à gauche il y a l'arborescence de pièces du projet fusée.
-Il montre quelles pièces sont attachées à quelles pièces.
+<p>En haut à gauche il y a l'arborescence de pièces du projet fusée.
+Il montre quelles pièces sont attachées à quelles pièces.
-<p>Juste à coté les buttons permettent d'ajouter de nouvelles pièces à
-la fusée.
+<p>Juste à coté les buttons permettent d'ajouter de nouvelles pièces à
+la fusée.
[main_window_bottom.jpg]
-<p>La partie basse de la fenêtre contient un diagramme du projet fusée
+<p>La partie basse de la fenêtre contient un diagramme du projet fusée
en cour.
-<p>Les différentes options de visualisation sont décrites en détail dans le tour
+<p>Les différentes options de visualisation sont décrites en détail dans le tour
d'horizon <a href="FIXME">Options de visualisation</a>.
[flight_simulations.jpg]
-<p>Lorsque vous sélectionnez l'onglet <b>Simulations de vol</b>, la partie haute de
-la fenêtre change pour montrer les simulations qui ont été programmées pour
-la fusée.
+<p>Lorsque vous sélectionnez l'onglet <b>Simulations de vol</b>, la partie haute de
+la fenêtre change pour montrer les simulations qui ont été programmées pour
+la fusée.
-<p>Vous pouvez définir plusieurs simulations avec des configurations moteurs différentes
+<p>Vous pouvez définir plusieurs simulations avec des configurations moteurs différentes
et en modifiant les conditions de lancement, comme le vent et l'inclinaison
de la rampe de lancement.
[simulation_edit.png]
-<p>En double cliquant sur une simulation vous ouvrez <em>la fenêtre de dialogue de modification
-de Simulation </em>. Sur les deux premiers onglets vous pouvez définir les options de simulation,
-dans les deux derniers onglets vous pouvez tracer ou exporter les résultats.
+<p>En double cliquant sur une simulation vous ouvrez <em>la fenêtre de dialogue de modification
+de Simulation </em>. Sur les deux premiers onglets vous pouvez définir les options de simulation,
+dans les deux derniers onglets vous pouvez tracer ou exporter les résultats.
-<p>La simulation d'une fusée est décrite en détail dans le tour d'horizon
+<p>La simulation d'une fusée est décrite en détail dans le tour d'horizon
<a href="FIXME">Simulation d'un vol</a>.
[advanced_features.jpg]
-<p>D'autres fonctionnalités avancées incluant l'analyse des pièces et une
-optimisation automatique du projet sont traités dans d'autres tours d'horizon.
+<p>D'autres fonctionnalités avancées incluant l'analyse des pièces et une
+optimisation automatique du projet sont traités dans d'autres tours d'horizon.
-<p>Ensuite vous pouvez voir <a href="FIXME">Créer un projet fusée
-</a>, survoler d'autres tours d'horizons ou commencer à expérimenter le
+<p>Ensuite vous pouvez voir <a href="FIXME">Créer un projet fusée
+</a>, survoler d'autres tours d'horizons ou commencer à expérimenter le
logiciel.
# This file lists all the available tours.
introduction/introduction.tour
-
+creating_design/creating_design.tour
test1/test.tour
test2/test2.tour
public void setSlide(Slide slide) {
this.imageDisplay.setImage(slide.getImage());
this.textPane.setText(slide.getText());
+ this.textPane.setCaretPosition(0);
}
package net.sf.openrocket.rocketcomponent;
-import net.sf.openrocket.util.Coordinate;
-import net.sf.openrocket.util.MathUtil;
+import static net.sf.openrocket.util.MathUtil.pow2;
import java.util.ArrayList;
import java.util.Collection;
-import static net.sf.openrocket.util.MathUtil.pow2;
+import net.sf.openrocket.util.Coordinate;
+import net.sf.openrocket.util.MathUtil;
/**
* @author Sampo Niskanen <sampo.niskanen@iki.fi>
*/
public abstract class MassObject extends InternalComponent {
-
+
private double radius;
-
+
private double radialPosition;
private double radialDirection;
-
+
private double shiftY = 0;
private double shiftZ = 0;
-
-
+
+
public MassObject() {
- this(0.03, 0.015);
+ this(0.025, 0.0125);
}
-
+
public MassObject(double length, double radius) {
super();
-
+
this.length = length;
this.radius = radius;
-
+
this.setRelativePosition(Position.TOP);
this.setPositionValue(0.0);
}
-
-
+
+
public void setLength(double length) {
length = Math.max(length, 0);
if (MathUtil.equals(this.length, length)) {
this.length = length;
fireComponentChangeEvent(ComponentChangeEvent.MASS_CHANGE);
}
-
-
+
+
public final double getRadius() {
return radius;
}
-
-
+
+
public final void setRadius(double radius) {
radius = Math.max(radius, 0);
if (MathUtil.equals(this.radius, radius)) {
this.radius = radius;
fireComponentChangeEvent(ComponentChangeEvent.MASS_CHANGE);
}
-
-
-
+
+
+
public final double getRadialPosition() {
return radialPosition;
}
-
+
public final void setRadialPosition(double radialPosition) {
radialPosition = Math.max(radialPosition, 0);
if (MathUtil.equals(this.radialPosition, radialPosition)) {
shiftZ = radialPosition * Math.sin(radialDirection);
fireComponentChangeEvent(ComponentChangeEvent.MASS_CHANGE);
}
-
+
public final double getRadialDirection() {
return radialDirection;
}
-
+
public final void setRadialDirection(double radialDirection) {
radialDirection = MathUtil.reduce180(radialDirection);
if (MathUtil.equals(this.radialDirection, radialDirection)) {
shiftZ = radialPosition * Math.sin(radialDirection);
fireComponentChangeEvent(ComponentChangeEvent.MASS_CHANGE);
}
-
-
+
+
/**
* Shift the coordinates according to the radial position and direction.
*/
}
return array;
}
-
+
@Override
public final Coordinate getComponentCG() {
return new Coordinate(length / 2, shiftY, shiftZ, getComponentMass());
}
-
+
@Override
public final double getLongitudinalUnitInertia() {
return (3 * pow2(radius) + pow2(length)) / 12;
}
-
+
@Override
public final double getRotationalUnitInertia() {
return pow2(radius) / 2;
}
-
+
@Override
public final Collection<Coordinate> getComponentBounds() {
Collection<Coordinate> c = new ArrayList<Coordinate>();
addBound(c, length, radius);
return c;
}
-
+
}
* length
* == rootChord
*/
-
+
// rootChord == length
private double tipChord = 0;
private double height = 0;
public TrapezoidFinSet() {
- this(3, 0.05, 0.05, 0.025, 0.05);
+ this(3, 0.05, 0.05, 0.025, 0.03);
}
// TODO: HIGH: height=0 -> CP = NaN
}
-
+
/**
* Returns the geometry of a trapezoidal fin.
*/