Sandbox:HowTo2

Description
Creates a datum shape binder from a selected Body inside the active Body. A shape binder is a reference object that links to edges or faces from another Body. It also can be used to link a sketch from one body to another body. The shape binder object displays as translucent yellow in the 3D view. Examples of use would be to build a box with fitting cover in two different bodies or to make holes that are aligned between different bodies.



Two shapes from Body.Pad004 are selected and their datum objects are now available in Body001.Sketch005 as external geometry through Body001.ShapeBinder.

How to use
General Use:
 * 1) Activate target body (body to receive shape binder object).
 * 2) Press the  button.
 * 3) Press either the  button or the  button.
 * 4) In the 3D view, select the object or geometry to copy. Object will select the whole body; Add geometry will select any element (vertex, edge, face).
 * 5) To remove selected geometry, press the  button and select the geometry in the 3D view. To cancel, press the button again.
 * 6) Alternatively, the Body to copy can be selected before launching the Shape binder command.
 * 7) Press.

Options
Double-click the ShapeBinder label in the Model tree or right-click and select Edit shape binder in the contextual menu to edit its parameters.

Properties

 * : name given to the object, this name can be changed at convenience.
 * : At setting this option to true, the Shapebinder does observe relative placements of the parts and bodies. Default ist false. See the example above for how this is used works

Limitations
There is a workaround for multiple selection: If you select all the elements you want to have before creating the ShapeBinder, they appear in the initial list.
 * Multiple selection is not supported. The Add geometry and Remove geometry buttons need to be pressed for each single selection.
 * A shape binder cannot serve as base feature.
 * Selected geometry on a body must be contiguous.
 * If the body to be copied is selected first before launching the command, or if the button is used, it is no longer possible to only select specific geometry elements.
 * The relative placement of the target body and the copied body is not taken into account. The shape binder will adopt the same internal coordinates as the copied body. Since version 0.18 it has a new property "Trace Support", in order to switch this behavior to take into account the relative placements.

Use Cases

 * HowTo center a hole to a face
 * The example uses the ShapeBinder feature to make a hole (with or without threads) through more than one body. Normally the Hole function of the Part Design workbench is limited to a single body. The example uses two cubes facing each other but misaligned in an arbitrary way. The holes are created with sketches containing a circle for every hole (the diameter is ignored by the hole function). When you copy the sketch to the other cube it will be at the same position in the local cube coordinate system. In the image this is shown by the white circle on the back cube. This is not what we want, because the hole at that position would not be aligned to the hole in the front cube.


 * [[File:ShapeBinderThroughHole.png]]
 * Example setup for showing HowTo make holes through different bodies. The white circle shows that copying sketches is not enough

Here is how you use the ShapeBinder Feature to achieve it:
 * 1) Prepare a scene as per the above image. If you use the cubes from the Part workbench, remember that you must put them into a "body" container. Each one in a single body container. Otherwise the PartDesign functions would not work. If you build them from sketches the system should create body containers by default.
 * 2) select the PropertiesDialog/Data Tab to move the second cube to touch the first cube with a side displacement.
 * 3) select the PartDesign workbench
 * 4) create a sketch on the front face of the first cube and place a circle anywhere and close the sketch
 * 5) select the sketch in the tree and press Hole function button. Before make sure the first body is the active body (double click).
 * 6) select a hole of appropriate size. The image above had also counterbore selected. Close the Hole function.
 * Now the image should look as above. When you hide the first cube (select and press space) you can see that the hole does not reach the second cube. It will not, even when you select "Through All" or a really large distance in the Hole dialog. The hole dialog is always limited to a single body.
 * Here is where our ShapeBinder comes in.
 * 1) First select the back cube. This is the target where the ShapeBinder will be added. It must be activated, so be sure it has been double-clicked.
 * 2) In the tree select the sketch we used for the hole. Its important to not activae the first body.
 * 3) Select the shapeBinder function.
 * A dialog should open. In the line "Object" the name of our sketch should be visible. If you had selected the function without selecting the sketch, you could press "Object" and then select the sketch from the list. Its recommended to select it first in order to get the right one, especially if you have many skeches with automatically generated names Sketch001,.. The "Add Geometry" is not usefule for us, because we do not select part of a body geometry but a Sketch. Its not possible to select part of a sketch.
 * 1) Press OK to close the sketch function and check that a new item has been added to the tree if the second cube.
 * When you toggle the visibilty of the ShapeBinder it is shown yellow in the 3D view. However its on the wrong position, just as the white circle in the image abobe. That is because of the default setting for the Trace parameter.
 * 1) In the PropertyView of the ShapeBinder in the Data tab set the Trace Support parameter to true. The default was false.
 * With Trace Support true, the ShapeBinder in not affected by local transformations of the target body, e.g. our translations. The shape remains exacly where the original front object shape has been. Try moving the front object around and you can see that the ShapeBinder always follows to the new position.
 * Unfortunately we can not select the ShapeBinder for a Hole. Therefore we create a local sketch and use that for our hole in the second cube.
 * 1) Select the front face of the back cube and create a new sketch (slick OK for the suggestion in the dialog)
 * 2) Make all geometry invisible and the ShapeBinder visible. Now you can use the external geometry function and select the circle in the shape binder. We need to center point of that circle.
 * 3) create a new circle and put it at the center point of the ShapeBinders circle. The radius is not important. The Hole function only uses the center points of the circles (note: single points are ignored by the Hole function, we must use circles)
 * 4) close the sketch and click Hole. Set the dialog to the same values as the initial hold and press OK.

Done.
 * Now you have two linked holes in two different bodies. If you change the geometry or the positions of the holes both holes will adapt. Only when you add a new hole, you need to update the sketch in the second cube for the second hole.

Notes
 * that there is another way to create a ShapeBinder: with the back cube activated click the front face of the front cube and create a new sketch. A dialog will pop up where you select "Dependent sketch". This will actually create a shape binder. You can see the Trace Support parameter in the property window. Its a few clicks less that our procedure.
 * Also note that working with ShapeBinder with Sketches is only a subset of its capabilities. Its also possible to use parts of 3D geometry as seen in the example above.