Basic Part Design Tutorial 019

Introduction
This is an updated version of the Basic Part Design Tutorial.



This tutorial introduces users to the PartDesign Workbench. In this tutorial we will create a 3D solid model of the part shown in the image above. In the drawing at the end of this paragraph all the necessary dimensions to complete the task are given.

We will start by creating a core solid shape from a base Sketch and then build on that shape, adding what are known as features. These features will either add material to, or remove material from the solid by use of additional sketches and accompanying feature operations.

We will follow some of the techniques described in Advice for creating stable models:
 * We will use a master sketch.
 * Named constraints will be used to hold dimensions that can be referenced later in the model construction. For instance, to change the model width from 53 mm, as in the technical drawing, to 55 mm we need only modify the Length value of the appropriate named constraint in the master sketch and the whole model will modify accordingly. This is parametric design in action.
 * External geometries are potentially subject to the Topological Naming Problem. We will use them only when strictly necessary and will attempt to reference to the most stable elements available. Referencing edges and vertices of sketches is normally more stable than referencing edges and vertices of generated solid geometry.

This Tutorial will not use every feature and tool available in the PartDesign Workbench, but will provide a basic foundation upon which users can build their knowledge and skills.

Feel free to signal any errors or problems in this forum thread: New Part Design Tutorial for FC 019 and 020.



Preliminary notes

 * This tutorial will provide detailed instructions when it describes an operation for the first time. Subsequent operations will have a more concise description. When in doubt, find the operation that contains the more detailed description. For instance, when creating a sketch for the first time the process of choosing the sketch plane will be explained in detail, for subsequent sketches it will not.
 * All mentioned tools can be accessed from toolbars and from the menu.
 * This tutorial assumes that in the Sketcher's Edit controls window is checked. This ensures that some constraints are applied automatically. Otherwise you will need to apply them yourself.
 * If the Sketcher Solver detects a redundant constraint it will turn the sketch orange in color. Before further constraints are added, redundant constraints should be removed. Redundant constraints are shown in the task panel, click the blue reference and press.
 * The color mentioned above is a default color, it can be changed in the preferences. The same applies to the other colors mentioned in this tutorial.
 * You exit a Sketcher drawing tool by pressing the key or by right-clicking an empty area of the 3D view. The mouse cursor will change to the standard arrow cursor. If you press  an additional time you will exit sketch edit mode. To return to the editor, click the Model tab, then either double-click the Sketch element in the Tree view, or right-click it and select Edit sketch from the context menu. To avoid leaving edit mode when pressing  too often, change the Esc can leave sketch edit mode preference, see Sketcher Preferences.
 * It's possible that some elements in a task panel, for instance the button, are not visible if the panel is not wide enough. You can make it wider by dragging its right border. Place your mouse pointer over the border, when the pointer changes to a two-way arrow, hold down the left mouse button and drag.
 * During the v0.21/v1.0 development cycle a new icon was introduced for the Sketcher Create polyline tool: Sketcher_CreatePolyline.svg. The old icon looks like this: Sketcher_CreatePolyline_rel_0.20.svg. In this tutorial we will use the new icon.
 * See PartDesign Workbench Concepts for some conceptual background.
 * See the Sketcher WorkBench for a more detailed explanation of some of the terminology used here.

Startup
First make sure you are in the PartDesign Workbench. If required select it from the Workbench dropdown list. Once there, you will want to create a new document if you have not done so already. It is a good habit to save your work often, so first save the new document, giving it any name you choose.

All work in Part Design begins with a body. Click Create new body to create and activate one. Note that it is also possible to skip this step: when creating a sketch using the Part Design Create sketch tool, if no existing body is found, a new one is automatically created and activated.

Master sketch
The master sketch contains the model's rectangular base shape and two named constraints that will supply correct dimensions to other parts of the model: length that will contain 53 mm (the result of adding the 39 mm dimension to the two 7 mm sides), and width that will contain 26 mm. To be able to take advantage of the model's symmetry in later steps, the top edge of the rectangle will be centered around the origin with a symmetrical constraint.

 Sketch 



