Jump to content
Sign in to follow this  
rhumbaflappy

Another Helipad

Recommended Posts

Hi all.I had experimented with using zero height Advanced Buildings ( SCASM ), as helipads. This works fine, but only if you have Crash detection ON.This is a problem for budding heli-pilots. So I have an alternate solution:; ===========================; RhumbaPad an improved helipad N42* 38.00' W88* 38.00'; ===========================;Header( 1 N42:38:10.00 N42:37:50.00 W088:36:00.00 W088:39:00.00 )LatRange( N42:37:50.00 N42:38:10.00 );; -----------------------------------------------------Area( 5 N42:38:00.00 W088:38:00.00 22 ); PerspectiveCall( :_DrawPad ) Jump( : );; ----------------------------------------------------- :_DrawPad RefPoint( abs :_DrawPadFail 1.00 N42:38:00.00 W088:38:00.00 V1= 4000 V2= 68 E= 400 ) RotatedCall( :_DrawPoly 0 0 0 ) Return;; ----------------------------------------------------- :_DrawPoly ; Cosmetic bitmap and surface & crash types ZBias( 2 ) LoadBitmap( 0 L5 EF 255 255 255 helo3.bmp ) Points( 1 -50 0 50 50 0 50 50 0 -50 -50 0 -50 ) ShadedTexPoly( m 0 32767 0 0.00 001 000 127 002 127 127 003 127 000 004 000 000 ) SurfaceType( 0 100 100 400 ) SetCrashCode( 2 ) Return;; ----------------------------------------------------- :_DrawPadFail; Return;; -----------------------------------------------------EndA;; ===========================;Area( 5 N42:38:00.00 W088:38:00.00 22 ); PerspectiveCall( :_DrawMarkers ) Jump( : );; ----------------------------------------------------- :_DrawMarkers RefPoint( abs :_DrawMarkersFail 1.00 N42:38:00.00 W088:38:00.00 V1= 4000 V2= 68 E= 401 ) RotatedCall( :_DrawLights 0 0 0 ) Return;; ----------------------------------------------------- :_DrawLights ; Draw some pretty lights LineColor( 0F F0 ) Dot( 0 0 0 ) LineColor( 10 F0 ) DotLine( 49 0 49 -49 0 49 50 ) DotLine( -49 0 49 -49 0 -49 50 ) DotLine( -49 0 -49 49 0 -49 50 ) DotLine( 49 0 -49 49 0 49 50 ) Return;; ----------------------------------------------------- :_DrawMarkersFail; Return;; -----------------------------------------------------EndA;; ===========================;Area16( a N42:38:00.00 W088:38:00.00 50 50 ); RefPoint( abs : 1.00 N42:38:00.00 W088:38:00.00 ) RotatedCall( :_CreatePad 0 0 0 ) Jump( : );; -----------------------------------------------------:_CreatePad AreaSense( : -50 50 50 50 50 -50 -50 -50 ) SetElevation( 400 ) SetElevation( 399 ) ; "safety net" Return;; -----------------------------------------------------End16;; ===========================This uses the SetElevation command... but places another elevation directly under the primary pad. Some times an aircraft will actually crash through a pad. The "safety net" then will stop the helicopter from falling to the ground. Works well, and an API could be easily made.There are 3 areas defined. First draws a poly and sets the surface and crash types. The second area draws the lights. The third area is the actual pad "hardening"... with the safety net under it to compensate for the SetElevation bug in the sim.Dick

Share this post


Link to post
Share on other sites
Guest JR Morgan

