Correcting contact points (again) with AvHistory light effects.

hairyspin

Administrator
Staff member
Correcting contact points (again) with AvHistory light effects.

I’ve been trying to work out a way of making contact points easier to correct on published models. This post really belongs in the Aircraft Design and Animation forum, but there are good visual tools already for ordinary Flight Simulator versions, whereas CFS3 has none, nada, zip, zilch, zero.

cfs3cp03.jpg


The modellers will know what I mean – or they should! – but from time to time the keen downloader will come across an aircraft that doesn’t sit on the runway properly, bounces around a lot on first appearance or in extremis explodes on the runway without a shot being fired. The same model will still fly quite happily so long as you start in the air. :isadizzy:

There’s a very good article on contact points here at SOH:- http://www.sim-outhouse.com/index.php?loc=articles&page=cp which explains particularly how the landing gear contact points work and how to use lights to spot problems and fine-tune the settings. Jerry Beckwith’s AirWrench goes one better by making it easy to set these up by just ticking a check box for each contact point. This makes it a doddle to correct an aircraft model that doesn’t sit correctly on the ground.

If only this worked in CFS3!!!! 'Cos it doesn’t, there is no [Lights] section in aircraft.cfg for CFS3. :mad:
 
Last edited:
Enter the Effects Team

Some time ago, AvHistory included lights with their excellent effects and started releasing aircraft with the long-absent landing and aircraft lights which came on within a defined speed range. You can see where this is going, can’t you…

vbf872.jpg



The obvious thing is to add AvH lights corresponding to the contact points to the [Effects] section of the .XDP file, fine-tune the light positions and then correct the landing gear contact points accordingly.


There are a couple of problems in doing this:-

  • Contact points are sized in feet, effects are sized in metres!
  • Sizes for contact points are in a different order to that used for effects!
There’s another more subtle problem which may crop up, but more of that later.
You’ll need a couple of tools to make this easier, so here is an unashamed plug for XMLWrench and AirWrench, both dashed good utilities!

XMLWrench is free:- www.xmlwrench.com and is a fine XML editor (you can use Notepad, but it won’t check xml syntax for you and you’ll likely screw up the .xdp file before long without that)

AirWrench costs $25 but can be used for free in evaluation mode which allows you to edit contact points:- www.mudpond.org/AirWrench_main.htm Cheers, Jerry!
icon29.gif
UPDATE AirWrench is now version 2 and available from Flight1 Software www.flight1.com


You’ll also need to install the AvHistory effects for CFS3 and you'll find them in the SOH Library.
 
Last edited:
Aircraft.cfg and "Model Name".xdp

In the aircraft folder for each model is the file Aircraft.cfg which will open in Notepad without problems. Scroll down to the section marked [contact points] and you’ll see something like this:-

aircraftcfgcontacts.jpg



Nicely commented, the bits that matter are point.0=…, point.1=… etc followed by long lines of numbers. This is for a stock aircraft and your eyes are probably glazing already.

Fire up AirWrench, point it at the .air file for the model you want to work on and make sure you select Metric units:-

contactsairwrencht2.jpg




Now go to the Contacts tab and there is the same eye-glazing data, but in a more readable table:-

contactsairwrencht2m.jpg



Class 1 points are for the undercarriage, Class 2 are scrape points.
For the undercarriage, the first three lines are what we want and the Lon, Lat and Vert values. If the table says the sizes are in feet, go back to the Specs tab and set the units to Metric.

coordsystemcfg.jpg



Now open the model’s .XDP file with XMLWrench and scroll to the end to find the [Effects] section:-

xdpeffects.jpg



We want to add lines like:-

<Effect Type="Track" EffectName="fx_ac_Light_nav_red" PosX="0" PosY="-0.651" PosZ="-8" MinVel="0" MaxVel="244"></Effect>

which will add a red light to the relevant contact point, but PosX, PosY and PosZ do not correspond to Lon, Lat and Vert respectively in AirWrench.
Rearrange them in this order -PosZ, PosX, PosY - and all will be well! You’ll need a line like this for each contact point to be lit.

coordsystemxdp.jpg



Notice also the velocity range – the lights will show as soon as the aircraft starts moving and if you’re lucky they may show while it’s stationary.
Now you can arrange XMLWrench and AirWrench on your desktop so both are clearly readable and start filling in the .XDP data in XMLWrench.

If you haven’t already done so, make backup copies of Aircraft.cfg and the model’s .XDP file right now!
 
xdpeffectsfull.jpg


contactsairwrencht2m.jpg



You’ll see I’ve used a red nav light for the tail (point 0) and left (point 1) wheels and a green one for the right wheel (point 2). The additional white tail lights are to mark out other contact points. When you’re done, save the .XDP file and delete the model’s .BDP file.

