See site in english Voir le site en francais
Website skin:
home  download  forum  link  contact

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

Author Topic: [Sanders Aerospace] Développement d'un véhicule cargo  (Read 13304 times)

0 Members and 1 Guest are viewing this topic.

Offline ea76620

  • Sr. Member
  • ****
  • Posts: 393
  • Country: France fr
  • Karma: 15
11 July 2012, 09:29:31
Bonjour,

J'ai commencé un véhicule de ravitaillement cargo pour fonctionner avec Tetha.

Le but sera de pouvoir ravitailler une station spatiale en orbite basse (Et notamment y transporter des UCGO)


Voila une image du développement.



Je vais ajouter des panneaux solaires et une petite antenne.

N’hésiter pas à me conseiller notamment pour les textures (je pense que je vais changer la texture d'alu de la coque).

Le nom est pour l'instant SFT (Space Freight Transporter).

A+



Message modifié ( 11-07-2012 09:30 )


Offline ea76620

  • Sr. Member
  • ****
  • Posts: 393
  • Country: France fr
  • Karma: 15
Reply #1 - 11 July 2012, 12:26:57
Petite modification de textures :



Je vais voir si je peut trouver mieux pour le blanc.

A+



Message modifié ( 11-07-2012 12:27 )


Offline orbitermat

  • Legend
  • ******
  • Posts: 2257
  • Country: Canada ca
  • Karma: 19
  • Man must explore.
Reply #2 - 11 July 2012, 15:45:36
Wow! :applause: mais ça ressemble un peu trop à l'ATV à mon goût...

Mais c'est seulement à mon goût! ;)



Message modifié ( 11-07-2012 15:46 )


Offline ea76620

  • Sr. Member
  • ****
  • Posts: 393
  • Country: France fr
  • Karma: 15
Reply #3 - 11 July 2012, 16:36:12
Pas faux, j'ai modifié l'avant :



En plus ça va me facilité la tâche pour les RCS.

Je vais aussi refaire la texture du système de docking.

Faut aussi que je voie si je peut adoucir les angles des faces des cylindres (au moins à l'avant).



Message modifié ( 11-07-2012 16:37 )


Offline orbitermat

  • Legend
  • ******
  • Posts: 2257
  • Country: Canada ca
  • Karma: 19
  • Man must explore.
Reply #4 - 12 July 2012, 16:10:30
C'est mieux comme ça!



Offline ea76620

  • Sr. Member
  • ****
  • Posts: 393
  • Country: France fr
  • Karma: 15
Reply #5 - 12 July 2012, 17:03:15
Bonjour,

La modélisation a bien avancé :

Vue de l'arrière avec l'antenne (c'est la seule place que j'ai trouvé).


Les nouvelles textures du dock d'arrimage et les panneaux solaire.



J'ai aussi une question que j'adresse aux pro du codage de vaisseaux :

y a il un moyen de fournir des vivre, de l'oxygène et du fuel à une station (genre ISS version UCGO) sans passer par des cargo UCGO (en remplissant directement les réserves de fuel, d'O2,... de la station depuis celles du cargo.

A+



Message modifié ( 13-07-2012 00:54 )


Offline ea76620

  • Sr. Member
  • ****
  • Posts: 393
  • Country: France fr
  • Karma: 15
Reply #6 - 13 July 2012, 19:13:57
Bonjour,

J'ai déjà programmé les animations des panneaux solaire et de l'antenne (C++)

Déployer :


Replier :


A+


Offline Seckhmet

  • Jr. Member
  • **
  • Posts: 15
  • Karma: 0
Reply #7 - 13 July 2012, 19:53:50
j'ai hâte de faire la video de mise en orbite (pour le docking on verra plus tard, je doit d'abord le faire avec le tuto d'endevour)

Quote
Le nom est pour l'instant SFT (Space Freight Transporter).
moi j'aurai plutôt dit Space Flower Transporter (c'est pas moi c'est lui qui l'a dit car dans l'un test le SFT c'est ouvert comme une petit fleurs un beau matin):stupid:


vive vitosat (première étape de la domination de l'univers)

          Seckhmet directeur des relations publiques de Sanders aerospace

Offline ea76620

  • Sr. Member
  • ****
  • Posts: 393
  • Country: France fr
  • Karma: 15
Reply #8 - 14 July 2012, 19:07:11
Bonjour,

J'ai modifié la mesh pour avoir un rack pour les conteneur UCGO.

Puis (grâce à la doc de Dansteph) j'ai rendu mon engin compatible UCGO :





Faut maintenant que je fasse une nouvelle coiffe pour Tetha 1 car sinon le SFT ne rentre pas.

A+


Offline Milouse

  • Legend
  • ******
  • Posts: 2030
  • Country: France fr
  • Karma: 233
Reply #9 - 15 July 2012, 12:14:17
Bonjour,

Bonne idée ! :top:
Tant qu'à faire, envisages-tu une version où le rack constitue l'entière capacité du SFT ?
Bien sûr, tout en conservant les sections nécessaires à l'autonomie du SFT (moteurs + réservoirs, panneaux solaires, dock + compartiment pressurisé pour les marchandises "délicates").


Milouse



Offline ea76620

  • Sr. Member
  • ****
  • Posts: 393
  • Country: France fr
  • Karma: 15
Reply #10 - 15 July 2012, 12:37:18
Bonjour,

Quote
envisages-tu une version où le rack constitue l'entière capacité du SFT ?

Oui, je peux faire ça.



Par contre j'ai une question pour les spécialistes du C++ :

Savez-vous ce que je dois faire comme code pour remplir les réservoir avec une combinaison de touche?(à cause du bug avec multistage).



Message modifié ( 15-07-2012 12:42 )


Offline brainstorm

  • Legend
  • ******
  • Posts: 2694
  • Karma: 0
Reply #11 - 17 July 2012, 10:49:50
Voilà un bout de code, probablement à adapter ;)

Code: [Select]
//==========================================================
// Controle clavier
//==========================================================
int taclasse::clbkConsumeBufferedKey (DWORD key, bool down, char *kstate)
{
if (!down)
return 0; // Seulement pression d'une touche (pas de touche enfoncée)

switch (key)
{
    case OAPI_KEY_G: // appui sur la touche G
hprRCS = CreatePropellantResource (PB_FUELMASSRCS); // hprRCS est le PROPELLANT_HANDLE
// que tu as définis pour tes RCS;
return 1;
}
return 0;
}
Après tu mets la touche que tu veux, G est un exemple ! Tu peux en faire de même pour des réacteurs principaux, si tu en avais ;)


