Macro CloneConvert/fr

Description
Crée un clone ou une copie de ou des objets sélectionné(s) et le converti dans la grandeur et position sélectionnée (inch, mm, m, µm...) ou libre. L'original est reconnu comme mm qui est l'unité de base de FreeCAd

Utilisation
lancez la macro, choisissez "Clone" ou "Copy" réglez le placement XYZ (si nécessaire) et choisissez une unité de conversion dans le menu déroulant ou définissez d'autres valeurs ou des valeurs différentes dans les champs Scales, sélectionnez votre objet et lancez la macro en cliquant sur le bouton.

Si aucune valeur n'est entrée une copie ou un clone sera créé sans modification. Si aucun objet n'est sélectionné le bouton change de couleur et devient rouge si l'opération c'est bien déroulée le  devient vert.

Les valeurs du BoundingBox, Volume et Surface sont affichés dans la Vue Rapport, dans le cas d'une copie de plusieurs objets, Les valeurs du BoundingBox indiquent 0.0.

L'unité de base est le mm (l'objet sélectionné est considéré comme un objet dont l’unité est le mm).

Exemple avec un cube de 1 mm de côtés :

Sélectionnez dans la liste déroulante (combobox) l'unité inch (pouce), la valeur des champs Scales free s'ajustent automatiquement à 25,4 mm qui correspond à un pouce (ces champs peuvent être modifiés séparément). Cliquez sur le bouton, le clone de l'objet ici le cube de 1 mm de côtés aura comme dimensions 25,4 mm x 25,4 mm x 25,4 mm.

150% = 1,50 dans les champs "Scale free"

104% = 1,04 dans les champs "Scale free"

Opération inverse :

Si vous voulez réduire un objet par exemple le cube de 25,4 mm (1 pouce) en un cube de 1 mm de côtés, utilisez la formule suivante ,

1 / 25,4 = 0,0393700 et entrez la valeur 0,0393700 (avec une virgule) dans les champs Scale free XY et Z.

Dans un cube de 5 mm, faites 5 / 25,4 = 0,1968503 et entrez la valeur 0,1968503 (avec une virgule) dans les champs Scale free XY et Z.

50% = 0,50 dans les champs "Scale free"

 4% = 0,04 dans les champs "Scale free"

Les unités prédéfinies sont :

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

If this is not checked the Placement begin in coordinates 0,0,0 of FreeCAD In case a compound Placement information is [0,0,0] the Placement begin in the position of object If the real location is away from the base coordinates 0,0,0 use the button for the real Placement of the subObject selected Face, Wire, Line .... The second click reset the coordinates values to 0.0 The second click reset the rotations values to 0.0 or choose a free value in the Scale free field. The second click reset the scales values to 1.0 This option is useful in case a compound Placement information [0,0,0] and its real location is away from the base coordinates 0,0,0 (gives no provide information about the rotation of the object)
 * Mode
 * Clone  : One clone of the objet(s) is create
 * Copy   : One copy of the objet(s) is create
 * Comp   : One compound of the objet(s) is create
 * Increm. : incrementing the coordinates data to the original coordinates of the object (Placement, Rotation ...)
 *  : This button align the YZ values on the value of X to have the same values ​​XYZ (or manually)
 *  : This button align the YZ values on the value of X to have the same values ​​XYZ (or manually)
 * Coordinate X : Move the copy to the Coordinate X selected (Base 0,0,0 if Increm. is not checked)
 * Coordinate Y : Move the copy to the Coordinate Y selected (Base 0,0,0 if Increm. is not checked)
 * Coordinate Z : Move the copy to the Coordinate Z selected (Base 0,0,0 if Increm. is not checked)
 * Rotation
 *  : This button align the Pitch and Roll values on the value of Yaw to have the same values ​​Rotation (or manually)
 *  : This button align the Pitch and Roll values on the value of Yaw to have the same values ​​Rotation (or manually)
 * Yaw (Z )   : Rotate the copy to the axis Z (Yaw) (Begin 0 if Increm. is not checked)
 * Pitch ( Y ) : Rotate the copy to the axis Y (Pitch) (Begin 0 if Increm. is not checked)
 * Roll ( X ) : Rotate the copy to the axis X (Roll) (Begin 0 if Increm. is not checked)
 * Scale predefined
 * Scale predefined : predefined scales in units, km, hm, dam, m, dm, cm, mm, µm, nm, inch, link, foot, yard, perch, chain, furlong, mile, league, nautique
 * Scale predefined : predefined scales in units, km, hm, dam, m, dm, cm, mm, µm, nm, inch, link, foot, yard, perch, chain, furlong, mile, league, nautique
 * Scale free
 *  : This button align the Scales values on the value of Scale X to have the same values ​​XYZ (or manually)
 *  : This button align the Scales values on the value of Scale X to have the same values ​​XYZ (or manually)
 * Scale X : free scale, if the value is negative ( -10) , the object is scaled x 10 and will be reversed in the X axis, to reduce the shape give a decimal value (0,5)
 * Scale Y : free scale, if the value is negative ( -10) , the object is scaled x 10 and will be reversed in the Y axis, to reduce the shape give a decimal value (0,5)
 * Scale Z : free scale, if the value is negative ( -10) , the object is scaled x 10 and will be reversed in the Z axis, to reduce the shape give a decimal value (0,5)
 *  : Give the valueAt the subObject selected Face, Wire, Line ...
 *  : Give the valueAt the subObject selected Face, Wire, Line ...
 *  : the OK button validates and launches the command, if no object is selected the button will be colored in red
 *  : the Reset button puts all the values to zero
 *  : the Quit button exit the macro

Script
The icone

Macro_CloneConvert.FCMacro

Revision
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"