Step A: Create the sketch


 * 1) Click PartDesign_NewSketch.svg Create sketch. This will create the sketch within the just created body. It will be named Sketch.
 * 2) A task panel like Fig: MS1 will open where you have to choose to which plane the sketch will be attached.
 * 3) Select XY_Plane from the list or select that plane in the 3D view.
 * 4) Click.
 * 5) FreeCAD automatically switches to the Workbench_Sketcher.svg Sketcher Workbench.
 * 6) The sketch is opened in edit mode: you will see something like Fig: MS2. The X and Y axis of the sketch are indicated as well as its origin (the red point).

Step B: Add geometry


 * 1) Click Sketcher_CreateRectangle.svg Create rectangle.
 * 2) While the tool is active the cursor has this appearance: [[File:Pd_tut_rec_cursor.png]]
 * 3) Pick two points to create a rectangle roughly centered around the Y axis similar to Fig: MS3. Note:
 * 4) * Don't place points on an axis as the Solver will automatically apply constraints that will create problems later.
 * 5) * The dimensions of the rectangle are unimportant at this point. They will be assigned using constraints in a later step.
 * 6) Once done, press  or right-click to exit the tool.

Step C: Assign a horizontal constraint


 * 1) Select the line defined by P2 and P3 in Fig: MS3.
 * 2) Click Sketcher_ConstrainDistanceX.svg Horizontal distance constraint:
 * 3) A dimension will appear between the endpoints of the selected line. This dimension is the current distance.
 * 4) Additionally a dialog will appear: [[File:Pd_tut_rect03.png]]
 * 5) Assign Length = 53 mm.
 * 6) To be able to reference this dimension later a name is required. You are free to use any name, it need only be unique within the sketch. Assign Name = length.
 * 7) Click.
 * 8) The result should resemble Fig: MS4

Step D: Assign a symmetrical constraint


 * 1) Select points P2 and P3 of the rectangle.
 * 2) Select the origin of the sketch. Note: the selection order of the points is important.
 * 3) Click Sketcher_ConstrainSymmetric.svg Symmetrical constraint.
 * 4) You will end up with something that resembles Fig: MS5.

Step E: Assign a vertical constraint


 * Assign a vertical distance constraint following the same procedure as used for the previous horizontal distance constraint:


 * 1) Select the line defined by P3 and P4 in Fig: MS3.
 * 2) Click Sketcher_ConstrainDistanceY.svg Vertical distance constraint:
 * 3) Assign Length = 26 mm
 * 4) Assign Name = width.
 * 5) Click.
 * 6) The result should resemble Fig: MS6.
 * 7) The sketch is fully constrained now:
 * 8) * The lines in the sketch are bright green.
 * 9) * The Solver messages section of the task panel displays Fully constrained.
 * 10) * If you select any line or vertex of the sketch and try to drag it, it won't move.

Step F: Close the sketch


 * Click at the top of the tasks panel to leave sketch edit mode.

Main profile
The main profile is created by padding a new sketch.

 Sketch001 



Step A: Create the sketch


 * Click PartDesign_NewSketch.svg Create sketch and create a sketch attached to the YZ_Plane. FreeCAD will assign the name Sketch001.

Step B: Add geometry


 * 1) Click Sketcher_CreatePolyline.svg Create polyline and make a shape like in Fig: MP1.
 * 2) The labels P1, P2 etc. will not appear in the sketch. They were added for reference.
 * 3) For the last point of the final segment make sure to pick the first point of the shape. The point will change color and you will see the symbol for a Sketcher_ConstrainCoincident.svg Coincident constraint appear near the cursor. Coincident constraints have to be explicit. Just having two points visually coincident is not sufficient.
 * 4) Press  or right-click to exit the tool.