Hey Dick.. OK, you sure know how to draw an old coot out of hibernation :-). Here's an API for the code you posted. It tests OK using Apt26/160 as a placement tool at Delavan and T33 in Texas but for the life of me I can't get it to work at my KVLA testbed scenery. KVLA has hundreds of added houses, lots of AdvBldgs and a few clusters of 'older-conventional' houses and 3D objects. I counted over 300 such objects, then stopped counting. It also contains lots of flattens and surface types. That's the only possible reason for your pad not working there that I can think of...The api macro:; ===========================; RhumbaPad; Usable for Heli Pilots who de-activate Crash Detect in FS2002; ===========================;Area( 5 %1 %2 %3 )PerspectiveCall( :_DrawPad )Jump( : );:_DrawPadRefPoint( abs :_DrawPadFail 1.00 %1 %2 E= %11 V1= %10 V2= 68 )RotatedCall( :_DrawPoly 0 0 0 )Return;:_DrawPoly ; Cosmetic bitmap and surface & crash types;ZBias( 2 )LoadBitmap( 0 L5 EF 255 255 255 helo3.bmp )Points( 1-50 0 5050 0 5050 0 -50-50 0 -50 )ShadedTexPoly( m 0 32767 0 0.00001 000 127002 127 127003 127 000004 000 000 )SurfaceType( 0 100 100 400 )SetCrashCode( 2 )Return;:_DrawPadFailReturn;EndA;Area( 5 %1 %2 %3 )PerspectiveCall( :_DrawMarkers )Jump( : ):_DrawMarkersRefPoint( abs :_DrawMarkersFail 1.00 %1 %2 E= [%11 + 1] V1= %10 V2= 68 )RotatedCall( :_DrawLights 0 0 0 )Return;:_DrawLights ; Draw some pretty lightsLineColor( 0F F0 )Dot( 0 0 0 )LineColor( 10 F0 )DotLine( 49 0 49 -49 0 49 50 )DotLine( -49 0 49 -49 0 -49 50 )DotLine( -49 0 -49 49 0 -49 50 )DotLine( 49 0 -49 49 0 49 50 )Return;:_DrawMarkersFailReturn;EndA;;--- Area16 Elevaated Surface Hardening ---;Area16( a %1 %2 5.5 5.5 )RefPoint( abs : %4 %1 %2 )RotatedCall( :_CreatePad 0 0 0 )Jump( : ):_CreatePadAreaSense( : -50 50 50 50 50 -50 -50 -50 )SetElevation( %11 )SetElevation( [%11 - 1] ) ; "safety net"ReturnEnd16;-------------------------------------------------I still prefer the zero height AdvBldg strategy because in addition to it's simple, brief code overhead, heli flying with crash detect turned-on allows heli landing on virtually any flat-roofed AdvBldg unless the building contains what I'd call a 'purtibating' graphic addition. For example, the MetLife bldg in manhattan has such a graphic (MetLife Logo) placed near it's top and it requires the zero height AdvBldg under the bldg in order to harden it's roof-top.Most heli problems are caused by over-controlling and not maintaining a reference with surrounding scenery. I would urge 'budding' heli pilots to carefully calibrate their joysticks, get rudder pedals (or a twist handle for rudder control) and turn all the realism sliders to minimum until some proficiency is attained. With proper trim in the FS2002 Bell 206B, one should be able to slowly increase collective blade pitch (the throttle on the joystick) and maintain a hover with very small control inputs.BTW, there's a fairly new website dedicated to Heli flight training that's helping lots of people become rotor-wing proficient. That site's located at http://www.hovercontrol.com .Thanks for your persistence in experimenting.J.R.

Share this post


Link to post
Share on other sites

Hi JR.The line:Area16( a %1 %2 5.5 5.5 )should read:Area16( a %1 %2 0.05 0.05 )as that actually is kilometers... my goof!This pad only works with crash detection off! So, now do we need to combine this with zero-height advanced buildings to get a condition where we can use it with or without crash detection?I had hoped for a simple solution. :-lol Dick

Share this post


Link to post
Share on other sites
Guest JR Morgan