Sinon, sympa ton ptit cargo ! ;)



Message modifié ( 17-07-2012 10:50 )


Offline ea76620

  • Sr. Member
  • ****
  • Posts: 393
  • Country: France fr
  • Karma: 15
Reply #12 - 17 July 2012, 15:59:13
Bonjour,

Ok, merci beaucoup.

Je vais essayer (d'abord je m'occupe des beacon light)

A+


Offline ea76620

  • Sr. Member
  • ****
  • Posts: 393
  • Country: France fr
  • Karma: 15
Reply #13 - 17 July 2012, 20:35:51
Bonjour,

J'ai ajouté le code suivant :

Code: [Select]
switch (key)
{
case OAPI_KEY_G:// appui sur la touche G
   PROPELLANT_HANDLE hpr = CreatePropellantResource (PB_FUELMASS); // hprRCS est le PROPELLANT_HANDLE
// que tu as définis pour tes RCS;
return 1;
}

Le problème c'est que dans ce cas ça me créer un nouveau réservoir plein au lieu de me remplir celui qui est vide.

A+



Message modifié ( 17-07-2012 20:37 )


Offline brainstorm

  • Legend
  • ******
  • Posts: 2694
  • Karma: 0
Reply #14 - 17 July 2012, 23:29:17
C'est pour ca qu' il ne faut pas que tu le redeclares. Tu reinitialise la variable hpr (que tu auras declaree en tant que variable locale) avec createPropellantResource(tamassevoulue).



Offline ea76620

  • Sr. Member
  • ****
  • Posts: 393
  • Country: France fr
  • Karma: 15
Reply #15 - 18 July 2012, 00:19:58
Quote
brainstorm a écrit:
C'est pour ca qu' il ne faut pas que tu le redeclares. Tu reinitialise la variable hpr (que tu auras declaree en tant que variable locale) avec createPropellantResource(tamassevoulue).


La je n'ai pas trop compris comment je dois faire (je débute en c++) pouvez vous m'en dire plus?

Merci quand même pour votre aide.

A+

ps : je fais des recherches de mon coté sur le net on ne sais jamais.



Message modifié ( 18-07-2012 00:48 )


