Bonjour à toutes et à tous !
Aujourd'hui je vous présente un morceau de code que j'ai écrit il y a un moment et qui m'est utile très régulièrement dans mon travail. Ce code crée à partir d'un fichier texte une image vectorielle d'une cellule cristallographique. Le rendu est le plus simple possible, sans ombres ni aucune fioriture, prêt à être inséré dans une publication.
Comment ça marche ?
L'idée est de partir d'une structure régulière (BCC, FCC, HCP, …) et d'insérer des défauts progressivement. La liste des défauts est présente dans le readme. On peut également ajouter du texte, mais je ne suis pas satisfait de la manière dont je le gère pour l'instant.
Il faut avoir epstool pour que ça fonctionne, et je n'ai pas la moindre idée de si ça existe sous windows ou macos. Je travaille sous GNU/linux et ça fonctionne sous ce système.
J'ai uploadé un fichier d'exemple (test.txt) qui part d'une structure BCC et ajoute des atomes interstitiels avec un numéro à coté d'eux. Ça donne le résultat suivant. Pour lancer le code, il faut simplement taper "python draw.py Nomdufichierdesortie".
L'image a été convertie par ZdS et est assez horrible maintenant, mais normalement elle rend très bien.
Le code
Tout est écrit en Python. Je n'ai jamais vraiment appris à coder, je le fais par imitation de ce que je vois, donc ça ne suit probablement aucune norme, et c'est vraisemblablement une usine à gaz. Le code est dispo ici. S'il vous plait, n'hésitez psa à me donner vos commentaires (que ce soit pour le code ou pour des fonctionnalités d'ailleurs). Vplot.py n'a pas été écrit par mes soins, et je ne pense pas le modifier.
Un mot final
Donc en gros, c'est un programme qui fait quelque chose de très particulier. Je ne m'attends pas à ce que beaucoup d'entre-vous en ait besoin, mais si je le poste aujourd'hui, c'est presque plus pour avoir des commentaires sur le code. En haut du fichier draw.py, il y a une liste de choses que je veux faire. Cette liste m'est destinée donc elle peut être un peu cryptique, mais en gros, j'aimerais trouver un moyen d'optimiser la lecture du fichier d'input.
Je ne sais pas trop comment se servir de git/github (j'ai créé mon compte cet aprem), mais si jamais vous avez besoin du programme et voulez y apporter des modifications, n'hésitez pas à le faire et à me les faire parvenir.
Bonne soirée à vous !