(Loading...)

mercredi 1 août 2007

Modélisation de composant Pour Eagle3D

Potentiomètre réalisé sous Moray rendu sous POVRay

La bibliothèque de composant de Eagle3D, bien que très fournie et régulièrement mis à jour, manque parfois de l'élément dont vous aurez besoin. Par la force des choses j'ai du donc pour certains composants créer mon propre modèle. Ce fut un parcours du combattant pour arriver à mes fins au début.
Les renseignements que l'on trouve sur le net sont la plupart du temps en Allemand ou Anglais, ce qui n'est pas toujours pratique notamment lorsque le sujet n'est pas maîtrisé.
Voici donc la méthodologie que j'ai mis en place pour mes propres créations.




MODELISATION

Pour des composants simples
le scriptage sous PoV-Ray est assez aisé et plus rapidement mise en place, Il existe de nombreux tutoriels sur le sujet, une petite recherche vous permettra d'avancer.

Pour des composants plus compliqués
l'utilisation de Moray est nécessaire, c'est le logiciel qui permet d'approcher au mieux le langage natif de PoV-Ray, et ainsi d'intégrer plus facilement vos propres macros à Eagle3D.

PoV-Ray, est gratuit, il existe en 32 ou 64 bits.

Moray, était distribué en shareware payant, il a été repris par les développeurs de PoV-Ray et distribué gratuitement depuis.
Le numéro d'enregistrement est le suivant:
  
  Name    : 'POV-Ray User'
  Number : 'BFDDE769' 


Notez que pour des raisons de compatibilité il est préférable de travailler avec Moray et PoV-Ray 3.5
pour la création de composant, en effet Moray n'est pas à l'aise avec les versions ultérieures.
Puis avec PoV-Ray 3.6 (ou mieux 3.7 beta) et Eagle3D pour rendre vos circuits électroniques.



Dans l'exemple ci-dessous j'ai réalisé une fiche femelle USB B en 3D  sous moray,
Affichage en openGL












Modélisation d'un potentiomètre.
Rendu éclairage standard POV-Ray intégré dans l'interface













Modélisation d'une résistance ajustable
Rendu avec radiosité et area light intégré dans l'interface














Rendu en image de synthèse généré par Eagle3D

Potentiomètre en situation.















ADAPTATION DU CODE POUR EAGLE3D


Récupérer le code nécessaire:


Sous Moray calculer (rendre) l'image du composant via POV, vous retrouverez ainsi le fichier .pov dans le répertoire d'installation de Moray, le sous répertoire \POVScn .

Puis,

copier et coller cette section dans un fichier modèle et remplacer le composant du modèle par celui extrait du fichier généré par Moray.
Effectuer quelques modifications, concernant les couleurs en reprenant des couleurs comprises par Eagle3D.
Pour avoir ces couleurs il suffit de regarder d'autres composants comportant des couleurs similaires et de les reprendre.
Ensuite, Enregistrer dans un fichier nommé USB.inc (ou le nom du composant que vous modélisez)  qui sera placé également dans "Eagle\ulp\eagle3d\povray\".

Pour ceux qui suivent toujours, il suffit de prendre le fichier USB.inc fourni plus bas, et de remplacer la section du composant par le votre, et de changer les noms d'entête qui sont indiqués dans les commentaires du fichier fourni.


INTÉGRATION DE LA MACRO DANS EAGLE

Edition manuelle

Ensuite, éditer le fichier 3dusrpac.dat, se trouvant dans "Eagle\ulp" toujours avec un simple éditeur de texte.
Et ajouter la syntaxe suivante:

85-32004-00X:0:0:0:0:0:0:0:0:0:0:0:0:0:180:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:USB_FEM_B(::

Signification de l'index

[00] Nom du package du composant de Eagle
[01] Output name
[02] Output value
[03] Define color bands
[04] SMD offset (parts will be moved pcb_cuhight up/down)
[05] LED options (The LED options dialog will be displayed)
[06] Ready for sockets (see explanation)
[07] Demande pour la hauteur d'un Quartz
[08] Has part a macro (for example, SMD jumpers)
[09] SMD resistor, Generate number combination
[10] Socket macro
[11] Height of socket in 1/10mm
[12] Comments concerning socket
[13] Internal for administration purpose (not used at present)
[14] Correction de rotation axe Y
[15] Offset de correction x
[16] Offset de correction y
[17] Offset de correction z
[18] Use Prefix from Part?
[19] Shunt on pinheader (a dialog will be displayed)
[20] Logo selection dialog will be shown
[21] Reserved[8]
[29] Bounding-Box Minimum
[30] Bounding-Box Maximum
[31] POV-Ray macro (Nom de la macro pov et une parenthèse gauche)
[32] Package comments (Allemand)
[33] Package comments (Anglais)


Donc ici "85-32004-00X" est le nom du Package donné par Eagle.
Pour le trouver il suffit dans Eagle de cliquer sur l'icone "i" et de pointer le composant pour avoir le nom du Package.

Les autres valeurs restent la plupart du temps par défaut,

Le 180 indique une rotation de 180° sur l'axe Y, car mon modèle se présentait à l'envers.
Le "USB_FEM_B" correspond au nom que j'ai donné à la macro de mon modèle.

Edition avec Visu3D (préférable)

Un petit outil existe pour éviter l'édition de ce fichier manuellement, il s'agit de Visu3D qui permet l'edition, et la visualisation des fichiers 3DPac et 3DuserPac, de manière plus conviviale.



L'interface principale
















Un double click sur le composant désigné, et l'on paramètre l'ensemble des éléments nécessaires à la liaison du composant Eagle et la macro de son modèle 3D ainsi que du positionnement du dit composant.












Exemple de macro réalisée pour la création d'une fiche USB B femelle cité plus haut USB.inc



(convertie en HTML pour garder les couleurs facilitant la lecture le fichier inc original se trouvant )

Note

Entre la modélisation sous Moray, et le code destiné à Eagle3D il y a une étape, hélas, assez rebutante, qui consiste, parfois, à adapter la syntaxe.

Le plus délicat dans ces manipulations, est d'éviter les erreurs de syntaxes courantes lors de l'élaboration du modèle 3D, en effet lors du "scriptage", une simple omission d'une parenthèse, d'une virgule ou encore accolade et c'est l'erreur....

Pour la fiche USB, ce fut simple et direct, quasiment.
Concernant le potentiomètre en revanche j'ai du plancher pas mal de temps avant de résoudre toutes les erreurs de syntaxes.

Dans les grosses lignes ce qu'il faut retenir, c'est que chaque pièce du composant doit être construite sous forme de #declare
puis affichée (de préférence à la fin) sous forme de: object {nom du declare}.

Exemple.


#declare CorpsPot =   // ici par exemple pour le potentiomètre, la coque metallique
(ici tout le code de la coque extrait de moray)


#declare Ecrou =
(ici tout le code de l'ecrou extrait de moray)


#declare Axe =
(ici tout le code de l'axe extrait de moray)


etc....


#declare Potentiometre =   // ici on réuni toutes les pieces
union {
object { CorpsPot }
object { Ecrou }
object { Axe }


  }


object { Potentiometre }   // ici on appelle l'objet pour etre affiché, eventuellement le positionner, changer la taille la rotation etc..

Voilà toute cette partie exemple doit s'intégrer dans le modèle de Macro fourni plus haut.


Une fois réalisé le fichier macro pour le composant à l'extension .inc
il faut ajouter ce dernier dans la liste du fichier User.inc, se trouvant dans "Eagle\ulp\eagle3d\povray\" à l'aide d'un éditeur de texte (Bloc Note) selon cette syntaxe:

#include "USB.inc"

juste avant le #end



Cela parait compliqué, mais après deux ou trois composants on comprend rapidement le principe.


2 commentaires :

Anonyme a dit…

I’m not that much of a internet reader to be honest but your sites really
nice, keep it up! I'll go ahead and bookmark your website to come back later on.
Cheers

Also visit my blog ... cigarette electronique

HeartyGFX a dit…


Hi,
Thanks for your kind comment.
I'm glad you like it.

Regards,