Offline brainstorm

  • Legend
  • ******
  • Posts: 2694
  • Karma: 0
Reply #16 - 18 July 2012, 08:56:31
En gros ta variable hpr est declaree au debut de ta classe et est donc connue par l ensemble de tes methodes (ou fonction si tu preferes) alors que si tu la declares dans une seule methode, elle ne sera connue que par ta methode. Autrement dit si tu veux reinitialiser une variable depuis une methode, et que tu dois utiliser cette variable depuis une autre methode, cette vaeiable doit etre connue par les 2 methodes et donc etre globale.
La je suis sur mon tel portable mais des que je retourne sur mon pc, je te ferais un petit exemple...



Offline ea76620

  • Sr. Member
  • ****
  • Posts: 393
  • Country: France fr
  • Karma: 15
Reply #17 - 19 July 2012, 16:20:31
Bonjour,

J'ai ajouter 8 beacon sur le SFT :



ça marche bien en mettant :
Code: [Select]
beacon[i].active = true;
Mais quand je veut faire l'activation via une touche j'en ai une seul qui s'allume.

Code: [Select]
// ********************* beacon lights **********************
static VECTOR3 beaconpos[8] = {{3,0,3.35}, {-3,0,3.35}, {3,0,-1.4}, {-3,0,-1.4}, {0,-3,3.35}, {0,3,3.35}, {0,3,-1.4}, {0,-3,-1.4}};
static VECTOR3 beaconcol = {{1,1,0.4}};
for (int i = 0; i < 8; i++) {
beacon[i].shape = (BEACONSHAPE_STAR);
beacon[i].pos = beaconpos+i;
beacon[i].col = &beaconcol;
beacon[i].size = (0.2);
beacon[i].falloff = (1);
beacon[i].period = (0);
beacon[i].duration = (0.5);
beacon[i].tofs = (2);
beacon[i].active = false;
AddBeacon (beacon+i);
}


Code: [Select]
BEACONLIGHTSPEC beacon[8];                   // light beacon definitions
void SetNavlight (bool on);
void SetBeacon (bool on);
void SetStrobe (bool on);
bool GetBeaconState (int which); // which=0:nav, 1:beacon, 2:strobe

int i;

Pour le remplissage de carburant :

J'ai vue sur le forum de mettre ça dans clbkPostStep Mais ça ne marche pas du tout

Code: [Select]
int FIRST_STEP_INIT_DONE;

if(FIRST_STEP_INIT_DONE==FALSE)
{
SetFuelMass(4000);
FIRST_STEP_INIT_DONE=TRUE;
}

Je ne sais pas comment je doit faire.

Merci d'avance

A+


Offline brainstorm

  • Legend
  • ******
  • Posts: 2694
  • Karma: 0
Reply #18 - 19 July 2012, 17:21:15
Problème de position... tu actives bien les 8 mais au même endroit ;)
essaye plutôt ça :

beacon.pos = beaconpos;



Offline ea76620

  • Sr. Member
  • ****
  • Posts: 393
  • Country: France fr
  • Karma: 15
Reply #19 - 19 July 2012, 18:06:22
Par contre il me dit qu'il est impossible de convertir vector 3 en vector3 *

J'ai surement du mal paramétrer un truc mais je ne vois pas quoi.


Offline ea76620

  • Sr. Member
  • ****
  • Posts: 393
  • Country: France fr
  • Karma: 15
Reply #20 - 20 July 2012, 00:20:12
Bonjour,

J'ai trouvé une solution alternative :


Code: [Select]
static VECTOR3 beacon1pos = {{3,0,3.35}};
static VECTOR3 beacon1col = {{1,1,0.4}};
{
beacon1.shape = (BEACONSHAPE_STAR);
beacon1.pos = &beacon1pos;
beacon1.col = &beacon1col;
beacon1.size = (0.2);
beacon1.falloff = (1);
beacon1.period = (0);
beacon1.duration = (0.5);
beacon1.tofs = (2);
beacon1.active = false;
AddBeacon (&beacon1);
}

static VECTOR3 beacon2pos = {{-3,0,3.35}};
static VECTOR3 beacon2col = {{1,1,0.4}};
    {
beacon2.shape = (BEACONSHAPE_STAR);
beacon2.pos = &beacon2pos;
beacon2.col = &beacon2col;
beacon2.size = (0.2);
beacon2.falloff = (1);
beacon2.period = (0);
beacon2.duration = (0.5);
beacon2.tofs = (2);
beacon2.active = false;
AddBeacon (&beacon2);
}