Step C: Assign constraints


 * 1) The three vertical and horizontal constraints you see in the image should have been added automatically provided you drew those lines that way. If you didn't you need to add them.
 * 2) Select the point P2 and the Y axis and apply a Sketcher_ConstrainPointOnObject.svg Point onto object constraint.
 * 3) Select the origin and the point P1 and apply a Sketcher_ConstrainHorizontal.svg Horizontal constraint. Why not a Sketcher_ConstrainCoincident.svg Coincident constraint? you might ask. Try it (and undo). The sketch will turn orange and a solver message Redundant constraints will appear. Because the line P1 to P2 has already been constrained to be vertical, the only remaining degree of freedom is P1's Y coordinate. The coincidence constraint sets both the X and Y coordinates to zero, but the X coordinate is already determined. The horizontal constraint, on the other hand, only sets the Y coordinate to zero, which is sufficient.
 * 4) Select the line defined by the points P2 and P3, apply a Sketcher_ConstrainDistanceX.svg Horizontal distance constraint, and assign Length = 5 mm.
 * 5) Select the line defined by the points P1 and P2, apply a Sketcher_ConstrainDistanceY.svg Vertical distance constraint, and assign Length = 26 mm.
 * 6) Select the line defined by the points P1 and P4 and apply a Sketcher_ConstrainDistanceX.svg Horizontal distance constraint:
 * 7) For this value you will use a named constraint using Expressions. To do so you have to click the little button in the Length input field: Bound-expression.svg.
 * 8) You will be presented with a new dialog named Formula editor that contains an input field and a Result: label, similar to the image below: [[File:Pd_tut_expressions.png]] When you start typing in the input field, you will be presented with some autocompletions.
 * 9) Select the label of the sketch. In our case we want  . Note the period after the label.
 * 10) To select the named constraint "width", you first have to enter   with the period. Here autocomplete works.
 * 11) To add "width", as yet autocompletion is not available, so complete the cell to read  . If all went well the red error message after Result: has been replaced by the correct value as in the image below: [[File:Pd_tut_expression_end.png]]
 * 12) Click  to close the Formula editor dialog.
 * 13) Click  to close the Insert length dialog.
 * 14) You should have a fully constrained sketch similar to Fig: MP2.
 * 15) Note the different colors used for distance constraints assigned using expressions, and those assigned specifying a length.

Step D: Close the sketch


 * Click at the top of the tasks panel to leave sketch edit mode.

 Pad 




 * 1) Make sure Sketch001 is selected.
 * 2) Click PartDesign_Pad.svg Pad:
 * 3) The Pad parameters task panel opens.
 * 4) For Type select.
 * 5) For Length again use an expression, but this time enter  . This should evaluate to 53 mm.
 * 6) Select.
 * 7) Click  to close the task panel.
 * 8) You should now have a solid as shown in Fig: MP3.

Corner cutouts
For the corner cutouts two features are added to the model. A pocket, based on another sketch, is used to create the first cutout, and this feature is then mirrored.

 Sketch002 



Step A: Hide the solid


 * Hide the just created solid: Select Pad and click the.

Step B: Create the sketch


 * Click PartDesign_NewSketch.svg Create sketch and create a sketch attached to the XZ_Plane. The sketch will be named Sketch002.

Step C: Add geometry


 * 1) Select Sketcher_CreateRectangle.svg Create rectangle, and create a rectangle. Do not create it too near an axis, to avoid any automatic constraints that would make it difficult to move it into the correct position later.
 * 2) Exit the tool.

Step D: Assign dimensional constraints


 * 1) Select one of the horizontal lines, apply a Sketcher_ConstrainDistanceX.svg Horizontal distance constraint, and assign a value of 11 mm.
 * 2) Select one of the vertical lines, apply a Sketcher_ConstrainDistanceY.svg Vertical distance constraint, and assign a value of 5 mm.
 * 3) You should obtain something similar to Fig: CC1.

Step E: Close the sketch


 * Click . Sketch002 is not fully constrained at this stage.

