Macro Texture/fr

Description
Cette petite macro vous permet de construire un projet 3D très facilement à partir d'une image bitmap 256 niveaux de gris.

J'espère que cette macro va révolutionner la manière de penser la CAO et la CNC toute image quelle soit peut être convertie en objet 3D sans aucune intervention.

Tout devient possible quelle que soit la complexité de l'image !

La macro Macro Loft pour automatiser le multi loft



Utilisation
Cette macro nécessite une image en 256 niveaux de gris (0 à 255) (8 bits) donc avant d'utiliser la macro, convertissez votre image en niveaux de gris (noir et blanc). Le nombre de couleurs est détecté automatiquement. Chaque couleur (niveau de gris) est considéré comme une profondeur, blanc (255) le niveau le plus haut et noir (0) le niveau le plus bas (profond). Si l'image fait plus de 256 couleurs (32 bits) une fonction Plan est activée. (La durée d'exécution des fonctions affichant les points peut être très longue)

La configuration se fait avant l'ouverture du fichier, les valeurs par défaut sont les réglages prévu pour obtenir un projet de dimensions :
 * largeur de l'image en points dans la coordonnée X,
 * hauteur de l'image en points dans la coordonnée Y,
 * profondeur ou épaisseur du projet filtré sur 10 mm (en mode Brut, sur 256 mm) dans la coordonnée Z.

Le fichier image se déroule à la manière d'un scanner x1 x2 x3 .... par incrément de 1 mm dans FreeCAD de même pour la valeur y de 1 mm à la fois. La valeur de z est donnée par la valeur de la couleur. Ces valeurs sont paramétrables dans la macro.

Attention : Suivant la dimension de l'image, le projet peut devenir très gros ! pour mémoire une image de 100 px de large et 100 px de haut donne 100 x 100 = 10000 points et comme chaque point correspond à une coordonnée, il y a donc 10000 cordonnées XYZ. Les fonctions Point peuvent avoir un temps d'exécution très long.

L'interface



 * Coordinate X : Coordonnée X de position de l'objet, par défaut : 0.
 * Coordinate Y : Coordonnée Y de position de l'objet, par défaut : 0.
 * Coordinate Z : Coordonnée Z de position de l'objet, par défaut : 0.
 * Stetching X : Rétrécissement ou élargissement de la longueur de l'objet,  par défaut : 0.
 * Stetching Y : Rétrécissement ou élargissement de la hauteur de l'objet,   par défaut : 0.
 * Stetching Z : Rétrécissement ou élargissement de la profondeur de l'objet, par défaut : 0.
 * Raw mode : Pour régler le nombre de couleurs (profondeur). Le mode par défaut est de 0 à 19 (qui constitue un filtre et permet d'obtenir plus de détails suivant la complexité de l'image) une fois la case cochée le mode se règle de 0 à 255 (toute la plage de couleurs).
 * Capping : La fonction écrêtement peut être faite sur les couleurs au choix, Blanc (par défaut) ou Noir. Le degrés d'écrêtement se règle de 19 à 0 (ou 255 à 0) si la case à cocher est réglée sur White (non cochée) ou de 0 à 19 (ou 0 à 255) si la case à cocher est réglée sur Black (cochée).
 * Raw mode : Pour régler le nombre de couleurs (profondeur). Le mode par défaut est de 0 à 19 (qui constitue un filtre et permet d'obtenir plus de détails suivant la complexité de l'image) une fois la case cochée le mode se règle de 0 à 255 (toute la plage de couleurs).
 * Capping : La fonction écrêtement peut être faite sur les couleurs au choix, Blanc (par défaut) ou Noir. Le degrés d'écrêtement se règle de 19 à 0 (ou 255 à 0) si la case à cocher est réglée sur White (non cochée) ou de 0 à 19 (ou 0 à 255) si la case à cocher est réglée sur Black (cochée).

La valeur de début de l'opération s'adapte automatiquement à la fonction choisie : 0 si le réglage est sur noir (Black) ou sur 255 si le réglage est sur blanc (White) ou 19 si le réglage est sur noir (Black)
 * Wire   : Construit votre ligne (les vecteurs) sous forme de Wire.
 * Bspline : Construit votre ligne (les vecteurs) sous forme de Bspline.
 * Point  : Crée un point à chaque pixel (vecteur). (La procédure peut être longue)
 * Nuance : Si l'option Nuance est activée, le point représenté prend la couleur originale du point.
 * Inversion X : Inverse les coordonnées X de l'image.
 * Inversion Y : Inverse les coordonnées Y de l'image.
 * Inversion Z : Inverse les coordonnées Z de l'image.
 * Photo      : Le mode photo est automatiquement activé si une image 32-bits est détectée. (La procédure peut être longue)
 * Plan       : Le mode plan vous permet d'importer une image 32 bits et ignorer le fond du plan. Par défaut, le fond de l'image est noir et sera ignoré. L'intensité des couleurs sont réglables avec la fonction Capping. Si White est coché, le fond a ignorer sera le blanc. (La procédure peut être longue)
 * File and lauch : Ouvre le fichier image et lance la conversion.
 * CheckBox : Si cette case à cocher est activée un fichier originalName.bmp.asc est sauvé dans le même répertoire que le fichier original. Ce fichier peut être utiliser pour créer un objet point cloud.
 * Quit : Quitte la fonction.
 * File and lauch : Ouvre le fichier image et lance la conversion.
 * CheckBox : Si cette case à cocher est activée un fichier originalName.bmp.asc est sauvé dans le même répertoire que le fichier original. Ce fichier peut être utiliser pour créer un objet point cloud.
 * Quit : Quitte la fonction.
 * Quit : Quitte la fonction.

Script
Les icônes .png et .svg

Macro_Texture.FCMacro

Téléchargez la macro sur Gist Macro FCTexture.FCMacro

Exemples
Les images ont été inclinées pour accentuer l'effet 3D.

Liens
La discussion sur le forum pour donner vos impressions.

La macro Macro Loft pour automatiser le multi loft.

apply hair cell texture

How to handle pdf import properly and feasibly?

Revision

 * ver 0.9 : 12/12/2016 ajout d'une fonction de sauvegarde de fichier ascii .asc pour le point cloud
 * ver 0.8 : 16/03/2016 ajout d'une progressBar
 * ver 0.7 : 03/09/2014 Delete "translate" oubliés et correction des erreurs de dysfonctionnement causés par le passage de PyQt vers Pyside !
 * ver 0.6 : 26/08/2014 Delete all "_translate"
 * ver 0.5 : 25/08/2014 Delete "_translate (" MainWindow "," Stretching X ", None)" qui empêchaient l'affichage des tooltip avec PySide (Windows Vista)


 * ver 0.4 : 08/08/2014 PyQt4 PySide

ver 0.3 : 28/03/2014 :commenté la ligne "# self.checkBox_5.setAccessibleName(_fromUtf8(""))" qui a causé une erreur d'exécution à partir de la version FreeCAD : Version: 0.14.3343 (Git), Python version: 2.7.6, Qt version: 4.8.5