Forum Clubic

Viewer 3d avec windev

Bonjour à tous,

Je suis étudiant en BTS Informatique et je dois développer une application qui permet la visualisation 3D d’un fichier STL. Cette application doit aussi permettre d’ajouter des libellés à des positions précises dans le repère (x, y, z).

J’ai effectué beaucoup de recherches à propos de ça et je n’ai rien trouvé de concluant, mis à part développer un modèle 3D complet sauf que je n’ai que 12 semaines de projet.

Au début, j’étais parti pour utiliser OpenGL mais j’ai cru comprendre qu’OpenGL ne pouvait que créer des formes simples (cylindres, cubes, pyramides, …) et qu’il ne pouvait pas ouvrir un fichier STL pour le convertir en formes simples (ou même l’afficher directement).

Ensuite, j’ai cherché s’il existait une bibliothèque pour WinDev qui faisait office de Viewer 3D mais je n’ai absolument rien trouvé.

J’ai trouvé des logiciels OpenSource qui permettent la visualisation de fichier STL qui sont codés en C++, peut être y a t-il un moyen d’exporter ces sources (ou une partie) pour les utiliser avec WinDev (à savoir que j’utilise la version 17).

Si quelqu’un a une solution ou une direction à suivre pour résoudre mon problème, je suis preneur.

Merci d’avance, Jérémy L.

Salut,

Je suis un peu rouillé en WD, mais si tu peut utiliser un tiers (open source), la fonction ‘lanceappliassociée()’ peut te sauver…

Sinon, tu peux jeter un oeil en pied de cette page.

Rien ne t’empeche aussi d’appeler PcSoft pour avoir une meilleure orientation et peut être d’acceder à des librairies…

Salut,

Avec la fonction “lanceappliassociée”, est-ce que cela ouvre une nouvelle fenêtre ou est-ce que c’est possible de l’intégrer dans la fenêtre WinDev (sans que ce soit trop sale, genre avec les contour de fenêtre windows) ?

Merci pour le lien, je vais voir ce qui est faisable avec Plastica.

Bonne idée pour le coup de téléphone, je vais essayer de faire ça au plus vite !

Merci beaucoup, Lethgir

Pour la fonction (voir aussi la fonction DDElance) jette un coup d’oeil pour les paramètres ainsi que les commandes à exécuter possible lors de l’appel (F1).

Je pense que Plastica pourrait mieux répondre à ta demande.

Ils répondent vite et bien au téléphone.

Le problème de Plastica est que lorsque je lance le projet, j’ai une erreur qui me dit :

J’ai pas Windev sous la main…

Une question bete au passage : l’exemple qui est donner ds le projet est pour une version 17 de Windev, est tu sur la même version (les noms prefixé des .dll, …) ?

Faut decortiquer procédures globales et appels au chargement de F2 (en chargeant la fenetre directement sur WD).

J’utilise bel et bien la version 17 de WinDev.
La ligne qui pose problème est :

C3D1>>ClearScene

C3D1 est le champ ActiveX de la fenêtre “Fenêtre2”.
Si je mets cette ligne en commentaire, une erreur se produit sur la prochaine ligne de code.

J’ai remarqué que cette erreur intervait lorsqu’il est écrit “Aucun” dans la liste ActiveX qui se trouve en faisant clic droit sur le champ ActiveX -> Description -> général.
Mais dans ce cas, que faut-il mettre ?

Le code d’initialisation de la fenêtre est :


LOCAL
	occ est un entier sur 2 octets=0
	cpr, cpg, cpb sont des réels
	s,x,y sont des réels
	nom est une chaîne
	
C3D1>>ClearScene
//C3D1>>BackColor=0
C3D1>>Picture = "intro.bmp"

POUR occ = 1 A 80
	cpr=0.0
	cpg=0.0
	cpb=0.0
	C3D1>>GetColorDescriptor(occ, nom, cpr, cpg, cpb)
	s=C3D1>>InsertCube(nom, 10, 10, 10, occ)

	x = x + 1
	SI x = 11 ALORS
		y = y + 1
		x = 1
	FIN
	C3D1>>Solids(s)>>Translate(0, (x * 13), (y * 13))
FIN

C3D1>>setlight(0, 0, -10)
C3D1>>setcamera(0, 0, -70)
C3D1>>setview(800)
C3D1>>RotateScene(0, 178, 25)
C3D1>>RenderMode = 1
C3D1>>DrawScene

C3D1>>SaveToFile("cube.dat")

