• Which the release of FS2020 we see an explosition of activity on the forun and of course we are very happy to see this. But having all questions about FS2020 in one forum becomes a bit messy. So therefore we would like to ask you all to use the following guidelines when posting your questions:

    • Tag FS2020 specific questions with the MSFS2020 tag.
    • Questions about making 3D assets can be posted in the 3D asset design forum. Either post them in the subforum of the modelling tool you use or in the general forum if they are general.
    • Questions about aircraft design can be posted in the Aircraft design forum
    • Questions about airport design can be posted in the FS2020 airport design forum. Once airport development tools have been updated for FS2020 you can post tool speciifc questions in the subforums of those tools as well of course.
    • Questions about terrain design can be posted in the FS2020 terrain design forum.
    • Questions about SimConnect can be posted in the SimConnect forum.

    Any other question that is not specific to an aspect of development or tool can be posted in the General chat forum.

    By following these guidelines we make sure that the forums remain easy to read for everybody and also that the right people can find your post to answer it.

FS2004 needle too resposive

Messages
1,468
Country
italy
Code:
<Element>
      <Select>
         <Value>(L:en1_warm,bool) 0 == if{ (A:ENG1 EXHAUST GAS TEMPERATURE, celsius) (A:Ambient Temperature, celsius) - (>L:temp adj1, number) } els{ [COLOR="Red"]0 (>L:temp adj1, number) [/COLOR]} </Value>
      </Select>
   </Element>

In the above code when (L:en1_warm,bool) =1 the true value of EGT is restored. But because the red part of the code is set to zero the subsequent initial movement of the needle is too swift. I'm thinking that perhaps instead of setting (L:temp adj1, number) immediately to zero I could get it to count back rapidly. I think there's away to do it but can't remember.
vololiberista
 
You'd need to set (L:temp adj1, number) to a starting value and then do:

Code:
(L:temp adj1, number) 1 - (&gt;L:temp adj1, number)

On a 2D panel, this would decrease (L:temp adj1, number) by 1 unit for every refresh cycle (18 times per second by default, IIRC).
 
Hi,
well just as you say already, just decrease the value only when (L:temp adj1, number) is larger than 0:

Code:
(L:temp adj1, number) > 0 if{ (L:temp adj1, number) 1 - (&gt;L:temp adj1, number) }

grt
Willem
 
Got it working nicely. Many thanks. Could you point me in the right direction for this below. I want to do the opposite i.e. feed the value gradually into the variable instead of dumping the difference between actual and 595 directly as shown.
vololiberista
Code:
(A:ENG1 EXHAUST GAS TEMPERATURE, celsius) 595 &gt; (L:E1_tempcontrol,bool) 1 == and
if{ (A:ENG1 EXHAUST GAS TEMPERATURE, celsius) [COLOR="Red"]595 - (>L:E1_hotstart, number) [/COLOR]}
 
Why not just use a "Delay" (for 2d needles) and "Lag" (for 3D)?
 
Luka, I was going to suggest <Delay...> myself, but it was unclear whether this was for a needle or not. <Delay...> only works within the scope of a <Shift> or <Rotate> operation as far as I know.
 
What happens is this. The EGT gauge needle reads EGT (obviously!!!) But has two constraints being (L:temp adj3,number) and (L:E3_hotstart, number)
The temp adj compensates for a higher than ambient reading at SL if the oat is more than15c but is disabled if the sim is active and the flight being a stopover where the engines would of course be warm!!
Hot start is controlled by a Top Temp switch which diverts gases through the airframe anti-ice until n1 is up to speed. The switch maintaines the EGT temp at 595c during the start process.
What happens is that if the switch is selected after a hot start is detected the needle jumps immediately down to 595c. What I would like is for the needle to move smoothly down. Hot start is either zero or say 120. Is there a way I can get it to climb to say 120 rather than it going from 0 to 120 in one go?
Code:
<Value Minimum="0" Maximum="800">(A:ENG3 EXHAUST GAS TEMPERATURE, celsius) (L:temp adj3,number) - (L:E3_hotstart, number) - </Value>
vololiberista
 
Last edited:
In that case, the simple solution is to add a <Delay...> in the <Rotate> section of the script:

Code:
    <Element>
        <Position X="46" Y="48" />
        <Image Name="Airspeed_Needle.bmp" PointsTo="East">
            <Axis X="15" Y="4" />
        </Image>
        <Rotate>
            <Value Minimum="0" Maximum="260">(A:Airspeed select indicated or true,knots)</Value>
            <Failures>
                <GAUGE_AIRSPEED Action="Freeze" />
            </Failures>
            <Nonlinearity>
                <Item Value="0" X="46" Y="10" />
                <Item Value="40" X="60" Y="11" />
                <Item Value="50" X="70" Y="17" />
                <Item Value="60" X="74" Y="20" />
                <Item Value="80" X="85" Y="39" />
                <Item Value="130" X="62" Y="84" />
                <Item Value="160" X="32" Y="77" />
                <Item Value="190" X="17" Y="59" />
                <Item Value="200" X="11" Y="52" />
                <Item Value="260" X="28" Y="15" />
            </Nonlinearity>
            <Delay DegreesPerSecond="180" />
        </Rotate>
    </Element>
 
Back
Top