Now go fly the model in CFS3 Quick Combat with the undercarriage down:-

contactsairwrencht2off.jpg



Oh dear. The tailwheel’s contact point is too far forward – PosZ will have to be reduced. Also the main wheels’ points are too low – PosY will have to be increased.
Some adjustments and deleting the .BDP later:-

contactst201.jpg


That looks pretty good. Check them head-on as well:-

contactst203.jpg



That will do nicely.




A few points about this:-
  • You may have to pan your view around to see the lights clearly.
  • When adjusting these points and going back to the sim, they may not seem to change at all.
    1. Always make sure you’ve deleted the .BDP file
    2. Select several different aircraft in CFS3 before flying the one
    you’re working on. That way your changes don’t get lost in the
    computer’s virtual memory until you’ve done five or six adjustments!
Once you’re happy with the position of the lights, you can copy the figures back to the Contact points in AirWrench so that
Lon = PosZ Lat = PosX Vert = PosY for each contact point
and click the Update Contact Points button.


This is for a model with animated wheel suspension – like most models. Taxi the aircraft off the runway and you’ll soon see the wheels moving up and down independently of the aircraft.

If the model you want to work on does not have the suspension animated, you’ll need to lower each wheel’s contact point by the amount of the Static Compression or the wheels will be half-sunk in the runway.
In this example the tail wheel’s position (contact point 0) is:
Lon -5.97 Lat 0.0 Vert -1.771 and the Static Comp is 0.061.

Subtract the Static Comp from the Vert value and you get:
Lon -5.97 Lat 0.0 Vert -1.771 - 0.061 = -1.832

The same calculation would then be done subtracting 0.122 in this example from the Vert value of the main wheels (contact points 1 and 2).

Now try the model out in CFS3 and see how well it sits on the ground and whether it rolls for takeoff correctly. If all’s well and good, you can restore the old .XDP file. Remember to delete the .BDP for the last time and you’re done!
 
Differences in aircraft and flight model geometry

There is a possible problem in this method. It’s entirely down to the modeller how to construct a model: there is good modelling practice and then there’s other ways. Here’s what happens in one of those other ways.
This is the stock Spitfire IXe as supplied with CFS3. The contact points have been used to set up lights exactly as detailed above, but not one lines up correctly on the model. And yet the model sits correctly on the ground and rolls for takeoff in a proper manner!

contactsixeoriginal01.jpg


contactsixeoriginal02.jpg



A closer look suggests the lights are all ‘off’ by the same amount, and they in fact are. Here’s the reason:-

differentcentres.jpg


The modeller has built the aircraft with the model’s centre, the point 0,0,0, at the tip of the nose. All contact points are measured from this point. (Lon is either 0 or negative for all points in this case)
The simulator meanwhile uses a point on the model’s centre line and 25% back from the leading edge of the model’s wing for all flight model calculations. All effect measurements are measured from that point! (PosZ may be positive, negative or zero)

It only takes a moment to check Aircraft.cfg to verify this:-

aircraftcfgdatum.jpg



The model’s centre is 8.85 feet forward of the simulator’s centre, therefore all the light effects will be 8.85 feet behind the contact points.
8.85 feet is 2.697 metres, so 2.697 has to be added to PosZ for each light effect (the .XDP is in metres, remember?).

Presto!

contactsixesorted.jpg



Once the lights are sitting correctly, we have to subtract 2.697 from PosZ for each point before re-entering the data in AirWrench.

Don’t you just love it? :isadizzy:
 
Static Pitch and Static Height

These have come up recently, so here’s how to work them out. It’s just simple geometry and trigonometry but anyone can do it, honest!

When a model first appears in the sim, it’s at a height from and angle to the ground set by these measurements. Then (simulated) gravity takes over and the model settles on its contact points. Get either of these too far off and a bouncing or exploding model is the result.

The first thing to fix is Static Pitch – then you can set Static Height correctly.

staticpitch.jpg



Static Pitch is just the angle the model’s centre line makes with the ground: aircraft like the P-38, B25, Do-335, Me262 have nose wheels and sit almost level on the ground and the Static Pitch is at or nearly zero, but all the taildraggers like the Spitfire IXe sit with their noses in the air (stuck-up lot!).


You need:
  • PosZ and PosY values for the tailwheel and a main wheel – the first and second lines in our light effects respectively
  • The Windows Calculator set to scientific mode.
contactsixefullset.jpg



For the mathematically literate, the Static Pitch is
tan-1 ((tailwheel PosY – mainwheel PosY) / (mainwheel PosZ –tailwheel PosZ))


