General Question Tethering - not docking or attachment

JMW

Aspiring Addon Developer
Joined
Aug 5, 2008
Messages
611
Reaction score
52
Points
43
Location
Happy Wherever
Hi,
I'm looking for information on "tethering". This is with a view to creating a scenario on in-flight refuelling. (atmospheric)
Does anyone know of any examples of this?

I've found ZTC's excellent project Ananke, but it's too complicated to get my head around the "Tethering" (if that is what it uses).

My programing skills are LESS than basic ( I've not managed to "Attach" anything via a module code ( the way I'd like to go) yet, for instance !

If you can bear with me, I'm willing to learn (Don't have very much time either, to devote to my beloved Orbiter:()

Regards,
JMW
 

JMW

Aspiring Addon Developer
Joined
Aug 5, 2008
Messages
611
Reaction score
52
Points
43
Location
Happy Wherever
Thanks David,
It's a good laugh -but not exactly what I'd envisaged ! Dangling on the end of an elastic "Fuel line" !! Pretty hairy stuff !!
What I could use would be the source code. Any ideas?
Is Matthew W still around?
Thanks for the "Line" anyway :p (or should I say Link)
Regards,
JMW
 

garyw

O-F Administrator
Administrator
Moderator
Addon Developer
Tutorial Publisher
Joined
May 14, 2008
Messages
10,485
Reaction score
209
Points
138
Location
Kent
Website
blog.gdwnet.com
I guess you could you a docking port at the end of a drogue.... then use Fuel MFD for the actual fuel transfer. Not sure how the parent vehicle would behave... As long as it doesn't try to add the mass of the child then it should work.....
 

JMW

Aspiring Addon Developer
Joined
Aug 5, 2008
Messages
611
Reaction score
52
Points
43
Location
Happy Wherever
Yes Gary,
That is the problem - once docked, we head uncontrollably for the deck!!
In view of DAvid's reply, am I right in now thinking that "tethers" are ALWAYS elastic??
JMW
 

Woo482

Moderator
Moderator
Addon Developer
GFX Staff
Joined
Feb 13, 2008
Messages
3,048
Reaction score
20
Points
78
Location
Earth?
I think if you had the docking port the cog it would not do that (but I dont realy make mods I just make models for them)
 

garyw

O-F Administrator
Administrator
Moderator
Addon Developer
Tutorial Publisher
Joined
May 14, 2008
Messages
10,485
Reaction score
209
Points
138
Location
Kent
Website
blog.gdwnet.com
Yes, woo482 is right. It's not mass but center of gravity. That shifts and suddenly you are not flying but crashing!
The only other way I can think of to do this is by having a variant of the Fuel Transfer MFD which works with vessels that are (for example) withing 0.05KM of each other......
 

Woo482

Moderator
Moderator
Addon Developer
GFX Staff
Joined
Feb 13, 2008
Messages
3,048
Reaction score
20
Points
78
Location
Earth?
I right ? Cool I am right for once !!!!
 

tblaxland

O-F Administrator
Administrator
Addon Developer
Webmaster
Joined
Jan 1, 2008
Messages
7,320
Reaction score
25
Points
113
Location
Sydney, Australia
JMW, Ananke uses a docking port to connect the payload to the tether so that the default Ctrl-D action can release it. This is sufficient for our purposes since the g-forces of the tether ensure the relative orientation of the payload and tether stays the same.

Orbiter does not directly provide what you want to acheive but it does provide an excellent API so you can acheive just about anything you want. The first step is to define how you want the "tether" (or fuel line, in this case) to behave. Assuming you want both aircraft to maintain their normally aerodynamic behaviour, I would recommend against actually connecting them together. Instead what I would do is control the position of the fuel line drogue so that it just appears that they are connected together. I would do this by scaling/rotating the fuel line mesh group.

Another problem I see is how you would control the refuelling vessel while you are chasing it. Do you have some sort of autopilot in mind for that?
 