Hi Again, Dick...Regarding:"The line:Area16( a %1 %2 5.5 5.5 )should read:Area16( a %1 %2 0.05 0.05 )as that actually is kilometers... my goof!"**Actually, I think this is not a problem in this case.This 'rang a bell' dating back to some FS98 Helipad battles I had fought and I verified the result again tonite: The (5.5 or 0.05 values stated (rightly) to be 'kilometers' in the SCASM docs are, I think a little misleading. When you think about it, they are for the 'Area16' AREA ONLY definition and not anything to do with defining the size of the hardened elevated surface. I ran a test again just now and found that although they are necessary for compilation, their numerical values for this purpose are arbitrary. I tested values ranging from 0.000001 to 10 here and found they have no impact on hardening or size of hardened elevated surface. I suspect that the sim automatically assigns a 'nominal' here?Notice in the code below that I have assigned zeroes to those values and if you try the api macro I made of your code, except replace the previous Area16 code with the section of Area16 code below you will find that only the 'AreaSense' sizing affects the size of the hardened elevated surface. Also interesting is the effect of remming-out the 'AreaSense' line --- It hardens the whole world (around the airport) and you can't get below it -- 'Funny :-)...**;--- Area16 Elevaated Surface Hardening ---;;Note comments below;Area16( a %1 %2 5.5 5.5 );The 5.5 values appear to be arbitrary-- see below:Area16( a %1 %2 0 0 ); Note values of 0 however, a parameter (even 0) must be set hereRefPoint( abs : %4 %1 %2 )RotatedCall( :_CreatePad 0 0 0 );'Love these zero calls :-)Jump( : ):_CreatePadAreaSense( : -50 50 50 50 50 -50 -50 -50 );This line Sets size of hardened area.SetElevation( %11 )SetElevation( [%11 - 1] ) ; "safety net"ReturnEnd16Re: "This pad only works with crash detection off!"**Not So. Here, on the Delavan pad, in 'Detect Crash' mode, I can land & take-off the pad and then go land/take-off on all the (4) flat topped AdvBldgs. BTW, I placed the pad directly over the airport to verify that the default MS flattens, rwys, taxiways, bldgs, etc did not affect it's operation.**"So, now do we need to combine this with zero-height advanced buildings to get a condition where we can use it with or without crash detection?"**My experience so-far indicates one only needs the zero height AdvBldgs whenever there is a 'purtibating' graphic (Logo, etc) placed on the AdvBldg as mentioned in my first post tonite (re.. NYC MetLife bldg with it's logo graphic). I have, however, placed some sinage made of transparent wall objects on some AdvBldgs without needing the 'dummy AdvBldgs' --BUT-- this applies only with crash detect turned on. If Crash detect is turned-off, elevated surfaces must be hardened with a routine such as you've supplied in the original source code or with the invisible rwy routine.**"I had hoped for a simple solution."**IMHO the simplest solution is to fly with Detect Crash turned-on, allowing the shorter, simpler codings. However, your method here seems to work fine. I had done this before but abandoned it because of the dumb looking effects when I fell-through the first level to the second level :-). I was not, however, smart enough to apply my code as you've done here. J.R.

Share this post


Link to post
Share on other sites
Guest luissa

Dear JR and Dick,Sorry for steping in as I understand nothing of helipads. Just reading the code I came to the following questions:- there is a building at the lat/lon of the macro and the roof has the altitude above sea level of 400 ?- SetCrashCode() defines the type of crash effect if we are in the "v1 =4000" area defined in the first RefPoint and if we actually have a crash in that area ? (never used that command!)- what is the "SetElevation bug" ? I use this command often, not for helipads though, and would like to know.- any reason for the Jump( : ) instead of the expected Return after the RotatedCall() in the last Area ?Kind Regards, Luis

Share this post


Link to post
Share on other sites
Guest JR Morgan

Hi Luis and thanks for stepping-in. It would no doubt be better for Dick to comment on the below, however, looks like he's 'sleeping-in' today :-).Re:- there is a building at the lat/lon of the macro and the roof has the altitude above sea level of 400 ?**This 'exploratory' code does not place a building; merely a floating elevated 'helipad'. In my present understanding, the elevated helipad object is merely a usually very small elevated hardened surface that apparently is sometimes in-conflict-with the FS2002 terrain engine. Buildings added underneath, helipad texture bitmaps, border lights, strobes, fences, etc are simply cosmetic add-ons to the elevated hard surface. My experience has been that in FS2002, the elevated (very small) invisible runway is a reliable tool, however, all runways invisible or not seem to demand-their-own-portions' of adjacent scenery objects thereby killing-off some nearby autogen objects.Due to some recent discoveries by Christian Stock and Dick Ludowise, it bacame known that Advanced Buildings with flat roofs are Heli-Landable provided the Heli is configured to 'Detect Crashing'. This 'exploration' by Dick is attempting to offer the community a helipad object that works for people who fly their Helis with Crash-Detect disabled.- SetCrashCode() defines the type of crash effect if we are in the "v1 =4000" area defined in the first RefPoint and if we actually have a crash in that area ? (never used that command!)**Yes, the selection of '2' for this application would tell FS to display a 'mountain crash' (normally used for 3D objects).- what is the "SetElevation bug" ? I use this command often, not for helipads though, and would like to know.** 'Not sure this is a 'bug', however, it's been found that in making the very small elevated hard surfaces for use as helipads, FS2002's Area16 function in it's simplest form is not always reliable to maintain it's hardened characteristic over a period of time. This was not true in FS2000 and prior FS versiions where all that was needed to do the job was a simple Area16 listing.- any reason for the Jump( : ) instead of the expected Return after the RotatedCall() in the last Area ?**Probably not -- a 'Return' also works here, however, the 'Jump( : ) also works fine. Dick might have a reason for that format? My mission was to put his source code into API format for 'universal' placement ability :-).Thanks; J.R.

