Macro Texture/fr

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

J'espère que cette macro va changer notre façon de penser lors de la modélisation avec la CAO et la conversion CNC en objets 3D avec peu ou pas d'intervention.

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

La macro Macro Loft est utilisé pour automatiser les opérations de multi lissage.



Utilisation
Cette macro nécessite une image en 256 nuances de gris (0-255). Par conséquent, avant d'exécuter la macro, convertissez votre image en niveaux de gris (noir et blanc). Lors de l'exécution de la macro, le nombre de couleurs est détecté automatiquement. Note : si l'image a plus de 256 couleurs, une autre fonction est attendue (WIP). Chaque couleur (niveau de gris) est considérée comme une profondeur, le blanc (255) le niveau haut et le noir (0) le niveau le plus bas (profond).

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.

Remarque importante : selon la taille de l'image, le projet peut devenir très volumineux! Par exemple, une simple image de (100px x 100px) largeur/hauteur sera : 100 x 100 = 10000 points. Chacun des 10 000 points correspond à une coordonnée, ce qui signifie donc 10000 coordonnées X, 10000 Y et 10000 Z dans la réalité.

Coordonnées

 * : La position des coordonnées X de l'objet (par défaut: 0).
 * : La position de la coordonnée Y de l'objet (par défaut: 0).
 * : La position de la coordonnée Z de l'objet (par défaut: 0).

Stetching

 * 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.

Inversion

 * : Inverse les coordonnées X de l'image.
 * : Inverse les coordonnées Y de l'image.
 * : Inverse les coordonnées Z de l'image.

Mode 8 Bits
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)


 * : Construit votre ligne (les vecteurs) sous forme de Wire.
 * : Construit votre ligne (les vecteurs) sous forme de Bspline.
 * : Crée un objet Point cloud avec les coordonnées de chaque points.
 * : Crée un point à chaque pixel (vecteur). (La procédure peut être longue)
 * : Si l'option Nuance est activée, le point représenté prend la couleur originale du point.

Mode 32 Bits

 * : Le mode photo est automatiquement activé si une image 32-bits est détectée. (La procédure peut être longue)
 * : 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)

Fichier

 * : si cette option est cochée un fichier originalName.bmp.pcd est créé et sauvé dans le même répertoire que le fichier d'origine, le fichier créé est (pcd v0.7).
 * : si cette option est cochée un fichier originalName.bmp.asc est créé et sauvé dans le même répertoire que le fichier d'origine. Ce fichier peut être utilisé pour le format point cloud (format: X Y Z).

Ecrêtement (10 mm)
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)
 * Slider  : Donne une  hauteur particulière à la forme, la hauteur est affichée dans le titre de la fenêtre.
 * : Donne une hauteur particulière à la forme, la hauteur est affichée dans le titre de la fenêtre.
 * Raw mode : Pour régler le nombre de couleurs (profondeur). Le mode par défaut est de 0 à 20 (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).
 * : Cette case à cocher active le spinbox.
 * : Ce spinbox détermine la couleur qui doit être supprimée pour avoir un contour de l'objet (ex: 0 pour le fond).
 * 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 20 à 0 (ou 255 à 0) si la case à cocher est réglée sur White (non cochée) ou de 0 à 20 (ou 0 à 255) si la case à cocher est réglée sur Black (cochée).
 * : Ce spinbox détermine le degrés d'écrêtement.

Commande

 * : Ouvre le fichier image et lance la conversion.
 * Pour modifier le paramètre disponible: allez dans Outils → Editeur de paramètres...
 * __ L'étape globale sur spinBox: __
 * Paramètre utilisateur: BaseApp/Preferences/Macros/FCMmacros/FCTexture → SingleStep
 * Ajustez la valeur souhaitée (1.0 par défaut)
 * __ Pour la recherche si la macro est mise à jour: __
 * Paramètre utilisateur: BaseApp/Preferences/Macros/FCMmacros/FCTexture → switchVesionMacroSearch
 * Réglez switchVesionMacroSearch sur ( par défaut)
 * Réglez switchVesionMacroSearch sur ( par défaut)


 * : sort de 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.14c : 15-01-2021 inclusion de Gui.SendMsgToActiveView("ViewFit")


 * Ver 0.14b : 15-01-2021 Creation de Tab Coordinate et Tab Stretching pour diminuer la hauteur pour écrans 15"


 * ver 0.14 : 06/01/2021 modifie la procédure de chemin de recherche et ajoute une option de préférence: rechercher la nouvelle macro mise à jour


 * ver 0.13b: 30/12/2020 ajout time.clock et time.process_time for Python 3xyz...
 * ver 0.13 : 17/04/2020 Layout et PySide2 Qt5
 * ver 0.12 : 04/08/2019 ajout d'un bouton pour height
 * ver 0.11 :03/07/2019 adapte à Python 3
 * ver 0.10 : 28/12/2016 ajout sauve les coordonnées des points en .pcd, .asc affichage en mode points cloud, auteur de la forme, contour
 * 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 supprime "translate" oubliés et correction des erreurs de dysfonctionnement causés par le passage de PyQt vers Pyside !
 * ver 0.6 : 26/08/2014 supprime tous les "_translate"
 * ver 0.5 : 25/08/2014 supprime "_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