David

Donator
Donator
Joined
Apr 14, 2008
Messages
137
Reaction score
0
Points
0
am I right in now thinking that "tethers" are ALWAYS elastic??

I think that it would be accurate to say that everything is elastic, to some extent. TetherMFD allows you to set the amount of elasticity (the spring constant), as "tether force." This value represents the force that will be exerted by the tether, as a function of the length that it is extended, from its original length. So, the larger the force, the less stretchy the tether is, and the smaller the force, the easier it is to stretch the tether. A large tether force also means that, if you fly away from the object (if it is fixed or has large inertia) to which you are tethered, then there will be a big rebound when you reach the extent of the tether, whereas a small tether force will just kind of gradually slow you down, and then gently pull you back.

I know nothing about where you might obtain the source code.
 

tblaxland

O-F Administrator
Administrator
Addon Developer
Webmaster
Joined
Jan 1, 2008
Messages
7,320
Reaction score
25
Points
113
Location
Sydney, Australia
I forgot to mention elasticity in relation to Ananke. The Ananke tether is modelled as inelastic in its present form since the first goal was to demonstrate proof of the slingshot concept. This may not always be the case but we have plenty of other areas to work in the mean time.

In the scenario I mention above, you could model any forces applied to the vessels by through the tether using the AddForce function. The vessels still do not need to be connected for this to work and, as I mention above, they would retain their independent aerodynamics if they weren't connected.
 

JMW

Aspiring Addon Developer
Joined
Aug 5, 2008
Messages
611
Reaction score
52
Points
43
Location
Happy Wherever
Thanks EVERYONE !
I'll have to read, search & digest this lot !
Thanks for all your inputs.
JMW
 

JMW

Aspiring Addon Developer
Joined
Aug 5, 2008
Messages
611
Reaction score
52
Points
43
Location
Happy Wherever
Help !

