IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Microsoft Office Discussion :

Découvrez la programmation 3D en VBA/VB6 avec OpenGL 1.1 [Tutoriel]


Sujet :

Microsoft Office

  1. #1
    Expert éminent sénior
    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut Découvrez la programmation 3D en VBA/VB6 avec OpenGL 1.1
    Bonjour à tous!

    Je vous invite à une découverte de la programmation 3D avec OpenGL 1.1.

    Faîtes vos premiers pas dans la programmation 3D avec votre langage VBA ou VB6 préféré.

    Voici un aperçu de ce que vous pouvez obtenir en suivant ce tutoriel :




    Vous pouvez ajoutez vos commentaires sur cet articles à la suite de ce message.


  2. #2
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Comme on dit souvent :


    Une fonctionnalité tellement inutile ... et donc totalement indispensable

    Beau boulot

    Après ça on va encore dire, qu'Access est limité

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Que dire de plus à part

    Philippe

  4. #4
    Expert éminent sénior
    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    Bonjour à tous,

    Cet article de découverte de la programmation 3D avec OpenGL 1.1 a été mis à jour.
    En plus du langage VBA, il est désormais applicable à Visual Basic 6 (VB6).

    Pensez-vous intégrer OpenGL dans vos applications VB6 ou VBA?
    Cet article vous a-t-il été utile?

    pour vos commentaires.

    A suivre dans le prochain tutoriel : l'utilisation des extensions.
    Vertex Buffer Objects, Texture 3D, Shaders, ...
    A bientôt.

  5. #5
    En attente de confirmation mail
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 338
    Points : 366
    Points
    366
    Par défaut
    Bonjour,
    Oui super ! J'ai un projet de changement de dessin en opengl (utilisé qu'en 2d) et ce tuto tombe bien... nous avons encore bcp de logiciels sous VB6 et donc ce tuto et pour nous toujours d'actu !

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    Tout d'abord bravo pour ce tuto qui m'a permis de découvrir la 3D opengl sous VB6.
    J'aurais juste une question :
    Sous VB6, quelle méthode utiliser pour faire la même chose dans un contrôle PictureBox d'un formulaire déjà existant ?
    J'ai besoin d'un picturebox opengl que je pourrai contrôler avec des boutons par exemple.
    Merci d'avance.

  7. #7
    Expert éminent sénior
    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    Bjr,

    Citation Envoyé par lulu29 Voir le message
    Sous VB6, quelle méthode utiliser pour faire la même chose dans un contrôle PictureBox d'un formulaire déjà existant ?
    J'ai besoin d'un picturebox opengl que je pourrai contrôler avec des boutons par exemple.
    Vous pouvez ajoutez cette fonction InitOpenGLPicture au module clOpengGLFormVB6 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    '---------------------------------------------------------------------------------------
    ' Initialise OpenGL pour la PictureBox pPicture
    '---------------------------------------------------------------------------------------
    Public Function InitOpenGLPicture(pPicture As PictureBox) As Boolean
    ' Handle de la fenêtre
    gHwnd = pPicture.hWnd
    ' Contexte d'affichage gdi32
    gHdc = pPicture.hdc
    ' Initialise opengl
    InitOpenGLPicture = PrivInitOpenGL
    End Function
    Et appelez cette fonction en donnant la pictureBox en paramètre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    oGl.InitOpenGLPicture Me.Picture1
    (à la place de oGl.InitOpenGL Me)

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 2
    Points : 3
    Points
    3
    Par défaut gluDisk
    Bonjour,
    Grâce à vos conseils ma petite appli est en bonne voie mais je cale sur "gludisk".
    J'ai créé un cône avec glucylinder et je voudrais fermer sa base par un disque.
    Quand je veux créer une quadrique rien ne s'affiche, voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ' Disque
    glPushMatrix
    Dim lQuad4 As Long
    glColor3VB vbRed
    glTranslated x0 - 200, y0, z0
    glRotated 45, 0, 1, 0
    lQuad4 = gluNewQuadric
    gluDisk lQuad4, 30, 0, 10, 10
    gluDeleteQuadric lQuad4
    glPopMatrix
    Je ne vois pas pourquoi cela ne marche pas ?
    Merci d'avance.

  9. #9
    Expert éminent sénior
    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    Citation Envoyé par lulu29 Voir le message
    Bonjour,
    Grâce à vos conseils ma petite appli est en bonne voie mais je cale sur "gludisk".
    J'ai créé un cône avec glucylinder et je voudrais fermer sa base par un disque.
    Quand je veux créer une quadrique rien ne s'affiche, voici le code :
    bjr,

    peut-être un problème d'orientation qui rend la face invisible (si culling activé)?

    Tester avec avant le gluDisk :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gluQuadricOrientation lQuad4, GLU_INSIDE
    (ou GLU_OUTSIDE, je ne sais plus trop dans quel sens ça se passe)

    Sinon pour un problème purement openGL il y a le forum OpenGL sur lequel tu auras sans doute plus de réponses (avec des gens plus expérimentés que moi )

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 14
    Points : 15
    Points
    15
    Par défaut
    bravo
    on peut donc refaire "2001 Odyssée de l'espace"
    rebravo

  11. #11
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Félicitation pour ce magnifique article. Il m'a pas mal appris le VBA au travers de l'OPENGL, ainsi que l'utilisation des API.

    Bravo !


    P.S.:
    Personne n'a donné de points sauf en 1ère page Pour un travail aussi énorme !

  12. #12
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    J'ai un petit problème en Excel 64 bit. Est-ce que quelqu'un a réussi à rendre compatible Open GL en 64 bit ?
    Dans le module de classe clOpenGLUserForm, j'ai un problème sur la fonction PrivDisplay à la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    glReadPixels 0, 0, gWidth, gHeight, gFormat, GL_UNSIGNED_BYTE, ByVal lBmBits
    Ca ne passe pas. Fermeture d'Excel.
    A ce stade:
    - gFormat = 32993 (GL_BGRA)
    - gHeight = 242
    - gWidth = 483
    - GL_UNSIGNED_BYTE = 5121
    - lBmBits = 0^
    Testé avec les déclarations:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Declare PtrSafe Sub glReadPixels Lib "opengl32" (ByVal x As Long, ByVal y As Long, ByVal width As Long, ByVal height As Long, ByVal format As Long, ByVal ptype As Long, pixels As Any)
    'ou alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Declare PtrSafe Sub glReadPixels Lib "opengl32" (ByVal x As Long, ByVal y As Long, ByVal width As Long, ByVal height As Long, ByVal format As Long, ByVal ptype As Long, pixels As LongPtr)
    Mais beug. Si quelqu'un a réussi a faire le module de classe en 64 bit, ça serait classe qui montre la déclaration glReadPixels. Si il est censé lire en mémoire, le beug vient peut être (surement même) d'une autre fonction finalement.

    Voilà, a+ et merci par avance.

  13. #13
    Expert éminent sénior
    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    Bonjour,

    Citation Envoyé par Nouveau2 Voir le message
    J'ai un petit problème en Excel 64 bit. Est-ce que quelqu'un a réussi à rendre compatible Open GL en 64 bit ?
    Je suis un peu en retard, j'y travaille depuis hier.

  14. #14
    Nouveau membre du Club
    Homme Profil pro
    INGÉNIEUR
    Inscrit en
    Août 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : INGÉNIEUR
    Secteur : Transports

    Informations forums :
    Inscription : Août 2013
    Messages : 37
    Points : 30
    Points
    30
    Par défaut
    Bonjour Arkham46,

    Je trouve ton tutoriel très intéressant et super bien monté.

    Toutefois, en faisant quelques recherches supplémentaires sur le net, j'ai beaucoup de difficulté à trouver des sources d'information autre que ton tutoriel. Je remarque que peu de gens utilisent VBA pour faire des dessins en 3D.

    Connais-tu d'autres sites web qui traitent le même sujet?
    Aussi, y a-t-il des endroits où je peux trouver les commandes à utiliser pour OpenGL 3.X.X ?

    Merci pour ta réponse et bonne journée!

  15. #15
    Expert éminent sénior
    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    Bonjour,

    On ne trouve effectivement pas grand chose pour OpenGL en VBA.
    Il y a bien une librairie vbogl.tlb pour VB6 mais c'est très vieux et je n'ai pas testé pour VBA.

    Pour OpenGL 3 je vais y venir après avoir fait le travail sur la version 64 bits.

    L'article date d'il y 5 ans, il y a un rafraichissement à prévoir.

  16. #16
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut OpenGL et VB6
    J'urilise OpenGL dans une pictureBox. Je veux savoir si c'est possible de dessiner avec des outils VB6 (cercle, ligne) par dessus l'image créé par OpenGL.

    Merci

    Jacquelin Hardy

  17. #17
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 36
    Points : 36
    Points
    36
    Par défaut Fixer l'emplacement de la fenêtre freeglut ?
    Bonjour,

    Merci beaucoup pour ce tutoriel qui sert toujours!

    Je voudrais intégrer une visu 3D dans un formulaire qui contient des contrôles vb6 (boutons, zones de texte, picturebox, onglets, etc. J'ai essayé d'afficher ma visu 3D dans une picturebox avec le module de classe proposé, mais sans y parvenir (et puis on perd le zoom à la molette).

    Pour ne pas parler "en l'air", j'ai fait une version simplifiée du code que vous pouvez télécharger ici : http://www.cjoint.com/c/GEveVvNXTyP

    Je me dis qu'il y a peut-être moyen de placer et dimensionner précisément la fenêtre FreeGlut au-dessus d'une zone de la fenêtre VB6 pour avoir accès à l'une et à l'autre? Voudriez-vous me dire si c'est possible et m'indiquer des pistes? Je cherche depuis plusieurs jours sans succès.

    Bien cordialement,
    Renaud.

  18. #18
    Candidat au Club
    Homme Profil pro
    ingénieur biomédical
    Inscrit en
    Juin 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : ingénieur biomédical
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2013
    Messages : 1
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    Je viens de découvrir le tuto pour intégrer du OpenGL en VBA... Du plaisirs en perspective car je travaille dans un centre de recherche universitaire qui fait du 3D avec des radiographies de patients. J'ai créer une banque de données en Excel qui fait la gestion des données 3D en VBA et j'utilise des outils externes pour l'affichage 3D. Je pense utiliser votre tuto pour une intégration du 3D dans Excel... Souhaitez-moi bonne chance!

  19. #19
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Points : 10 166
    Points
    10 166
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Pour les abonnés de Office 365. La suite intègre en natif, depuis quelques mises-à-jour, le support pour le 3D.

    Hubble en 3D dans PowerPoint
    Catalogue de vélos en 3D (Excel)
    Robot Curiosity en 3D (Word)


    Ceci étant dit, je ne sais pas si cela va être intégré à Office 2019 "non 365". Donc, gardez l'adresse en réserve; cela peut toujours servir.

  20. #20
    Nouveau Candidat au Club
    Homme Profil pro
    Ingenieur
    Inscrit en
    Février 2020
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Italie

    Informations professionnelles :
    Activité : Ingenieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2020
    Messages : 1
    Points : 1
    Points
    1
    Par défaut NURBS
    Dear Thierry
    I've tried to visualize a nurbs object but nothing seems to appear, (bezier surfaces and curves work) have you developed some routine for nurbs callback interrogation? have you written something on nurbs with vba?
    Thanks a lot for the collaboration
    Bye
    Eddy

Discussions similaires

  1. Découvrez la programmation 3D en VBA/VB6 avec OpenGL 1.1
    Par Arkham46 dans le forum Vos contributions VB6
    Réponses: 4
    Dernier message: 24/11/2009, 08h21
  2. Découvrez la programmation 3D en VBA/VB6 avec OpenGL 1.1
    Par Arkham46 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 24/11/2009, 08h21
  3. Est-il possible de créer un programme VB6 avec VS 2008 ?
    Par beegees dans le forum EDI/Outils
    Réponses: 2
    Dernier message: 20/06/2008, 20h41
  4. Réponses: 2
    Dernier message: 11/12/2007, 09h38
  5. [VBA] Problème avec composant VB6
    Par Diablo_22 dans le forum Général VBA
    Réponses: 8
    Dernier message: 16/03/2006, 21h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo