Fr/YASim

From FlightGear wiki
Revision as of 17:59, 8 March 2011 by BotFlightGear (talk | contribs) (Robot: Cosmetic changes)
Jump to navigation Jump to search

Notes à propos du système de coordonnées : Toutes les positions spécifiées sont en mètres (ce qui est étrange car toutes les autres unités sont du système impérial). L'axe X point vers l'avant, le Y vers la gauche et le Z vers le haut. Prenez votre main droite et tenez là comme un pistolet. L'index est l'axe X, le majeur est l'axe Y et le pouce qui pointe vers le haut est l'axe Z. C'est légèrement différent du système de coordonnées utilisé par JSBSim, Désolé :) . L'origine peut être placée n'importe où, mais doit être la même pour l'ensemble de l'appareil. J'utilise le nez de l'avion

Elements XML

airplane

La balise racine du fichier, il ne contient qu'un attribut:

  • mass: La masse à vide (sans fuel) en livres (une livre= 454gr). Ce poids inclu celui des moteurs, donc lorsque l'on ajoute le poids du moteur dans ses balises, il est considéré comme un ballast.

approach

Les paramètres d'approche de l'avion, Le solveur va générer un avion qui respecte ces valeurs. La balise peut (et devrait) contenir des éléments <control> qui indiquent la configuration de l'avion, tels que les volets ou les gaz, lors de l'approche.

  • speed: Vitesse d'approche, en knots TAS. (1 knot = 1 mile nautique/heure = 1.852 km/h) (TAS= vitesse vraie)
  • aoa: Angle d'attaque d'approche, en degré
  • fuel: Portion de fuel restant dans les reservoirs (0-1). 0.2 par défaut (20%).

cruise

La vitesse de croisière que doit utiliser le solveur, comme pour l'approche, il devrait contenir des tags <control> qui donnent la configuration de l'avion. assurez vous particulièrement que les moteurs procurent assez de poussée!

  • speed: Vitesse de croisière, en knots TAS
  • alt: Altitude de croisière, en pieds MSL (1 pied = 0.3048m) (MSL= au desssus du niveau de la mer)
  • fuel: Portion de fuel restant dans les reservoirs (0-1). 0.2 par défaut (20%).

cockpit

position dans le cockpit (point de vue du pilote).

  • x,y,z: position du point de vue du pilote (cf note sur les coordonnées).

fuselage