Hi,
Trying to continue this, I'm using Aircraft.dll 747 as the refueller aircraft, but doesn't seem its Autopilot operates without it being the focus aircraft. (Not under its control when I'm in the craft being refuelled)
Not a lot of good !
I've tried searching for the source code, which doc. says is available as a separate package , but can't find it.
Any ideas?
JMW
 

garyw

O-F Administrator
Administrator
Moderator
Addon Developer
Tutorial Publisher
Joined
May 14, 2008
Messages
10,485
Reaction score
209
Points
138
Location
Kent
Website
blog.gdwnet.com
I believe aircraft.dll was written by MaverickTech. If he isn't on here I can ask him about it when I speak to him next.
 

JMW

Aspiring Addon Developer
Joined
Aug 5, 2008
Messages
611
Reaction score
52
Points
43
Location
Happy Wherever
Thanks
If you do speak, could you ask if he used RadarMFD, cause I'm having same trouble with CTD and pen writing that I get with that if I leave the Radar panel open. And is there a fix for this?
Regards,
JMW
Correction:
You might have noticed I'm talkin' nonsense here ! Got confused with AutopilotMFD - that's what seems to crash same as RadarMFD, if leave radar panel open.
Sorry GaryW & MaverickTech !!
I'm trying to use AutopilotMFD for this project but it's a bit cumbersome.
Would prefer if could utilise aircraft.dll autopilot if possible for refueller (while flying in other aircraft).
Sorry for confusion.
JMW
 
Last edited:

JMW

Aspiring Addon Developer
Joined
Aug 5, 2008
Messages
611
Reaction score
52
Points
43
Location
Happy Wherever
Hi,
Progress so far.
As you can see, still having trouble with disappearing refuel nozzle. (Too close to camera)
Still working on media of refuel line . (Mesh/tether or both )
Any help would be appreciated.
JMW
 
Last edited:

garyw

O-F Administrator
Administrator
Moderator
Addon Developer
Tutorial Publisher
Joined
May 14, 2008
Messages
10,485
Reaction score
209
Points
138
Location
Kent
Website
blog.gdwnet.com
Impressive!!! Artlav's intermod2 might be able to fix the clipping issue with the refueling nozzle.

I'm not sure where Mav's disappeared to but when he surfaces I'll ask him about the aircraft.dll (He travels a lot for work).
 

liber

Member
Joined
Aug 15, 2008
Messages
950
Reaction score
2
Points
18
Location
Room
Website
www.bw.org
JMW wow,look amazing...why you don't put file here,maybe someone got some idea hot to make it right.
 

JMW

Aspiring Addon Developer
Joined
Aug 5, 2008
Messages
611
Reaction score
52
Points
43
Location
Happy Wherever
Hi,
I'm trying to modify FuelMFD for this project, but even the unmodified code will not compile.
What am I doing wrong? (remember my "basic programing skills")
Using 2003 Express Edition, message comes as below:

---------- Capture Output ----------
> "C:\Microsoft Visual C++ Toolkit 2003\bin\cl.exe" @orbiter.rsp FuelMFD.cpp
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86
Copyright (C) Microsoft Corporation 1984-2002. All rights reserved.
cl
/Ox /GX /ML /LD
/I"c:\Microsoft Visual C++ Toolkit 2003\include"
/I..\..\include
/link /libpath:"c:\Microsoft Visual C++ Toolkit 2003\lib"
/link /libpath:..\..\lib
/link kernel32.lib user32.lib gdi32.lib
/link orbitersdk.lib orbiter.lib
/link /nodefaultlib:"MSVCRT.LIB" /nodefaultlib:"MSVCIRT.LIB"
FuelMFD.cpp
Microsoft (R) Incremental Linker Version 7.10.3077
Copyright (C) Microsoft Corporation. All rights reserved.
/out:FuelMFD.dll
/dll
/implib:FuelMFD.lib
"/libpath:c:\Microsoft Visual C++ Toolkit 2003\lib"
/libpath:..\..\lib
kernel32.lib
user32.lib
gdi32.lib
orbitersdk.lib
orbiter.lib
/nodefaultlib:MSVCRT.LIB
/nodefaultlib:MSVCIRT.LIB
FuelMFD.obj
Creating library FuelMFD.lib and object FuelMFD.exp
FuelMFD.obj : error LNK2019: unresolved external symbol "struct tagPOINT __cdecl TextXY(struct HDC__ * const,int,int,unsigned long,char const *,...)" (?TextXY@@YA?AUtagPOINT@@QAUHDC__@@HHKPBDZZ) referenced in function "public: void __thiscall FuelMFD::ShowFuelInfo(struct HDC__ * const)" (?ShowFuelInfo@FuelMFD@@QAEXQAUHDC__@@@Z)
FuelMFD.obj : error LNK2019: unresolved external symbol "struct tagPOINT __cdecl TextXY(struct HDC__ * const,unsigned long,char const *,...)" (?TextXY@@YA?AUtagPOINT@@QAUHDC__@@KPBDZZ) referenced in function "public: void __thiscall FuelMFD::ShowFuelInfo(struct HDC__ * const)" (?ShowFuelInfo@FuelMFD@@QAEXQAUHDC__@@@Z)
FuelMFD.obj : error LNK2019: unresolved external symbol "struct tagPOINT __cdecl TextXY(struct HDC__ * const,int,int,char const *,...)" (?TextXY@@YA?AUtagPOINT@@QAUHDC__@@HHPBDZZ) referenced in function "public: void __thiscall FuelMFD::ShowFuelGauge(struct HDC__ * const,int,int,struct FUEL_TANK const &)" (?ShowFuelGauge@FuelMFD@@QAEXQAUHDC__@@HHABUFUEL_TANK@@@Z)
FuelMFD.obj : error LNK2019: unresolved external symbol "struct tagPOINT __cdecl SetTextPos(struct HDC__ * const,int,int)" (?SetTextPos@@YA?AUtagPOINT@@QAUHDC__@@HH@Z) referenced in function "public: void __thiscall FuelMFD::ShowFuelGauge(struct HDC__ * const,int,int,struct FUEL_TANK const &)" (?ShowFuelGauge@FuelMFD@@QAEXQAUHDC__@@HHABUFUEL_TANK@@@Z)
FuelMFD.obj : error LNK2019: unresolved external symbol "struct tagPOINT __cdecl GetTextPos(struct HDC__ * const)" (?GetTextPos@@YA?AUtagPOINT@@QAUHDC__@@@Z) referenced in function "public: void __thiscall FuelMFD::ShowFuelGauge(struct HDC__ * const,int,int,struct FUEL_TANK const &)" (?ShowFuelGauge@FuelMFD@@QAEXQAUHDC__@@HHABUFUEL_TANK@@@Z)
FuelMFD.obj : error LNK2019: unresolved external symbol "struct tagPOINT __cdecl SetTextXY(struct HDC__ * const,int,int)" (?SetTextXY@@YA?AUtagPOINT@@QAUHDC__@@HH@Z) referenced in function "public: void __thiscall FuelMFD::ShowFuelGauge(struct HDC__ * const,int,int,struct FUEL_TANK const &)" (?ShowFuelGauge@FuelMFD@@QAEXQAUHDC__@@HHABUFUEL_TANK@@@Z)
FuelMFD.obj : error LNK2019: unresolved external symbol "struct tagPOINT __cdecl TextXY(struct HDC__ * const,int,int,unsigned long,unsigned long,char const *,...)" (?TextXY@@YA?AUtagPOINT@@QAUHDC__@@HHKKPBDZZ) referenced in function "public: void __thiscall FuelMFD::ShowTargetTank(struct HDC__ * const)" (?ShowTargetTank@FuelMFD@@QAEXQAUHDC__@@@Z)
FuelMFD.obj : error LNK2019: unresolved external symbol "struct tagPOINT __cdecl TextXY(struct HDC__ * const,char const *,...)" (?TextXY@@YA?AUtagPOINT@@QAUHDC__@@PBDZZ) referenced in function "public: void __thiscall FuelMFD::ShowHelp(struct HDC__ * const)" (?ShowHelp@FuelMFD@@QAEXQAUHDC__@@@Z)
FuelMFD.obj : error LNK2019: unresolved external symbol "void __cdecl MFDUpdate(struct HDC__ * const,int,int)" (?MFDUpdate@@YAXQAUHDC__@@HH@Z) referenced in function "public: virtual void __thiscall FuelMFD::Update(struct HDC__ *)" (?Update@FuelMFD@@UAEXPAUHDC__@@@Z)
FuelMFD.dll : fatal error LNK1120: 9 unresolved externals
> Terminated with exit code 2.

Using 2005 Express Edition, comes as below:
1>------ Build started: Project: K-L1011-P, Configuration: Release Win32 ------
1>Linking...
1> Creating library .\..\..\..\Modules/ShuttlePB.lib and object .\..\..\..\Modules/ShuttlePB.exp
1>FuelMFD.obj : error LNK2019: unresolved external symbol "struct tagPOINT __cdecl TextXY(struct HDC__ * const,int,int,unsigned long,char const *,...)" (?TextXY@@YA?AUtagPOINT@@QAUHDC__@@HHKPBDZZ) referenced in function "public: void __thiscall FuelMFD::ShowFuelInfo(struct HDC__ * const)" (?ShowFuelInfo@FuelMFD@@QAEXQAUHDC__@@@Z)
1>FuelMFD.obj : error LNK2019: unresolved external symbol "struct tagPOINT __cdecl TextXY(struct HDC__ * const,unsigned long,char const *,...)" (?TextXY@@YA?AUtagPOINT@@QAUHDC__@@KPBDZZ) referenced in function "public: void __thiscall FuelMFD::ShowFuelInfo(struct HDC__ * const)" (?ShowFuelInfo@FuelMFD@@QAEXQAUHDC__@@@Z)
1>FuelMFD.obj : error LNK2019: unresolved external symbol "struct tagPOINT __cdecl TextXY(struct HDC__ * const,int,int,char const *,...)" (?TextXY@@YA?AUtagPOINT@@QAUHDC__@@HHPBDZZ) referenced in function "public: void __thiscall FuelMFD::ShowFuelGauge(struct HDC__ * const,int,int,struct FUEL_TANK const &)" (?ShowFuelGauge@FuelMFD@@QAEXQAUHDC__@@HHABUFUEL_TANK@@@Z)
1>FuelMFD.obj : error LNK2019: unresolved external symbol "struct tagPOINT __cdecl SetTextPos(struct HDC__ * const,int,int)" (?SetTextPos@@YA?AUtagPOINT@@QAUHDC__@@HH@Z) referenced in function "public: void __thiscall FuelMFD::ShowFuelGauge(struct HDC__ * const,int,int,struct FUEL_TANK const &)" (?ShowFuelGauge@FuelMFD@@QAEXQAUHDC__@@HHABUFUEL_TANK@@@Z)
1>FuelMFD.obj : error LNK2019: unresolved external symbol "struct tagPOINT __cdecl GetTextPos(struct HDC__ * const)" (?GetTextPos@@YA?AUtagPOINT@@QAUHDC__@@@Z) referenced in function "public: void __thiscall FuelMFD::ShowFuelGauge(struct HDC__ * const,int,int,struct FUEL_TANK const &)" (?ShowFuelGauge@FuelMFD@@QAEXQAUHDC__@@HHABUFUEL_TANK@@@Z)
1>FuelMFD.obj : error LNK2019: unresolved external symbol "struct tagPOINT __cdecl SetTextXY(struct HDC__ * const,int,int)" (?SetTextXY@@YA?AUtagPOINT@@QAUHDC__@@HH@Z) referenced in function "public: void __thiscall FuelMFD::ShowFuelGauge(struct HDC__ * const,int,int,struct FUEL_TANK const &)" (?ShowFuelGauge@FuelMFD@@QAEXQAUHDC__@@HHABUFUEL_TANK@@@Z)
1>FuelMFD.obj : error LNK2019: unresolved external symbol "struct tagPOINT __cdecl TextXY(struct HDC__ * const,int,int,unsigned long,unsigned long,char const *,...)" (?TextXY@@YA?AUtagPOINT@@QAUHDC__@@HHKKPBDZZ) referenced in function "public: void __thiscall FuelMFD::ShowTargetTank(struct HDC__ * const)" (?ShowTargetTank@FuelMFD@@QAEXQAUHDC__@@@Z)
1>FuelMFD.obj : error LNK2019: unresolved external symbol "struct tagPOINT __cdecl TextXY(struct HDC__ * const,char const *,...)" (?TextXY@@YA?AUtagPOINT@@QAUHDC__@@PBDZZ) referenced in function "public: void __thiscall FuelMFD::ShowHelp(struct HDC__ * const)" (?ShowHelp@FuelMFD@@QAEXQAUHDC__@@@Z)
1>FuelMFD.obj : error LNK2019: unresolved external symbol "void __cdecl MFDUpdate(struct HDC__ * const,int,int)" (?MFDUpdate@@YAXQAUHDC__@@HH@Z) referenced in function "public: virtual void __thiscall FuelMFD::Update(struct HDC__ *)" (?Update@FuelMFD@@UAEXPAUHDC__@@@Z)
1>.\..\..\..\Modules/ShuttlePB.dll : fatal error LNK1120: 9 unresolved externals
1>Build log was saved at "file://c:\OrbiterSTS\OrbiterSDK\samples\ShuttlePB\Release\BuildLog.htm"
1>K-L1011-P - 10 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Sorry for long message.
JMW
 
Top