For the rest of us, subtract the tailwheel’s PosY from the main wheel’s PosY
-0.738 minus -2.012 equals 1.274

then subtract the main wheel’s PosZ from the tailwheel’s PosZ
0.259 minus -6.142 equals 6.401

Now divide 1.274 by 6.401 in the Windows Calculator:-

scicalc01.jpg



and making sure the calculator is working in Dec, with Degrees set and the Inv box ticked, click on tan and you’ll see the static pitch is 11.256 degrees.

scicalc02.jpg





Now we can work out the Static Height:-

staticheight01.jpg



The aircraft pivots around the Flight Simulator centre (not the modeller’s centre), so it doesn’t take a genius to realise that the Static Height for an aircraft that sits level will be different from one with the same length of main gear that sits back on its tail.

The calculation is, (for mathematicians)
Static Height = cos (Static Pitch) x (-main wheel PosY)


And for the rest of us, get the value of PosY for a main wheel (second line of our effects) which is -2.012. Drop the minus sign.

Enter the value we got for Static Pitch (11.256 degrees) in the Calculator, making sure again that Dec and Degrees are set, and click cos.

scicalc03.jpg



Multiply the result by 2.012 and you get a Static Height of 1.973m. Maybe we should compare the actual values for the stock Spitfire IXe with these?

-------------------Static Height ----Static Pitch
Stock model figures 1.929m ............. 12 degrees
Calculated figures .. 1.973m ........... 11.256 degrees

4.4cm difference in height and less than a degree in pitch? We’ll call that a result!

This method sets the Static Pitch and Static Height for the aircraft to appear with the wheels just touching the ground and then to sink on to its suspension. You may prefer it to sink a bit less or not at all: if so you’ll want to reduce the Static Height a little – it’s up to you. Enter the values in the relevant boxes in AirWrench (Contacts tab, bottom of the page) and click the Update Contact Points button.

Job done.
 
Hairy Spin I might be misunderstating what it is your trying to explain with that process. It seems however that you are taking the long way around if leveling the aircraft properly is all your trying to do. Here is the simple way that I use and it requires only an adjustment to the aircraft.cfg file. In the aircraft.cfg file, the first 3 numerical strings of the contact
points (lines 0, 1, 2,) contain the numbers that determine landing gear position on the ground. The nose/tail gear number is in line zero while the main gear is line one and line two (left and right). The number is always the 4th number in the string as you see highlighted in the number strings below.

The number in line zero is obviously much lower than the numbers in line one and two when it is a tail dragger but will be the same or nearly the same if it has tricycle gear. Obviously because a plane with nose gear sits in more of a level attitude. If the nose/tail or main gear hover above the ground while the aircraft is parked or sink below the ground then these numbers need adjustment. Raise the numbers to raise the aircraft or lower these to lower the aircraft. While these numbers control where the wheels actually meet terrain, the static height controls the height that the wheels spawn at meaning the wheels can spawn high or low.

In other words if the numbers in line 0, 1, and 2, are properly adjusted but the static height is too high, the plane will spawn above the ground and quickly drop to a level position. This is what causes what is referred to as ground hop. If those numbers are too far apart causing the plane to jump or fall to its level position then it will sometimes explode on start up. Obviously once you get the numbers in lines 0, 1, and 2 correct you must adjust static pitch and height so that the plane indicates no vertical shifting on start up.

When I explain this someone always points out that aircraft contact point sequence is not necessarily configured in the order that I indicated. I can only say that in more than a few hundred times I have done this it has Never failed even once, so although it may technically be true you will probably never see it any differently than I have stated.

point.0=1, -13.68, 0, -3.7, 2165.354, 0, 0.549, 12, 0.253, 2.5, 0.498, 4, 5, 0, 158, 179

point.1=1, 2.02, -5.917, -7.4, 2165.354, 1, 0.549, 0, 0.633, 2.5, 0.8, 5.5, 6, 2, 158, 179

point.2=1, 2.02, 5.917, -7.4, 2165.354, 2, 0.549, 0, 0.633, 2.5, 0.8, 6, 6.5, 3, 158, 179

static_pitch= 13
static_cg_height= 6.2
 
Done that a few times too Lewis! Problem is if the points are off in Lon and Lat as well, like a freeware Spit I got which was a tippy crate on the ground - turned out the main points were too narrow and instead of the wheels being about 6 feet apart they were more like 4.5 feet!
This way you can see what's wrong.

See the SOH article link in the first post to get the other problem with the points being off

Cheers!
 
That would be a simple adjustment of another set of numbers in those same number strings. That would also be the only adjustment you would need to create visual reference for needing to use lights as you did above. I shall investigate and post when I figure that out which numbers those are!
 