Step F: Make previous sketches visible


 * To use external geometry the sketches whose elements we want to reference must be visible. Make sure Sketch and Sketch001 are both visible. Use the to toggle visibility if needed. Expand the Pad node in the Tree view to access Sketch001.

Step G: Add external geometry and fully constrain the sketch
 * 1) Double click Sketch002 to enter edit mode.
 * 2) Rotate the view so you can clearly see the points as shown in Fig: CC2. This will ease subsequent steps. Note that the rectangle's initial position may be different in your sketch.
 * 3) Click Sketcher_External.svg External geometry.
 * 4) While the tool is active the cursor has this appearance: [[File:Pd_tut_eg_cursor.png]]
 * 5) Select point P1 in Fig: CC2. The selected point is added to the sketch as external geometry. In the Elements section of the task panel it will appear with a purple X icon or,, a purple dot icon.
 * 6) With the tool still active select point P2 in Fig: CC2. This external geometry should also appear in the Elements section.
 * 7) Exit the tool.
 * 8) Select point P1 and point P3 and apply a Sketcher_ConstrainVertical.svg Vertical constraint. The rectangle will be aligned with the X position of P1.
 * 9) Select point P2 and point P3 and apply a Sketcher_ConstrainHorizontal.svg Horizontal constraint. The rectangle will be aligned with the Y position of P2.
 * 10) You should have a fully constrained sketch similar to Fig: CC3.

Step H: Close the sketch


 * Click.

 Pocket 



To create the cutouts we will use the Pocket tool. This tool is the opposite of the Pad tool. Whereas the Pad tool adds material, the Pocket tool removes material.


 * 1) Select Sketch002.
 * 2) Click PartDesign_Pocket.svg Pocket:
 * 3) The Pocket parameters task panel opens.
 * 4) Select Type.
 * 5) Check
 * 6) Click.
 * 7) You should have something that resembles Fig: CC4

 Mirror 

Instead of creating another sketch and pocketing it, we take advantage of the model's symmetry about the YZ plane and use Mirrored to create the second cutout.


 * 1) Select Pocket.
 * 2) Click PartDesign_Mirrored.svg Mirrored:
 * 3) The Mirrored parameters task panel opens.
 * 4) Select Plane  from the pulldown menu. The plane will be defined by this axis (the Y axis) and also by the Z axis of the sketch. Note that selecting Base YZ Plane would have the same result.
 * 5) Click.
 * 6) You should now have a part that looks like Fig: CC5.

Sides
The sides are created in a similar manner, but instead of removing material we will add material with a pad feature.

 Sketch003 




 * 1) Make sure Sketch is visible, and Mirrored is hidden.
 * 2) Click PartDesign_NewSketch.svg Create sketch and create a new sketch attached to the XY_Plane. The sketch will be named Sketch003.
 * 3) Click Sketcher_CreateRectangle.svg Create rectangle and create a rectangle similar to the smaller rectangle in Fig: SD1. Because the rectangle is offset from the X axis this should not trigger an automatic Sketcher_ConstrainPointOnObject.svg Point onto object constraint.
 * 4) Exit the tool.
 * 5) Click Sketcher_External.svg External geometry.
 * 6) Select the point P1 as shown in Fig: CC2.
 * 7) Exit the tool.
 * 8) Apply these constraints:
 * 9) Select one of the horizontal lines, apply a Sketcher_ConstrainDistanceX.svg Horizontal distance constraint, and assign a value of 7 mm.
 * 10) Select one of the vertical lines, apply a Sketcher_ConstrainDistanceY.svg Vertical distance constraint, and assign this expression:  .
 * 11) Select the top-left point of the created rectangle (marked TL in Fig: SD1) and the newly added external geometry point and apply a Sketcher_ConstrainCoincident.svg Coincident constraint.
 * 12) The sketch should be fully constrained now.
 * 13) Click.

 Pad001 


 * 1) Select Sketch003.
 * 2) Click PartDesign_Pad.svg Pad:
 * 3) Assign Type = .
 * 4) Assign Length = 16.7 mm
 * 5) Click.
 * 6) You should have a result as shown in Fig: SD2

 Mirrored001 


 * 1) Select Pad001.
 * 2) Click PartDesign_Mirrored.svg Mirrored:
 * 3) Make sure Plane  is selected.
 * 4) Click.
 * 5) You should now have a part that looks like Fig: SD3.

 Note 