Ceci défini une structure en forme de tube. Le solveur va lui donner une masse et une distribution de force aérodynamiques également répartie vous pouvez en mettre autant que vous voulez dans toutes les positions possibles.

  • ax,ay,az: Un bout du tube (en général l'avant).
  • bx,by,bz: L'autre bout (l'arrière).
  • width: La largeur du tube, en mètres.
  • taper: Le rayon approximatif du tube à la pointe du fuselage, donnée en fraction de la largeur (width) (0-1).
  • midpoint: La position de la partie la plus large du fuselage, donnée par une fraction de la distance entre A et B.
  • idrag: coeff multiplicateur pour la trainée induite généré par cet objet, 1 par défaut. Si idrag=0, le fuselage ne crée que de la trainée (drag).
  • cx,cy,cz: Facteurs de correction pour les trainées générées dans le système de coordonnées locales, par exemple un fuselage deux fois plus haut que large, on peux donner un cy=2 ( surface visible deux foix plus importante suivant y, l'axe des ailes), ainsi qu'un cx=2 (à cause du doublement de la surface frontale).

Surfaces

wing

Ceci caractérise l'aile principales de l'avion. Il ne peut y en avoir qu'une (mais vous pouvez ajouter d'autre surfaces portantes avec des fstab, voir ci-dessous).l'ailes doit avoir un élément <stall> qui indique le comportement au décrochage, ainsi que des sous éléments de surfaces de control (flap0, flap1, spoiler, slat) qui définissent les surfaces de contrôle. Enfin des <control> permettent d'affecter les propriétés aux surfaces de controle.

  • x,y,z: La position de l'emplanture de l'aile, donnée par le point milieu de la corde à la racine de l'aile GAUCHE (!) (ce n'est pas le centre de poussée).
  • length: la longueur de l'aile de son emplanture jusqu'au point milieu du saumon d'aile. A noter que ce n'est pas l'envergure.
  • chord: la corde de l'aile à son emplanture, selon l'axe des X (et non pas perpendiculaire au bord d'attaque, comme on la trouve parfois définie).
  • incidence: L'incidence de l'aile à son emplanture, en degrés. Zéro correspond à une aile alignée avec le fuselage (comme sur un avion de voltige). Une valeur positive indique que le bord d'attaque est plus haut que le bord de fuite (comme sur les avions d'entrainements).
  • twist: La différence d'incidence entre l'emplanture et le saumon. Ceci est typiquement négatif, de telle sorte que le saumon ait un plus petit angle d'attaque, et décroche aprés l'emplanture (washout). Ceci permet de garder les ailerons effectifs et limite le départ en vrille.
  • taper: la fraction qui donne le "pointu" de l'aile, donné par la longueur de la corde au saumon divisé par celle de l'emplanture. Un "taper" de 1 donne une aile rectangle, alors que 0 forme une aile se terminant par un point. Valeur de 1 par défaut.
  • sweep: La flèche de l'aile , en degrés. Zero correspond à une aile droite, un angle positif à une flèche vers l'arrière. valeur 0 par défaut.
  • dihedral: le dièdre de l'aile, un diédre positif correspond à une aile qui part vers le haut à ses extrémités. 0 par défaut
  • idrag: facteur pour la trainée induite du profil (trainé proportionnelle à l'angle d'attaque de l'aile). En général, les ailes de faible allongement ont plus de trainée induite quecelles à fort allongement (planeurs).Cette valeur n'est pas trés bien prise en compte par le solveur, et peut demander du réglage pour avoir les gaz corrects à de hauts angles d'attaque (approches).
  • effectiveness: Multiplicateur pour la trainée "normale" de l'aile, 1 par défaut, facteur arbitraire sans dimension.
  • camber: La portance produite par l'aile pour un angle d'attaque nul, donné par la fraction par rapport à la portance maximale à l'angle d'attaque de décrochage. se déduit de la courbe portance/aoa, nulle pour les ailes d'avions de voltige à profil symétriques.
hstab

Ceci caractérise le stabilisateur horizontal de l'avion. C'est une aile aussi et elle utilise donc les mêmes paramètres. Vous ne pouvez en definir qu'une. le solveur doit savoir avec quelle incidence jouer pour trimmer l'avion correctement.

vstab

Un stabilisateur "vertical", comme le hstab, il s'agit d'une aile, avec quelques propriétés spéciales. la surface n'est pas symétrisée en miroir, si vous ne définissez qu'une aile gauche, vous n'avez qu'une aile gauche ! le dièdre par défaut est égal à 90 degré (aile verticale vers le haut), mais tous ses paramètres sont modifiables, donc elle n'a pas d'obligation à être verticale. Il est possible de l'utiliser pour ce que vous voulez, comme une aile supplémentaire pour les biplans. Attention, ces surfaces ne sont pas utilisées par le solveur, donc vous pouvez n'en avoir aucune, ou autant que faire se peut.

mstab

une aile en miroir horizontale, exactement comme une aile, sauf qu'elle n'est pas utilisée par le solveur. possibilité de l'utiliser sans limite...

stall

Un sous élément d'un "wing" (ou hstab, mstab et vstab) qui donne le comportement du décrochage.

  • aoa: l'angle de décrochage (portance maximum) en degrés. prenez note que c'est l'angle d'attaque de l'aile, et non pas du fuselage (si l'aile à une incidence non nulle/fuselage).
  • width: La "progressivité" du décrochage, en degrés. Une valeur haute donne un décrochage progressif. Les valeurs basses sont traîtres pour des ailes non vrillées, mais conviennent pour des ailes à variation d'incidence, (l'aile ne décroche alors pas de partout en même temps).
  • peak: la hauteur du pic de portance secondaire après décrochage vers les 45 degrés, 1.5 par défaut. Ceci sort d'un chapeau, et n'a probablement pas besoin de trop bouger. appellez moi pour une explication si vous êtes curieux (NDT: le rédacteur original de l'aide, pas moi, je ne suis pas fort en magie :) )).
flap0, flap1, slat, spoiler

ce sont des sous éléments des objets "wing/hstab/vstab, qui précisent l'emplacement et l'efficacité des surfaces de controle.

  • start: La position le long de l'aile où la surface commence, Zéro et l'amplenture, 1 le saumon d'aile.
  • end: la fin de la surface, comme ci dessus.
  • lift: Le coeff multiplicateur de la portance pour un aileron, un volet (flap), ou un spoiler complétement sorti. Un est sans effet, un aileron typique est autour de 1.2, des volets de jumbo-jet 2.0, et 0.0 pour un spoiler . Pour les spoilers (destructeurs de portance) l'interprétation est légèrement différente: Ils ne détruisent que la portance "pré-décrochage". IL reste la portance due à "l'effet de plaque". Les ailes qui décrochent à faible angle d'attaque ont la majorité de la portance pré-décrochage, et la portance non détruite est faible. c'est l'inverse pour les jets de combat qui n'ont souvent pas de spoilers pour ces raisons. Le "lift" ne s'applique pas aux "slat" qui changent seulement l'angle d'attaque du décrochage.
  • drag: Le coeff de multiplication de la trainée, comme dessus, doit être plus grand que le "lift" pour des volets.
  • aoa: seulement aplicables aux "slat" (bec de bord d'attaque), cette valeur donne l'angle ajouté à langle d'attaque de décrochage lorsque les becs sont complétement sortis.


Engine

Thruster

Un simple objet qui produit juste une poussée, utile pour des trucs comme les jets vectoriels ou pour simuler une poussée inverse sur les avions à hélice (ainsi par exemple la simulation d'effet de flux d'air d'hélice sur le rudder à l'arrêt NdT). il se contente de mapper son entrée "THROTTLE" sur son taux de poussée, il ne consome pas de fuel.

  • thrust: La poussée max en livres (pounds)
  • x,y,z: Le point d'application de la poussée.
  • vx,vy,vy: La direction de poussée dans les coordonnées de l'avion, ce vecteur est normalisé automatiquement, du coup tout vecteur non nul fait l'affaire.
Jet

Un turboréacteur (simple/double flux). il accepte un <control> pour utiliser une propriété à son réglage de puissance, et un <actionpt> pour placer le point de poussée à un autre endroit que la masse du réacteur.

  • x,y,z: L'emplacement du réacteur, ( son centre de gravité), si on ne donne pas de "actionpt", c'est ausssi le point d'application de la poussée.
  • mass: La masse du réacteur, en livres (pounds).
  • thrust: La poussée max au niveau de la mer, en livres (pounds).
  • afterburner: poussée max avec post combustion, en livres (pounds), aucune PC par défaut.
  • rotate: Angle de la poussée en degrés sur l'axe des Y [0].
  • n1-idle: Vitesse au ralenti de l'étage basse pression /ventilateur (pour un turbofan) en pourcentage de la vitesse max [55].
  • n1-max: Vitesse max basse pression (%) [102].
  • n2-idle: Vitesse au ralenti de l'étage haute pression (%) [73].
  • n2-max: Vitesse max de l'étage haute pression [103].
  • tsfc: comsomation spécifique de la poussée [0.8]. elle est bien plus basse pour les turbofan de dernière génération.
  • egt: Température des gaz d'échapement au décollage [1050].
  • epr: Taux de compression du réacteur au décollage [3.0].
  • exhaust-speed: Vitesse d'éjection max en knots [~1555].
  • spool-time: Temps , en secondes, pour que le réacteur réponde à 90% de la commande des gaz.


Propeller

Une hélice, il lui faut un sous élément de moteur, actuellement <piston-engine> and <turbine-engine> sont disponibles.

  • x,y,z: La position de la masse de l'ensemble moteur-propulsion, si le point d'application de la force est différent, il faut un sousélément <actionpt>.
  • mass: La masse de l'ensemble , en livres.
  • moment: Le moment, en kg*m^2, il faut le calculer à la main et plus ou moins le deviner.utilisez un moment négatif pour les hélices tournant dans le sens anti-horaire ("européennes": hélices tournant en sens anti horaire vue de l'arrière du moteur. Une bonne estimation est obtenue par le rayon de l'hélice (en m) mis au carré multiplié par la masse, le tout divisé par 3, c'est le moment d'un bout de bois plein monté sur l'axe d'hélice.
  • radius: Le rayon de l'hélice.
  • cruise-speed: La vitesse d'efficacité max de l'hélice, en général différente de de la "cruise speed" de l'avion.
  • cruise-rpm: La vitesse de rotation de l'hélice a efficacité max (rad/s).
  • cruise-power: La puissance utilisée par l'hélice à eff max, en chevaux.
  • cruise-alt: l'altitude de référence pour le "cruise" , en pieds.
  • takeoff-power: La puissance prise par l'hélice au décollage ...
  • takeoff-rpm: ...à cette vitesse de rotation (rad/s).
  • min-rpm: La vitesse de rotation minimale pour une hélice à vitesse constante, c'est la vitesse que le régulateur de vitesse cherchera à atteindre lorsque l'on met le levier bleu au mini. à noter que la butée de grand pas limite le gestionnaire pour atteindre cette valeur, si trop de puissance est disponible. (rad/s)
  • max-rpm: La vitesse de rotation max pour une hélice à vitesse constante, comme ci dessus, c'est la butée de petit pas qui empèche le gestionnaire d'atteindre cette vitesse, si il n'y a pas assez de puissance. (rad/s)
  • fine-stop: Butée petit pas: le pas minimum de l'hélice (à haut RPM) en pourcentage du pas de vitesse idéale. 0.25 par défaut, une valeur plus haute donne une vitesse de rotation plus faible pour les faibles puissances (taxi, ralenti et approche).
  • coarse-stop: Butée de grand pas: pas max de l'hélice (bas RPM) en pourcentage du pas de vitesse idéale, 4.0 par défaut, une valeur plus basse donne plus de RPM pour des réglages à haute puissance.
  • gear-ratio: Facteur par lequel multiplier la vitesse des tour moteur, pour obtenir la vitesse de rotation de l'hélice, optionnel (défaut de 1.0).
  • contra: Indique que l'hélice est une paire contra rotative, si (contra="1"), il n'aura pas d'influence sur le moment gyroscopic, et ne produira pas un couple asymétrique sur la cellule de l'avion, ni un effet aéro asymétrique.
  • piston-engine: une définition d'un moteur à piston, ceci doit être un sous élément d'un tag <propeller> .
  • eng-power: Puissance max du moteur au niveau de la mer (cheval vapeur - BHP).
  • eng-rpm: Vitesse de rotation du moteur qui correspond à "eng-power".
  • displacement: Volume du moteur (en pouce cubique).
  • compression: Taux de compression du moteur.


gear

Défini un train d'atterrissage, accepte des sous éléments <control> pour mapper des propriétés au freinage et au bracage.peut aussi être utilisé pour simuler des flotteurs, même si les coeffs sont toujours appellées ..fric, ils sont calculés comme une trainée dans un fluide, (proportionnel au carré de la vitesse). dans les fluides ils ne detectent pas les crashes, contrairement au sol.

  • x,y,z: La position de la pointe du train à pleine extension.
  • compression: La distance en mètres le long de l'axe de compression, de laquelle le train se compresse.
  • initial-load: La charge initiale du ressort , en multiple de la "compression", 0 par défaut, (Avec ce paramètre une valeur plus basse de raideur de ressort est utilisée, ce qui peut réduire des problèmes numériques Note: la raideur du ressort varie de 0% à 20% de compression, pour avoir un comportement cohérent autour de 0 de compression, ce qui peut être expliqué par la déformation du pneu).
  • upx/upy/upz: direction de la compression, vertical par défaut (0,0,1) le vecteur n'as pas besoin d'être normalisé, la longueur étant donnée par "compression".
  • sfric: Coeff de friction statique (sans glissement), 0.8 par défaut.
  • dfric: Coeff de friction dynamique, 0.7 par défaut.
  • spring: Un facteur sans dimension, pour la constante de raideur générée automatiquement, l'augmenter rend le train plus raide, la diminuer le rend plus souple.
  • damp: Facteur sans dimension, pour la constante d'amortissement générée automatiquement, le diminuer rend le train plus "rebondissant", l'augmenter rend le train plus "lent". Attention à ne pas le le monter trop haut, de hautes forces de damping peuvent rendre instable les valeurs numériques. Si vous ne pouvez empecher le train de rebondir avec cette valeur, essayez plutôt d'augmenter la "compression".
  • on-water: si ceci est mis à "0" le train sera ignoré si dans l'eau."0" par défaut.
  • on-solid: avec ceci à "0" le train sera ignoré si pas dans l'eau, "1" par défaut.
  • speed-planing: vitesse utilisé par "spring-factor-not-planing"
  • spring-factor-not-planing: pour une vitesse nulle, la raideur du ressort est multipliée par "spring-factor-not-planing", au dessus de la vitesse "speed-planing", le facteur est égal à 1, L'idée est d'utiliser ça pour simuler le passage des flotteurs au "plané", speed-planing vaut 0 par défaut, spring-factor-not-planing vaut 1 par défaut.
  • reduce-friction-by-extension: à pleine extension, la friction est réduite de cette valeur relative, 0.7 donne 30% de friction à pleine extension. si vous donnez une valeur plus grande que 1, la friction sera à 0 avant la pleine extension. "0" par défaut.
  • ignored-by-solver: Avec les tags "on-water"/"on-solid", vous pouvez avoir plusieurs set de trainpour un avion, si le solveur les prennait tous en compte, le résultat serait faux, par exemple, donnez cette prop = "1" pour tous les trains inactifs sur la piste. "0" par défaut, à noter que l'on ne peut pas virer tous les trains du calul du solveur :).
launchbar

Pemet de définir une barre ou une sangle de catapultage.

  • x,y,z: L'emplacement du point de montage de la barre/sangle sur l'avion.
  • length: La longueur de la barre du point de montage à son autre extrémité.
  • down-angle: L'angle max vers le bas que la barre peut atteindre.
  • up-angle: L'angle max vers le haut.
  • holdback-{x,y,z}: L'emplacement sur l'avion du point de montage de la barre de retenue.
  • holdback-length: Longueur de la barre de retenue, Note: les angle "up-angle" et "down-angle" sont les même que ceux de la barre de lancement.
hook

spécifie un crochet d'arrêt pour les porte avions. (cf ci-dessus pour les définitions)

  • x,y,z:
  • length:
  • down-angle:
  • up-angle:'
      • traduction en cours***

Fuel

tank

Un reservoir d'essence. Les reservoirs de l'avion sont identifiés par des numéros(en commençant par 0, dans l'ordre de la définition dans le fichierde yasim - notez qu'un nom peut être affecté à chaque reservoir dans le fichier -set.xml voir Howto: Name fuel tanks)

  • x,y,z: Emplacement du reservoir.
  • capacity: Capacité max, en livresThe maximum contents of the tank, in pounds. -- YASim supports fuels of varying densities.
  • jet: Un booléen, si présent, le fuel est traité comme du "jet-A" sinon,c'estla densité du kérosène.

Centre de gravité

Ballast

C'es un mécanismepour modifier la répartition des masses de l'avion, un ""ballast" indique qu'une telle partie de la masse à vide de l'avion est placé à cet endroit.le reste de la masse est distribuée "intelligemment parmis les fuselages et les ailes. Notez bien que cela ne change pas la masse à vide de l'avion, mais permet de corriger la position du centre de gravité, ainsi quele tenseur d'inertie.

  • x,y,z: Position du ballast.
  • mass: Quelle masse placer ici, elle peut être négative, j'ai souvent besoin d"alléger" la queue de l'avion.
Weight

C'est une masse ajouté, qui ne fait pas partie de la masse à vide de l'avion, tel que passager, fret, emport externe. la masse n'est pas donnée ici, on donne à la place le chemin d'une propriété, ce qui permet à du code externe de controler cette masse.(charger du fret, larguer des bombesetc...)

  • x,y,z: Comme d'hab :)
  • mass-prop: The name of the fgfs property containing the mass, in pounds, of this weight.
  • size: The aerodynamic "size", in metres, of the object. This is important for external stores, which will cause drag. For reasonably aerodynamic stuff like bombs, the size should be roughly the width of the object. For other stuff, you're on your own. The default is zero, which results in no aerodynamic force (internal cargo).
  • solve-weight: Subtag of approach and cruise parameters. Used to specify a non-zero setting for a <weight> tag during solution. The default is to assume all weights are zero at the given performance numbers.
  • idx: Index of the weight in the file (starting with zero).
  • weight: Weight setting in pounds.

Controls

control-input

This element manages a mapping from fgfs properties (user input) to settable values on the aircraft's objects. Note that the value to be set MUST (!) be valid on the given object type. This is not checked for by the parser, and will cause a runtime crash if you try it. Wing's don't have throttle controls, etc... Note that multiple axes may be set on the same value. They are summed before setting.

  • axis: The name of the double-valued fgfs property "axis" to use as input, such as "/controls/flight/aileron".
  • control: Which control axis to set on the objects. It can have the following values:
    • THROTTLE - The throttle on a jet or propeller.
    • MIXTURE - The mixture on a propeller.
    • REHEAT - The afterburner on a jet
    • PROP - The propeller advance
    • BRAKE - The brake on a gear.
    • STEER - The steering angle on a gear.
    • INCIDENCE - The incidence angle of a wing.
    • FLAP0 - The flap0 deflection of a wing.
    • FLAP1 - The flap1 deflection of a wing.
    • SLAT - The slat extension of a wing.
    • SPOILER - The spoiler extension for a wing.
    • CYCLICAIL - The "aileron" cyclic input of a rotor
    • CYCLICELE - The "elevator" cyclic input of a rotor
    • COLLECTIVE - The collective input of a rotor
    • ROTORENGINEON - If not equal zero the rotor is rotating
    • WINCHRELSPEED - The relative winch speed
    • {... and many more, see FGFDM.cpp ...}
  • invert: Negate the value of the property before setting on the object.
  • split: Applicable to wing control surfaces. Sets the normal value on the left wing, and a negated value on the right wing.
  • square: Squares the value before setting. Useful for controls like steering that need a wide range, yet lots of sensitivity in the center. Obviously only applicable to values that have a range of [-1:1] or [0:1].
  • src0/src1/dst0/dst1: If present, these defined a linear mapping from the source to the output value. Input values in the range src0-src1 are mapped linearly to dst0-dst1, with clamping for input values that lie outside the range.
control-output

This can be used to pass the value of a YASim control axis (after all mapping and summing is applied) back to the property tree.

  • control: Name of the control axis. See above.
  • prop: Property node to receive the value.
  • side: Optional, for split controls. Either "right" or "left"
  • min/max: Clamping applied to output value.
control-speed

Some controls (most notably flaps and hydraulics) have maximum slew rates and cannot respond instantly to pilot input. This can be implemented with a control-speed tag, which defines a "transition time" required to slew through the full input range. Note that this tag is semi-deprecated, complicated control input filtering can be done much more robustly from a Nasal script.

  • control: Name of the control axis. See above.
  • transition-time: Time in seconds to slew through input range.
control-setting

This tag is used to define a particular setting for a control axis inside the <cruise> or <approach> tags, where obviously property input is not available. It can be used, for example, to inform the solver that the approach performance values assume full flaps, etc...

  • axis: Name of the control input (i.e. a property name)
  • value: Value of the control axis.

Winch and Aerotow

hitch

A hitch, can be used for winch-start (in gliders) or aerotow (in gliders and motor aircraft) or for external cargo with helicopter. You can do aerotow over the net via multiplayer (see j3 and bocian as an example).

  • name: the name of the hitch. must be aerotow if you want to do aerotow via multiplayer. You will find many properties at /sim/hitches/name. Most of them are directly tied to the internal variables, you can modify them as you like. You can add a listener to the property "broken", e. g. for playing a sound.
  • x,y,z: The position of the hitch
  • force-is-calculated-by-other: if you want to simulate aerotowing over the internet, set this value to "1" in the motor aircraft. Don't specify or set this to zero in gliders. In a LAN the time lag might be small enough to set it on both aircraft to "0". It's intended, that this is done automatically in the future.
tow

The tow used for aerotow or winch. This must be a subelement of an enclosing <hitch> tag.

  • length: upstretched length in metres
  • weight-per-meter: in kg/metre
  • elastic-constant: lower values give higher elasticity
  • break-force: in N
  • mp-auto-connect-period: the every x seconds a towed multiplayer aircraft is searched. If found, this tow is connected automatically, parameters are copied from the other aircraft. Should be set only in the motor aircraft, not in the glider
winch

The tow used for aerotow or winch. This must be a subelement of an enclosing <hitch> tag.

  • max-tow-length: in m
  • min-tow-length: in m
  • initial-tow-length: in m. The initial tow length also defines the length/search radius used for the mp-autoconnect feature
  • max-winch-speed: in m/s
  • power: in kW
  • max-force: in N


Visualization

dc6 fdm in Blender

To make the programmed aircraft visable it is possible to load and compare it with the 3D model within Blender. The applaud for this very usefull script goes to M. Franz, thank you very much!

The script is located in FlightGears source code utils/Modeller/yasim_import.py.

The howto, taken from inside the script:

yasim_import.py loads and visualizes a YASim FDM geometry
=========================================================

It is recommended to load the model superimposed over a greyed out and immutable copy of the aircraft model:

  (0) put this script into ~/.blender/scripts/
  (1) load or import aircraft model (menu -> "File" -> "Import" -> "AC3D (.ac) ...")
  (2) create new *empty* scene (menu -> arrow button left of "SCE:scene1" combobox -> "ADD NEW" -> "empty")
  (3) rename scene to yasim (not required)
  (4) link to scene1 (F10 -> "Output" tab -> arrow button left of text entry "No Set Scene" -> "scene1")
  (5) now load the YASim config file (menu -> "File" -> "Import" -> "YASim (.xml) ...")

This is good enough for simple checks. But if you are working on the YASim configuration, then you need a
quick and convenient way to reload the file. In that case continue after (4):

  (5) switch the button area at the bottom of the blender screen to "Scripts Window" mode (green python snake icon)
  (6) load the YASim config file (menu -> "Scripts" -> "Import" -> "YASim (.xml) ...")
  (7) make the "Scripts Window" area as small as possible by dragging the area separator down
  (8) optionally split the "3D View" area and switch the right part to the "Outliner"
  (9) press the "Reload YASim" button in the script area to reload the file


If the 3D model is displaced with respect to the FDM model, then the <offsets> values from the
model animation XML file should be added as comment to the YASim config file, as a line all by
itself, with no spaces surrounding the equal signs. Spaces elsewhere are allowed. For example:

  <offsets>
      <x-m>3.45</x-m>
      <z-m>-0.4</z-m>
      <pitch-deg>5</pitch-deg>
  </offsets>

becomes:


Possible variables are:

  x ... <x-m>
  y ... <y-m>
  z ... <z-m>
  h ... <heading-deg>
  p ... <pitch-deg>
  r ... <roll-deg>

Of course, absolute FDM coordinates can then no longer directly be read from Blender's 3D view.
The cursor coordinates display in the script area, however, shows the coordinates in YASim space.
Note that object names don't contain XML indices but element numbers. YASim_hstab#2 is the third
hstab in the whole file, not necessarily in its parent XML group. A floating point part in the
object name (e.g. YASim_hstab#2.004) only means that the geometry has been reloaded that often.
It's an unavoidable consequence of how Blender deals with meshes.


Elements are displayed as follows:

  cockpit                             -> monkey head
  fuselage                            -> blue "tube" (with only 12 sides for less clutter); center at "a"
  vstab                               -> red with yellow flaps
  wing/mstab/hstab                    -> green with yellow flaps/spoilers/slats (always 20 cm deep);
                                         symmetric surfaces are only displayed on the left side
  thrusters (jet/propeller/thruster)  -> dashed line from center to actionpt;
                                         arrow from actionpt along thrust vector (always 1 m long);
                                         propeller circle
  rotor                               -> radius and rel_len_blade_start circle, direction arrow,
                                         normal and forward vector, one blade at phi0
  gear                                -> contact point and compression vector (no arrow head)
  tank                                -> cube (10 cm side length)
  weight                              -> inverted cone
  ballast                             -> cylinder
  hitch                               -> circle (10 cm diameter)
  hook                                -> dashed line for up angle, T-line for down angle
  launchbar                           -> dashed line for up angles, T-line for down angles

A note about step (0) for M$ users: the mentioned path is inside the folder where Blender lives, something like C:\Program Files\Blender Foundation\Blender\.blender\scripts.