Macro Texture/it

Descrizione
Questa macro permette di creare facilmente un modello 3D partendo da una immagine bitmap con 256 livelli di grigio.

Siccome con questa macro qualsiasi immagine può essere convertita in oggetti 3D senza alcun intervento, spero che questo cambi il modo di concepire il CAD e CNC.

Tutto diventa possibile indipendentemente dalla complessità dell'immagine!

La macro Macro Loft permette di automatizzare il "multi loft"



Uso
Questo macro ha bisogno di una immagine con 256 livelli di grigio (0-255) (8 bit) pertanto prima di utilizzare la macro è necessario convertire l'immagine in scala di grigi. Il numero di colori viene rilevato automaticamente. Ogni colore viene trattato come un livello di grigio, il bianco (255) è il livello più alto e il nero (0) è il livello più basso. Se l'immagine ha più di 256 colori (32 bit) viene attivato il modo Plan. (Il tempo di esecuzione delle funzioni di visualizzazione dei punti può essere molto lungo)

La configurazione si esegue prima di aprire il file, i valori predefiniti producono un disegno con le seguenti dimensioni:
 * la coordinata X è la larghezza dell'immagine in punti,
 * la coordinata Y è l'altezza dell'immagine in punti,
 * la coordinata Z è la profondità o spessore del disegno adattato a 10 mm (256 mm in modo raw).

In FreeCAD il file dell'immagine si sviluppa come in una scansione x1 x2 x3 ... con incrementi del valore y di 1 mm per volta. Il valore di z è detrminato dal valore del colore. Questi valori sono configurabili nell'interfaccia della macro.

Attenzione: secondo le dimensioni dell'immagine, il file del disegno può diventare molto grande! Tenere presente che un'immagine di 100 px di larghezza e 100 px di altezza produce 100 x 100 = 10000 punti e quindi, siccome a ogni punto corrisponde una coordinata, ci sono 10000 coordinate XYZ o vettori.

L'interfaccia



 * Coordinate X : Coordinata X della posizione dell'oggetto, di default : 0.
 * Coordinate Y : Coordinata Y della posizione dell'oggetto, di default : 0.
 * Coordinate Z : Coordinata Z della posizione dell'oggetto, di default : 0.
 * Stetching X : Diminuisce o aumenta la lunghezza dell'oggetto, di default : 0.
 * Stetching Y : Diminuisce o aumenta l'altezza dell'oggetto, di default : 0.
 * Stetching Z : Diminuisce o aumenta la profondità dell'oggetto, di default : 0.
 * Raw mode : Serve a regolare il numero di colori (livelli). La modalità predefinita è 0-19 (che costituisce un filtro e permette di ottenere maggiori dettagli, secondo la complessità dell'immagine). Quando viene selezionata questa opzione la modalità passa a 0-255 (tutta la scala di colori).
 * Capping : L'operazione di tappatura può essere eseguita su colori a scelta, bianco (impostazione predefinita) o nero. Il grado di tappatura si regola da 19 a 0 (o da 255 a 0) se la casella di controllo è impostata su White, oppure da 0 a 19 (o da 0 a 255) se la casella di controllo è impostata su Black.
 * Raw mode : Serve a regolare il numero di colori (livelli). La modalità predefinita è 0-19 (che costituisce un filtro e permette di ottenere maggiori dettagli, secondo la complessità dell'immagine). Quando viene selezionata questa opzione la modalità passa a 0-255 (tutta la scala di colori).
 * Capping : L'operazione di tappatura può essere eseguita su colori a scelta, bianco (impostazione predefinita) o nero. Il grado di tappatura si regola da 19 a 0 (o da 255 a 0) se la casella di controllo è impostata su White, oppure da 0 a 19 (o da 0 a 255) se la casella di controllo è impostata su Black.

Il valore iniziale dell'operazione si adegua automaticamente alla funzione selezionata: 0 se l'impostazione è su Nero (Black), oppure 255 o 19 se l'impostazione è Bianco (White)
 * Wire   : Costruisce la linea (i vettori) in forma di Wire.
 * Bspline : Costruisce la linea (i vettori) in forma di Bspline.
 * Point  : Crea un punto per ogni pixel (vettoriale). (La procedura può essere lunga)
 * Nuance : Se Nuance è attivato i colori dei punti sono restituiti come se fosse una foto.
 * Inversion X : Inverte le coordinate X dell'immagine.
 * Inversion Y : Inverte le coordinate Y dell'immagine.
 * Inversion Z : Inverte le coordinate Z dell'immagine.
 * Photo: Il modo Photo è attivato automaticamente quando viene rilevata una immagine di 32 bit. (La procedura può essere lunga)
 * Plan: Il modo Plan consente di importare una immagine di 32 bit e ignorare lo sfondo del piano. Il colore predefinito dello sfondo del piano è il nero, per ignorare più colori regolare il Capping. Se è selezionato il bianco, ignora il bianco e lascia passare tutti gli altri colori. (La procedura può essere lunga)
 * File and lauch : Apre il file immagine e avvia la conversione.
 * CheckBox : Se si seleziona questa casella di controllo viene salvato un file originalName.bmp.asc nella stessa cartella del file originale. Questo file può essere utilizzato per creare un oggetto nuvola di punti.
 * Quit : Esce dalla funzione.
 * File and lauch : Apre il file immagine e avvia la conversione.
 * CheckBox : Se si seleziona questa casella di controllo viene salvato un file originalName.bmp.asc nella stessa cartella del file originale. Questo file può essere utilizzato per creare un oggetto nuvola di punti.
 * Quit : Esce dalla funzione.
 * Quit : Esce dalla funzione.

Script
Le icone in formato .png e .svg

Macro_Texture.FCMacro

Scaricare la macro da Gist Macro FCTexture.FCMacro

Esempio
Le immagini sono state inclinate per esaltare l'effetto 3D.

Link
La discussione sul forum per esprimere le proprie impressioni e

La Macro Loft che permette di automatizzare il "multi loft"

apply hair cell texture

How to handle pdf import properly and feasibly?

Revisioni

 * ver 0.9 : 12/12/2016 adding save file .asc for cloud point
 * ver 0.8 : 16/03/2016 adding progressBar
 * ver 0.7 : 03/09/2014 Delete "translate" forgotten and bug fix discovered by the passage of PyQt to Pyside !
 * ver 0.6 : 26/08/2014 Delete all "_translate"
 * ver 0.5 : 25/08/2014 Delete "_translate (" MainWindow "," Stretching X ", None)" that prevented the display of tooltip with PySide (Windows Vista)

ver 0.4 : 08/08/2014 PyQt4 PySide

ver 0.3 : 28/03/2014 :commentata la riga "#       self.checkBox_5.setAccessibleName(_fromUtf8(""))" che causa un errore con la seguente versione di FreeCAD : 0.14.3343 (Git), Python version: 2.7.6, Qt version: 4.8.5