<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.openrocket.info/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cdawg</id>
	<title>OpenRocket wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.openrocket.info/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cdawg"/>
	<link rel="alternate" type="text/html" href="http://wiki.openrocket.info/Special:Contributions/Cdawg"/>
	<updated>2026-04-29T12:52:59Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>http://wiki.openrocket.info/index.php?title=Tips&amp;diff=35627</id>
		<title>Tips</title>
		<link rel="alternate" type="text/html" href="http://wiki.openrocket.info/index.php?title=Tips&amp;diff=35627"/>
		<updated>2022-09-10T04:15:07Z</updated>

		<summary type="html">&lt;p&gt;Cdawg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: left;&amp;quot;&amp;gt;[[Component Details|&amp;amp;larr; Component Details (Appendix B)]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: right;&amp;quot;&amp;gt;[[List of useful custom expressions|List of useful custom expressions (Appendix D) &amp;amp;rarr;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Main Page|&amp;amp;uarr; Back to Contents]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{UserGuideHelp}}&lt;br /&gt;
&lt;br /&gt;
This page collects a list of short (1-3 sentences) tips for using OpenRocket.  Later on they may be included in the software as a &amp;quot;tip of the day&amp;quot; system.&lt;br /&gt;
&lt;br /&gt;
= General use =&lt;br /&gt;
&lt;br /&gt;
* You can type in equations in the entry fields instead of numbers.  For example, to double a length you can type &#039;&#039;&#039;3.1*2&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* The component tree will display any component comments as tool tips.  You can set the comment on the &#039;&#039;&#039;Comment&#039;&#039;&#039; tab of the component configuration dialog.&lt;br /&gt;
&lt;br /&gt;
* If you want to always load a specific .ork file, you can specify the filename as a command line argument when starting openrocket.&lt;br /&gt;
&lt;br /&gt;
* You can choose your preferred units from &#039;&#039;&#039;Edit&#039;&#039;&#039; &amp;amp;rarr; &#039;&#039;&#039;Preferences...&#039;&#039;&#039;.  You can individually change the units by clicking the unit symbol. &lt;br /&gt;
&lt;br /&gt;
= Rocket design =&lt;br /&gt;
&lt;br /&gt;
* A rocket design can have a number of &#039;&#039;motor configurations&#039;&#039;.  When simulating a flight, you select which motor configuration you use.  You can edit the motor configurations using &#039;&#039;&#039;Tools&#039;&#039;&#039; &amp;amp;rarr; &#039;&#039;&#039;Motor configurations...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Motors can be attached to either body tubes or inner tubes.  You can attach one on the &#039;&#039;&#039;Motor&#039;&#039;&#039; tab of the configuration dialog.&lt;br /&gt;
&lt;br /&gt;
* You can scale a single component or an entire design using &#039;&#039;&#039;Edit&#039;&#039;&#039; &amp;amp;rarr; &#039;&#039;&#039;Scale...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* You can define custom materials by selecting &#039;&#039;&#039;Custom&#039;&#039;&#039; from the bottom of a material selection list.&lt;br /&gt;
&lt;br /&gt;
* You can select ready components from the preset dropdown on the top-right of the component editing dialog.  Tick the box in the table to add the component to the dropdown menu.&lt;br /&gt;
&lt;br /&gt;
* You can select components by clicking them in the diagram, or edit them by double-clicking.&lt;br /&gt;
&lt;br /&gt;
* To get the best accuracy possible, you can weight your components and enter the override the calculated weight on the &#039;&#039;&#039;Override&#039; tab when editing components.&lt;br /&gt;
&lt;br /&gt;
* You can define through-the-wall fin tabs on the &#039;&#039;&#039;Fin tabs&#039;&#039;&#039; tab when editing a fin set.&lt;br /&gt;
&lt;br /&gt;
* Your rocket&#039;s surface roughness can affect flight altitude significantly.  Select the appropriate roughness on the &#039;&#039;&#039;Component finish&#039;&#039;&#039; dropdown.  You can set the same finish for all components by clicking &#039;&#039;&#039;Set for all&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* You will see immediate results of a flight simulation on the lower-left corner of the design diagram.  This reflects a flight with your currently selected motor configuration.&lt;br /&gt;
&lt;br /&gt;
* In case OpenRocket cannot reliably compute the aerodynamic properties of the rocket, you will see warnings on the lower-right corner of the design diagram.&lt;br /&gt;
&lt;br /&gt;
* You can create clustered rockets easily using the &#039;&#039;&#039;Cluster&#039;&#039;&#039; tab when editing Inner tubes.  Any motors or components attached to the inner tube will be present on all copies of the inner tube.&lt;br /&gt;
&lt;br /&gt;
* Centering rings, Engine blocks, Couplers and Bulkheads can automatically compute the relevant dimensions from the other components when the &#039;&#039;&#039;Automatic&#039;&#039;&#039; checkbox is selected.&lt;br /&gt;
&lt;br /&gt;
* You can simulate launch rails or pins by creating filled launch lugs of the corresponding size.&lt;br /&gt;
&lt;br /&gt;
* Only body components and fin sets affect the aerodynamics of the rocket.  Even if an internal component extrudes outside of the body tube, its effect will not be taken into account in simulations!&lt;br /&gt;
&lt;br /&gt;
* You can add stages to your rocket by pressing &#039;&#039;&#039;New stage&#039;&#039;&#039; on the main screen.  Stage separation is configured on the &#039;&#039;&#039;Separation&#039;&#039;&#039; tab when editing a stage.&lt;br /&gt;
&lt;br /&gt;
* You can fully customize the simulation plots on the &#039;&#039;&#039;Plot data&#039;&#039;&#039; tab.  Choose one of the preset configurations or experiment with the other options.&lt;br /&gt;
&lt;br /&gt;
* You can export simulated flight data to be analyzed by another program using the &#039;&#039;&#039;Export data&#039;&#039;&#039; tab when editing a simulation.&lt;br /&gt;
&lt;br /&gt;
* The ball on the left side of the simulation table indicates the state of the simulation.  Grey means that the simulation has not yet been run, red that the design has been changed since the simulation was last run, yellow means the data has been loaded from a file, and green means it is up-to-date.&lt;br /&gt;
&lt;br /&gt;
* If a potential problem occurred during a simulated flight, you will see a red exclamation mark (!) next to your simulation.  Hover over the simulation to see what the warning is about.&lt;br /&gt;
&lt;br /&gt;
* You can duplicate components or move them to another design by using normal copy-paste functionality.&lt;br /&gt;
&lt;br /&gt;
* You can move components by drag-dropping them in the component tree.&lt;br /&gt;
&lt;br /&gt;
* You can examine details on the stability and drag characteristics of your rocket using &#039;&#039;&#039;Tools&#039;&#039;&#039; &amp;amp;rarr; &#039;&#039;&#039;Component analysis...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* You can optimize the shape, size or mass of your rocket using &#039;&#039;&#039;Tools&#039;&#039;&#039; &amp;amp;rarr; &#039;&#039;&#039;Rocket optimization...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Custom expressions allow you to compute flight parameters that are not computed by OpenRocket by default.  You define them using &#039;&#039;&#039;Tools&#039;&#039;&#039; &amp;amp;rarr; &#039;&#039;&#039;Custom expressions...&#039;&#039;&#039;  See [https://sourceforge.net/apps/mediawiki/openrocket/index.php?title=List_of_useful_custom_expressions the wiki] for ideas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: left;&amp;quot;&amp;gt;[[Component Details|&amp;amp;larr; Component Details (Appendix B)]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: right;&amp;quot;&amp;gt;[[List of useful custom expressions|List of useful custom expressions (Appendix D) &amp;amp;rarr;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Main Page|&amp;amp;uarr; Back to Contents]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Cdawg</name></author>
	</entry>
	<entry>
		<id>http://wiki.openrocket.info/index.php?title=Custom_Expressions&amp;diff=35626</id>
		<title>Custom Expressions</title>
		<link rel="alternate" type="text/html" href="http://wiki.openrocket.info/index.php?title=Custom_Expressions&amp;diff=35626"/>
		<updated>2022-09-10T04:01:56Z</updated>

		<summary type="html">&lt;p&gt;Cdawg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: left;&amp;quot;&amp;gt;[[Rocket Analysis|&amp;amp;larr; Rocket Analysis]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: right;&amp;quot;&amp;gt;[[Simulation Listeners|Simulation Listeners &amp;amp;rarr;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Main Page|&amp;amp;uarr; Back to Contents]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{UserGuideHelp}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
In openrocket (12.09 and later), you are not limited to using just the built-in simulation variables in your plots and analysis.&lt;br /&gt;
With the custom expression feature, you can write expressions to calculate other values of interest during the simulation. These can then be plotted or exported just like the built in variables.&lt;br /&gt;
&lt;br /&gt;
Custom expressions are added to your rocket document from the &#039;Analyze&#039; menu under custom expressions. This will open a window showing all your custom expressions.&lt;br /&gt;
&lt;br /&gt;
[[File:custom_expressions.png]]&lt;br /&gt;
&lt;br /&gt;
Initially there will be no custom expressions, so you will need to add one using the &#039;&#039;New expression&#039;&#039; button in the lower right. This opens the expression builder window. You can also import expressions from another .ork file.&lt;br /&gt;
&lt;br /&gt;
== Building expressions ==&lt;br /&gt;
&lt;br /&gt;
[[File:expression_builder.png]]&lt;br /&gt;
&lt;br /&gt;
You must specify a name for the expression, a short symbol, the units of the resulting value, and of course the expression itself. After you enter a valid value in each of the fields the adjacent indicator will change from red to green. Only when all indicators are green will you be able to add or update the expression.&lt;br /&gt;
&lt;br /&gt;
* The name field can be arbitrary, it only must have not been used before.&lt;br /&gt;
* The symbol field is intended for a short (locale-independent) symbol representing the value. It must not have been used before, contain no numbers, whitespaces, special characters such as brackets or operators.&lt;br /&gt;
* There are no restrictions on the unit, it can even be empty for dimensionless quantities. However, if you enter a standard SI unit then you will be able to automatically convert the units when plotting or exporting. The available SI units are: m, m^2, m/s, kg, kg m^2, kg m^3, N, Ns, s, Pa, V, A, J, W, kg m/s, Hz, K. They must match exactly. &lt;br /&gt;
* The expression must only contain valid symbols, operators and numbers and must make sense mathematically. For convenience, the adjacent indicator updates on-the-fly.&lt;br /&gt;
* It is possible to nest custom expressions, i.e. you can use the symbol defined for a custom expression in another expression. However, you must ensure that expressions are calculated in the correct order if you do this. This can be done using the blue arrows in the custom expression pane to adjust the order of calculation.&lt;br /&gt;
&lt;br /&gt;
To see a list of the available variables and their symbols, click the &#039;&#039;Insert Variable&#039;&#039; button. This will open a window from which you can choose a variable and insert it (at the current cursor position) in the expression box. This is particularly useful because you may not be able to type some of the symbols on your keyboard. The &#039;&#039;insert operator&#039;&#039; window is similar and shows all the available mathematical operators and functions.&lt;br /&gt;
&lt;br /&gt;
== Index expressions ==&lt;br /&gt;
&lt;br /&gt;
The custom expressions are calculated at each time step of the simulation, however there are some cases where it is useful to have access to earlier values of a given variable. This is possible using &#039;&#039;index expressions&#039;&#039;. These use a square bracket syntax to specify the time (in seconds) for the variable you want. For example, the expression:&lt;br /&gt;
 m / m[0]&lt;br /&gt;
would give the ratio of the current mass to the launch mass at time 0. Similarly, &lt;br /&gt;
 m - m[t-1]&lt;br /&gt;
would give you the change in mass over the last second.&lt;br /&gt;
 &lt;br /&gt;
You can specify any valid sub-expression inside the square brackets, the only restriction is that you can&#039;t nest another index/range expression inside the square brackets.&lt;br /&gt;
&lt;br /&gt;
When indexed expressions are calculated, interpolation is used to get the value exactly at the specified time, independent of the time steps of the simulation.&lt;br /&gt;
&lt;br /&gt;
If you specify a time smaller than 0 or greater than t then it will be clipped to 0 or t respectively. You can&#039;t access data that has not been calculated yet.&lt;br /&gt;
&lt;br /&gt;
== Range expressions ==&lt;br /&gt;
&lt;br /&gt;
It is sometimes useful to have access to a range of values of a particular variable rather than just one point. Openrocket includes a number of useful operators for calculating statistics and other properties of ranges. These operators can be identified in the operator selection box by the &#039;&#039;[:]&#039;&#039; which will already have been filled out in place of one of more of the parameters.&lt;br /&gt;
&lt;br /&gt;
Range expressions are defined with a square bracket syntax similar to index expressions, but with a &#039;&#039;:&#039;&#039; used to separate the lower and upper bounds of a range. For example, suppose we had an accelerometer on our rocket which (as many do) includes some low-pass filtering on the output. This can be modeled as a moving average, and defined with a custom expression such as:&lt;br /&gt;
 mean(At[t-0.5:t])&lt;br /&gt;
which will calculate a moving mean for the variable At (total acceleration) over the last 0.5 seconds of data.&lt;br /&gt;
&lt;br /&gt;
As with index expressions, the upper and lower bounds can be any valid expression. If omitted, the upper bound will default to t and the lower bound to 0, so the above expression can also be written&lt;br /&gt;
 mean(At[t-0.5:])&lt;br /&gt;
&lt;br /&gt;
In this particular case, we might want to make the expression more realistic by clipping accelerations above a given threshold and perhaps returning the actual voltage from the sensor, for example:&lt;br /&gt;
 0.2 * uclip( mean(At[t-.5:]), 10 )&lt;br /&gt;
&lt;br /&gt;
Note that when range expressions are calculated the data is generated by interpolation over the specified range with a fixed time step equal to the default time step set in your simulation options. This is independent of the current time step &#039;&#039;dt&#039;&#039; used by the simulation engine. When generated, range expressions include the start time and step information. The facilitates easy integration or optimization with functions such as &#039;&#039;trapz([:])&#039;&#039; for trapezoidal integration or &#039;&#039;tnear([:],x)&#039;&#039; for finding the time value when a variable is nearest a specified value.&lt;br /&gt;
&lt;br /&gt;
For a complete list of all the operators available see the operator selection list when making a new expression.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
While openrocket makes a reasonable attempt to check your expression as you enter it, it is still possible to enter something invalid or that can&#039;t be calculated for some reason. In this case you will simply end up with no data available to plot after running the simulation.&lt;br /&gt;
&lt;br /&gt;
If you can&#039;t figure out why your expression is not generating any data or can&#039;t be accepted by the expression builder then you might find some useful information in the error log. This can be accessed from the help -&amp;gt; debug log menu. Any relevant messages are probably under the &#039;USER&#039; category.&lt;br /&gt;
&lt;br /&gt;
It should not be possible to cause a crash with an invalid expression. If you manage to, please report the bug and include your expression.&lt;br /&gt;
&lt;br /&gt;
Custom expressions are interpreted during the simulation and are necessarily much slower than `native&#039; datatypes. For a few simple expressions you probably won&#039;t notice much speed difference but it can become particularly significant if you have range expressions. If speed is an issue for you then you might want to consider implementing your expression as a [[Simulation_Listeners|simulation listener]].&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: left;&amp;quot;&amp;gt;[[Rocket Analysis|&amp;amp;larr; Rocket Analysis]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: right;&amp;quot;&amp;gt;[[Simulation Listeners|Simulation Listeners &amp;amp;rarr;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Main Page|&amp;amp;uarr; Back to Contents]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Cdawg</name></author>
	</entry>
</feed>