ActiveXEvénement("ObjectClick",C3D1,"ObjectClick")
ActiveXEvénement("MouseDown",C3D1,"MouseDown")

J’ai trouvé un moyen de visualiser les fichiers stl :
J’utilise un script javascript qui est dans un fichier .html que je lis avec un champs activeX de type “Microsoft Web Browser” (le champ HTML n’affiche pas le javascript).
Vous trouverez tout sur le script à cette adresse : code.google.com…
La page html que j’utilise est test.html

Ce script fonctionne très bien sous firefox (25) mais je ne sais pas pourquoi, il ne fonctionne pas sous IE (11) et chrome (32) même avec les pages faites pour IE (elles sont faites pour IE 9).
Sous WinDev, il ne fonctionne pas non plus, voici l’erreur que j’ai :
L’objet ne gère pas la propriété ou la méthode “addEventListener”.

Ensuite, la page charge tout de même mais lorsque je souhaite charger un fichier, il m’affiche l’erreur :
Impossible d’obtenir la propriété “replaceSceneFromUrl” d’une référence null ou non définie.

Je m’y connais vraiment très peu en javascript et j’ai un peu cherché sur google, je n’ai pas vraiment trouvé de solution pour WinDev (surtout pour IE).

Merci d’avance !

Re,

Le mieux avec Windev c’est d?utiliser le WL pour développer, si tu commence à y integrer d’autres langages ca s’annonce super mal parti…

L?intégration de certains langages sont très limité dans Windev (a moins de passer à la caisse…).

Donc si tu reste sur Windev, il va falloir maitriser le WL.

Peut être regarder du coté d’un autre langage plus flexible et avec une communauté plus importante ? (VB ?)

Le problème est qu’il n’existe rien en WL pour afficher de la 3D…
Etant donné que l’utilisation de WinDev est obligatoire, je n’ai pas vraiment le choix que d’intégrer d’autres langages !

A moins que t’aies une idée :).

WL obligatoire…pas sympa ! :ane:

La dernière fois que j’ai lancer l’IDE de Windev c’etait en V10…

Ceci dit, en cherchant j’ai peut être trouvé ca pour toi : Classe 3D Windev

En esperant que tu t’en sorte avec ça…

Ps : Tu leur à passer un coup de fil pour leur poser la question ?

J’avais déjà trouvé WDForge mais le problème est que je ne vois pas vraiment comment utiliser ce projet. Il affiche des formes construites dans le code donc je vois mal comment faire pour charger mon fichier STL et l’afficher.

J’ai contacté PCSOFT (assistance technique) et ils m’ont répondu que cela ne couvrait pas leur domaine d’action qu’il fallait contacter l’assistance directe (à 549€ HT les 3 heures…).

C’est pour ca que je pige pas trop ton prof a imposer ce language “hyper propriétaire”…

C’est parce qu’en fait il s’agit d’un projet pour entreprise et cette entreprise n’a que des développeurs WinDev et ils obligent donc son utilisation au cas où ils voudraient modifier quelque chose…

Bonjour,

J’avais pensé à une autre solution (il faut que j’effectue des recherches plus précises). Ce serait d’utiliser un champ .NET (2.0 pour les appli WinForm ou plus pour les appli WPF) qui est donc directement intégrable dans WinDev.

Il faut juste que je comprenne exactement comment cela fonctionne. Si on intègre une application compilée ou du code C#, VB.NET, F#, …

C’est toi qui a choisi le projet ou bien c’est imposé ?

Parce que obliger à utiliser Windev s’il n’y a pas moyen de faire l’application avec les outils proposé nativement par Windev, ça me semble abusé. :arf:
Edité le 12/02/2014 à 21:23

Non le projet a été imposé.
Disons que dans le cahier des charges il était écrit :

  • Obtenir 6 vues permettant de voir l’objet sous plusieurs point de vue
  • Si le temps de développement le permet, utiliser un affichage 3D

J’ai préféré me concentrer sur l’affichage 3D pensant bien que cela allait me prendre du temps. Mais il faut bien savoir que les projets ne sont pas réalisés avant (et donc pas étudiés ou mal étudiés), nous travaillons avec l’entreprise et c’est à nous de trouver des solutions.
En gros l’entreprise a dit “Ah ça serait bien si on faisait comme ça !” donc ça a été mis dans le cahier des charges avec une solution alternative…
D’ailleurs, c’est si bien étudié que le cahier des charges peut changer au cours du projet (par exemple, au début on devait développer sous Android mais en fait le matériel qu’on utilise n’est pas compatible donc on utiliser une tablette sous W8).