Got it!

The numbers that determine the distance apart of the main landing gear is the third set of numbers in the string as you can see the tail gear is 0 because its centered and the left and right main are positive and negative numbers. So you just increase the numbers on strings 1, and 2, to widen the wheel base contact points and decrease to narrow the wheel base contact points. Unlike the height adjustments you can not see exactly where this contact point is so using the lights for just this one would be necessary. For the previously mentioned adjustments however it is a simple matter of raising and lowering a couple of those numbers.

point.0=1, -13.68, 0, -3.7, 2165.354, 0, 0.549, 12, 0.253, 2.5, 0.498, 4, 5, 0, 158, 179

point.1=1, 2.02, -5.917, -7.4, 2165.354, 1, 0.549, 0, 0.633, 2.5, 0.8, 5.5, 6, 2, 158, 179

point.2=1, 2.02, 5.917, -7.4, 2165
.354, 2, 0.549, 0, 0.633, 2.5, 0.8, 6, 6.5, 3, 158, 179
 
hi lewis, in some mossies I have the tailwheel is positioned a feet or so boyond ground level; accordingly to your theory (and practice also) would it as simple as adjusting that "0" on the first line?
I cannot at the present open the cgf of that airplane but what I expect do to is increasing thet "0" until the airplane sits in the right way on the ground, isn´t it?

sorry I´d better said I have to adjust the fourth number on the first line....
 
Gianluca to adjust the tail wheel position, first you would need to adjust the 4th number in the first string then the static pitch as I have highlighted below. Raise the number in the first string if the wheel sinks and lower it if the wheel hovers above the ground. I would modify it one full point at a time initially to avoid having to make a million adjustments then adjust by tenths of a number to fine tune. For instance -3.7 to
-4.7 then smaller increments -4.7 to -4.9 and so forth.

Once you get the tail wheel to set squarely on the ground now the attitude the plane spawns at will probably be off then it will immediately snap to the new correct position. If so you will now need to adjust the static pitch but you will increase the number to bring the tail down and decrease it to raise the tail up. Just the opposite of what you did with the other number. That should fix your problem.

point.0=1, -13.68, 0, -3.7, 2165.354, 0, 0.549, 12, 0.253, 2.5, 0.498, 4, 5, 0, 158, 179

point.1=1, 2.02, -5.917, -7.4, 2165.354, 1, 0.549, 0, 0.633, 2.5, 0.8, 5.5, 6, 2, 158, 179

point.2=1, 2.02, 5.917, -7.4, 2165.354, 2, 0.549, 0, 0.633, 2.5, 0.8, 6, 6.5, 3, 158, 179

static_pitch= 13
static_cg_height= 6.2

If you cannot open the aircraft.cfg file then right click on the file and set it to open with note pad just as you did the .xpd files.
 
Okay, let's give this a bump. :bump:

I read through this again and found all the math to be perfectly sensible, but reading about it in words makes the process comes across as impossibly complicated.

What I've actually been doing the last couple of years was a couple of iterations of trial and error adjustments in the cfg contact points table by looking at how the aircrafts sits in the game.

I can "see" the number relationships in my head, so I suppose I'm a special case (or a nut case)...
 
How about another bump :bump:, what a great thread to fix those contact points.

Ive been looking for a RAAF Kittyhawk Skin suitable for combat over Italy in 1943 and I found one in the ETO install - ETO_KittyhK450

It has the dreaded wheels half sunken in the ground and this thread may just have the answers I need, this will be my weekend project.

Mick

fHs3vzq.jpg
 
Will experiment with this new knowledge. Never seen this post before ! Rene just recently showed me how to fix the canopy glass problem with some of the early models for CFS3 . Now into fixing the small little nagging problems with CFS3,and this is one of those. Thanks guys for the useful information. I'm not too good with words but someone should post how to effect the canopy glass on some early models also. This important thread should be put in the knowledge base sticky. Regards ,Scott
 
Unfortunately the images that illustrated the process are lost. Good explanations of contact points can be found at FSDeveloper: the process is the same in CFS2, CFS3, FS9, FSX, P3D but I don’t know how MSFS might differ. I also found the process described above doesn’t take the compression ratio properly into account, but trial and error has a long and honourable history in flight sim development.
 
Thanks for the FSdeveloper hint hairyspin, I see your name popping up over there on a search for "contact points".

Just a follow up question, will adjusting the contact points fix the spawned in "mole" aircraft on airfields that sink into the ground leaving only the top half visible?

Am I correct that in the case of "mole" aircraft they are sitting on the centerline of the model and that there is something wrong with the contact points?


Mick
 
Back
Top