Macro CloneConvert/it

Descrizione
Crea un clone o una copia dell'oggetto, lo colloca nella posizione indicata e con le dimensioni desiderate (cm, mm, m, um ...) a piacere. L'originale, cioè l'oggetto selezionato, è riconosciuto in mm (secondo il sistema base di FreeCAD)

Utilizzo
Avviare la macro, definire le impostazioni XYZ se è necessario, scegliere "Clone" oppure "Copia", scegliere una unità di conversione, selezionare l'oggetto e poi fare clic su il pulsante per avviare l'operazione.

Se non viene inserito alcun valore viene creata una copia o un clone senza modifiche. Se non è selezionato alcun oggetto il pulsante è colorato in rosso.

Il valore di BoundingBox, Volume e Surface sono indicate nella vista Report, nel caso di oggetti Copy multiple, il display visualizza BoundingBox 0.0.

L'unità di base e il mm. L'originale viene quindi considerato come un oggetto in cui l'unità di misura è il mm.

Esempio di conversione di uno cubo avente il lato di 1 mm in un cubo avente lato 25,4 mm:

Selezionare nel comboBox l'unità inch, 1 inch = 25.4 mm, notare che il valore nei campi "Scale free" si adeguano automaticamente a 25.4 che corrisponde appunto a 1 pollice (per impostare scalature differenti secondo gli assi, i valori ​​in "Scale-free" possono essere modificati individualmente). Cliccare sul pulsante. Il cubo clone creato in questo modo ha le dimensioni di 25,4 mm

Operazione inversa :

Per convertire un oggetto, ad esempio un cubo di 25,4 mm (1 inch) in un cubo di 1mm x 1mm x 1mm, utilizzare la formula 1 / 25,4 = 0,0393700 e inserire il valore 0,0393700 (con la virgola) nel campo Scale X, Y e Z.

Per un cubo di 5mm, fare 5 / 25,4 = 0,1968503e inserire il valore 0,1968503 (con la virgola) nel campo Scale X, Y e Z.

150% = 1,50 nel campo "Scale free"

104% = 1,04 nel campo "Scale free"

Operazione inversa:

Per convertire un oggetto, ad esempio un cubo di 25,4 mm (1 inch) in un cubo di 1mm x 1mm x 1mm, utilizzare la formula 1 / 25,4 = 0,0393700 e inserire il valore 0,0393700 (con la virgola) nel campo Scale X, Y e Z.

Per un cubo di 5mm, fare 5 / 25,4 = 0,1968503e inserire il valore 0,1968503 (con la virgola) nel campo Scale X, Y e Z.

50% = 0,50 nel campo "Scale free"

 4% = 0,04 nel campo "Scale free"

Le unita predefinite sono: km, hm, dam, m, dm, cm, mm, µm, nm, inch, link, foot, yard, perch, chain, furlong, mile, league, nautique.

Se questo non viene attivato il posizionamento inizia alle coordinate 0,0,0 di FreeCAD Nel caso in cui un composto le coordinate di Placement sono [0,0,0], e il posizionamento inizia nella posizione dell'oggetto Se il posizionamento non inizia nella posizione 0,0,0, utilizzare il pulsante per ottenere il posizionamento reale dei  subObject selezionati Face, Wire, Line ....
 * Mode
 * Clone : Crea un clone
 * Copy : Crea una copia
 * Comp   : Crea un composto di oggetto
 * Increm. : incrementa i dati delle coordinate alle coordinate originali dell'oggetto (Placement, Rotation ...)


 * Coordinate
 *  : Questo pulsante forza il valore di Y e Z ai valori di X per avere gli stessi valori ​​XYZ (o manualmente). Due click ripristinano i valori delle coordinate a 0.0
 * Coordinate X : Sposta la copia alla coordinata X selezionata (Base 0,0,0 se Increm. non è attivo)
 * Coordinate Y : Sposta la copia alla coordinata Y selezionata (Base 0,0,0 se Increm. non è attivo)
 * Coordinate Z : Sposta la copia alla coordinata Z selezionata (Base 0,0,0 se Increm. non è attivo)


 * Rotation
 *  : Questo pulsante forza i valori di beccheggio e rollio sul valore di imbardata per avere lo stesso valore di Rotazione (o manualmente). Due click ripristinano i valori delle rotazioni a 0.0
 * Yaw (Z )   : Ruota la copia sull'asse Z (Yaw) (Inizia da 0 se Increm. non è attivo)
 * Pitch ( Y ) : Ruota la copia sull'asse Y (Pitch) (Inizia da 0 se Increm. non è attivo)
 * Roll ( X ) : Ruota la copia sull'asse X (Roll) (Inizia da 0 se Increm. non è attivo)


 * Scale predefined
 * Scale predefined : le scale predefinite sono km, hm, dam, m, dm, cm, mm, µm, nm, inch, link, foot, yard, perch, chain, furlong, mile, league, nautique, oppure impostare l'unità desiderata nel campo Scale free.


 * Number copy 
 * Number copy : numero di copie


 * Scale free
 *  : Questo pulsante adatta i valori per Y e Z al valore di X per scalare su tutti gli assi con lo stesso valore (o impostare manualmente gli stessi valori). Due click per ripristinare i valori di scale a 1,0
 * Scale X : scala a scelta, se il valore è negativo ( -10) , l'oggetto viene ingrandito x 10 e viene invertita la direzione sull'asse X, per ridurre la forma inserire un valore decimale (0,5)
 * Scale Y : scala a scelta, se il valore è negativo ( -10) , l'oggetto viene ingrandito x 10 e viene invertita la direzione sull'asse Y, per ridurre la forma inserire un valore decimale (0,5)
 * Scale Z : scala a scelta, se il valore è negativo ( -10) , l'oggetto viene ingrandito x 10 e viene invertita la direzione sull'asse Z, per ridurre la forma inserire un valore decimale (0,5)

Questa opzione è utile quando i dati indicati di Placement sono [0,0,0] e la posizione effettiva dell'oggetto non corrisponde alle coordinate di base 0,0,0 (non dà informazioni sulla rotazione dell'oggetto)
 *  : Attribuisce il vettore valueAt dei subObject selezionati Face, Wire, Line ...
 *  : il pulsante OK convalida e lancia il comando, se non è selezionato alcun oggetto il pulsante ha il colore rosso
 *  : il pulsante Reset azzera tutti i valori
 *  : esce dalla macro

Script
L'icona di Macro_CloneConvert:

Macro_CloneConvert.FCMacro

Download the macro to Gist Macro_CloneConvert.FCMacro

Revision
14/06/2016 ver 0.9 = adding the choice of number of copies and labels optimization

31/01/2016 ver 0.8 = modify the buttons reset section for two click for reset (in case modification the value)

30/01/2016 ver 0.7 = rewriting code with Placement and Increment and adding buttons Compound, Increment, ValueAt,

26/01/2016 ver 0.6 = correction placement with many objets Copy

26/07/2015 ver 0.5 = correction rotate many objects Function Copy

25/07/2015 ver 0.4 = adding rotation

11/08/2014 replace "AttributeError" to "Exception"

02/07/2014 ver. 0.3 = modified to operate PyQt4 and PySide

09/05/2014 ver. 0.2 = adding function "Copy"