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"

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"

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.

Si la case n'est pas activée le Placement commence aux coordonnées 0,0,0 de FreeCAD Dans le cas d'un compound, le placement renseigné dans la vue combinée est [0,0,0], le placement commence à la position de l'objet Dans ce cas le Placement ne commence pas à la position 0,0,0 utilisez le bouton pour obtenir le Placement réel du sous objet sélectionné Face, Wire, Line .... Deux clics sur le bouton mettent les coordonnées à 0.0 Deux clics sur le bouton mettent les coordonnées à 0.0 Deux clics sur le bouton mettent les coordonnées à 1.0 Cette option est intéressante lorsque les données de Placement renseignées sont [0,0,0] et que l'emplacement réel de l'objet est éloigné des coordonnées de base [0,0,0] (ne donne pas de renseignement sur la rotation de l'object)
 * Mode
 * Clone : Crée un clone de ou des objet(s) sélectionné(s).
 * Copy : Crée une copie de ou des objet(s) sélectionné(s).
 * Comp   : Crée un compound de ou des objet(s) sélectionné(s)
 * Increm. : incremente les coordonnées à la position (Placement, Rotation ... ) actuelle de la sélection
 * Coordonnées
 *  : Ce bouton aligne les valeurs YZ à la valeur X pour obtenir le mêmes valeurs ​​XYZ (ou manuellement)
 *  : Ce bouton aligne les valeurs YZ à la valeur X pour obtenir le mêmes valeurs ​​XYZ (ou manuellement)
 * Coordinate X : Déplace l'objet aux coordonnées de placement X (facultatif) (Base 0,0,0 si Increm. n'est pas activé)
 * Coordinate Y : Déplace l'objet aux coordonnées de placement Y (facultatif) (Base 0,0,0 si Increm. n'est pas activé)
 * Coordinate Z : Déplace l'objet aux coordonnées de placement Z (facultatif) (Base 0,0,0 si Increm. n'est pas activé)
 * Rotation
 *  : Ce bouton aligne les valeurs Pitch et Roll à la valeur Pitch pour obtenir le mêmes valeurs ​​XYZ (ou manuellement)
 *  : Ce bouton aligne les valeurs Pitch et Roll à la valeur Pitch pour obtenir le mêmes valeurs ​​XYZ (ou manuellement)
 * Yaw (Z )   : Donne un angle de rotation dans l'axe Z (Yaw) (Début 0 si Increm. n'est pas validé)
 * Pitch ( Y ) : Donne un angle de rotation dans l'axe Y (Pitch) (Début 0 si Increm. n'est pas validé)
 * Roll ( X ) : Donne un angle de rotation dans l'axe X (Roll) (Début 0 si Increm. n'est pas validé)
 * Scale predefined
 * Scale predefined :Les unités d'échelle predefinies, km, hm, dam, m, dm, cm, mm, µm, nm, inch, link, foot, yard, perch, chain, furlong, mile, league, nautique ou choisissez une valeur libre dans les champs Scale free.
 * Number copy 
 * Number copy : Nombre de copies désirées
 * Scale free
 *  : Ce bouton aligne les valeurs YZ à la valeur X pour obtenir le mêmes valeurs ​​XYZ (ou manuellement)
 * Scale free
 *  : Ce bouton aligne les valeurs YZ à la valeur X pour obtenir le mêmes valeurs ​​XYZ (ou manuellement)
 *  : Ce bouton aligne les valeurs YZ à la valeur X pour obtenir le mêmes valeurs ​​XYZ (ou manuellement)
 * Scale X : échelle libre, si la valeur entrée est négative ex: ( -10), l'objet sera mis à l'échelle de 10 fois et sera inversé dans l'axe X, pour réduire l'objet, il faut entrer une valeur décimale exemple (0,5) réduira l'objet de 1/2 dans l'axe X.
 *  : Ce bouton aligne la valeur des axes YZ à la valeur de X si vous voulez que les trois valeurs XYZ soient égales.
 * Scale Y : échelle libre, si la valeur entrée est négative ex: ( -10), l'objet sera mis à l'échelle de 10 fois et sera inversé dans l'axe Y, pour réduire l'objet, il faut entrer une valeur décimale exemple (0,5) réduira l'objet de 1/2 dans l'axe Y.
 * Scale Z : échelle libre, si la valeur entrée est négative ex: ( -10), l'objet sera mis à l'échelle de 10 fois et sera inversé dans l'axe Z, pour réduire l'objet, il faut entrer une valeur décimale exemple (0,5) réduira l'objet de 1/2 dans l'axe Z.
 *  : Donne le vecteur valueAt du sous objet sélectionné Face, Wire, Line ...
 *  : Donne le vecteur valueAt du sous objet sélectionné Face, Wire, Line ...
 *  : Le bouton OK valide et lance la commande, si aucun objet n'est sélectionné le bouton se colore en rouge.
 *  : Le bouton Reset met toutes les variables à zéro
 *  : Le bouton Quit quitte la macro.


 * Coordinates
 *  : This button align the YZ values on the value of X to have the same values ​​XYZ (or manually). Two click reset the coordinates values to 0.0
 * 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)

Two click reset the rotations values to 0.0
 * Rotation
 *  : 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 or choose a free value in the Scale free field.


 * Number copy 
 * Number copy : number of copies

Two click reset the scales values to 1.0
 * Scale free
 *  : 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)

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)
 *  : 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 coloured in red
 *  : the Reset button puts all the values to zero
 *  : the Quit button exit the macro

Script
L'icône de la macro qui servira pour votre barre d'outils

Macro_CloneConvert.FCMacro

Révisions
14/06/2016 ver 0.9 =  ajout du bouton nombre de copies et optimisation des labels

31/01/2016 ver 0.8 = modification des boutons reset des sections il faut cliquer deux fois sur le bouton pour mettre les valeurs à 0(indispensable en cas de modification des valeurs)

30/01/2016 ver 0.7 = réécriture du code avec Placement et Increment et ajout des boutons Compound, Increment, ValueAt,

26/01/2016 ver 0.6 = correction placement avec plusieurs objets (copy)

26/07/2015 ver 0.5 = correction rotation avec plusieurs objets fonction Copy

25/07/2015 ver 0.4 = ajout rotation

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

02/07/2014 ver. 0.3 = modification fonctionne avec PyQt4 et PySide

09/05/2014 ver. 0.2 = ajout de la fonction "Copy"