Our two mirror operations have a common symmetry plane, so we could have made our model a little simpler by combining them. We would:
 * 1) Omit the first Mirror operation.
 * 2) Select both Pad001 and Pocket in step 1 of the above Mirrored001 operation.

This emphasizes the important concept that we are mirroring the selected features (the operations we performed on the body, in the selected order), not the body itself.

Center hole
Now it is time for the most challenging part of our modeling, a challenge that arises because some of the dimensions of the center hole are defined along the slanted face. If you use this face, created by padding Sketch001, as a reference for the next sketch, you expose yourself to the Topological Naming Problem. A better solution is to reference Sketch001 itself.

 Sketch004 




 * 1) Make Sketch001 visible, and hide Sketch and Mirrored001.
 * 2) Click PartDesign_NewSketch.svg Create sketch and create a new sketch attached to the YZ_Plane. The sketch will be named Sketch004.
 * 3) Click Sketcher_CreatePolyline.svg Create polyline and trace a polyline like that indicated by the points P1, P2, P3 and P4 in Fig: CH1.
 * 4) Remember to close the polyline by picking the first point. This will create the required Sketcher_ConstrainCoincident.svg Coincident constraint.
 * 5) Exit the tool.
 * 6) Check the applied constraints:
 * 7) * Delete the redundant Sketcher_ConstrainVertical.svg Vertical constraint applied to the line defined by P1 and P2.
 * 8) * Make sure a Sketcher_ConstrainHorizontal.svg Horizontal constraint has been applied to the lines defined by P1 and P4, and P2 and P3.
 * 9) * Make sure a Sketcher_ConstrainPointOnObject.svg Point onto object constraint has been applied to P1 and the Y axis, and to P2 and the Y axis.
 * 10) Click Sketcher_External.svg External geometry
 * 11) Select the line defined by EGP1 and EGP2 in Sketch001, indicated by the purple color in Fig: CH2.
 * 12) Exit the tool.
 * 13) Apply a Sketcher_ConstrainPointOnObject.svg Point onto object constraint to P3 and the external geometry, and repeat this for P4. This will make the line defined by P3 and P4 coincident with the line defined by EGP1 and EGP2.
 * 14) Select the line P3 to P4, apply a Sketcher_ConstrainDistance.svg Distance constraint, and assign Length = 17 mm
 * 15) Select the points EGP2 and P4, apply a Sketcher_ConstrainDistance.svg Distance constraint, and assign Length = 7 mm.
 * 16) This will result in a fully constrained sketch like Fig: CH2.
 * 17) Click.
 * 18) Hide Sketch001.

 Pocket001 


 * 1) Select Sketch004.
 * 2) Click PartDesign_Pocket.svg Pocket:
 * 3) Select Type.
 * 4) Assign 8.5 mm to Length and 2nd length.
 * 5) Click.
 * 6) Select the newly created Pocket001.
 * 7) Change its Refine property to True.

 Notes 


 * 1) For Pocket001 we could have alternatively used Type, checked Symmetric to Plane, and entered 17 mm for the Length value.
 * 2) Refine will try to remove seams left by previous operations. It is advisable to only refine the final solid, as some operations can fail if a previous feature has been refined. However, there are also cases where refine can make an operation succeed. So in case of problems check this property and test. Unfortunately there is not yet a general rule to follow.

Result
The model is complete. It should look like the image below.

Finally, select Sketch in the Tree view and on the Data tab of the Property editor look for Sketch → Constraints. Expand that node and changed the length and width constraints. The model should change parametrically.