Share this post


Link to post
Share on other sites

Hi Luis.It is sloppy code. :( But I'm tring to force a good helipad solution, and I am not finding one.; ===========================;Area16( a N42:38:00.00 W088:38:00.00 0.05 0.05 );RefPoint( abs : 1.00 N42:38:00.00 W088:38:00.00 )RotatedCall( :_CreatePad 0 0 0 )Jump( : );; -----------------------------------------------------:_CreatePadAreaSense( : -50 50 50 50 50 -50 -50 -50 )SetElevation( 400 )SetElevation( 399 ) ; "safety net"Return;; -----------------------------------------------------End16;; ===========================The "safety net" would be needed as sometimes a "fall through" occurs. I think this is some kind of timing problem with the SetElevation... if the helicopter's center of gravity goes throuh the elevation instead of stopping at it.The aircraft carrier Abraham Lincoln, off San Diego, California has this problem.... where you hit the deck a little hard, and find yourself below decks!But I've now found the safety net is also unreliable. :( I'm going to abandon this coding, as it just isn't stable.==============Here's something odd about zero-height Advanced buildings. JR and I thought they worked only with crash detection on. But if you turn the detection from on to off, it still works! It just needs the on setting established first. So there is a bug in advanced buildings that require the roof surface to have crash detection set... then it can be unset safely, and you'll still have a solid "roof".A zero-height advanced building is invisible, and can be set at any elevation to make a hard surface.==============Most of the other code was just fooling with the sim to force a surface recognition, or drawing lights and a poly in space... not important.The jump to the end is needed if a Call is made to the ':_CreatePad' subroutine... otherwise the code would get executed twice... I'm not sure a rotated call should even be made here... or any subroutine call. But then the orientation would have to be NSEW aligned.; ===========================;Area16( a N42:38:00.00 W088:38:00.00 0.05 0.05 );RefPoint( abs : 1.00 N42:38:00.00 W088:38:00.00 )AreaSense( : -50 50 50 50 50 -50 -50 -50 )SetElevation( 400 )SetElevation( 399 ) ; "safety net";End16;; ===========================I haven't had enough time to really look into this code. But I have a bad feeling that the SetElevation cannot be trusted to make a firm surface.This all started because I thought the methods of making a helipad on a building were too complicated. As I recall, the ground surface needed to be flattened, an invisible runway at ground level, and another invisible runway at elevation. And this led to autogen exclusion problems with the runway commands. Jr knows this routine much better than I.I'm still not convinced I found anything as reliable as that method, but the advanced buildings seem OK.Dick

Share this post


Link to post
Share on other sites
Guest JR Morgan

Hi Dick... Regarding:>Here's something odd about zero-height Advanced buildings. JR and I thought they worked only with crash detection on. But if you turn the detection from on to off, it still works! It just needs the on setting established first.So there is a bug in advanced buildings that require the roof surface to have crash detection set... then it can be unset safely, and you'll still have a solid "roof".<**In further testing at Delavan, I've noted that it's true that you can turn crash off over a Flat Roofed AdvBldg and when flying around and returning to That Same Bldg, the roof is still hardened. However, if you fly to another different flat roofed AdvBldg with Crash-Detect still turned off, that (new) bldg is not hardened. 'Looks to me like Crash-Detect must remain on all the time to be sure all the flat roofs are hardened.**J.R.

Share this post


Link to post
Share on other sites

Hi J.R.I think you are right. I had hoped to find an easy solution to this hardened surface riddle... and perhaps using the advanced buildings with the crash detection on is best. If you are going to be landing helicopters, it might be best to learn to use the crash detection.And, of course, for practice, a single building can be switched off. That's not such a bad thing.Dick

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Tom Allensworth,
    Founder of AVSIM Online


  • Flight Simulation's Premier Resource!

    AVSIM is a free service to the flight simulation community. AVSIM is staffed completely by volunteers and all funds donated to AVSIM go directly back to supporting the community. Your donation here helps to pay our bandwidth costs, emergency funding, and other general costs that crop up from time to time. Thank you for your support!

    Click here for more information and to see all donations year to date.
×
×
  • Create New...