Macro CloneConvert/en

Description
Creates a clone or copy of the object and the converted in the chosen position and size (inch, mm, m, µm...) or free. The base object is recognized in mm (FreeCAd base)

Uses
Run the macro, the XYZ settings, choose "Clone" or "Copy" a unit or one value of choice select your object, and click button.

If no value is entered a copy or clone will be created without modification. If no object is selected the button will be colored in red.

The value of the BoundingBox, Volume and Surface is diplayed in the Report view, in the case of Copy multiple object, the display will show BoundingBox 0.0.

The base is the mm example with a 1 mm cube of side :

Select in the comboBox inch, 1 inch = 25.4 mm, the fields "Scale free" automatically adjusts to 25.4 (the values ​​in "Scale-free" can be changed separately). Click button, the clone created will have 25,4 mm x 25,4 mm x 25,4 mm

150% = 1,50 in the "Scale free" fields

104% = 1,04 in the "Scale free" fields

Inverse operation :

If you want to reduce an object ex: a cube 25.4 mm (1 inch) in cube 1 mm sides, use the following formula, 1 / 25.4 = 0.0393700 and enter the value 0,0393700 (with comma) in the Scale field XY and Z.

In a cube of 5 mm, made​​ 5 / 25.4 = 0.1968503 and enter the value 0,1968503 (with comma) in the Scale field XY and Z.

50% = 0,50 in the "Scale free" fields

 4% = 0,04 in the "Scale free" fields

Predefined units are :

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.
 * Mode
 * Clone : One clone of the objet(s) is create
 * Copy : One copy of the objet(s) is create
 * Coordinate X : Move the copy to the Coordinate X selected
 * Coordinate Y : Move the copy to the Coordinate Y selected
 * Coordinate Z : Move the copy to the Coordinate Z selected
 * Rotation
 * Yaw (Z )   : Rotate the copy to the axis Z (Yaw)
 * Pitch ( Y ) : Rotate the copy to the axis Y (Pitch)
 * Roll ( X ) : Rotate the copy to the axis X (Roll)
 * 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
 * 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
 * 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)
 *  : This button align the YZ values on the value of X to have the same values ​​XYZ (or manually)
 * 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)
 *  : 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
 *  : 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"