Howto:Add thrust reversal: Difference between revisions

From FlightGear wiki
Jump to navigation Jump to search
mNo edit summary
Line 106: Line 106:
   <control-speed control="REVERSE_THRUST" transition-time="1.5"/>
   <control-speed control="REVERSE_THRUST" transition-time="1.5"/>
  </jet>
  </jet>
==Animate==
===-model.xml===
To make it look really cool animate with the following code. You could add an animation group and do all engines at once or do each engine individually as shown here.
<animation>
  <type>translate</type>
  <object-name>Engine1.Cowl3</object-name>
  <property>/engines/engine/reverser-pos-norm</property>
 
  <interpolation>
    <entry><ind>0</ind><dep>0.0</dep></entry>
    <entry><ind>1</ind><dep>0.6</dep></entry>
  </interpolation>
 
  <axis>
    <x>1.0</x>
    <y>0.0</y>
    <z>0</z>
  </axis>
</animation>


[[Category:Aircraft enhancement|Add thrust reversal]]
[[Category:Aircraft enhancement|Add thrust reversal]]
[[Category:Howto|Add thrust reversal]]
[[Category:Howto|Add thrust reversal]]
[[Category:Nasal|Add thrust reversal]]
[[Category:Nasal|Add thrust reversal]]

Revision as of 11:58, 7 April 2010

JSBSim

-set.xml

Add the following codes in the -set.xml file, below the </sim> tag. You've to add such piece for every engine, containing thrust reversal.

 <engines>
  <engine n="0">
   <reverser-position type="double">0.000000</reverser-position>
  </engine>     
  <engine n="1">
   <reverser-position type="double">0.000000</reverser-position>
  </engine>    
 </engines>

 <input>
  <keyboard>
   <key n="127">
    <name>Delete</name>
    <desc>Toggle Reversers</desc>
    <binding>
     <command>nasal</command>
     <script>reversethrust.togglereverser()</script>
    </binding>
   </key>
  </keyboard>
 </input>

 <nasal>
  <reversethrust>
   <file>Aircraft/747-400/Nasal/reverse-thrust.nas</file>
  </reversethrust>
 </nasal>

reverse-thrust.nas

Create a new file into your data/Aircraft/.../Nasal/ directory named reverse-thrust.nas. The piece of code shown below is designed for a two engine plane. To see how to handle more engined planes, take a look at the Boeing 747-400.

togglereverser = func {
  r1 = "/fdm/jsbsim/propulsion/engine";
  r2 = "/fdm/jsbsim/propulsion/engine[1]";
  r3 = "/controls/engines/engine"; 
  r4 = "/controls/engines/engine[1]"; 
  r5 = "/sim/input/selected";
  rv1 = "/engines/engine/reverser-pos-norm"; 
  rv2 = "/engines/engine[1]/reverser-pos-norm"; 
 
  val = getprop(rv1);
  if (val == 0 or val == nil) {
    interpolate(rv1, 1.0, 1.4); 
    interpolate(rv2, 1.0, 1.4);  
    setprop(r1,"reverser-angle-rad","3.14159");
    setprop(r2,"reverser-angle-rad","3.14159");
    setprop(r3,"reverser", "true");
    setprop(r4,"reverser", "true");
    setprop(r5,"engine", "true");
    setprop(r5,"engine[1]", "true");
  } else {
    if (val == 1.0){
      interpolate(rv1, 0.0, 1.4);
      interpolate(rv2, 0.0, 1.4);   
      setprop(r1,"reverser-angle-rad",0);
      setprop(r2,"reverser-angle-rad",0);
      setprop(r3,"reverser",0);
      setprop(r4,"reverser",0);
      setprop(r5,"engine", "true");
      setprop(r5,"engine[1]", "true"); 
    }  
  }
}

YASim

-set.xml

Add the following codes in the -set.xml file, below the </sim> tag. You've to add such piece for every engine, containing thrust reversal.

<input>
 <keyboard>
  <key n="127">
   <name>Delete</name>
   <desc>Toggle Reversers</desc>
   <binding>
    <command>property-toggle</command>
    <property>controls/engines/engine[0]/reverser</property>
   </binding>
   <binding>
    <command>property-toggle</command>
    <property>controls/engines/engine[1]/reverser</property>
   </binding>
  </key>
 </keyboard>
</input>

-yasim.xml

Every engine with reversal should contain the following code. The transition-time defines the time that it takes to turn the engines to reversed position.

<jet>
 <control-input axis="/controls/engines/engine[0]/reverser" control="REVERSE_THRUST"/>
 <control-output control="REVERSE_THRUST" prop="/surface-positions/reverser-norm"/>
 <control-speed control="REVERSE_THRUST" transition-time="1.5"/>
</jet>

<jet>
 <control-input axis="/controls/engines/engine[1]/reverser" control="REVERSE_THRUST"/>
 <control-output control="REVERSE_THRUST" prop="/surface-positions/reverser-norm[1]"/>
 <control-speed control="REVERSE_THRUST" transition-time="1.5"/>
</jet>

Animate

-model.xml

To make it look really cool animate with the following code. You could add an animation group and do all engines at once or do each engine individually as shown here.

<animation>
 <type>translate</type>
 <object-name>Engine1.Cowl3</object-name>
 <property>/engines/engine/reverser-pos-norm</property>
 
 <interpolation>
   <entry><ind>0</ind><dep>0.0</dep></entry>
   <entry><ind>1</ind><dep>0.6</dep></entry>
 </interpolation>
 
 <axis>
   <x>1.0</x>
   <y>0.0</y>
   <z>0</z>
 </axis>
</animation>