P3D v4 Help needed with Turbine Exhaust Gas Temperature Gauge please

I am trying to add Turbine Exhaust Gas Temperature gauge to my aircraft, but I am unable to locate an assignment for turbine engine EGT and have added the code below to my modelef but I am not seeing any needle movement in sim.

Please can anyone point me in the right direction to make a working EGT gauge.

XML:
<Animation name="P111A_EGT_Long"                      guid="a1ff21c1-1343-4a0e-a9ff-5ece73b09903" type="Sim" typeParam="AutoPlay"  length="100" typeParam2="P111A_EGT_Long" />

<PartInfo>
    <Name>P111A_EGT_Long</Name>
    <AnimLength>100</AnimLength>
    <Animation>
      <Parameter>
        <Code>
  (A:GENERAL ENG EXHAUST GAS TEMPERATURE:1, Rankine) 100 /
</Code>
      </Parameter>
    </Animation>
    <MouseRect>
      <TooltipID>TOOLTIPTEXT_AIRSPEED_MACH</TooltipID>
    </MouseRect>
  </PartInfo>


 
Last edited:

DragonflightDesign

Resource contributor
I don't do XML, but I do know there's a calculation error in there. To convert degrees rankine to degrees celcius you need to do the following:-
Code:
degC = (degRankine - 491.67) / 1.8
I'd love to go back in time and strangle Messrs. Rankine and Fahrenheit.
 
Animate the needle KF 0 at 4, KF 100 at 7.6 then..
XML:
<Code>(A:GENERAL ENG EXHAUST GAS TEMPERATURE:1, Celsius) 400 - 3.6 / 0 max 100 min</Code>
There is a post from Fr. Bill that explains the code, will try to find..
Found - https://www.fsdeveloper.com/forum/threads/engine-gauge-needle-animation.440066/post-771861

400 - This will give your lower limit at 400* C to equal KF 0
The range is 360* C from 400* C (760 - 400) Divide by 3.6 so 760* C equals 100 KF : 400 - 3.6 /
Finally, limit the code so the minimum is 0 and the maximum is 100 for keyframes: 0 max 100 min
Note - max/min are comparators, they return the max or min of the 2 compared numbers. They are not pure limiters. EX.
-345 0 max will return 0 as it is the maximum of the 2 numbers.
4567 100 min will return 100 as it is the minimum of the 2 numbers

To be complete, don't forget to change your tooltip -
<TooltipID>TOOLTIPTEXT_AIRSPEED_MACH</TooltipID>
TOOLTIPTEXT_EGT_CELSIUS should work for you
 
Last edited:
Thank you all very much for your help. I have not really seen Rankine used very much only in text books and didn't know that I could use a different scale from what was shown in the SDK.
 
I added the code for the EGT gauge but still do not see any needle movement.

I have however noticed that I am getting an error code in Blender when I export the model:

AttibuteError: ‘NoneType’ object has no attribute ‘attrib’
 
I still don't seem to be seeing any movement of the EGT needle. Also, my RPM needles are rotating ok, but stopping at the 12 o 'clock position. I have tried adding a %, but Blender2FSX does not seem to like that with the /.



XML:
 <Animation name="P111A_N1_RPM_cents_Long"                      guid="710b6e10-89da-43f5-c221-3ba1434dd8e7" type="Sim" typeParam="AutoPlay"  length="100" typeParam2="P11A_N1_RPM_cents_Long" />
    <PartInfo>
    <Name>P111A_N1_RPM_cents_Long</Name>
    <AnimLength>100</AnimLength>
    <Animation>
      <Parameter>
        <Code> (A:GENERAL ENG RPM:1, rpm) 100 /</Code>
      </Parameter>
    </Animation>
    <MouseRect>
      <TooltipID>TOOLTIPTEXT_N1_RPM</TooltipID>
    </MouseRect>
  </PartInfo>

  <Animation name="P111A_N1_RPM_cents_Short"                      guid="ae798a56-ef77-4480-d7bd-b1c7e0e41533" type="Sim" typeParam="AutoPlay"  length="100" typeParam2="P111A_N1_RPM_cents_Short" />
    <PartInfo>
    <Name>P111A_N1_RPM_cents_Short</Name>
    <AnimLength>100</AnimLength>
    <Animation>
      <Parameter>
        <Code> (A:GENERAL ENG RPM:1, rpm) 1000 /</Code>
      </Parameter>
    </Animation>
    <MouseRect>
      <TooltipID>TOOLTIPTEXT_N1_RPM</TooltipID>
    </MouseRect>
  </PartInfo>

   <Animation name="P111A_EGT_Long"                      guid="a1ff21c1-1343-4a0e-a9ff-5ece73b09903" type="Sim" typeParam="AutoPlay"  length="100" typeParam2="P111A_EGT_Long" />
    <PartInfo>
    <Name>P111A_EGT_Long</Name>
    <AnimLength>100</AnimLength>
    <Animation>
      <Parameter>
        <Code> (A:GENERAL ENG EXHAUST GAS TEMPERATURE:1, Celcius) 400 - 3.6 / 0 max 100 min</Code>
      </Parameter>
    </Animation>
    <MouseRect>
      <TooltipID>TOOLTIPTEXT_EGT_CELSIUS</TooltipID>
    </MouseRect>
  </PartInfo>
 
