Erstellung eines AFP-Modells aus einem FMS-Modell am Beispiel der Piper CUB mit Schwimmern von Shinichiro Nishiya. Ziel: Ein Wasserflugzeug, welches in jeder Landschaft, die Wasser enthält, geflogen werden kann. Das Modell soll eine Spannweite von 3m bekommen und elektrisch angetrieben werden. Was wird benötigt? MetasequoiaLE CAD-Programm zur Bearbeitung des 3-D-Modells (.mqo). Die LE-Version ist Freeware. Microsoft Paint Bildbearbeitungs-Programm aus dem Windows-Zubehör zur Erstellung und Bearbeitung von Bitmaps (.bmp) Ipacs-Konverter Umsetzung der Metasequoia-Ausgabedatei (.suf) in eine AFP .obj-Datei. Dieses Programm kann hier unter Angabe von Name und Adresse kostenlos angefordert werden. Microsoft Wordpad Text-Editor aus dem Windows-Zubehör zur einfachen Erstellung und Bearbeitung der AFP-Dateien (.obj, .tmg und .tmd) Microsoft Excel Windows Tabellenkalkulationsprogramm, nicht unbedingt nötig, aber sehr hilfreich, um bestimmte Werte für die .tmd-Datei zu errechnen. Schritt 1 Erlaubnis des Eigentümers einholen Du hast Dir nun ein schönes FMS-Modell ausgesucht und festgestellt, dass es dazu auch eine .mqo-Datei gibt. Deine erste Tätigkeit sollte nun sein, Dir beim Eigentümer die Erlaubnis zum ‚Umbau’ zu holen. Wenn Du bei dieser Anfrage gleich mitteilst, dass Du im Fall einer Veröffentlichung selbstverständlich die Quelle angibst (Autor + Email-Adresse +evtl. vorhandene Homepage), dann sollte es keine Probleme geben. Schritt 2: Anpassung des Modells in Meta Lade das Modell in Meta (File / open / öffnen / litecubfloat.mqo) und schaue Dir die einzelnen Objekte an. Da es ein japanisches Modell ist und wohl die meisten von uns der japanischen Sprache nicht mächtig sind, solltest Du zunächst die einzelnen Objekte identifizieren und diese mit deutschen Namen zu versehen. Dazu werden zunächst einmal alle Teile entriegelt (Entfernen des Schlüssel-Symbols im Object-Panel bei allen Teilen) und unsichtbar gemacht (Entfernen aller Augensymbole im gleichen Panel). Nun kann man diese der Reihe nach sichtbar machen (Augensymbol aktivieren, danach Doppelclick auf das Objekt) und umbenennen. Hierzu ist mit den Tasten F1 bis F3 jeweils die richtige Sicht einzustellen. Dabei sollte darauf geachtet werden, dass der Parameter ‚Mirroring’ bei allen Teilen auf ‚None’ steht. Die Farben sollten von 0 – 35 durchnumeriert werden (Dies entspricht dann den Einträgen in der mqo-Datei, wenn man sich diese mit Wordpad ansieht). Danach die mqo-Datei unter einem neuen Namen abspeichern. Nun kann man gleich überprüfen, ob wirklich alle 35 Farben benutzt werden. Hierzu öffnet man die neue mqo-Datei mit einem Texteditor, z. B. Wordpad. Sucht man nun nach den Einträgen M(0) bis M(35), sieht man genau, welche Farben (material) benutzt werden. Die überflüssigen Einträge kann man dann in Meta in der mqo löschen (Funktion ‚Delete’ im ‚Material Panel’). Jedes Objekt sollte möglichst nur eine Textur (Farbe) haben. Ist dies nicht der Fall, erstellt der Ipacs-Konverter für jede Farbe ein eigenes Teilobjekt. Die einzelnen Objekte sollten Namen bekommen, die für AFP sinnvoll bzw. unbedingt nötig sind. So werden aus den bisherigen Teilen die für AFP benötigten: Pilot | Pilot | Hoehenleitwerk | Leftstabilizer/Leftelevator | | Rightstabilizer/Rightelevator | Antenne | Antenna | Tragflaeche | Leftwing/Leftflap/Leftaileron | | Rightwing/Rightflap/Rightaileron | Streben | Leftwingstruts/Rightwingstruts | Rumpf | Fuselage | Seitenleitwerk | Stabilizer/Rudder | Kuehlrippen | Engineparts1 | Zylinderkoepfe | Engineparts2 | Spinner | Propeller | Luftschraubenkreis | Blade1/Blade2 | Kabinenverglasung | Glass | Akkus | Accu | Servos | Servos | Empfaenger | Receiver | Pilotensitz | Seat | Schwimmer | Leftgear/Leftfloat | | Rightgear/Rightfloat | Wasserruder | entfällt |
|
Es macht Sinn, überflüssige oder nicht gewünschte Teile zu entfernen (z. B. das Objekt Wasserruder mit Funktion ‘Delete’ im Object-Panel) und die Wasserruder an den Schwimmern mittels der ‘Rope’-Funktion im Command-Panel und anschliessend der Taste ‘Entf’. .
Zur besseren Übersicht kann man die einzelnen Teile in eine bestimmte Reihenfolge bringen: Markiere das Objekt ‚Rumpf’, erzeuge mit ‘Selected / Move faces to a new Object’ ein neues Objekt und nenne dieses ‘Fuselage’. Lösche danach das Objekt ‚Rumpf’ im ‚Object Panel’ mit der Funktion ‚Delete’. Erzeuge auf die gleiche Weise aus ‚Kabinenverglasung’ ‚Glass’ ‚Pilotensitz’ ‚Seat’ ‚Pilot’ ‚Pilot’ ‚Antenne’ ‚Antenna’ ‚Akkus’ ‚Accu’ ‚Empfänger’ ‚Receiver’ Markiere das Object ‚Servos’, erzeuge mit ‚Clone / Create symmetry’ ein weiteres Servo, markiere beide mit der Lasso-Funktion, bringe beide Servos mittels ‚Move faces to a new Object’ ein neues Object und nenne dieses ‚Servos’. Verfahre ebenso mit den Objekten ‚Zylinder’ ( Enginepart1) und ‚Zylinderkoepfe’ ( Enginepart2). Trenne danach in der Sicht von (Taste F2) oben mit der Funktion ‚Knife’ im ‘Command-Panel’ einen Teil der Tragfläche so aus, dass ein Teil derselben als Klappen und Querruder benutzt werden kann Teile die Fläche in der Mitte, indem Du die eine Hälfte mit dem Lasso markierst und dann mit ‚Move faces to a new Object’ in ein eigenes Objekt kopierst. Da wir Landeklappen und Querruder vorsehen, sollte die starke V-Form der Fläche reduziert werden. Nimm dazu die linke Hälfte in der Sicht von vorne, markiere diese, wähle im ‚Command-Panel’ die Funktion ‚Rot’ und klicke dann in dem sich nun öffnenden Fenster ‚Rotate’ auf ‚Number’. Es geht ein weiteres ‚Rotate’-Fenster auf, in dem Du nun das rechte Achsenkreuz aktivierst, bei dem die Drehung um die Z-Achse (blau) gezeigt ist. Trage nun bei ‚Angle’ den Wert 4.00 ein und klicke auf O.K. Verfahre genauso mit der rechten Tragflächenhälfte, nimm hier aber bei ‚Angle’ den Wert –4.00. Trenne die Landeklappe und das Querruder von der linken Tragflächenhälfte ab und nenne die 3 Teile Leftwing, Leftflap und Leftaileron. Kopiere die rechte Tragflächenhälfte nach dem gleichen Muster und trenne Landeklappe und Querruder ab; Nenne die Teile ‚Rightwing’, ‚Rightflap’ und ‚Rightaileron’. Schalte anschliessend auf die Seitenansicht ein, markiere beide Flächenhälften incl. Klappen und Querruder, sowie dem oberen Teil der Wingstruts (Siehe Bild1) und verschiebe diese mit Hilfe des ‚Edit-Panels’ nach unten (Y-Richtung = grün), bis die Flächen wieder auf dem Rumpf aufliegen (Bild2). Jetzt eine ganz wichtige Sache: Schließe die offenen Flächen der Tragflächen und der abgetrennten Klappen und Querruder mit der Funktion ‚Create’. Wähle hierbei aus dem Fenster ‚Create Face’ ‚Front’ und ‚Face’ aus. Achte darauf, dass im ‚Material Panel’ die richtige Textur (hier: LITECUBFLOAT.BMP) ausgewählt ist! AFP benötigt diese geschlossenen Flächen, um die Drehpunkte der Ruder korrekt berechnen zu können! Hinweis: Das Objekt, an dem die offenen Flächen geschlossen werden sollen, muss im ‚Object Panel’ blau unterlegt sein! Korrigiere bei dieser Aktion gleich die unsaubere Kante, wie sie hier an der Tragfläche zu sehen ist. Markiere hierzu die Punkte entlang der Mittellinie (z-Achs, blaue Hilfslinie) und ziehe die Tragfläche mittels ‚Edit Panel’ (Kreuz auf der rechten Seite, X) nach links über die Mittellinie. Schneide mit der Funktion ‚Knife’ von unten nach oben entlang der blauen Mittellinie nach oben. Markiere mittels Lasso die links von der Mittellinie stehenden Teile und bringe sie mit ‚Move faces to a new Object’ in ein neues Objekt (im Beispiel ‚obj1’ ) und lösche dieses anschließend. Achte bitte darauf, die Auswahl mit dem Parameter ‚Unsel All’ aus dem ‚Edit-Panel’ wieder zu löschen. Nun kannst Du auch diese Seite schön mit neuen Faces schliessen. Hast Du alle offenen Flächen geschlossen, kopiere das Objekt ‚Wingstruts’ und nenne es ‚Leftwingstruts’. Kopiere diese wiederum mit der Funktion ‚ Clone / Create symmetry’ und nenne das neue Objekt ‚Rightwingstruts’. Trenne vom ‚Hoehenleitwerk’ den vorderen Teil ab und nenne ihn ‚Leftstabilizer’. Bei genauem Hinsehen wird Dir auffallen, dass die Seitenfläche, die zum Rumpf zeigt, grau statt gelb ist. Dies würde beim Konvertieren in das .obj-Format dazu führen, dass 2 Objekte entstehen würden, und zwar ‚Leftstabilizer’ und ‚Leftstabilizer01’. Markiere daher mittels ‚Command / Map’ und ‚Select Face’ in der dann gezeigten Schaltfläche ‚Mapping’ die graue Fläche und färbe sie dann mit ‚Select / set material to faces’ diese gelb ein. Achte bitte darauf, dass bei ‚Mapping’ ein Haken bei der Funktion ‚Realtime’ gesetzt ist. Anschließend die Auswahl wieder aufheben! Kopiere den verbliebenen Teil des Objektes ‚Hoehenleitwerk’ und nenne diesen ‚Leftelevator’. Erzeuge mittels ‚Clone / Create symmetry’ die Gegenstücke ‚Rightstabilizer’ und ‚Rightelevator’. Verfahre mit dem ‚Seitenleitwerk’ ebenso und erzeuge die beiden Teile ‚Stabilizer’ und ‚Rudder’. Markiere nun vom Objekt ‚Schwimmer’ nur die schrägen Streben und kopiere sie. Nenne das neue Objekt ‚Leftgear’. Mit den Funktionen ‚Clone / Create symmetry’ erhältst Du das Objekt ‚Rightgear’. Kopiere nun die vordere Strebe (das geht am einfachsten in einer vergrößerten Seitenansicht mit der Markierfunktion ‚Rect’ im ‚Command-Panel) und nenne sie ‚Frontstruts’. Führe die gleiche Operation für die hintere Strebe durch und nenne diese ‚Backstruts’. Kopiere nun den verbleibenden Rest und nenne ihn ‚Leftfloat’. Erzeuge dann eine symmetrische Kopie, um den anderen Schwimmer zu bekommen, den Du ‚Rightfloat’ nennst. Jetzt fehlt noch die Luftschraube. Für den AFP brauchen wir diese in Form von getrennt angelegten Blättern, die an einem ‚Propeller’ befestigt sind. Zur einfacheren Handhabung kannst Du Dir aus der Datei ‚PROPS.MQO’ etwas passendes aussuchen (z. B. Prop2, Blade3 und Blade4). Starte hierzu MetasequoiaLE ein weiteres Mal und öffne die Datei ‚PROPS.MQO’. Markiere das Objekt ‚Blade3’, selektiere es mit der Funktion ‚Sel Obj’ und drücke dann an der Tastatur die Tasten ‚Strg’ und ‚c’. Wechsele in das andere Meta-Programm und drücke dort die Tasten ‚Strg’ und ‚v’. Gehe zurück zu den Props, hebe die Auswahl des ‚Blade3’ auf und selektiere ‚Blade4’. Kopiere es auf die gleiche Weise in das andere Meta-Programm. Dort siehst Du jetzt die beiden Blätter als neue Objekte. Nenne sie ‚Blade1’ und ‚Blade2’. Markiere beide Blades und weise Ihnen über das Funktion ‚Slected / set material to faces’ eine Farbe, z.B. Schwarz, zu. Drehe sie um 45 Grad um die z-Achse (blau); das sieht besser aus, als wenn die Blätter senkrecht stehen. Mache die beiden Blätte und das Objekt ‚Propeller’ sichtbar, markiere die beiden Blätter und passe die Größe und Position an den ‚Propeller’ an. Nutze hierzu die Funktionen ‚Verschieben’ und ‚Zoomen’ des ‚Edit’-Panels! Prüfe Größe und Position in allen Ansichten (Seite, vorne und oben). Wenn die Größe und die ungefähre Position stimmen, kopiere auf die gleiche Art den Propeller ‘Prop2’. Lösche die Objekte ‚Spinner’ und ‘Propeller’ und benenne ‘Prop2’ um in ‘Propeller’. Passe die Teile durch Verschieben aneinander an. Achte dabei darauf, dass alle 3 Teile in der Vorderansicht mittig angeordnet sind! Denke daran, auch dem Propeller eine ‘Farbe’ zu geben! Verschiebe nun den ‚Propeller’ incl. der ‚Blades’ so, dass er zum Objekt ‚Fuselage’ passt! Hinweis: Die Propellerblätter sollten unbedingt eine bmp-Datei zugewiesen bekommen. Nur dann wird der drehende Propeller in AFPD korrekt dargestellt. Eine reine Farbzuweisung über Meta reicht hier nicht aus! Um die Lücke zwischen ‘Fuselage’ und Propeller’ zu schliessen, kannst Du nun noch mit der Funktion ‘Primitive’ ein Rohr erzeugen, dieses drehen und in der Grösse an den ‘Propeller’ anpassen. Nenne dieses Rohr dann ‘Engine’ Damit ist die erste Hürde genommen und wir haben ein Flugzeug, welches alle für den AFP benötigten Teile aufweist. Bei den vorgegebenen Einstellungen des Programms MetasequoiaLE (View / Grid / Set Grid) entspricht jedes Raster-Quadrat einer Grösse von 50 cm. Das Modell würde also eine Spannweite von ca. 170 cm haben. Im Beispiel wollen wir eine Spannweite von 3 m realisieren. Markiere hierzu alle Objekte über ‚Edit / Sel all’. Dann gehe auf die Sicht von oben (Taste F2) und skaliere über das Edit-Panel (mitleren Kreis mit gedrückter linker Maus-Taste nach rechts ziehen) das Modell auf die passende Größe. Dann verschieben wir dieses in Z-Richtung (blau) so weit, bis die rote Linie wieder im angedachten Schwerpunkt (ca. 1/3 von der Tragflächenvorderkante) liegt. Danach wechseln wir in die Seitenansicht (Taste F1) und stellen hier den Schwerpunkt durch Verschiebung in Y-Richtung (grün) so ein, dass er durch die Mitte des Spinners verläuft. Diese Einstellungen sind wichtig, da AFP diese Einstellungen auswertet! Hier das Ergebnis. Schritt 3: Erstellung der Bitmaps mit Paint Lege nun für jedes Material in Meta eine passende .bmp-Datei an und trage den entsprechenden Namen im Material ein. AFP benötigt die Materialien als Bitmaps, um Flackereffekte und ‚durchsichtige Stellen’ zu vermeiden. Merke Dir zum jeweiligen Material in Meta die zugehörigen RGB-Werte. Starte mit ‚Start/Programme/Zubehör/Paint’ das Programm Paint. Stelle mit ‚Bild/Attribute’ eine Größe von 64 x 64 Pixel ein. Wähle mit ‚Farben/Palette bearbeiten’ und ‚Farben bearbeiten/Farben definieren’ die gewünschte Farbe ein, wähle ‚Farben hinzufügen/OK’ und fülle damit das Bild. Speichere das Bild als ‚24-Bit-Bitmap’ als bmp-Datei ab. Trage nun in Meta für das jeweilige Material als HSV-Werte ‚0’, ‚0’, ‚100’ ein und bei ‚tex’ den kompletten Namen der bmp-Datei ein. Erstelle auf diese Weise zu jeder Textur eine passende bmp-Datei. Doppelt vorkommende Farben (im Beispiel weiss) kann man durch eine ersetzen, indem man z. B. die mqo-Datei öffnet und den entsprechenden Eintrag ersetzt. Hinweis: Ist die Verglasung der Kabinenhaube durchsichtig, wie im vorliegenden Fall, darf hierfür keine bmp-Datei erstellt werden. In diesem Fall bleibt die entsprechende Textur unbearbeitet! Speichere die endgültige mqo-Datei unter einem möglichst kurzen Namen ab (File / Save as’ ‚AS_LCF.mqo’) Nun benötigen wir noch eine Vorschau-Datei, damit das Modell im Auswahlmenü von AFP erscheint: Drehe hierzu in Meta das Modell so, wie es in der Vorschau aussehen soll. Mache dann davon einen ‘Screenshot’ (Taste ‘Druck’) und lade diesen in ein Bildbearbeitungsprogramm, z. B. Paint (Bearbeiten / Einfügen). Bringe nun das Bild bzw. den gewünschten Ausschnitt davon auf eine Größe von 128 x 128 Pixel und speichere es als 24 Bit-bmp-Datei unter den Namen ‘Thumb.bmp’ ab. Schritt 4: Konertierung mit Convert Zur weiteren Verarbeitung muss nun aus den Daten der mqo-Datei eine Zwischendatei erstellt werden, aus der der Ipacs-Konverter eine obj-Datei machen kann. Hierzu wird in Meta zusätzlich zur mqo-Datei mit den Funktionen ‚File / Save as’ eine Datei mit den Namen ‚AS_LCF.suf’ erstellt. Stelle hierzu im Menü ‚SUF Export’ die Werte ‚Multiply 1.000 x 1 digit’ ein und bestätige dann mit ‚OK’. Das Konverter-Programm muss sich im gleichen Ordner wie die mqo-Datei und die bmp’s befinden. Starte nun mit ‚Start / Programme / Zubehör / Eingabeaufforderung’ eine Dos-Box, gehe in den Ordner mit der mqo-Datei und starte den Ipacs-Konverter mit der Eingabe ‚Convert AS_LCF scale 0.001’. Der Konverter bringt nun Meldungen über den Ablauf. Im vorliegenden Beispiel sehen wir, dass an 2 Stellen Fehler gemeldet werden, und zwar bei ‚Receiver’ und ‚Rudder’. Öffne nun die Datei AS_LCF.mqo mit Wordpad und suche nach ‚Receiver’. Wir sehen nun, dass in diesem Objekt 2 Materialien verwendet werden, und zwar M(1) und M(3). Wir ändern M(3) in M(1), speichern das Ganze ab und versuchen unser Glück erneut: Öffnen der geänderten mqo-Datei mit Meta, erneutes Speichern als .suf, neuer Konverter-Lauf. Das Ergebnis ist höchst erfreulich, denn die Fehlermeldung beim Objekt ‚Receiver’ ist verschwunden! Also versuchen wir unser Glück noch einmal, öffnen wieder die mqo-Datei mittels Wordpad und suchen nach ‚Rudder’. Wir sehen auch hier 2 Materialien, und zwar M(4) und M(7). Wir ändern alle M(7) in M(4) und versuchen es wieder. Und diesmal erfolgt die Konvertierung ohne Fehlermeldungen! Als Ergebnis erhalten wir jetzt eine Datei mit dem Namen ‚AS_LCF.obj’. Diese enthält das Modell in einer Form, die vom AFP verstanden wird. Somit kommen wir dann zum nächsten Schritt: Erstellung/Anpassung der tmg-Datei. Schritt 5: Erstellung/Anpassung der .tmg-Datei Am einfachsten ist es, wenn wir uns die .tmg-Datei eines ähnlichen Modells suchen. Ich habe als Vorlage die Cessna 172 herausgesucht, die zwar etwas grösser ist, aber auch ein abgestrebter Hochdecker mit Elektroantrieb. Die Einstellungen für die Schwimmer werden wir dem Spinstar entnehmen. Solltest Du diese Modelle noch nicht haben, findest Du sie hier: Erstelle nun im Ordner ‘aircraft’ einen Unterordner mit dem Namen ‘AS_LCF’. In diesen Ordner gehören nun alle von AFP benötigten Dateien. Dies sind zunächst: die vom Konverter erzeugte ‘AS_LCF.obj’ sowie alle weiter oben beschriebenen bmp-Dateien, Dann benötigen wir noch eine .tmg und .tmd. Kopiere die Datei ‚AS_CE172.tmg’ in diesen Ordner. Benenne sie um in ‚AS_LCF.tmg’ und öffne sie mit Wordpad. Öffne zusätzlich die Datei ‚AS_LCF.obj’ und stelle beide nebeneinander auf den Bildschirm. Ersetze nun zuerst einmal in der Datei ‚AS_LCF.tmg’ alle Einträge ‚AS_CE172’ durch ‚AS_LCF’. Jetzt geht es daran, die einzelnen Objekte in der richtigen Reihenfolge und in der richtigen Struktur anzuordnen. Suche hierzu in der obj-Datei nach ‚Object’ und trage die entsprechenden Namen in der tmg-Datei ein. Hierbei sind einige Dinge zu beachten: Objekte, die gemeinsam dargestellt werden sollen, müssen als Hauptobjekt und Unterobjekte zusammengefasst werden, z.B.: Append tmgeometricobject Leftwing cd Leftwing/ Geometry( "aircraft/AS_LCF/AS_LCF.obj", "Leftwing" ) Append tmgeometricobject Leftflap cd Leftflap/ Geometry( "aircraft/AS_LCF/AS_LCF.obj", "Leftflap" ) cd ../ Append tmgeometricobject Leftaileron cd Leftaileron/ Geometry( "aircraft/AS_LCF/AS_LCF.obj", "Leftaileron" ) cd ../ cd ../ Zwischen dem Hauptobjekt und dem ersten Unterobjekt darf kein
cd ../
stehen, bei allen weiteren Unterobjekten muss jedes mit
cd ../
abgegrenzt sein. Das Ende einer Gruppe wird durch 2 Einträge
cd ../ cd ../ gekennzeichnet. Bestimmte Objekte müssen als eigene Hauptobjekte vorhanden sein, die nur durch ein einfaches cd ../ getrennt sind: Append tmgeometricobject Leftgear cd Leftgear/ Geometry( "aircraft/AS_LCF/AS_LCF.obj", "Leftgear" )
cd ../
Append tmgeometricobject Rightgear cd Rightgear/ Geometry( "aircraft/AS_LCF/AS_LCF.obj", "Rightgear" )
cd ../ Hierzu gehören auch die Streben der Tragflächen! Durch die interne Arbeitsweise von AFP müssen auch diese einzeln definiert werden, da AFP um alle Teile einer Gruppe (Hauptobjekt und Unterobjekte) eine gemeinsame Hülle legt. Bei Tragflächen (besonders bei Doppeldeckern) führt das dazu, dass in Flugrichtung ein sehr grosser Stirnwiderstand entsteht, der die Flugeigenschaften negativ beeinflusst! Die fertig angepasste tmg-Datei sieht dann so aus. Schritt 6: Erstellung/Anpassung der .tmd-Datei Kopiere jetzt die Datei ‘AS_CE172.tmd’ in den Ordner ‘AS_LCF’ , benenne sie um in ‘AS_LCF.tmd’ und öffne wieder beide Dateien nebeneinander. Ersetze in der Datei ‘AS_LCF.tmd’ die Zeile // file: AS_CE172.tmd durch // file: AS_LCF.tmd und beginne mit der Anpassung der tmd-Datei. Lösche zunächst alle Bereiche, die Objekte beschreiben, die nicht in der ‘AS_LCF.tmg’ aufgeführt sind; diese sind in 4 Sektionen der tmd-Datei zu finden: Append tmdjoint00 JointFrontgearFrontwheel
Append tmdwheel00 Frontwheel Append tmdservo00 ServoFrontwheel Diese Zeile gibt es natürlich nur bei beweglichen Objekten, die über ein Servo angesteuert werden! cd JointFrontgearFrontwheel/ X = tmvector4r( 1.0000, 0.0000, 0.0000, 0 ) Y = tmvector4r( 0.0000, 1.0000, 0.0000, 0 ) Z = tmvector4r( 0.0000, 0.0000, 1.0000, 0 ) R = tmvector4r( 0.0000, 0.0000, 0.0000, 1 ) Mass = 0 RangeMassMax = 0 RangeMassMin = 0 Inertia = { 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000 } Kn = 1000 Dn = 20 Dv = 5 Body0 = ../Frontgear/ Body1 = ../Frontwheel/ Kf = 10000 Df = 100 Ktx = 1000 Dtx = 10 Kty = 1000 Dty = 10 Ktz = 1000 Dtz = 10 MaxForce = 0 MaxTorque = 0 Rigid = 1 Essential = 1 Angle = 0 AngleZ = 0 Axis = tmvector4r( 0.0000, 0.0000, 0.0000, 0 ) Displacement = tmvector4r( 0.0000, 0.0000, 0.0000, 0 ) cd ../ cd Frontwheel/ X = tmvector4r( 1.0000, 0.0000, 0.0000, 0 ) Y = tmvector4r( 0.0000, 1.0000, 0.0000, 0 ) Z = tmvector4r( 0.0000, 0.0000, 1.0000, 0 ) R = tmvector4r( 0.5005, -0.0002, -0.3963, 1 ) Geometry( "~Geometry/Frontwheel/" ) Mass = 0.05 RangeMassMax = 0 RangeMassMin = 0 Inertia = { 0.0020, 0.0000, 0.0000, 0.0000, 0.0000, 0.0020, 0.0000, 0.0000, 0.0000, 0.0000, 0.0020, 0.0000, 0.0000, 0.0000, 0.0000, 1.0000 } Kn = 0 Dn = 0 Dv = 0 Kxr = 0.08 Kyr = 0.72 Kr = 10000 Dr = 0 RotationEnable = 1 cd ../ cd ServoFrontwheel/ Auch diesen Bereich gibt es nur bei beweglichen Objekten, die über ein Servo angesteuert werden! SignalIn = ~Aircraft/Receiver/Out(8) P0 = 0 P1 = -0.15 P2 = 0 P3 = 0 PFirst = 0 Vmax = 4 X = tmvector4r( 1.0000, 0.0000, 0.0000, 0 ) Y = tmvector4r( 0.0000, 1.0000, 0.0000, 0 ) Z = tmvector4r( 0.0000, 0.0000, 1.0000, 0 ) R = tmvector4r( 0.0000, 0.0000, 0.0000, 1 ) Mass = 0 RangeMassMax = 0 RangeMassMin = 0 Inertia = { 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000 } Kn = 1000 Dn = 20 Dv = 5 cd ../ Lösche ebenso alle anderen nicht benötigten Bereiche, im vorliegenden Fall sind das: Append tmdjoint00 JointHook (Ein Schlepphaken macht bei einem Wasserflugzeug nicht wirklich Sinn, oder??) Append tmdjoint00 JointFuselageFrontgear Append tmdgear00 Frontgear und natürlich alles, was dazugehört. Mache nun aus den Rädern Schwimmer: Ersetze ‘wheel’ durch ‘skid’. Füge danach die noch fehlenden Teile ein, die in der .tmg-Datei definiert sind: Append tmdjoint00 JointFuselageAntenna Append tmdbody Antenna cd JointFuselageAntenna/ X = tmvector4r( 1.0000, 0.0000, 0.0000, 0 ) Y = tmvector4r( 0.0000, 1.0000, 0.0000, 0 ) Z = tmvector4r( 0.0000, 0.0000, 1.0000, 0 ) R = tmvector4r( 0.0000, 0.0000, 0.0000, 1 ) Mass = 0 RangeMassMax = 0 RangeMassMin = 0 Inertia = { 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000 } Kn = 1000 Dn = 20 Dv = 5 Body0 = ../Fuselage/ Body1 = ../Antenna/ Kf = 10000 Df = 100 Ktx = 1000 Dtx = 10 Kty = 1000 Dty = 10 Ktz = 1000 Dtz = 10 MaxForce = 0 MaxTorque = 0 Rigid = 1 Essential = 1 Angle = 0 AngleZ = 0 Axis = tmvector4r( 0.0000, 0.0000, 0.0000, 0 ) Displacement = tmvector4r( 0.0000, 0.0000, 0.0000, 0 ) cd ../ cd Antenna/ X = tmvector4r( 0.9998, 0.0017, -0.0201, 0 ) Y = tmvector4r( -0.0014, 0.9999, 0.0141, 0 ) Z = tmvector4r( 0.0201, -0.0141, 0.9997, 0 ) R = tmvector4r( -0.0724, 0.4328, 0.0105, 1 ) Geometry( "~Geometry/Antenna/" ) Mass = 0.5 RangeMassMax = 1 RangeMassMin = 0.25 Inertia = { 0.0029, -0.0000, 0.0000, 0.0000, -0.0000, 0.0268, -0.0000, 0.0000, 0.0000, -0.0000, 0.0274, 0.0000, 0.0000, 0.0000, 0.0000, 1024.4258 } Kn = 0 Dn = 0 Dv = 0 cd ../ Verfahre genauso mit den Objekten: Append tmdjoint00 JointFuselageLeftwingstruts Append tmdjoint00 JointFuselageRightwingstruts Append tmdjoint00 JointLeftgearFrontstruts Append tmdjoint00 JointRightgearBackstrut Für die Schwimmer sind noch 2 Ergänzungen nötig, mit denen man die Eintauchtiefe vorne und hinten festlegen kann: cd Leftskid/ X = tmvector4r( 0.9997, 0.0001, -0.0236, 0 ) Y = tmvector4r( -0.0001, 1.0000, 0.0000, 0 ) Z = tmvector4r( 0.0000, 0.0000, 0.9997, 0 ) R = tmvector4r( -0.1353, 0.3874, -0.3803, 1 ) Geometry( "~Geometry/Leftskid/" ) Mass = 0.1 RangeMassMax = 0 RangeMassMin = 0 Inertia = { 0.0036, 0.0000, 0.0000, 0.0000, 0.0000, 0.0739, 0.0000, 0.0000, 0.0000, 0.0000, 0.0740, 0.0000, 0.0000, 0.0000, 0.0000, 64.2977 } Kn = 500 Dn = 20 Dv = 0.2 CP1 = tmvector4r( 0.7958, 0.3351, -0.5721, 1 ) CP2 = tmvector4r( -0.9603, 0.3889, -0.5071, 1 ) Ksn = 5000 Dsn = 30 Ksx = 0.5 cd ../ Führe diese Änderung auch für cd Rightskid/ durch. Hinweis: Alle Unterobjekte, die einem Hauptobjekt zugeordnet sind, dürfen in der .tmd-Datei nicht mehr als eigene Objekte auftauchen (wie z.B. ‘Leftflap’ und ‘Leftaileron’), während alle sonstigen Objekte in der .tmd-Datei definiert werden müssen.
Wenn die Beschreibungen im der .tmg- und .tmd-Datei nicht zueinander passen, kann dies zum Absturz von AFP führen! Wenn Du alle bisherigen Schritte sorgfältig und richtig durchgeführt hast, wirst Du hiermit belohnt! Schritt 7: Einstellung der Flugeigenschaften Hierzu müssen erst einmal einige Werte in der TMD-Datei an das Modell angepasst werden Das sind hauptsächlich für einige Objekte die Werte für cd JointFuselageLeftwing/ X = tmvector4r( 1.0000, 0.0000, 0.0000, 0 ) Y = tmvector4r( 0.0000, 1.0000, 0.0000, 0 ) Z = tmvector4r( 0.0000, 0.0000, 1.0000, 0 ) R = tmvector4r( 0.0906, 0.0000, 0.2354, 1 ) und cd Leftwing/ Sections = 2 RootR = tmvector4f( 0.0906, 0.0000, 0.2354, 1.0000 ) Eine Bechreibung hierzu gibt es auch unter ‘Tipps & Tricks’ im Abschnitt ‘Übernahme der Werte für R- und RootR aus MetasequoiaLE’. Ich habe eine Excel-Tabelle erstellt, in der die Umrechnung automatisch erfolgt, wenn man die richtigen Werte eingibt. Für die Piper reichen die Objekte Stabilizer, Leftstabilizer, Rightstabilizer, Leftwing, Rightwing, Leftgear, Rightgear, Leftskid und Rightskid aus. Für die ‘Skids’ sind noch 2 zusätzliche Punkte benötigt, die angeben, wie weit die Schwimmer vorne und hinten eintauchen. Hierbei sollte für den X-Wert immer die Mitte des Schwimmers genommen werden! In der Excel-Tabelle sind immer nur die Objekte ‘Leftxxx’ aufgeführt. Für die Objekte ‘Rightxxx’ sind sie mit Ausnahme des mittleren Wertes gleich: dieser muss bei ‘Rightxxx’ immer negativ sein: cd JointFuselageLeftstabilizer/ X = tmvector4r( 1.0000, 0.0000, 0.0000, 0 ) Y = tmvector4r( 0.0000, 1.0000, 0.0000, 0 ) Z = tmvector4r( 0.0000, 0.0000, 1.0000, 0 ) R = tmvector4r( -1.3884, 0.0041, 0.1234, 1 )
cd JointFuselageRightstabilizer/ X = tmvector4r( 1.0000, 0.0000, 0.0000, 0 ) Y = tmvector4r( 0.0000, 1.0000, 0.0000, 0 ) Z = tmvector4r( 0.0000, 0.0000, 1.0000, 0 ) R = tmvector4r( -1.3884, -0.0041, 0.1234, So sieht das dann bei Leftskid und Rightskid aus. Die fertige .tmd-datei sieht dann so aus. Als nächstes sollten die Gewichte der einzelnen Objekte unter die Lupe genommen werden. Günstig ist dann natürlich, wenn man ein ‘echtes’ Modell als Vergleich hat; in den meisten Fällen muss man aber die Einstellungen nach Gefühl machen. Hierbei ist zu beachten, dass man eventuell die Zeilen RangeMassMax = 19.9978 RangeMassMin = 4.99944 anpassen oder löschen muss, wenn man das Gewicht verringern will! Hast Du dies erledigt, öffne im AFP das Modell mit dem Modell-Editor - und da bereits der erste Schock: Der Rumpf hat auf dem Rumpf Farben und Flecken an Stellen, die gelb sein sollten! Noch schlimmer wird es, wenn man den AFP startet: da gibt es flackernde Stellen und noch mehr Farben! Schnell das Modell noch einmal in Meta geladen: da sieht alles O.K. aus?! Versuchen wir also, das Problem zu finden: Zeige den Rumpf in der Seitenansicht und markiere ihn. Lösche mit der Funktion ‘Object/Delete overlapped faces’ zunächst überlappende Flächen, hier immerhin 445 Stück! Danach entfernen wir mit der Funktion ‘Object/Unify faces’ die doppelseitig eingefärbten Flächen, dies mag AFP nämlich nicht. Die meisten der jetzt zu sehenden ‘Löcher’ bekommen wir durch die Funktion ‘Selected/Invert’ geschlossen. Der Rest ist Feinarbeit und probieren: Einzelne Flächen markieren und invertieren bzw. löschen (es sind immer noch ein paar Flächen übereinandergelegt!), sowie zuweisen der richtige ‘Farbe’ (2 Flächen am Rumpf sind noch schwarz statt gelb). Sieht der Rumpf dann endlich komplett aus, noch einmal den SUF-Export und die Konvertierung durchführen und anschliessend die neue obj-Datei in den AS_LCF-Ordner im AFP kopieren. Eine Kontrolle im AFP-Modell-Editor zeigt, dass die Flecken zwar weg sind, aber immer noch die falschen Farben zu sehen sind. Im AFP ist jedoch das Flackern weg! Also wieder zurück in Meta, das Objekt ‘Fuselage’ markieren und mit der Funktion ‘Map’ die Textur neu zuordnen. Wenn wir im Fenster ‘Mapping’ einen Haken bei ‘Realtime’ setzen, sehen wir, wie sich bei der Funktion ‘Move’ im ‘Mapping’-Fenster die Textur verschiebt. Leider sieht sie noch nicht so aus, wie wir erwarten. Die Ursache ist eine falsche Drehung der Textur zu den Flächen. Über ‘Mapping property’ stellen wir zunächst den Wert ‘Angle/Head’ von ‘0.0’ auf ‘90’ und bestätigen mit ‘Apply’. Nun sieht die Sache schon ganz anders aus. Der ‘Blitz’ an der Seite verläuft allerdings noch nicht parallel zur Rumpf-Mittel-Linie. Dies ändern wir durch die Angabe von ‘2.0’ bei ‘Angle/Bank’. Jetzt müssen wir allerdings feststellen, dass die Textur zu gross für den Rumpf ist. Wir verkleinern diese durch Änderung der Werte ‘Size’ für ‘X’, ‘Y’ und ‘Z’ von ‘100.0’ auf ‘90.0’. Da im vorderen Rumpfbereich jetzt noch einmal ein Teil des ‘Blizes’ auftaucht, markieren wir nur diesen Bereich und verschieben über ‘Move’ die Textur. Jetzt sieht es gut aus. Und wieder wie gehabt: SUF-Export, konvertieren, obj-Datei in den AS_LCF-Ordner, AFP-Modell-Editor aufrufen: alles O.K. AFP starten: Na bitte, es geht doch; alle Farben O.K. und kein Flackern mehr!
Jetzt schaue Dir einmal im Modell-Editor das Objekt ‘Propeller’ an. Hier stehen meist vollkommen unrealistische Werte, im vorliegenden Fall 30 Zoll Durchmesser und 24,4 Zoll Steigung. Trage hier nun einfach passende Werte ein, z. B. Durchmesser 20, Steigung 8 Zoll. Jetzt kann endlich der erste Start im AFP erfolgen! Der erste Versuch ist ernüchternd: das Modell steigt viel zu steil weg. Nun geht es zurück in den Modell-Editor und jetzt musst Du Schritt für Schritt die Parameter ändern: EWD von Tragfläche und Leitwerken, Leistung des Motors (hier: Zellenzahl, Umdrehung pro Volt), Schwerpunkt beim Rumpf usw. Wenn alle Einstellungen passen, fliegt das Modell schön langsam, wie es sich für eines in dieser Grösse gehört. Als letzte Abrundung solltest Du jetzt noch in der obj-Datei die Werte ambient 1.00 1.00 1.00 durch ambient 0.70 0.70 0.70 ersetzen, dann erscheint das Modell im AFP noch leuchtender. Nun steht einer Veröffentlichung nichts mehr im Weg, damit auch alle anderen sich an einem schönen, neuen Modell für AFP erfreuen können. Besonderheiten bei AeroFly Professional Deluxe Zum Betrieb unter AFPD sind 3 Änderungen bzw. Ergänzungen durchzuführen: 1. In der tmg-Datei ist für jedes Objekt ein Eintrag ‘Shiny =’ hinzuzufügen, mit dem die Oberflächenspiegelung eingestellt wird. Lässt man diesen weg, sieht das Ergebnis so aus.
Hier ein Auszug aus der geänderten AS_LCF.tmg: // aerofly professional -------------------------------------------------------- // // file: AS_LCF.tmg // // -----------------------------------------------------------------------------
Append tmgeometricobject Fuselage cd Fuselage/ Geometry( "aircraft/AS_LCF/AS_LCF.obj", "Fuselage" )
Shiny = 0.25 <-- geringe Spiegelung Append tmgeometricobject Fuselage01 cd Fuselage01/
Shiny = 0.25 cd ../
Append tmgeometricobject Glass cd Glass/ Geometry( "aircraft/AS_LCF/AS_LCF.obj", "Glass" )
Shiny = 1.00 <-- ‘Hochglanz’ cd ../
2. Hinzufügen eines Vorschaubildes mit dem Namen ‘preview-<Modellname>.bmp’. Dieses Bild muss eine Grösse von 256 x 256 Pixel und eine Farbtiefe von 24 Bit haben (wie die anderen BMP’s auch).
3. Weiterhin sollte man eine kurze Beschreibung des Modells in einer Text-Datei mit dem Namen ‘preview-<Modellname>.txt’ anlegen, zum Beispiel:
Piper Cub mit Schwimmern Das Modell ist aus dem FMS-Modell von Shinichiro Nishiya entstanden. Die Piper ist das Resultat meines Workshops 'Erstellung eines AFP-Modells aus einem FMS-Modell', der hier zu haben ist: http://ipacs-sim.com/test/
Spannweite: 3.00 m Gewicht: 10.5 kg 01.06.2005
Nun ist das Modell ‘Ready for AFPD’ und kann dort geflogen werden. Viel Erfolg mit eigenen Versuchen wünscht Arthur P.S. Ich würde mich sehr darüber freuen, wenn Ihr mir eine Nachricht zukommen lasst, wenn Ihr Euer erstes Modell mit Hilfe dieses Workshops erstellt habt! Ihr dürft (sollt!!!) mir aber auch schreiben, wenn noch etwas fehlt oder unklar ist, denn: Nobody is perfect! |