Code: [Select]
switch (key)
//{
case OAPI_KEY_0:

{
if (beacon1.active == true)//if (beacon[i].active == true)
{
beacon1.active = false;//beacon[i].active = false;
beacon2.active = false;
beacon3.active = false;
beacon4.active = false;
beacon5.active = false;
beacon6.active = false;
beacon7.active = false;
beacon8.active = false;
}
else
{
beacon1.active = true;//beacon[i].active = true;
beacon2.active = true;
beacon3.active = true;
beacon4.active = true;
beacon5.active = true;
beacon6.active = true;
beacon7.active = true;
beacon8.active = true;
}
return true;
}

Dans le header :

Code: [Select]
BEACONLIGHTSPEC beacon1;  
BEACONLIGHTSPEC beacon2;
BEACONLIGHTSPEC beacon3;
BEACONLIGHTSPEC beacon4;
BEACONLIGHTSPEC beacon5;
BEACONLIGHTSPEC beacon6;
BEACONLIGHTSPEC beacon7;
BEACONLIGHTSPEC beacon8;
void SetNavlight (bool on);
void SetBeacon (bool on);
void SetStrobe (bool on);
bool GetBeaconState (int which); // which=0:nav, 1:beacon, 2:strobe

Et ça marche !!!

Maintenant j'espère que je vais trouvé pour le refuel avec la touche (pas grand chose sur le net).

Au pire il y a toujours l'éditeur de scénarios mais bon c'est mieux avec une touche.

Merci pour votre aide.

A+



Message modifié ( 20-07-2012 00:23 )


Offline ea76620

  • Sr. Member
  • ****
  • Posts: 393
  • Country: France fr
  • Karma: 15
Reply #21 - 22 July 2012, 13:22:35
Bonjour,

Depuis quelques jours j'essaie d'ajouter un cockpit virtuel (sans commandes juste pour le fun) :

Edit : ça marche vaila ce que j'ai mis :

Code: [Select]
bool SDSFT::clbkLoadVC (int id)
{
     id = 0;
SetCameraDefaultDirection (_V(0,0,1));
oapiVCSetNeighbours (-1, 1, -1, 2);
//InitPanel(-1);// VC is -1
     return true;
}

Dans clbkSetClassCaps (à la place de "AddMesh ("SD_SFT");")
Code: [Select]
SetMeshVisibilityMode (AddMesh (exmesh_tpl = oapiLoadMeshGlobal ("SD_SFT")), MESHVIS_EXTERNAL);
SetMeshVisibilityMode (AddMesh (vcmesh_tpl = oapiLoadMeshGlobal ("SD_SFT_VC")), MESHVIS_VC);

Dans le Header :

Code: [Select]
MESHHANDLE vcmesh_tpl,exmesh_tpl;
bool clbkLoadVC (int id);

Je dois maintenant régler un problème avec la mesh du cockpit virtuel : les mesh non éclairer par le soleil sont sombres et il faut naturellement qu'elles soient éclairé (ça doit peut être se modifié dans anim8tor, je vais essayer).



Message modifié ( 22-07-2012 17:39 )


Offline ea76620

  • Sr. Member
  • ****
  • Posts: 393
  • Country: France fr
  • Karma: 15
Reply #22 - 22 July 2012, 18:11:51
Pour mettre la lumière j'ai trouvé une solution ici : http://orbiter.dansteph.com/forum/index.php?topic=6093.msg88035#msg88035

Voila le travail :


Evidemment je vais rajouter des cartons à l'intérieur pour faire plus réaliste (c'est un cargo spatial quand même).

A+



Message modifié ( 22-07-2012 18:12 )


Offline ea76620

  • Sr. Member
  • ****
  • Posts: 393
  • Country: France fr
  • Karma: 15
Reply #23 - 23 July 2012, 10:44:13
J'ai ajouté deux logos :



Celui de gauche à été fait par mon frère.



Message modifié ( 23-07-2012 10:44 )


Offline orbitermat

  • Legend
  • ******
  • Posts: 2257
  • Country: Canada ca
  • Karma: 19
  • Man must explore.
Reply #24 - 23 July 2012, 15:35:47
C'est beau le cockpit! Vas-tu créer un logo de Sanders areospace? :)