Jump to content

Engjell Berisha

Commercial Member
  • Content Count

    297
  • Donations

    $0.00 
  • Joined

  • Last visited

Everything posted by Engjell Berisha

  1. Haven't added much useful code to this in a long time. This doesn't exactly pertain to the original question but it is in the line of the Honeywell FMC. Below is a bit of code used in a rudimentary VNAV code I have created. It isn't the best working code but it does do the job and with a little bit of tweaking can be set to perform quit well in my opinion. <!--==================================VERTICAL-NAVIGATION==================================--> (L:PWR,bool) 1 == if{ (A:MAX GROSS WEIGHT,lbs) (A:EMPTY WEIGHT,lbs) - (>L:FMC-MAX-VAR-WT,number) (A:TOTAL WEIGHT,lbs) (A:EMPTY WEIGHT,lbs) - (>L:FMC-VAR-WT,number) (L:FMC-VAR-WT,number) (L:FMC-MAX-VAR-WT,number) / 100 * (>L:FMC-VAR-WT-LOAD,number) (A:INDICATED ALTITUDE,feet) (L:FMC-RTE-DEST-ELEV,number) - (>L:FMC-VNAV-ALT-DIF,number) (L:FMC-VNAV-ALT-DIF,number) 1000 / 2.8 * 10 + (>L:FMC-VNAV-DES-DST,number) (L:FMC-PERF-CRZ-ALT,feet) (>L:FMC-VNAV-CRZ-ALT,number) <!--=====ECONOMY SPEED=====--> (L:FMC-PERF-CI,number) 0.02 * 280 + 250 max 330 min (>L:FMC-VNAV-ECON-KIAS,number) (L:FMC-PERF-CI,number) 0.002 * 78 + 77 max 82 min (>L:FMC-VNAV-ECON-MACH,number) (L:FMC-VNAV-SEL-KIAS,number) 100 > (L:FMC-VNAV-SEL-MACH,number) 0 == and if{ 750 (>L:FMC-VNAV-SEL-MACH,number) } (L:FMC-VNAV-SEL-KIAS,number) 0 == (L:FMC-VNAV-SEL-MACH,number) 700 > and if{ 250 (>L:FMC-VNAV-SEL-KIAS,number) } <!--=====OPTIMUM & MAXIMUM ALTITUDE=====--> 43100 (L:FMC-VAR-WT-LOAD,number) 142 * - (>L:FMC-VNAV-OPT-ALT,number) (L:FMC-VNAV-OPT-ALT,number) 4000 + (>L:FMC-VNAV-MAX-ALT,number) <!--=====SPEED & POWER CORRECTION=====--> (A:AUTOPILOT AIRSPEED HOLD,bool) 1 == if{ (A:AIRSPEED INDICATED,knots) (A:AUTOPILOT AIRSPEED HOLD VAR,knots) - 100 * (>L:FMC-VNAV-SPD-CORR,number) } (A:AUTOPILOT MACH HOLD,bool) 1 == if{ (A:AIRSPEED MACH,machs) (A:AUTOPILOT MACH HOLD VAR,machs) - 10000 * (>L:FMC-VNAV-SPD-CORR,number) } (L:THR-LVRS-POS,number) 90 >= 95 < if{ (L:THR-LVRS-POS,number) 90 - 150 * -1 * (L:FMC-VNAV-DTHR-CORR,number) - -2000 max 2000 min (>L:FMC-VNAV-THR-CORR,number) } (L:THR-LVRS-POS,number) 95 >= if{ (L:THR-LVRS-POS,number) 90 - 200 * -1 * (L:FMC-VNAV-DTHR-CORR,number) - -2000 max 2000 min (>L:FMC-VNAV-THR-CORR,number) } (L:THR-LVRS-POS,number) 95 >= (G:Var3) 0 == (G:Var5) 0 == and and if{ (P:ZULU TIME,seconds) (>G:Var1) } (L:THR-LVRS-POS,number) 95 >= (G:Var4) 0 == and if{ (P:ZULU TIME,seconds) (G:Var1) - (>G:Var2) 1 (>G:Var3) } (G:Var2) 4 > if{ 1 (>G:Var4) } els{ 0 (>G:Var4) } (L:THR-LVRS-POS,number) 95 < if{ 0 (>G:Var1) 0 (>G:Var2) 0 (>G:Var3) } (G:Var2) 10 >= if{ (G:Var2) 10 * -2500 max 2500 min (>L:FMC-VNAV-DTHR-CORR,number) } (L:FMC-VNAV-VAR1,number) 0 == if{ (P:ZULU TIME,seconds) (>L:FMC-VNAV-VAR1,number) } (P:ZULU TIME,seconds) (L:FMC-VNAV-VAR1,number) - (>L:FMC-VNAV-TIMER,number) <!--=====CLIMB=====--> (L:MCP-ALTITUDE,feet) (A:INDICATED ALTITUDE,feet) - 1000 > if{ (L:FMC-VAR-WT-LOAD,number) -25 * 4000 + int (L:FMC-VNAV-SPD-CORR,number) + (L:FMC-VNAV-THR-CORR,number) + 0 max 4000 min (>L:FMC-VNAV-CVS,number) } <!--=====DESCENT=====--> (L:MCP-ALTITUDE,feet) (A:INDICATED ALTITUDE,feet) - -1000 < if{ (L:FMC-VAR-WT-LOAD,number) -25 * 4000 + /-/ int (L:FMC-VNAV-SPD-CORR,number) + -4000 max 0 min (>L:FMC-VNAV-CVS,number) } <!--=====VNAV MODE SET=====--> (L:VNAV-MODE,enum) 1 < if{ 1 (>L:VNAV-MODE,enum) } (L:MCP-ALTITUDE,feet) (A:INDICATED ALTITUDE,feet) - 1000 > if{ 1 (>L:VNAV-MODE,enum) } (L:MCP-ALTITUDE,feet) (A:INDICATED ALTITUDE,feet) - -1000 > (L:MCP-ALTITUDE,feet) (A:INDICATED ALTITUDE,feet) - 1000 < and if{ 2 (>L:VNAV-MODE,enum) } (L:FMC-VNAV-DES-NOW,enum) 1 == if{ 3 (>L:VNAV-MODE,enum) } els{ (A:GPS FLIGHT PLAN WP Count,number) 0 != if{ (A:GPS FLIGHT PLAN WP Count,number) 1 - (>@c:FlightPlanWaypointIndex) (@c:FlightPlanWaypointRemainingTotalDistance,nmiles) (L:FMC-VNAV-DES-DST,number) <= if{ 3 (>L:VNAV-MODE,enum) } } els{ 3 (>L:VNAV-MODE,enum) } } } <!--==========END-VNAV-CALCULATIONS==========--> Next is the code that applies all the calculations above: <!--========================VERTICAL-NAVIGATION========================--> (L:VNAV,bool) 1 == if{ (A:AUTOPILOT ALTITUDE LOCK,bool) 0 == if{ (>K:AP_PANEL_ALTITUDE_ON) } <!--==========CLIMB-MODE==========--> (L:VNAV-MODE,enum) 1 == if{ (L:MCP-ALTITUDE,feet) (A:INDICATED ALTITUDE,feet) - 1000 > if{ (L:FMC-VNAV-CVS,number) -4000 max 4000 min (>K:AP_VS_VAR_SET_ENGLISH) } els{ (L:MCP-ALTITUDE,feet) (A:INDICATED ALTITUDE,feet) - 2 * -800 max 800 min (>K:AP_VS_VAR_SET_ENGLISH) } (L:MCP-ALTITUDE,feet) (>K:AP_ALT_VAR_SET_ENGLISH) (A:INDICATED ALTITUDE,feet) 27000 > if{ (A:AUTOPILOT MACH HOLD,bool) 0 == if{ (>K:AP_MACH_ON) 1 (>L:MACH-IAS,bool) } (L:FMC-VNAV-SEL-MACH,number) 0 == if{ (L:FMC-VNAV-ECON-MACH,number) } els{ (L:FMC-VNAV-SEL-MACH,number) 10 / } (>K:AP_MACH_VAR_SET) } els{ (A:AUTOPILOT AIRSPEED HOLD,bool) 0 == if{ (>K:AP_PANEL_SPEED_ON) } (A:INDICATED ALTITUDE,feet) 10000 < if{ (A:AUTOPILOT AIRSPEED HOLD VAR,knots) 250 != if{ 250 (>K:AP_SPD_VAR_SET) } } (A:INDICATED ALTITUDE,feet) 10000 > if{ (L:FMC-VNAV-SEL-KIAS,number) 0 == if{ (L:FMC-VNAV-ECON-KIAS,number) } els{ (L:FMC-VNAV-SEL-KIAS,number) } (>K:AP_SPD_VAR_SET) } } } <!--==========CRUISE-MODE==========--> (L:VNAV-MODE,enum) 2 == if{ (L:FMC-VNAV-CRZ-ALT,number) (>K:AP_ALT_VAR_SET_ENGLISH) (A:INDICATED ALTITUDE,feet) 27000 > if{ (A:AUTOPILOT MACH HOLD,bool) 0 == if{ (>K:AP_MACH_ON) 1 (>L:MACH-IAS,bool) } (L:FMC-VNAV-SEL-MACH,number) 0 == if{ (L:FMC-VNAV-ECON-MACH,number) } els{ (L:FMC-VNAV-SEL-MACH,number) 10 / } (>K:AP_MACH_VAR_SET) } els{ (A:AUTOPILOT AIRSPEED HOLD,bool) 0 == if{ (>K:AP_PANEL_SPEED_ON) } (A:INDICATED ALTITUDE,feet) 10000 < if{ (A:AUTOPILOT AIRSPEED HOLD VAR,knots) 250 != if{ 250 (>K:AP_SPD_VAR_SET) } } (A:INDICATED ALTITUDE,feet) 10000 > if{ (L:FMC-VNAV-SEL-KIAS,number) 0 == if{ (L:FMC-VNAV-ECON-KIAS,number) } els{ (L:FMC-VNAV-SEL-KIAS,number) } (>K:AP_SPD_VAR_SET) } } } <!--==========DESCENT-MODE==========--> (L:VNAV-MODE,enum) 3 == if{ (L:MCP-ALTITUDE,feet) (>K:AP_ALT_VAR_SET_ENGLISH) (L:FMC-RTE-DEST-ELEV,number) 10000 <= (L:MCP-ALTITUDE,feet) 10000 <= (A:INDICATED ALTITUDE,feet) 11000 > (L:MCP-ALTITUDE,feet) (A:INDICATED ALTITUDE,feet) <= and and and if{ 11000 (>K:AP_ALT_VAR_SET_ENGLISH) } (A:INDICATED ALTITUDE,feet) 11000 > (A:INDICATED ALTITUDE,feet) 10000 < | if{ (L:MCP-ALTITUDE,feet) (A:INDICATED ALTITUDE,feet) - -1000 < if{ (L:FMC-VNAV-CVS,number) -4000 max 4000 min (>K:AP_VS_VAR_SET_ENGLISH) } els{ (L:MCP-ALTITUDE,feet) (A:INDICATED ALTITUDE,feet) - -150 > (L:MCP-ALTITUDE,feet) (A:INDICATED ALTITUDE,feet) - 150 < and if{ (L:MCP-ALTITUDE,feet) (A:INDICATED ALTITUDE,feet) - 4 * -800 max 800 min (>K:AP_VS_VAR_SET_ENGLISH) } } (A:INDICATED ALTITUDE,feet) 27000 > if{ (A:AUTOPILOT MACH HOLD,bool) 0 == if{ (>K:AP_MACH_ON) 1 (>L:MACH-IAS,bool) } (L:FMC-VNAV-SEL-MACH,number) 0 == if{ (L:FMC-VNAV-ECON-MACH,number) } els{ (L:FMC-VNAV-SEL-MACH,number) 10 / } (>K:AP_MACH_VAR_SET) } els{ (A:AUTOPILOT AIRSPEED HOLD,bool) 0 == if{ (>K:AP_PANEL_SPEED_ON) 0 (>L:MACH-IAS,bool) } (A:INDICATED ALTITUDE,feet) 10000 < if{ (A:AUTOPILOT AIRSPEED HOLD VAR,knots) 240 != if{ 240 (>K:AP_SPD_VAR_SET) } } (A:INDICATED ALTITUDE,feet) 10000 > if{ (L:FMC-VNAV-SEL-KIAS,number) 0 == if{ (L:FMC-VNAV-ECON-KIAS,number) } els{ (L:FMC-VNAV-SEL-KIAS,number) } (>K:AP_SPD_VAR_SET) } } } (A:INDICATED ALTITUDE,feet) 11000 < (A:INDICATED ALTITUDE,feet) 10000 > and if{ -500 (>K:AP_VS_VAR_SET_ENGLISH) (A:AUTOPILOT AIRSPEED HOLD,bool) 0 == if{ (>K:AP_PANEL_SPEED_ON) } (A:AUTOPILOT AIRSPEED HOLD VAR,knots) 240 != if{ 240 (>K:AP_SPD_VAR_SET) } } } } <!--==========END-VNAV==========--> I might post some more code later on as I decided on what to post. Have had a lot of updates since this thread just not sure which is relevant to everyone else and would be of use. Hopefully this is helpful to at least one other person.
  2. Welcome to the secondary addiction of aviation; gauge programing. I believe we have started something here that you will never be able to control and yet will love it for that. I'm glad to hear that you've made progress. Any credit for such help is due principally to Fr. Bill and Jan from whom I've learned just about everything I know. Looking forward to seeing more of your work.
  3. I believe Mr. Gibson is right. This seems like something that would be handled in the lights section of the Aircraft.cfg file. Tom, you have mail.
  4. Gemma, Can that gauge really go to 90/90 in pitch? If it can't you might want to change that in your min/max for the pitch shift. Otherwise if it is still being problematic rolling around then you may want to add a delay to the shift. Below is an example: <Element> <Position X="0" Y="5"/> <MaskImage Name="ADI-M1.bmp"> <Axis X="60.5" Y="49.5"/> </MaskImage> <Image Bright="No" Name="ADI-Pitch.bmp"> <Axis X="60.5" Y="51"/> </Image> <Shift> <Scale Y="1.15"/> <Value Minimum="-30" Maximum="30">(A:ATTITUDE INDICATOR PITCH DEGREES,degrees) /-/</Value>[/color] <Delay DegreesPerSecond="40"/>[/color] </Shift> <Rotate> <Value>(A:ATTITUDE INDICATOR BANK DEGREES,radians)</Value> </Rotate> </Element> This may help to smooth out the gauge movements. Otherwise you may also want to learn how to create images with alpha channels. This will allow you to create an alpha overlay for the purpose of adding shadows and reflections on the gauge such as a glass reflection and the shadows you wish and will not be received as badly by the simulator. The best and only working tutorial I have found for creating alpha images for the simulator is by Fr. Bill and here it is.
  5. Hi bmaack, I too have been searching for a good G IV or V model. I haven't been able to find any such thing as of yet. I do know that Gulfstream has copyrighted certain parts of their aircraft in particular the general shape. For example I believe the shape of their windows are copyright protected and they are not allowed to be reproduced without Gulfstreams permission. Something they won't give as I understand. I work with Gulfstreams a lot and really love the airplanes. I have since been trying to find a nice model but to no avail. If they look nice they fly like Cessna 172's and if they fly nice they look like a beat up Gulfstream with none of the clean cuts and unique features of the aircraft. I hope however to develop a in-depth G IV panel. I haven't begun much work but I do have a lot of information and resources on it and that means the work should move along fairly quickly once I begin work.
  6. Hi Jan, I was hoping to model a simple solution to this. While I'm aware of the complexity of the actual FMC computations I am not a Boeing engineer and I don't see myself as being one. I want a number that is fairly on-point but not perfect. My thoughts have been to use the temperatures, pressures, weights, thrust setting, and cost index to generate a number that will give a fairly realistic imagine of where the aircraft will burn the least amount of fuel and the maximum altitude it is normally capable of climbing too. I have some code now that is giving ok numbers. I have to do more testing and such and will post on my progress later on. As for the VNAV I've refined my VNAV further and further. I just try to apply some common sense to the generic logical structure that I know from manuals and such. I have been getting pretty good results thus far. My VNAV code responds well to deviations from desired speed be it in mach or ias, it accounts for cost index, thrust settings, and actual performance and creates a pretty logical vertical speed profile for the most part. The trouble with these things is....time. Not enough of it to be had at all! From finishing up my commercial training to finishing this semester of Calculus II, work, and chorus around the home there is absolutely not enough time to test these things and then come up with clever ideas. If this was my profession it would be much easier I feel. However it is just a hobby for us for the most part. Best of luck, and thank you for always being very helpful! :p0504:
  7. Hey guys, I've been looking for a topic for some performance calculations such as a calculated vertical speed for implementing in a VNAV code, or a calculated speed number for a VNAV code. Presently I am trying to figure out a method to solving optimum and maximum altitudes for an aircraft, any takers? I'll try to contribute something here. My VNAV calculated vertical speed is something like this: (L:FMC-LOAD,number) -25 * 4250 + int (L:FMC-VNAV-VS-CORRECTION,number) + 0 max 4500 min (>L:FMC-VNAV-CVS,number) FMC-LOAD represents the load percentage of the aircraft as a comparison of empty weight and MTOW. VS-Correction is a variable that accounts for Cost-Index value and the difference between the desired speed and the actual speed and adjusts the VS to compensate.
  8. Thank you John. I quiet like that one also. Not sure which is my favorite however.
  9. While I tend to think of myself as more of a freeware developer with some payware projects you clearly think otherwise. I'm quite proud of it since it keeps me in school. There's no way for you to know when I made my gauges just published them. But no need to turn this into a who did it first match; I'll let you have that distinction without a problem. Thanks for the reply. I quite enjoy your videos.
  10. Well done! Have you had to use C to get some one the intricate bits right such as the fuel management system right as opposed to XML? How are you calculating used fuel; is it a function of the current fuel flow and compounded every second?
  11. Hi Slammer, While I am not Jan, I will take the liberty of answering this especially given the fact that what I know is do in tremendous part to Jan. What you want to do is certainly possible. Below is an example taken from one of my gauges: <Element> <FormattedText X="100" Y="70" Font="Calibri" FontSize="20" Color="#FF00FF" Adjust="Left" Bright="Yes"> <String> %((@c:FlightPlanActiveWaypoint) (>@c:FlightPlanWaypointIndex) (L:FMC-IRU-POS-LAT-CURRENT,degrees) (>@c:GeoCalcLatitude1,degrees) (L:FMC-IRU-POS-LON-CURRENT,degrees) (>@c:GeoCalcLongitude1,degrees) (@c:FlightPlanWaypointLatitude,degrees) (>@c:GeoCalcLatitude2,degrees) (@c:FlightPlanWaypointLongitude,degrees) (>@c:GeoCalcLongitude2,degrees) (@c:GeoCalcBearing,degrees) (>L:ND-RTE-BRG1,degrees) (@c:GeoCalcDistance,nmiles) (L:ND-RNG-FACTOR,number) * (>L:ND-RTE-DST1,nmiles) (@c:FlightPlanWaypointMagneticHeading,degrees) (A:GPS MAGVAR,degrees) + (>L:ND-RTE-HDG1,degrees) (@c:FlightPlanWaypointDistance,nmiles) (L:ND-RNG-FACTOR,number) * (>L:ND-RTE-SEG1,nmiles)) %((@c:FlightPlanWaypointIdent))%!s! </String> <Axis X="-10" Y="-5"/> </FormattedText> <Element> <Position X="-25" Y="-25"/> <Image Name="ND-RTE-ACT.bmp" Bright="Yes"/> <Clip Left="0" Right="560" Top="0" Bottom="585"/> </Element> <!--====================SHIFT-X====================--> <Shift> <Value>(L:ND-RTE-BRG1,radians) (A:PLANE HEADING DEGREES TRUE,radians) - sin (L:ND-RTE-DST1,nmiles) *</Value> <Nonlinearity> <Item Value="-25" X="010" Y="0"/> <Item Value="-20" X="064" Y="0"/> <Item Value="-10" X="172" Y="0"/> <Item Value= "0" X="280" Y="0"/> <Item Value="10" X="388" Y="0"/> <Item Value="20" X="496" Y="0"/> <Item Value="25" X="550" Y="0"/> </Nonlinearity> </Shift> <!--====================SHIFT-Y====================--> <Shift> <Value>(L:ND-RTE-BRG1,radians) (A:PLANE HEADING DEGREES TRUE,radians) - cos (L:ND-RTE-DST1,nmiles) *</Value> <Nonlinearity> <Item Value="40" X="0" Y="082"/> <Item Value="30" X="0" Y="190"/> <Item Value="20" X="0" Y="298"/> <Item Value="10" X="0" Y="406"/> <Item Value="0" X="0" Y="514"/> <Item Value="-10" X="0" Y="622"/> </Nonlinearity> </Shift> <Clip Left="0" Right="560" Top="0" Bottom="585"/> </Element> You don't really need the geocal stuff to display just the waypoint symbol but I have it also because you need it to appropriately position the flight plan segment lines (rectangles with height varying on segment length). This code results in this. You should also be able to make this blink without trouble by adding a visibile tag and inserting blink code dependent on whether it is the active waypoint or not. Best of luck.
  12. Photo's from the past couple of months worth of flying mostly in the Pacific: COA152 Heavy enroute to Tahiti's Faa'a Intl from Easter Island: N446EA a Eastern Airlines Boeing 737-200 series enroute to the island of Rarotonga in the Cook Islands: N446EA on approach to Rarotonga: N829EX a Island Air DHC-8 Q100 on approach into Magenta in Vanuata: N829EX turning on course somewhere over the Coral Sea enroute to New Caledonia after leaving Port Vila: N8412F Climbing out of Tontouta over the mountains of New Caledonia bound for the Solomon Islands: N445EA leaves the Solomon Islands for Boram in northern Papua New Guinea. From Boram we road a series of DC-3's, 4's, and eventually a DC-6A through Papua New Guinea and down to the land down under arriving at Horn Island. Here we are setting up for the approach: We departed Horn the next morning and followed the Australian coastline down to Lockhart River, Cairns, and eventually Hamilton Island. Once there we headed for Darwin with a pit stop at Mount Isa. Here is our Aloha Airlines 737-200 on the ground in Darwin: The next day we left Darwin in our USAir 767-200ER N655US for a short hop to Curtin: A good number of these photo's are edited - overly edited certainly - because I was playing with the new tool on photobucket. However I believe they serve the purpose of telling a nice story of my simulator flights. Hope you enjoy viewing as much as I enjoyed flying. Just about all of my flying is done online and a map can be seen here. Presently I'm in Banda-Aceh, Indonesia.
  13. Jan thank you kindly. I just need to refine and interpret your numbers to replace with my own and it is perfect! I think your code is missing something, I assume this is what you meant: <Value> (A:Indicated Altitude,feet) (A:Autopilot altitude lock var,feet) - abs 200 > if{ (A:Indicated Altitude,feet) (A:Autopilot altitude lock var,feet) - (A:Vertical speed,feet per minute) / abs (A:GROUND VELOCITY,knots) * 60 / 0.3125 0.625 1.25 2.5 5 10 6 (L:hsi zoom,number) case * int (>L:rangezoom factor,number) (L:rangezoom factor,number) 2 > if{ (L:rangezoom factor,number) } els{ 0 } } els{ 0 } } <!--==Remove this last bracket?==--> </Value> PS - the code tags won't allow the color tags to work.
  14. Jan, Thanks. I've had the same experience. However keeping legs/segments at 100 nm isn't realistic and sometimes it isn't possible - like on Oceanic flights. Perhaps I can just use the default FP lines and make them look a little better somehow. The next graphic issue I need to tackle is top of climb/descent line; the little green arc that grows and moves showing the point of TOC/D. Any ideas? Have you done this? PS - I have now got the selected departure/arrival runways to display once selected from the waypoint airport var.
  15. Since starting a new topic seems like a waste and then stupid new avsim forum system won't allow me to ask it on a more appropriate thread, I will ask it here: Anyone experience maximum heights they can extend a rectangle to? Code example: <Rectangle Width="2" Height="2000" Bright="Yes" Color="#FF00FF" FillColor="#FF00FF"> <HeightCode>(L:ND-RTE-SEG2,nmiles) 10.7 *</HeightCode> </Rectangle> I ask this because anything over 2000 in max height yields a line that breaks apart. I have tried increasing width to fix this but that does nothing. I use this rectangle as my flight plan segment line on an navigation display. However often times if the waypoints are over 100 nm away I need the line to be longer that 2000. Any thoughts?
  16. Thank you very much for the kind words all! Karol, the dimensions of the ND are 560x600.
  17. I'm content enough with the progress I've made - much thanks to many developers from here stearing me in the right direction, especially Jan - that I've decided to post my code for custom map symbols on a navigation display. Here is what I use for airports: <Element> <Visible>@NDARPTVIS</Visible> <FormattedText X="100" Y="70" Font="Calibri" FontSize="20" Color="#0080B0" Adjust="Left" Bright="Yes"> <String> %(0 (>@c:NearestAIRPORTCurrentLine))%((@c:NearestAIRPORTCurrentIdent))%!s! %((@c:NearestAIRPORTCurrentDistance,nmiles) (L:ND-RNG-FACTOR,number) * (>L:ND-ARPT-DST0,number) (@c:NearestAIRPORTCurrentTrueBearing,degrees) (>L:ND-ARPT-BRG0,degrees)) </String> <Axis X="-15" Y="-5"/> </FormattedText> <Element> <Position X="-12.5" Y="-12.5"/> <Visible>(@c:NearestAIRPORTCurrentIdent) slen 1 ></Visible> <Image Name="ND-ARPT.bmp" Bright="Yes"/> <Clip Left="0" Right="560" Top="0" Bottom="585"/> </Element> <!--====================SHIFT-X====================--> <Shift> <Value>(L:ND-ARPT-BRG0,radians) (A:PLANE HEADING DEGREES TRUE,radians) - sin (L:ND-ARPT-DST0,number) *</Value> <Nonlinearity> <Item Value="-25" X="010" Y="0"/> <Item Value="-20" X="064" Y="0"/> <Item Value="-10" X="172" Y="0"/> <Item Value= "0" X="280" Y="0"/> <Item Value="10" X="388" Y="0"/> <Item Value="20" X="388" Y="0"/> <Item Value="25" X="550" Y="0"/> </Nonlinearity> </Shift> <!--====================SHIFT-Y====================--> <Shift> <Value>(L:ND-ARPT-BRG0,radians) (A:PLANE HEADING DEGREES TRUE,radians) - cos (L:ND-ARPT-DST0,number) *</Value> <Nonlinearity> <Item Value="40" X="0" Y="082"/> <Item Value="30" X="0" Y="190"/> <Item Value="20" X="0" Y="298"/> <Item Value="10" X="0" Y="406"/> <Item Value="0" X="0" Y="514"/> <Item Value="-10" X="0" Y="622"/> </Nonlinearity> </Shift> <Clip Left="0" Right="560" Top="0" Bottom="585"/> </Element> *Obviously must set up the nearestairport gps variables prior to use. The macro NDARPTVIS just specifies runway length and airport kind for me. This must be repeated over and over again just changing the variable constant values. The airport one has proved to be very stable. I have also set up for VOR and such but for some reason it's behavior is not too stable yet. I've attached an image of this in action. Some like to use vector images but I find that bitmaps are clearer right now. The attachment is only cropped after taken directly off the sim. All 100% XML. Thanks to everyone for their guidance! Hope you guys can make use of this.
  18. Tried doing that using BGLXML and NewBGLAnalyzer but they all come back with errors that the BGL files are of an older type. I assume because Bill's scenery were all originally FS2002 and converted to 2004. Any other idea's?
  19. I want to disable the trees on Bill Melichar's NTAA scenery as they often cause my simulator trouble. How do I do this? I do not see any obvious way of doing this. There aren't any bgl files labeled as trees and I do not know how or if it's even possible to edit the bgl to remove the trees.
  20. Perhaps my code may be of assistance: <!--==================================SCRATCH-PAD==================================--> <!--==================================SCRATCH-PAD==================================--> <!--==================================SCRATCH-PAD==================================--> <!--==================================SCRATCH-PAD==================================--> <!--==================================SCRATCH-PAD==================================--> <Area Left="155" Right="180" Top="345" Bottom="370"> <Tooltip>A</Tooltip> <Cursor Type="Hand"/> <Click> (L:FMC-UNIT-1,number) 0 == if{ 65 (>L:FMC-UNIT-1,number) } els{ (L:FMC-UNIT-1,number) (L:FMC-UNIT-2,number) > (L:FMC-UNIT-2,number) 0 == and if{ 65 (>L:FMC-UNIT-2,number) } els{ (L:FMC-UNIT-2,number) (L:FMC-UNIT-3,number) > (L:FMC-UNIT-3,number) 0 == and if{ 65 (>L:FMC-UNIT-3,number) } els{ (L:FMC-UNIT-3,number) (L:FMC-UNIT-4,number) > (L:FMC-UNIT-4,number) 0 == and if{ 65 (>L:FMC-UNIT-4,number) } els{ (L:FMC-UNIT-4,number) (L:FMC-UNIT-5,number) > (L:FMC-UNIT-5,number) 0 == and if{ 65 (>L:FMC-UNIT-5,number) } els{ (L:FMC-UNIT-5,number) (L:FMC-UNIT-6,number) > (L:FMC-UNIT-6,number) 0 == and if{ 65 (>L:FMC-UNIT-6,number) } els{ (L:FMC-UNIT-6,number) (L:FMC-UNIT-7,number) > (L:FMC-UNIT-7,number) 0 == and if{ 65 (>L:FMC-UNIT-7,number) } els{ (L:FMC-UNIT-7,number) (L:FMC-UNIT-8,number) > (L:FMC-UNIT-8,number) 0 == and if{ 65 (>L:FMC-UNIT-8,number) } els{ (L:FMC-UNIT-8,number) (L:FMC-UNIT-9,number) > (L:FMC-UNIT-9,number) 0 == and if{ 65 (>L:FMC-UNIT-9,number) } els{ (L:FMC-UNIT-9,number) (L:FMC-UNIT-10,number) > (L:FMC-UNIT-10,number) 0 == and if{ 65 (>L:FMC-UNIT-10,number) } els{ (L:FMC-UNIT-10,number) (L:FMC-UNIT-11,number) > (L:FMC-UNIT-11,number) 0 == and if{ 65 (>L:FMC-UNIT-11,number) } els{ (L:FMC-UNIT-11,number) (L:FMC-UNIT-12,number) > (L:FMC-UNIT-12,number) 0 == and if{ 65 (>L:FMC-UNIT-12,number) } els{ (L:FMC-UNIT-12,number) (L:FMC-UNIT-13,number) > (L:FMC-UNIT-13,number) 0 == and if{ 65 (>L:FMC-UNIT-13,number) } els{ (L:FMC-UNIT-13,number) (L:FMC-UNIT-14,number) > (L:FMC-UNIT-14,number) 0 == and if{ 65 (>L:FMC-UNIT-14,number) } els{ (L:FMC-UNIT-14,number) (L:FMC-UNIT-15,number) > (L:FMC-UNIT-15,number) 0 == and if{ 65 (>L:FMC-UNIT-15,number) } els{ (L:FMC-UNIT-15,number) (L:FMC-UNIT-16,number) > (L:FMC-UNIT-16,number) 0 == and if{ 65 (>L:FMC-UNIT-16,number) } els{ (L:FMC-UNIT-16,number) (L:FMC-UNIT-17,number) > (L:FMC-UNIT-17,number) 0 == and if{ 65 (>L:FMC-UNIT-17,number) } els{ (L:FMC-UNIT-17,number) (L:FMC-UNIT-18,number) > (L:FMC-UNIT-18,number) 0 == and if{ 65 (>L:FMC-UNIT-18,number) } els{ (L:FMC-UNIT-18,number) (L:FMC-UNIT-19,number) > (L:FMC-UNIT-19,number) 0 == and if{ 65 (>L:FMC-UNIT-19,number) } els{ (L:FMC-UNIT-19,number) (L:FMC-UNIT-20,number) > (L:FMC-UNIT-20,number) 0 == and if{ 65 (>L:FMC-UNIT-20,number) } els{ (L:FMC-UNIT-20,number) (L:FMC-UNIT-21,number) > (L:FMC-UNIT-21,number) 0 == and if{ 65 (>L:FMC-UNIT-21,number) } els{ (L:FMC-UNIT-21,number) (L:FMC-UNIT-22,number) > (L:FMC-UNIT-22,number) 0 == and if{ 65 (>L:FMC-UNIT-22,number) } els{ (L:FMC-UNIT-22,number) (L:FMC-UNIT-23,number) > (L:FMC-UNIT-23,number) 0 == and if{ 65 (>L:FMC-UNIT-23,number) } els{ (L:FMC-UNIT-23,number) (L:FMC-UNIT-24,number) > (L:FMC-UNIT-24,number) 0 == and if{ 65 (>L:FMC-UNIT-24,number) } } } } } } } } } } } } } } } } } } } } } } } } </Click> </Area> OR <On Key="AlphaNumeric"> <Visible>(L:FMC-KEYBOARD-USE,bool) 1 ==</Visible> (L:FMC-UNIT-1,number) 0 == if{ (M:Key) (>L:FMC-UNIT-1,number) } els{ (L:FMC-UNIT-1,number) (L:FMC-UNIT-2,number) > (L:FMC-UNIT-2,number) 0 == and if{ (M:Key) (>L:FMC-UNIT-2,number) } els{ (L:FMC-UNIT-2,number) (L:FMC-UNIT-3,number) > (L:FMC-UNIT-3,number) 0 == and if{ (M:Key) (>L:FMC-UNIT-3,number) } els{ (L:FMC-UNIT-3,number) (L:FMC-UNIT-4,number) > (L:FMC-UNIT-4,number) 0 == and if{ (M:Key) (>L:FMC-UNIT-4,number) } els{ (L:FMC-UNIT-4,number) (L:FMC-UNIT-5,number) > (L:FMC-UNIT-5,number) 0 == and if{ (M:Key) (>L:FMC-UNIT-5,number) } els{ (L:FMC-UNIT-5,number) (L:FMC-UNIT-6,number) > (L:FMC-UNIT-6,number) 0 == and if{ (M:Key) (>L:FMC-UNIT-6,number) } els{ (L:FMC-UNIT-6,number) (L:FMC-UNIT-7,number) > (L:FMC-UNIT-7,number) 0 == and if{ (M:Key) (>L:FMC-UNIT-7,number) } els{ (L:FMC-UNIT-7,number) (L:FMC-UNIT-8,number) > (L:FMC-UNIT-8,number) 0 == and if{ (M:Key) (>L:FMC-UNIT-8,number) } els{ (L:FMC-UNIT-8,number) (L:FMC-UNIT-9,number) > (L:FMC-UNIT-9,number) 0 == and if{ (M:Key) (>L:FMC-UNIT-9,number) } els{ (L:FMC-UNIT-9,number) (L:FMC-UNIT-10,number) > (L:FMC-UNIT-10,number) 0 == and if{ (M:Key) (>L:FMC-UNIT-10,number) } els{ (L:FMC-UNIT-10,number) (L:FMC-UNIT-11,number) > (L:FMC-UNIT-11,number) 0 == and if{ (M:Key) (>L:FMC-UNIT-11,number) } els{ (L:FMC-UNIT-11,number) (L:FMC-UNIT-12,number) > (L:FMC-UNIT-12,number) 0 == and if{ (M:Key) (>L:FMC-UNIT-12,number) } els{ (L:FMC-UNIT-12,number) (L:FMC-UNIT-13,number) > (L:FMC-UNIT-13,number) 0 == and if{ (M:Key) (>L:FMC-UNIT-13,number) } els{ (L:FMC-UNIT-13,number) (L:FMC-UNIT-14,number) > (L:FMC-UNIT-14,number) 0 == and if{ (M:Key) (>L:FMC-UNIT-14,number) } els{ (L:FMC-UNIT-14,number) (L:FMC-UNIT-15,number) > (L:FMC-UNIT-15,number) 0 == and if{ (M:Key) (>L:FMC-UNIT-15,number) } els{ (L:FMC-UNIT-15,number) (L:FMC-UNIT-16,number) > (L:FMC-UNIT-16,number) 0 == and if{ (M:Key) (>L:FMC-UNIT-16,number) } els{ (L:FMC-UNIT-16,number) (L:FMC-UNIT-17,number) > (L:FMC-UNIT-17,number) 0 == and if{ (M:Key) (>L:FMC-UNIT-17,number) } els{ (L:FMC-UNIT-17,number) (L:FMC-UNIT-18,number) > (L:FMC-UNIT-18,number) 0 == and if{ (M:Key) (>L:FMC-UNIT-18,number) } els{ (L:FMC-UNIT-18,number) (L:FMC-UNIT-19,number) > (L:FMC-UNIT-19,number) 0 == and if{ (M:Key) (>L:FMC-UNIT-19,number) } els{ (L:FMC-UNIT-19,number) (L:FMC-UNIT-20,number) > (L:FMC-UNIT-20,number) 0 == and if{ (M:Key) (>L:FMC-UNIT-20,number) } els{ (L:FMC-UNIT-20,number) (L:FMC-UNIT-21,number) > (L:FMC-UNIT-21,number) 0 == and if{ (M:Key) (>L:FMC-UNIT-21,number) } els{ (L:FMC-UNIT-21,number) (L:FMC-UNIT-22,number) > (L:FMC-UNIT-22,number) 0 == and if{ (M:Key) (>L:FMC-UNIT-22,number) } els{ (L:FMC-UNIT-22,number) (L:FMC-UNIT-23,number) > (L:FMC-UNIT-23,number) 0 == and if{ (M:Key) (>L:FMC-UNIT-23,number) } els{ (L:FMC-UNIT-23,number) (L:FMC-UNIT-24,number) > (L:FMC-UNIT-24,number) 0 == and if{ (M:Key) (>L:FMC-UNIT-24,number) } } } } } } } } } } } } } } } } } } } } } } } } </On> DISPLAY: <Element Name="TEXT-FIELD"> <Position X="050" Y="235"/> <Visible>(L:FMC-MSG-UNIT-1,number) 0 == (L:FMC-WPT-SEL,enum) 0 == and</Visible> <FormattedText X="280" Y="230" Bright="Yes" Font="Calibri" FontSize="15" Adjust="Left" Color="%( (L:FMC-BRT,number) 0x7f + 0x100 * )%" LineSpacing="15" Tabs="15,25L,120C,265R,270R"> <String>%( (L:FMC-UNIT-1,number) chr (L:FMC-UNIT-2,number) chr (L:FMC-UNIT-3,number) chr (L:FMC-UNIT-4,number) chr (L:FMC-UNIT-5,number) chr (L:FMC-UNIT-6,number) chr (L:FMC-UNIT-7,number) chr (L:FMC-UNIT-8,number) chr (L:FMC-UNIT-9,number) chr (L:FMC-UNIT-10,number) chr (L:FMC-UNIT-11,number) chr (L:FMC-UNIT-12,number) chr (L:FMC-UNIT-13,number) chr (L:FMC-UNIT-14,number) chr (L:FMC-UNIT-15,number) chr (L:FMC-UNIT-16,number) chr (L:FMC-UNIT-17,number) chr (L:FMC-UNIT-18,number) chr (L:FMC-UNIT-19,number) chr (L:FMC-UNIT-20,number) chr (L:FMC-UNIT-21,number) chr (L:FMC-UNIT-22,number) chr (L:FMC-UNIT-23,number) chr (L:FMC-UNIT-24,number) chr scat scat scat scat scat scat scat scat scat scat scat scat scat scat scat scat scat scat scat scat scat scat scat)%!s! </String> </FormattedText> </Element> Hope this helps you Bill.
  21. My latest venture takes me from the Falkland Islands to Rapa Nui or Easter Island for a charter flight in Oceanic's N162342 - a 767-300, Extended Range series. I had been dreading this flight for the forecast winds where on average 280/60 no matter what FL we chose. This produced a GS of no more than 415 at any point in the flight. The only bright side to this was the fact that we weren't running the a route over the Tasman sea; where I have seen winds normally over 120 kts.FLIGHT INFORMATIONOperator: Privately registered (Oceanic Airlines): N162342 - United StatesAircraft: BOEING 767-300 (H/B763/Q)Origin: EGYP Mount Pleasant, Falkland Islands (Malvinas)Destination: SCIP Mataveri Intl, ChileRoute: EGYP KILOR 4872W 4578W 4385W 4090W 3695W 33W00 29W04 OSTRA SCIPRemarks: Operating as Oceanic Airlines Flight No. 815. www.angelsimulations.net / V /Altitude: 38,000 ftSpeed: 420 ktsDeparted: 09-Mar-12 02:08 AMArrived: 09-Mar-12 08:54 AMDistance/Time Traveled: 2710 nm /6:45Enough chatting and time for the shots:Quick start on the military ramp at Mt. Pleasant and then we back taxied for take off:"Engine instruments in the green. Airspeed's alive. 80 knots, V1, Rotate, V2...."We make FL380 in no time as we're only about 70% of capacity on this flight and we take in the beautiful views of Patagonia shortly after reaching cruise:Some beautiful colors on this flight, as the sun takes its time to set on the South Pacific:Most people don't like night flights, but I really do! This is why:On that night over the South Pacific the sky opened up and you could see just about every constellation. It was beautiful!I was hoping to use the Autoland as I hadn't used it a while and the ceiling at SCIP was reading 1500. However, the winds were consistently out of the west the entire flight, even at SCIP. This meant that we couldn't use the ILS on 10 and were stuck with the VOR Z for 28.We broke out around 1700 and the PAPI were visible shortly after. There isn't much more lighting other than REIL's on this end. Here we are on final, as seen from the island:Short final, from the cockpit:Picture perfect landing! Here we are rolling out:At the gate our passengers disembark and we shut her down for a few days rest in Rapa Nui - land of the Moai.Hope you enjoyed my post.
  22. Oh perhaps I should've been more clear; I was and am testing the panel.Thanks for the comments folks.
  23. Testing away all day. Sometimes being a programmer in FS sucks - every flight is a test flight and you never just get to be content with your work, you're always scrambling to fix something. Had some fun flying around Vermont in the simulator and a lot more in the RW.Here I am shooting the ILS 33 into KBTV. I was gonna go for the HI-ILS but I totally botched it.Right around the time of this flight I did KHWV-KRUT-KBTV, however we went into KBTV at night and I couldn't get a shot. Here's the shot of KRUT - always thought this ID was funny - 33 while we taxi off.Que bonus:Hope you like em.
  24. We'll to be honest I have no need to store them. I just figured that perhaps if I did store them the code would work like I am wanting it to.
  25. Guys I'm looking for a solution to a little problem I'm having creating a page that lists all the Duplicate Waypoints. It provides data such as their FREQ if applicable and their LAT/LON. However I can not get the code to work consistently. The values often flicker on and off from 0.00.... to the actual value and back.Here is the code: <Element><FormattedText X="275" Y="230" Bright="Yes" Font="Calibri" FontSize="15" Tabs="15,16L,55L,100L,265R,270R"Adjust="left" Color="%( (L:FMC-BRT,number) 0x7f + 0x100 * )%" LineSpacing="15" ><String>n{lsp=5}%('AWNVM' (>@c:IcaoSearchStartCursor)(L:FMC-UNIT-1,number) 0 != if{(L:FMC-UNIT-1,number) chr (L:FMC-UNIT-2,number) chr (L:FMC-UNIT-3,number) chr(L:FMC-UNIT-4,number) chr (L:FMC-UNIT-5,number) chr scat scat scat scat (>@c:IcaoSearchEnterChar) })%((@c:IcaoSearchMatchedIcaosNumber) s2)%(0 sp1)%((@c:IcaoSearchMatchedIcaosNumber) s2 0 >)%{if}%{loop}%(l1 (>@c:IcaoSearchMatchedIcao))nt%((@c:IcaoSearchCurrentIdent))%!s! %(l2)%!s!t%('AWNVM' (@c:IcaoSearchCurrentIcaoType) ord schr)%{case}%{:0}ARPT%((@c:IcaoSearchCurrentIcao) (>@c:WaypointAirportICAO))nttt%((@c:WaypointAirportLatitude) 0 > if{ 'N' } els{ 'S' })%!s!%((@c:WaypointAirportLatitude) abs flr)%!02d!°%((@c:WaypointAirportLatitude) /-/ (@c:WaypointAirportLatitude) /-/ int - 60.019236934915036870791920487336 /-/ *abs)%!02.1f!% %((@c:WaypointAirportLongitude) 0 > if{ 'E' } els{ 'W' })%!s!%((@c:WaypointAirportLongitude) abs flr)%!03d!°%((@c:WaypointAirportLongitude) /-/ (@c:WaypointAirportLongitude) /-/ int - 60.019236934915036870791920487336 /-/ *abs)%!3.1f!%{:1}ISEC%((@c:IcaoSearchCurrentIcao) (>@c:WaypointIntersectionICAO))nttt%((@c:WaypointIntersectionLatitude) 0 > if{ 'N' } els{ 'S' })%!s!%((@c:WaypointIntersectionLatitude) abs flr)%!02d!°%((@c:WaypointIntersectionLatitude) /-/ (@c:WaypointIntersectionLatitude) /-/ int - 60.019236934915036870791920487336 /-/ *abs)%!02.1f!% %((@c:WaypointIntersectionLongitude) 0 > if{ 'E' } els{ 'W' })%!s!%((@c:WaypointIntersectionLongitude) abs flr)%!03d!°%((@c:WaypointIntersectionLongitude) /-/ (@c:WaypointIntersectionLongitude) /-/ int - 60.019236934915036870791920487336 /-/ *abs)%!3.1f!%{:2}NDB%((@c:IcaoSearchCurrentIcao) (>@c:WaypointNDBICAO))n%((@c:WaypointNDBFrequency,KHz))%!4.1f!tt%((@c:WaypointNDBLatitude) 0 > if{ 'N' } els{ 'S' })%!s!%((@c:WaypointNDBLatitude) abs flr)%!02d!°%((@c:WaypointNDBLatitude) /-/ (@c:WaypointNDBLatitude) /-/ int - 60.019236934915036870791920487336 /-/ * abs)%!02.1f!% %((@c:WaypointNDBLongitude) 0 > if{ 'E' } els{ 'W' })%!s!%((@c:WaypointNDBLongitude) abs flr)%!03d!°%((@c:WaypointNDBLongitude) /-/ (@c:WaypointNDBLongitude) /-/ int - 60.019236934915036870791920487336 /-/ * abs)%!3.1f!%{:3}VOR%((@c:IcaoSearchCurrentIcao) (>@c:WaypointVORICAO))n%((@c:WaypointVORFrequency,MHz))%!3.2f!tt%((@c:WaypointVORLatitude) 0 > if{ 'N' } els{ 'S' })%!s!%((@c:WaypointVORLatitude) abs flr)%!02d!°%((@c:WaypointVORLatitude) /-/ (@c:WaypointVORLatitude) /-/ int - 60.019236934915036870791920487336 /-/ * abs)%!02.1f!% %((@c:WaypointVORLongitude) 0 > if{ 'E' } els{ 'W' })%!s!%((@c:WaypointVORLongitude) abs flr)%!03d!°%((@c:WaypointVORLongitude) /-/ (@c:WaypointVORLongitude) /-/ int - 60.019236934915036870791920487336 /-/ * abs)%!3.1f!%{:4}MARKER%{end}%(l1 ++ s1 l2 <)%{next}%{end}</String></FormattedText><Clip Top="50" Bottom="200"/></Element> I was hoping I could store them to LVars and then it would work. Is this a feasible approach or am I missing something here. This is FS9 primarily but X too.
×
×
  • Create New...