Last edited:

tgibson

Resource contributor
Hi,

If you want your needle to spin around more than once, you will need to do something different. Currently it reaches keyframe 100 at 1000 rpm (RPM/100) and can't do anything else - you didn't tell it to.

Some ideas:

1. Model 10 needles and make each one visible between 0-1000, 1000-2000, etc. Modify the code so they spin around between the rpm numbers they are visible.
2. Model only one needle and make it spin to 1000 rpm, quickly reset to 0 (hopefully so fast it won't be noticed), and then spin again between 1000 and 2000 rpm. I think you can do this using modulo arithmetic. Modulo returns the remainder of one number divided by another. So if you modulo the rpm by 1000 and multiply by 100, the value returned will go between 0 and 100 each time you go up another 1000. Vary these values slightly if you need a better looking animation.

It would be something like this, but this is not tested.

XML:
       <Code> (A:GENERAL ENG RPM:1, rpm) 1000 % 100 * </Code>
 
Thank you for your help. EGT gauge now displaying correctly in sim, but still working on getting the RPM needles working.

XML:
  <Animation name="P111A_EGT_Long"                      guid="a1ff21c1-1343-4a0e-a9ff-5ece73b09903" type="Sim" typeParam="AutoPlay"  length="100" typeParam2="P111A_EGT_Long" />
    <PartInfo>
    <Name>P111A_EGT_Long</Name>
    <AnimLength>100</AnimLength>
    <Animation>
      <Parameter>
        <Code> (A:GENERAL ENG EXHAUST GAS TEMPERATURE:1, Celsius) 400 - 3.6 / 0 max 90 min </Code>
      </Parameter>
    </Animation>
    <MouseRect>
      <TooltipID>TOOLTIPTEXT_EGT_CELSIUS</TooltipID>
    </MouseRect>
  </PartInfo>
 

tgibson

Resource contributor
PS. Perhaps another way to handle needles that spin more than one revolution would be to animate with more keyframes. If you have a plane with RPMs between 0 and 3000 RPM you could have 300 keyframes, and animate the needle to spin 3 times around (one time per 100 keyframes).
 
Thank you for all your help. I now have the RPM needles working. I made two revolutions over 200 frames with 100 frames per revolution for the 1,000 RPM and 10,000 RPM needles.

I could not get the long needle to work for a while until I noticed that I had a typo in the typeParam2 name.

XML:
 <Animation name="P111A_N1_RPM_Long"                      guid="710b6e10-89da-43f5-c221-3ba1434dd8e7" type="Sim" typeParam="AutoPlay"  length="200" typeParam2="P111A_N1_RPM_Long" />
    <PartInfo>
    <Name>P111A_N1_RPM_Long</Name>
    <AnimLength>200</AnimLength>
    <Animation>
      <Parameter>
        <Code> (A:GENERAL ENG RPM:1, rpm) 100 /</Code>
      </Parameter>
    </Animation>
    <MouseRect>
      <TooltipID>TOOLTIPTEXT_N1_RPM</TooltipID>
    </MouseRect>
  </PartInfo>

  <Animation name="P111A_N1_RPM_Short"                      guid="ae798a56-ef77-4480-d7bd-b1c7e0e41533" type="Sim" typeParam="AutoPlay"  length="200" typeParam2="P111A_N1_RPM_Short" />
    <PartInfo>
    <Name>P111A_N1_RPM_Short</Name>
    <AnimLength>200</AnimLength>
    <Animation>
      <Parameter>
        <Code> (A:GENERAL ENG RPM:1, rpm) 1000 /</Code>
      </Parameter>
    </Animation>
    <MouseRect>
      <TooltipID>TOOLTIPTEXT_N1_RPM</TooltipID>
    </MouseRect>
  </PartInfo>
 
Top