Whiffle Ball tutorial: Difference between revisions

From FreeCAD Documentation
(→‎Insert primitive cylinders: Highlight the menus)
(Removed Tutorials_navi)
 
(24 intermediate revisions by 6 users not shown)
Line 13: Line 13:
==Introduction== <!--T:2-->
==Introduction== <!--T:2-->


<!--T:14-->
This tutorial was originally written by Roland Frank (†2017, r-frank), and it was rewritten and illustrated by vocx.
This tutorial was originally written by Roland Frank (†2017, r-frank), and it was rewritten and illustrated by vocx.


<!--T:15-->
This tutorial is here to teach you how to use the [[Part Workbench|Part Workbench]].
This tutorial is here to teach you how to use the [[Part Workbench|Part Workbench]].


<!--T:16-->
The Part Workbench was the first workbench developed. It provides the basic geometrical elements that can be used as building blocks for other workbenches. The Part Workbench is meant to be used in a traditional [[constructive solid geometry|constructive solid geometry]] (CSG) workflow. For a more modern workflow using sketches, pads, and features, use the [[PartDesign Workbench|PartDesign Workbench]].
The Part Workbench was the first workbench developed. It provides the basic geometrical elements that can be used as building blocks for other workbenches. The Part Workbench is meant to be used in a traditional [[constructive solid geometry|constructive solid geometry]] (CSG) workflow. For a more modern workflow using sketches, pads, and features, use the [[PartDesign Workbench|PartDesign Workbench]].


<!--T:17-->
You will practice:
You will practice:
* inserting primitives
* inserting primitives
* changing parameters of those primitive objects
* changing parameters of those primitive objects
* modifying their placement
* modifying their [[placement|placement]]
* doing boolean operations
* doing boolean operations

<!--T:3-->
If you selected something wrong or want to de-select everything, just click on empty space in the [[3D view|3D view]].


</translate>
</translate>
[[File:09_T03_Part_ball_cut_2.png]]
[[File:10_T03_Part_ball_fillet.png]]
<translate>
<translate>
<!--T:18-->
{{Caption|Final model of the wiffle ball}}
{{Caption|Final model of the wiffle ball}}


== Setup == <!--T:5-->
== Setup == <!--T:5-->


<!--T:3-->
1. Open FreeCAD, create a new empty document with {{MenuCommand|File → [[File:Std_New.svg|16px]] [[Std_New|New]]}}, and switch to the [[Part Workbench|Part Workbench]].
1. Open FreeCAD, create a new empty document with {{MenuCommand|File → [[File:Std_New.svg|16px]] [[Std_New|New]]}}, and switch to the [[Part Workbench|Part Workbench]].
:1.1. Press the {{Button|[[File:Std_ViewIsometric.svg|24px]] [[Std_ViewIsometric|View isometric]]}} button, or press {{KEY|0}} in the numerical pad of your keyboard, to change the view to isometric to visualize the 3D solids better.
:1.1. Press the {{Button|[[File:Std_ViewIsometric.svg|16px]] [[Std_ViewIsometric|View isometric]]}} button, or press {{KEY|0}} in the numerical pad of your keyboard, to change the view to isometric to visualize the 3D solids better.
:1.2. Press the {{Button|[[File:Std_ViewFitAll.svg|24px]] [[Std_ViewFitAll|View fit all]]}} button whenever you add objects in order to pan and zoom the [[3D_view|3D view]] so that all elements are seen in the view.
:1.2. Press the {{Button|[[File:Std_ViewFitAll.svg|16px]] [[Std_ViewFitAll|View fit all]]}} button whenever you add objects in order to pan and zoom the [[3D_view|3D view]] so that all elements are seen in the view.
:1.3. Hold {{KEY|Ctrl}} while you click to select multiple items. If you selected something wrong or want to de-select everything, just click on empty space in the [[3D view|3D view]].


== Insert primitive cubes ==
== Insert primitive cubes == <!--T:19-->


<!--T:20-->
2. Insert a primitive cube by clicking on {{Button|[[Image:Part_Box.svg|24px]] [[Part_Box|Box]]}}.
2. Insert a primitive cube by clicking on {{Button|[[Image:Part_Box.svg|16px]] [[Part_Box|Box]]}}.
:2.1. Select {{incode|Cube}} in the [[tree view|tree view]].
:2.1. Select {{incode|Cube}} in the [[tree view|tree view]].
:2.2. Change the dimensions in the {{MenuCommand|Data}} tab of the [[property editor|property editor]].
:2.2. Change the dimensions in the {{MenuCommand|Data}} tab of the [[property editor|property editor]].
Line 48: Line 53:
:2.5. Change {{MenuCommand|Height}} to {{incode|90 mm}}.
:2.5. Change {{MenuCommand|Height}} to {{incode|90 mm}}.


<!--T:21-->
3. In the {{MenuCommand|Data}} tab of the [[property editor|property editor]], click on the {{MenuCommand|Placement}} value so the ellipsis button {{Button|...}} appears on the right.
3. In the {{MenuCommand|Data}} tab of the [[property editor|property editor]], click on the {{MenuCommand|Placement}} value so the ellipsis button {{Button|...}} appears on the right.
:3.1. Press on the ellipsis to launch the [[Std_Placement|Placement]] dialog.
:3.1. Press on the ellipsis to launch the [[Std_Placement|Placement]] dialog.
Line 56: Line 62:
:3.6. Press the {{Button|OK}} button to close the dialog.
:3.6. Press the {{Button|OK}} button to close the dialog.


<!--T:22-->
4. Repeat the process, inserting a second, smaller cube by clicking on {{Button|[[Image:Part_Box.svg|24px]] [[Part_Box|Box]]}}.
4. Repeat the process, inserting a second, smaller cube by clicking on {{Button|[[Image:Part_Box.svg|16px]] [[Part_Box|Box]]}}.
:4.1. The second cube will be created with the same name, but with an additional number to distinguish the object.
:4.1. The second cube will be created with the same name, but with an additional number to distinguish the object.
:4.2. Select {{incode|Cube001}} in the [[tree view|tree view]], and change the dimensions and placement like with the previous object.
:4.2. Select {{incode|Cube001}} in the [[tree view|tree view]], and change the dimensions and placement like with the previous object.
Line 68: Line 75:
:4.10. Press the {{Button|OK}} button to close the dialog.
:4.10. Press the {{Button|OK}} button to close the dialog.


== Change visual properties ==
== Change visual properties == <!--T:23-->


<!--T:24-->
5. The previous operations create a smaller cube inside a bigger cube. To visualize this, we can modify the {{MenuCommand|View}} properties in the [[property editor|property editor]].
5. The previous operations create a smaller cube inside a bigger cube. To visualize this, we can modify the {{MenuCommand|View}} properties in the [[property editor|property editor]].
:5.1. Select {{incode|Cube001}}, the smaller cube, in the [[tree view|tree view]], and change the color. In the {{MenuCommand|View}} tab, click on the {{MenuCommand|Shape Color}} value to open the {{MenuCommand|Select color}} dialog, then choose a green color; also change the value of {{MenuCommand|Line Width}} to {{incode|2.0}}.
:5.1. Select {{incode|Cube001}}, the smaller cube, in the [[tree view|tree view]], and change the color. In the {{MenuCommand|View}} tab, click on the {{MenuCommand|Shape Color}} value to open the {{MenuCommand|Select color}} dialog, then choose a green color; also change the value of {{MenuCommand|Line Width}} to {{incode|2.0}}.
:5.2. Select {{incode|Cube}}, the larger cube, in the [[tree view|tree view]], and change the transparency. In the {{MenuCommand|View}} tab, change the value of {{MenuCommand|Transparency}} to {{incode|70}}.
:5.2. Select {{incode|Cube}}, the larger cube, in the [[tree view|tree view]]. In the {{MenuCommand|View}} tab, change the value of {{MenuCommand|Transparency}} to {{incode|70}}.


</translate>
</translate>
[[File:01_T03_Part_cubes_visibility.png]]
[[File:01_T03_Part_cubes_visibility.png]]
<translate>
<translate>
<!--T:25-->
{{Caption|Solid cube inside another solid cube}}
{{Caption|Solid cube inside another solid cube}}


== Insert primitive cylinders ==
== Insert primitive cylinders == <!--T:26-->


<!--T:27-->
6. Insert a primitive cylinder by clicking on {{Button|[[Image:Part_Cylinder.svg|24px]] [[Part_Cylinder|Cylinder]]}}.
6. Insert a primitive cylinder by clicking on {{Button|[[Image:Part_Cylinder.svg|16px]] [[Part_Cylinder|Cylinder]]}}.
:6.1. Select {{incode|Cylinder}} in the [[tree view|tree view]].
:6.1. Select {{incode|Cylinder}} in the [[tree view|tree view]].
:6.2. Change the dimensions in the {{MenuCommand|Data}} tab of the [[property editor|property editor]].
:6.2. Change the dimensions in the {{MenuCommand|Data}} tab of the [[property editor|property editor]].
Line 90: Line 100:
:6.7. Press the {{Button|OK}} button to close the dialog.
:6.7. Press the {{Button|OK}} button to close the dialog.


<!--T:28-->
7. Repeat the process, inserting a second cylinder by clicking on {{Button|[[Image:Part_Cylinder.svg|24px]] [[Part_Cylinder|Cylinder]]}}.
7. Repeat the process, inserting a second cylinder by clicking on {{Button|[[Image:Part_Cylinder.svg|16px]] [[Part_Cylinder|Cylinder]]}}.
:7.1. The second cylinder will be created with the same name, but with an additional number to distinguish the object.
:7.1. The second cylinder will be created with the same name, but with an additional number to distinguish the object.
:7.2. Select {{incode|Cylinder001}} in the [[tree view|tree view]], and change the dimensions and placement like with the previous object.
:7.2. Select {{incode|Cylinder001}} in the [[tree view|tree view]], and change the dimensions and placement like with the previous object.
Line 97: Line 108:
:7.5. Open the [[Std_Placement|Placement]] dialog.
:7.5. Open the [[Std_Placement|Placement]] dialog.
:7.6. Change {{MenuCommand|Y}} to {{incode|60 mm}}.
:7.6. Change {{MenuCommand|Y}} to {{incode|60 mm}}.
:7.7. Change the {{MenuCommand|Rotation}} to {{incode|Rotation axis with angle}}; {{MenuCommand|Axis}} to {{incode|X}}, and {{MenuCommand|Angle}} to {{incode|90 deg}}.
:7.7. Change the {{MenuCommand|Rotation}} to {{incode|Rotation axis with angle}}; {{MenuCommand|Axis}} to {{incode|X}} (by setting the {{incode|X}}, {{incode|Y}} and {{incode|Z}} values of the axis inputboxes to {{incode|1}}, {{incode|0}} and {{incode|0}} respectively), and {{MenuCommand|Angle}} to {{incode|90 deg}}.
:7.8. Press the {{Button|OK}} button to close the dialog.
:7.8. Press the {{Button|OK}} button to close the dialog.


<!--T:29-->
8. Insert another cylinder. This time create a duplicate so that the radius and height don't have to be changed, only its placement.
8. Insert another cylinder. This time create a duplicate so that the radius and height don't have to be changed, only its placement.
:8.1. Select {{incode|Cylinder001}} in the [[tree view|tree view]], and go to the menu {{MenuCommand|Edit → [[Std_DuplicateSelection|Duplicate selection]]}}. This will create {{incode|Cylinder002}}.
:8.1. Select {{incode|Cylinder001}} in the [[tree view|tree view]], and go to the menu {{MenuCommand|Edit → [[Std_DuplicateSelection|Duplicate selection]]}}. This will create {{incode|Cylinder002}}.
:8.2. Open the [[Std_Placement|Placement]] dialog.
:8.2. Open the [[Std_Placement|Placement]] dialog.
:8.3. Change {{MenuCommand|X}} to {{incode|-60 mm}}.
:8.3. Change {{MenuCommand|X}} to {{incode|-60 mm}}, and change {{MenuCommand|Y}} back to {{incode|0 mm}}.
:8.4. Change the {{MenuCommand|Rotation}} to {{incode|Rotation axis with angle}}; {{MenuCommand|Axis}} to {{incode|Y}}, and {{MenuCommand|Angle}} to {{incode|90 deg}}.
:8.4. Change the {{MenuCommand|Rotation}} to {{incode|Rotation axis with angle}}; {{MenuCommand|Axis}} to {{incode|Y}}, and {{MenuCommand|Angle}} to {{incode|90 deg}}.
:8.5. Press the {{Button|OK}} button to close the dialog.
:8.5. Press the {{Button|OK}} button to close the dialog.


== Change visual properties ==
== Change visual properties == <!--T:30-->


<!--T:31-->
9. The previous operations create three cylinders that intersect with each other, and also intersect the cubes. To visualize this better we can modify the {{incode|View}} properties in the [[property editor|property editor]].
9. The previous operations create three cylinders that intersect with each other, and also intersect the cubes. To visualize this better we can modify the {{MenuCommand|View}} properties in the [[property editor|property editor]].
:9.1. Click on {{Button|[[File:Std_ViewFitAll.svg|24px]] [[Std_ViewFitAll|View fit all]]}} to adjust the [[3D_view|3D view]] so that all elements are seen in the view.
:9.2. Select {{incode|Cube}}, the larger cube, in the [[tree view|tree view]], and change the transparency. In the {{incode|View}} tab, change the value of {{incode|Transparency}} to {{incode|70}}.
:9.1. Select {{incode|Cube001}}, the smaller cube, in the [[tree view|tree view]], and change the transparency. In the {{MenuCommand|View}} tab, change the value of {{MenuCommand|Transparency}} to {{incode|70}}.
:9.4. Select {{incode|Cylinder}}, in the {{incode|View}} tab, click on the {{incode|Shape Color}} value to open the "Select color" dialog, then choose a red color.
:9.2. Select {{incode|Cylinder}}, in the {{MenuCommand|View}} tab, click on the {{MenuCommand|Shape Color}} value to open the {{MenuCommand|Select color}} dialog, then choose a red color.
:9.5. Select {{incode|Cylinder001}}, in the {{incode|View}} tab, click on the {{incode|Shape Color}} value to open the "Select color" dialog, then choose a blue color.
:9.3. Select {{incode|Cylinder001}}, in the {{MenuCommand|View}} tab, click on the {{MenuCommand|Shape Color}} value to open the {{MenuCommand|Select color}} dialog, then choose a blue color.
:9.6. Select {{incode|Cylinder002}}, in the {{incode|View}} tab, click on the {{incode|Shape Color}} value to open the "Select color" dialog, then choose a pink color.
:9.4. Select {{incode|Cylinder002}}, in the {{MenuCommand|View}} tab, click on the {{MenuCommand|Shape Color}} value to open the {{MenuCommand|Select color}} dialog, then choose a pink color.
:9.5. Select the three cylinders, in the {{MenuCommand|View}} tab also change the value of {{MenuCommand|Line Width}} to {{incode|2.0}}.


</translate>
</translate>
[[File:02_T03_Part_cylinders_visibility.png]]
[[File:02_T03_Part_cylinders_visibility.png]]
<translate>
<translate>
<!--T:32-->
{{Caption|Solid cylinders that intersect themselves and the solid cubes.}}
{{Caption|Solid cylinders that intersect themselves and the solid cubes.}}


== Fuse and cut ==
== Fuse and cut == <!--T:33-->


<!--T:34-->
10. In the [[tree view|tree view]], select {{incode|Cube001}} (the inner, smaller cube), {{incode|Cylinder}}, {{incode|Cylinder001}}, and {{incode|Cylinder002}}, and fuse them together by clicking on {{Button|[[File:Part_Fuse.svg|24px]] [[Part_Union|Fuse]]}}.
10. In the [[tree view|tree view]], select {{incode|Cube001}} (the inner, smaller cube), and the tree cylinders, then press {{Button|[[File:Part_Fuse.svg|16px]] [[Part_Fuse|Fuse]]}}. This will create a {{incode|Fusion}} object.


<!--T:35-->
{{Emphasis|Note:}} Hold {{KEY|Ctrl}} while you click to select multiple items.
11. Then perform a boolean cut of the {{incode|Cube}} (larger cube) and the new {{incode|Fusion}} object.

11. Then perform a boolean cut of the {{incode|Cube}} and the new {{incode|Fusion}} object.
:11.1. In the [[tree view|tree view]] select {{incode|Cube}} first, and then {{incode|Fusion}}.
:11.1. In the [[tree view|tree view]] select {{incode|Cube}} first, and then {{incode|Fusion}}.
:11.2. Then press {{Button|[[File:Part_Cut.svg|24px]] [[Part_Cut|Cut]]}}. This will create a {{incode|Cut}} object.
:11.2. Then press {{Button|[[File:Part_Cut.svg|16px]] [[Part_Cut|Cut]]}}. This will create a {{incode|Cut}} object.
:{{Emphasis|Note:}} the order in which you select the objects is important for the cut operation. The base object is selected first, and the subtracting object comes at the end.
:{{Emphasis|Note:}} the order in which you select the objects is important for the cut operation. The base object is selected first, and the subtracting object comes at the end.
:11.3. If the colors look strange, select the new {{incode|Cut}} object, go to the {{incode|View}} tab, click on the {{incode|Shape Color}} value to open the "Select color" dialog, then choose a gray color.
:11.3. If the colors look strange, select the new {{incode|Cut}} object, go to the {{MenuCommand|View}} tab, click on the {{MenuCommand|Shape Color}} value to open the {{MenuCommand|Select color}} dialog, then choose a gray color; also change the value of {{MenuCommand|Line Width}} to {{incode|2.0}}.


</translate>
</translate>
Line 139: Line 153:
{{Caption|Hollow shape produced from cutting a cube and three cylinders from a bigger cube.}}
{{Caption|Hollow shape produced from cutting a cube and three cylinders from a bigger cube.}}


== Insert primitive cubes to cut the corners of the partial solid ==
== Insert primitive cubes to cut the corners of the partial solid == <!--T:36-->


<!--T:37-->
Now we'll create more cubes that will be used as cutting tools to further trim the corners of the previously obtained {{incode|Cut}} object.
Now we'll create more cubes that will be used as cutting tools to trim the corners of the previously obtained {{incode|Cut}} object.


<!--T:38-->
12. Click on {{Button|[[Image:Part_Box.svg|24px]] [[Part_Box|Box]]}}.
12. Click on {{Button|[[Image:Part_Box.svg|16px]] [[Part_Box|Box]]}}.
:12.1. Select {{incode|Cube002}} in the [[tree view|tree view]], and change the dimensions and placement.
:12.1. Select {{incode|Cube002}} in the [[tree view|tree view]], and change the dimensions and placement.
:12.2. Change {{incode|Length}} to {{incode|140 mm}}.
:12.2. Change {{MenuCommand|Length}} to {{incode|140 mm}}.
:12.3. Change {{incode|Width}} to {{incode|112 mm}}.
:12.3. Change {{MenuCommand|Width}} to {{incode|112 mm}}.
:12.4. Change {{incode|Height}} to {{incode|112 mm}}.
:12.4. Change {{MenuCommand|Height}} to {{incode|112 mm}}.
:12.5. Open the [[Std_Placement|Placement]] dialog.
:12.5. Open the [[Std_Placement|Placement]] dialog.
:12.6. Change {{incode|X}} to {{incode|-70 mm}}.
:12.6. Change {{MenuCommand|X}} to {{incode|-70 mm}}.
:12.7. Change {{incode|Y}} to {{incode|-56 mm}}.
:12.7. Change {{MenuCommand|Y}} to {{incode|-56 mm}}.
:12.8. Change {{incode|Z}} to {{incode|-56 mm}}.
:12.8. Change {{MenuCommand|Z}} to {{incode|-56 mm}}.
:12.9. Press {{Button|OK}}.
:12.9. Press {{Button|OK}}.


<!--T:39-->
13. Click on {{Button|[[Image:Part_Box.svg|24px]] [[Part_Box|Box]]}}.
13. Click on {{Button|[[Image:Part_Box.svg|16px]] [[Part_Box|Box]]}}.
:13.1. Select {{incode|Cube003}} in the [[tree view|tree view]], and change the dimensions and placement.
:13.1. Select {{incode|Cube003}} in the [[tree view|tree view]], and change the dimensions and placement.
:13.2. Change {{incode|Length}} to {{incode|180 mm}}.
:13.2. Change {{MenuCommand|Length}} to {{incode|180 mm}}.
:13.3. Change {{incode|Width}} to {{incode|180 mm}}.
:13.3. Change {{MenuCommand|Width}} to {{incode|180 mm}}.
:13.4. Change {{incode|Height}} to {{incode|180 mm}}.
:13.4. Change {{MenuCommand|Height}} to {{incode|180 mm}}.
:13.5. Open the [[Std_Placement|Placement]] dialog.
:13.5. Open the [[Std_Placement|Placement]] dialog.
:13.6. Change {{incode|X}} to {{incode|-90 mm}}.
:13.6. Change {{MenuCommand|X}} to {{incode|-90 mm}}.
:13.7. Change {{incode|Y}} to {{incode|-90 mm}}.
:13.7. Change {{MenuCommand|Y}} to {{incode|-90 mm}}.
:13.8. Change {{incode|Z}} to {{incode|-90 mm}}.
:13.8. Change {{MenuCommand|Z}} to {{incode|-90 mm}}.
:13.9. Press {{Button|OK}}.
:13.9. Press {{Button|OK}}.


<!--T:40-->
We'll duplicate the previous two objects again to use once more as cutting objects.
We'll duplicate the previous two objects again to use once more as cutting objects.


<!--T:41-->
14. Select only {{incode|Cube002}} in the [[tree view|tree view]], and go to {{MenuCommand|Edit → [[Std_DuplicateSelection|Duplicate selection]]}}. This will create {{incode|Cube004}}.
14. Select only {{incode|Cube002}} in the [[tree view|tree view]], and go to {{MenuCommand|Edit → [[Std_DuplicateSelection|Duplicate selection]]}}. This will create {{incode|Cube004}}.


<!--T:42-->
15. Select only {{incode|Cube003}} in the [[tree view|tree view]], and go to {{MenuCommand|Edit → [[Std_DuplicateSelection|Duplicate selection]]}}. This will create {{incode|Cube005}}.
15. Select only {{incode|Cube003}} in the [[tree view|tree view]], and go to {{MenuCommand|Edit → [[Std_DuplicateSelection|Duplicate selection]]}}. This will create {{incode|Cube005}}.


<!--T:43-->
16. To visualize this better we can modify the {{incode|View}} properties in the [[property editor|property editor]].
16. To visualize this better we can modify the {{MenuCommand|View}} properties in the [[property editor|property editor]].
:16.1. Select the {{incode|Cut}} object, in the {{incode|View}} tab, click on the {{incode|Shape Color}} value to open the "Select color" dialog, then choose a blue color.
:16.2. Select all new cubes, {{incode|Cube002}}, {{incode|Cube003}}, {{incode|Cube004}}, and {{incode|Cube005}}, in the {{incode|View}} tab, change the value of {{incode|Transparency}} to {{incode|80}}.
:16.1. Select the {{incode|Cut}} object, in the {{MenuCommand|View}} tab, click on the {{MenuCommand|Shape Color}} value to open the {{MenuCommand|Select color}} dialog, then choose a blue color.
:16.2. Select all new cubes, {{incode|Cube002}}, {{incode|Cube003}}, {{incode|Cube004}}, and {{incode|Cube005}}, in the {{MenuCommand|View}} tab, change the value of {{MenuCommand|Transparency}} to {{incode|80}}.


</translate>
</translate>
[[File:04_T03_Part_cube_additional.png]]
[[File:04_T03_Part_cube_additional.png]]
<translate>
<translate>
<!--T:44-->
{{Caption|Additional external cubes that will be used as cutting objects for the internal solid.}}
{{Caption|Additional external cubes that will be used as cutting objects for the internal solid.}}


== Cutting the corners 1 == <!--T:6-->
== Cutting the corners 1 == <!--T:6-->


<!--T:45-->
17. In the [[tree view|tree view]] select {{incode|Cube002}} and {{incode|Cube003}}.
17. In the [[tree view|tree view]] select {{incode|Cube002}} and {{incode|Cube003}}.
:17.1. Open the [[Std_Placement|Placement]] dialog.
:17.1. Open the [[Std_Placement|Placement]] dialog.
:17.2. Tick the option {{MenuCommand|Apply incremental changes}}; notice that all {{MenuCommand|Translation}} values are reset to zeroes.
:17.2. Tick the option {{MenuCommand|Apply incremental changes}}; notice that all {{MenuCommand|Translation}} values are reset to zeroes.
:17.3. Change the rotation, {{incode|Rotation axis with angle}}; {{incode|Axis}} to {{incode|X}}, and {{incode|Angle}} to {{incode|45 deg}}, then click on {{Button|Apply}}. This will apply a rotation around the X-axis, and will reset the {{incode|Angle}} field to zero.
:17.3. Change the {{MenuCommand|Rotation}} to {{incode|Rotation axis with angle}}; {{MenuCommand|Axis}} to {{incode|X}}, and {{MenuCommand|Angle}} to {{incode|45 deg}}, then click on {{Button|Apply}}. This will apply a rotation around the X-axis, and will reset the {{MenuCommand|Angle}} field to zero.
:17.4. Change the rotation again, now {{incode|Axis}} to {{incode|Z}}, and {{incode|Angle}} to {{incode|45 deg}}, then click on {{Button|Apply}}. This will apply a rotation around the local Z-axis, and will reset the {{incode|Angle}} field to zero.
:17.4. Change the {{MenuCommand|Rotation}} again, now {{MenuCommand|Axis}} to {{incode|Z}}, and {{MenuCommand|Angle}} to {{incode|45 deg}}, then click on {{Button|Apply}}. This will apply a rotation around the local Z-axis, and will reset the {{MenuCommand|Angle}} field to zero.
:17.5. Click on {{Button|OK}} to close the dialog.
:17.5. Click on {{Button|OK}} to close the dialog.


<!--T:46-->
18. In the [[tree view|tree view]] de-select the objects; then select {{incode|Cube003}} first, the bigger cube, and then {{incode|Cube002}}, the smaller cube.
18. In the [[tree view|tree view]] de-select the objects; then select {{incode|Cube003}} first, the bigger cube, and then {{incode|Cube002}}, the smaller cube.
:18.1. Then press {{Button|[[File:Part_Cut.svg|24px]] [[Part_Cut|Cut]]}}. This will create {{incode|Cut001}}. This is a hollowed body which intersects the initial {{incode|Cut}} only at certain corners.
:18.1. Then press {{Button|[[File:Part_Cut.svg|16px]] [[Part_Cut|Cut]]}}. This will create {{incode|Cut001}}. This is a hollowed body which intersects the initial {{incode|Cut}} only at certain corners.


<!--T:47-->
19. To visualize this better we can modify the {{incode|View}} properties in the [[property editor|property editor]].
19. To visualize this better we can modify the {{MenuCommand|View}} properties in the [[property editor|property editor]].
:19.1. Select {{incode|Cube004}} and {{incode|Cube005}}, in the {{incode|View}} tab, change the value of {{incode|Visibility}} to {{incode|false}}.
:19.2. Select {{incode|Cut001}}, click on the {{incode|Shape Color}} value to open the "Select color" dialog, then choose a red color; also change the value of {{incode|Transparency}} to {{incode|90}}.
:19.1. Select {{incode|Cube004}} and {{incode|Cube005}}, in the {{MenuCommand|View}} tab, then change the value of {{MenuCommand|Visibility}} to {{incode|false}}, or press {{KEY|Space}} in the keyboard.
:19.2. Select {{incode|Cut001}}, click on the {{MenuCommand|Shape Color}} value to open the {{MenuCommand|Select color}} dialog, then choose a red color; also change the value of {{MenuCommand|Transparency}} to {{incode|90}}.


</translate>
</translate>
[[File:05_T03_Part_cube_additional_cut_1.png]]
[[File:05_T03_Part_cube_additional_cut_1.png]]
<translate>
<translate>
<!--T:48-->
{{Caption|A rotated, hollowed solid, which will be used as a cutting object for some corners of the internal solid.}}
{{Caption|A rotated, hollowed solid, which will be used as a cutting object for some corners of the internal solid.}}


== Cutting the corners 2 == <!--T:7-->
== Cutting the corners 2 == <!--T:7-->


<!--T:49-->
20. In the [[tree view|tree view]] select {{incode|Cut001}}, in the {{incode|View}} tab, change the value of {{incode|Visibility}} to {{incode|false}}.
20. In the [[tree view|tree view]] select {{incode|Cut001}}, in the {{MenuCommand|View}} tab, change the value of {{MenuCommand|Visibility}} to {{incode|false}}, or press {{KEY|Space}} in the keyboard.


<!--T:50-->
21. In the [[tree view|tree view]] select {{incode|Cube004}} and {{incode|Cube005}}, in the {{incode|View}} tab, change the value of {{incode|Visibility}} to {{incode|true}}.
21. In the [[tree view|tree view]] select {{incode|Cube004}} and {{incode|Cube005}}, in the {{MenuCommand|View}} tab, change the value of {{MenuCommand|Visibility}} to {{incode|true}}, or press {{KEY|Space}} in the keyboard.
:21.1. Open the [[Std_Placement|Placement]] dialog.
:21.1. Open the [[Std_Placement|Placement]] dialog.
:21.2. Tick the option {{MenuCommand|Apply incremental changes}}; notice that all {{MenuCommand|Translation}} values are reset to zeroes.
:21.2. Tick the option {{MenuCommand|Apply incremental changes}}; notice that all {{MenuCommand|Translation}} values are reset to zeroes.
:21.3. Change the rotation, {{incode|Rotation axis with angle}}; {{incode|Axis}} to {{incode|X}}, and {{incode|Angle}} to {{incode|45 deg}}, then click on {{Button|Apply}}. This will apply a rotation around the X-axis, and will reset the {{incode|Angle}} field to zero.
:21.3. Change the {{MenuCommand|Rotation}} to {{incode|Rotation axis with angle}}; {{MenuCommand|Axis}} to {{incode|X}}, and {{MenuCommand|Angle}} to {{incode|45 deg}}, then click on {{Button|Apply}}. This will apply a rotation around the X-axis, and will reset the {{incode|Angle}} field to zero.
:21.4. Change the rotation again, now {{incode|Axis}} to {{incode|Z}}, and {{incode|Angle}} to {{incode|-45 deg}}, then click on {{Button|Apply}}. This will apply a rotation around the local Z-axis, and will reset the {{incode|Angle}} field to zero.
:21.4. Change the {{MenuCommand|Rotation}} again, now {{MenuCommand|Axis}} to {{incode|Z}}, and {{MenuCommand|Angle}} to {{incode|-45 deg}}, then click on {{Button|Apply}}. This will apply a rotation around the local Z-axis, and will reset the {{MenuCommand|Angle}} field to zero.
:21.5. Click on {{Button|OK}} to close the dialog.
:21.5. Click on {{Button|OK}} to close the dialog.


<!--T:51-->
22. In the [[tree view|tree view]] de-select the objects; then select {{incode|Cube005}} first, the bigger cube, and then {{incode|Cube004}}, the smaller cube.
22. In the [[tree view|tree view]] de-select the objects; then select {{incode|Cube005}} first, the bigger cube, and then {{incode|Cube004}}, the smaller cube.
:22.1. Then press {{Button|[[File:Part Cut.svg|24px]] [[Part_Cut|Cut]]}}. This will create {{incode|Cut002}}. This is a hollowed body which intersects the initial {{incode|Cut}} only at certain corners.
:22.1. Then press {{Button|[[File:Part Cut.svg|16px]] [[Part_Cut|Cut]]}}. This will create {{incode|Cut002}}. This is a hollowed body which intersects the initial {{incode|Cut}} only at certain corners.


<!--T:52-->
23. To visualize this better we can modify the {{incode|View}} properties in the [[property editor|property editor]].
23. To visualize this better we can modify the {{MenuCommand|View}} properties in the [[property editor|property editor]].
:23.1. Select {{incode|Cut002}}, click on the {{incode|Shape Color}} value to open the "Select color" dialog, then choose a pink color; also change the value of {{incode|Transparency}} to {{incode|90}}.
:23.1. Select {{incode|Cut002}}, click on the {{MenuCommand|Shape Color}} value to open the {{MenuCommand|Select color}} dialog, then choose a pink color; also change the value of {{MenuCommand|Transparency}} to {{incode|90}}.


</translate>
</translate>
Line 226: Line 256:
== Finishing the model == <!--T:8-->
== Finishing the model == <!--T:8-->


<!--T:53-->
24. Make sure all objects are visible. In the [[tree view|tree view]] select all objects, in the {{incode|View}} tab, change the value of {{incode|Visibility}} to {{incode|true}} or press {{KEY|Space}} in the keyboard.
24. Make sure all objects are visible. In the [[tree view|tree view]] select all objects, in the {{MenuCommand|View}} tab, change the value of {{MenuCommand|Visibility}} to {{incode|true}}, or press {{KEY|Space}} in the keyboard.


</translate>
</translate>
[[File:07_T03_Part_ball_additional_both.png]]
[[File:07_T03_Part_ball_additional_both.png]]
<translate>
<translate>
<!--T:54-->
{{Caption|The internal hollowed solid, together with the external objects which will be used to cut it.}}
{{Caption|The internal hollowed solid, together with the external objects which will be used to cut it.}}


<!--T:55-->
25. In the [[tree view|tree view]] de-select the objects; then select {{incode|Cut}} first, and then {{incode|Cut001}}.
25. In the [[tree view|tree view]] de-select the objects; then select {{incode|Cut}} first, and then {{incode|Cut001}}.
:25.1. Then press {{Button|[[File:Part_Cut.svg|24px]] [[Part_Cut|Cut]]}}. This will create {{incode|Cut003}}.
:25.1. Then press {{Button|[[File:Part_Cut.svg|16px]] [[Part_Cut|Cut]]}}. This will create {{incode|Cut003}}.


</translate>
</translate>
[[File:08_T03_Part_ball_cut_1.png]]
[[File:08_T03_Part_ball_cut_1.png]]
<translate>
<translate>
<!--T:56-->
{{Caption|The internal hollowed solid, cut by {{incode|Cut001}}.}}
{{Caption|The internal hollowed solid, cut by {{incode|Cut001}}.}}


<!--T:57-->
26. In the [[tree view|tree view]] de-select the objects; then select {{incode|Cut003}} first, and then {{incode|Cut002}}.
26. In the [[tree view|tree view]] de-select the objects; then select {{incode|Cut003}} first, and then {{incode|Cut002}}.
:26.1. Then press {{Button|[[File:Part_Cut.svg|24px]] [[Part_Cut|Cut]]}}. This will create {{incode|Cut004}}. This is the final object.
:26.1. Then press {{Button|[[File:Part_Cut.svg|16px]] [[Part_Cut|Cut]]}}. This will create {{incode|Cut004}}. This is the final object.
:26.2. Select {{incode|Cut004}}, click on the {{incode|Shape Color}} value to open the "Select color" dialog, then choose a green color.
:26.2. Select {{incode|Cut004}}, click on the {{MenuCommand|Shape Color}} value to open the {{MenuCommand|Select color}} dialog, then choose a green color; also change the value of {{MenuCommand|Line Width}} to {{incode|2.0}}.


</translate>
</translate>
[[File:09_T03_Part_ball_cut_2.png]]
[[File:09_T03_Part_ball_cut_2.png]]
<translate>
<translate>
<!--T:58-->
{{Caption|The internal hollowed solid, cut by {{incode|Cut001}} and {{incode|Cut002}}. Final model.}}
{{Caption|The internal hollowed solid, cut by {{incode|Cut001}} and {{incode|Cut002}}. Final model.}}


<!--T:59-->
{{Part Tools navi}}
27. Real objects don't have perfectly sharp edges or corners, so applying a fillet to the edges can be done to refine the model.
{{Userdocnavi}}
:27.1. In the [[tree view|tree view]], select {{incode|Cut004}} then press {{Button|[[File:Part_Fillet.svg|16px]] [[Part_Fillet|Fillet]]}}.
:27.2. In the {{MenuCommand|Fillet edges}} [[task panel|task panel]] go to {{MenuCommand|Selection}}, choose {{MenuCommand|Select edges}}, and then press {{Button|All}}. As {{MenuCommand|Fillet type}} choose {{incode|Constant radius}}, then set {{MenuCommand|Radius}} to {{incode|1 mm}}.
:24.3. Press {{Button|OK}}. This will create a {{incode|Fillet}} object.
:27.4. In the {{MenuCommand|View}} tab, change the value of {{MenuCommand|Line Width}} to {{incode|2.0}}.

</translate>
[[File:10_T03_Part_ball_fillet.png]]
<translate>
<!--T:60-->
{{Caption|Final whiffle ball model with fillets applied to the edges.}}


</translate>
</translate>
{{Part Tools navi{{#translation:}}}}
{{clear}}
{{Userdocnavi{{#translation:}}}}

Latest revision as of 13:07, 14 April 2023

Tutorial
Topic
Product design
Level
Beginner
Time to complete
30 minutes
Authors
r-frank and vocx
FreeCAD version
0.17 and above
Example files
WhiffleBall_Tutorial_FCWiki.FCStd
See also
None

Introduction

This tutorial was originally written by Roland Frank (†2017, r-frank), and it was rewritten and illustrated by vocx.

This tutorial is here to teach you how to use the Part Workbench.

The Part Workbench was the first workbench developed. It provides the basic geometrical elements that can be used as building blocks for other workbenches. The Part Workbench is meant to be used in a traditional constructive solid geometry (CSG) workflow. For a more modern workflow using sketches, pads, and features, use the PartDesign Workbench.

You will practice:

  • inserting primitives
  • changing parameters of those primitive objects
  • modifying their placement
  • doing boolean operations

Final model of the wiffle ball

Setup

1. Open FreeCAD, create a new empty document with File → New, and switch to the Part Workbench.

1.1. Press the View isometric button, or press 0 in the numerical pad of your keyboard, to change the view to isometric to visualize the 3D solids better.
1.2. Press the View fit all button whenever you add objects in order to pan and zoom the 3D view so that all elements are seen in the view.
1.3. Hold Ctrl while you click to select multiple items. If you selected something wrong or want to de-select everything, just click on empty space in the 3D view.

Insert primitive cubes

2. Insert a primitive cube by clicking on Box.

2.1. Select Cube in the tree view.
2.2. Change the dimensions in the Data tab of the property editor.
2.3. Change Length to 90 mm.
2.4. Change Width to 90 mm.
2.5. Change Height to 90 mm.

3. In the Data tab of the property editor, click on the Placement value so the ellipsis button ... appears on the right.

3.1. Press on the ellipsis to launch the Placement dialog.
3.2. Change the Translation values.
3.3. Change X to -45 mm.
3.4. Change Y to -45 mm.
3.5. Change Z to -45 mm.
3.6. Press the OK button to close the dialog.

4. Repeat the process, inserting a second, smaller cube by clicking on Box.

4.1. The second cube will be created with the same name, but with an additional number to distinguish the object.
4.2. Select Cube001 in the tree view, and change the dimensions and placement like with the previous object.
4.3. Change Length to 80 mm.
4.4. Change Width to 80 mm.
4.5. Change Height to 80 mm.
4.6. Open the Placement dialog.
4.7. Change X to -40 mm.
4.8. Change Y to -40 mm.
4.9. Change Z to -40 mm.
4.10. Press the OK button to close the dialog.

Change visual properties

5. The previous operations create a smaller cube inside a bigger cube. To visualize this, we can modify the View properties in the property editor.

5.1. Select Cube001, the smaller cube, in the tree view, and change the color. In the View tab, click on the Shape Color value to open the Select color dialog, then choose a green color; also change the value of Line Width to 2.0.
5.2. Select Cube, the larger cube, in the tree view. In the View tab, change the value of Transparency to 70.

Solid cube inside another solid cube

Insert primitive cylinders

6. Insert a primitive cylinder by clicking on Cylinder.

6.1. Select Cylinder in the tree view.
6.2. Change the dimensions in the Data tab of the property editor.
6.3. Change Radius to 27.5 mm.
6.4. Change Height to 120 mm.
6.5. Open the Placement dialog.
6.6. Change Z to -60 mm.
6.7. Press the OK button to close the dialog.

7. Repeat the process, inserting a second cylinder by clicking on Cylinder.

7.1. The second cylinder will be created with the same name, but with an additional number to distinguish the object.
7.2. Select Cylinder001 in the tree view, and change the dimensions and placement like with the previous object.
7.3. Change Radius to 27.5 mm.
7.4. Change Height to 120 mm.
7.5. Open the Placement dialog.
7.6. Change Y to 60 mm.
7.7. Change the Rotation to Rotation axis with angle; Axis to X (by setting the X, Y and Z values of the axis inputboxes to 1, 0 and 0 respectively), and Angle to 90 deg.
7.8. Press the OK button to close the dialog.

8. Insert another cylinder. This time create a duplicate so that the radius and height don't have to be changed, only its placement.

8.1. Select Cylinder001 in the tree view, and go to the menu Edit → Duplicate selection. This will create Cylinder002.
8.2. Open the Placement dialog.
8.3. Change X to -60 mm, and change Y back to 0 mm.
8.4. Change the Rotation to Rotation axis with angle; Axis to Y, and Angle to 90 deg.
8.5. Press the OK button to close the dialog.

Change visual properties

9. The previous operations create three cylinders that intersect with each other, and also intersect the cubes. To visualize this better we can modify the View properties in the property editor.

9.1. Select Cube001, the smaller cube, in the tree view, and change the transparency. In the View tab, change the value of Transparency to 70.
9.2. Select Cylinder, in the View tab, click on the Shape Color value to open the Select color dialog, then choose a red color.
9.3. Select Cylinder001, in the View tab, click on the Shape Color value to open the Select color dialog, then choose a blue color.
9.4. Select Cylinder002, in the View tab, click on the Shape Color value to open the Select color dialog, then choose a pink color.
9.5. Select the three cylinders, in the View tab also change the value of Line Width to 2.0.

Solid cylinders that intersect themselves and the solid cubes.

Fuse and cut

10. In the tree view, select Cube001 (the inner, smaller cube), and the tree cylinders, then press Fuse. This will create a Fusion object.

11. Then perform a boolean cut of the Cube (larger cube) and the new Fusion object.

11.1. In the tree view select Cube first, and then Fusion.
11.2. Then press Cut. This will create a Cut object.
Note: the order in which you select the objects is important for the cut operation. The base object is selected first, and the subtracting object comes at the end.
11.3. If the colors look strange, select the new Cut object, go to the View tab, click on the Shape Color value to open the Select color dialog, then choose a gray color; also change the value of Line Width to 2.0.

Hollow shape produced from cutting a cube and three cylinders from a bigger cube.

Insert primitive cubes to cut the corners of the partial solid

Now we'll create more cubes that will be used as cutting tools to trim the corners of the previously obtained Cut object.

12. Click on Box.

12.1. Select Cube002 in the tree view, and change the dimensions and placement.
12.2. Change Length to 140 mm.
12.3. Change Width to 112 mm.
12.4. Change Height to 112 mm.
12.5. Open the Placement dialog.
12.6. Change X to -70 mm.
12.7. Change Y to -56 mm.
12.8. Change Z to -56 mm.
12.9. Press OK.

13. Click on Box.

13.1. Select Cube003 in the tree view, and change the dimensions and placement.
13.2. Change Length to 180 mm.
13.3. Change Width to 180 mm.
13.4. Change Height to 180 mm.
13.5. Open the Placement dialog.
13.6. Change X to -90 mm.
13.7. Change Y to -90 mm.
13.8. Change Z to -90 mm.
13.9. Press OK.

We'll duplicate the previous two objects again to use once more as cutting objects.

14. Select only Cube002 in the tree view, and go to Edit → Duplicate selection. This will create Cube004.

15. Select only Cube003 in the tree view, and go to Edit → Duplicate selection. This will create Cube005.

16. To visualize this better we can modify the View properties in the property editor.

16.1. Select the Cut object, in the View tab, click on the Shape Color value to open the Select color dialog, then choose a blue color.
16.2. Select all new cubes, Cube002, Cube003, Cube004, and Cube005, in the View tab, change the value of Transparency to 80.

Additional external cubes that will be used as cutting objects for the internal solid.

Cutting the corners 1

17. In the tree view select Cube002 and Cube003.

17.1. Open the Placement dialog.
17.2. Tick the option Apply incremental changes; notice that all Translation values are reset to zeroes.
17.3. Change the Rotation to Rotation axis with angle; Axis to X, and Angle to 45 deg, then click on Apply. This will apply a rotation around the X-axis, and will reset the Angle field to zero.
17.4. Change the Rotation again, now Axis to Z, and Angle to 45 deg, then click on Apply. This will apply a rotation around the local Z-axis, and will reset the Angle field to zero.
17.5. Click on OK to close the dialog.

18. In the tree view de-select the objects; then select Cube003 first, the bigger cube, and then Cube002, the smaller cube.

18.1. Then press Cut. This will create Cut001. This is a hollowed body which intersects the initial Cut only at certain corners.

19. To visualize this better we can modify the View properties in the property editor.

19.1. Select Cube004 and Cube005, in the View tab, then change the value of Visibility to false, or press Space in the keyboard.
19.2. Select Cut001, click on the Shape Color value to open the Select color dialog, then choose a red color; also change the value of Transparency to 90.

A rotated, hollowed solid, which will be used as a cutting object for some corners of the internal solid.

Cutting the corners 2

20. In the tree view select Cut001, in the View tab, change the value of Visibility to false, or press Space in the keyboard.

21. In the tree view select Cube004 and Cube005, in the View tab, change the value of Visibility to true, or press Space in the keyboard.

21.1. Open the Placement dialog.
21.2. Tick the option Apply incremental changes; notice that all Translation values are reset to zeroes.
21.3. Change the Rotation to Rotation axis with angle; Axis to X, and Angle to 45 deg, then click on Apply. This will apply a rotation around the X-axis, and will reset the Angle field to zero.
21.4. Change the Rotation again, now Axis to Z, and Angle to -45 deg, then click on Apply. This will apply a rotation around the local Z-axis, and will reset the Angle field to zero.
21.5. Click on OK to close the dialog.

22. In the tree view de-select the objects; then select Cube005 first, the bigger cube, and then Cube004, the smaller cube.

22.1. Then press Cut. This will create Cut002. This is a hollowed body which intersects the initial Cut only at certain corners.

23. To visualize this better we can modify the View properties in the property editor.

23.1. Select Cut002, click on the Shape Color value to open the Select color dialog, then choose a pink color; also change the value of Transparency to 90.

A rotated, hollowed solid, which will be used as a cutting object for some corners of the internal solid.

Finishing the model

24. Make sure all objects are visible. In the tree view select all objects, in the View tab, change the value of Visibility to true, or press Space in the keyboard.

The internal hollowed solid, together with the external objects which will be used to cut it.

25. In the tree view de-select the objects; then select Cut first, and then Cut001.

25.1. Then press Cut. This will create Cut003.

The internal hollowed solid, cut by Cut001.

26. In the tree view de-select the objects; then select Cut003 first, and then Cut002.

26.1. Then press Cut. This will create Cut004. This is the final object.
26.2. Select Cut004, click on the Shape Color value to open the Select color dialog, then choose a green color; also change the value of Line Width to 2.0.

The internal hollowed solid, cut by Cut001 and Cut002. Final model.

27. Real objects don't have perfectly sharp edges or corners, so applying a fillet to the edges can be done to refine the model.

27.1. In the tree view, select Cut004 then press Fillet.
27.2. In the Fillet edges task panel go to Selection, choose Select edges, and then press All. As Fillet type choose Constant radius, then set Radius to 1 mm.
24.3. Press OK. This will create a Fillet object.
27.4. In the View tab, change the value of Line Width to 2.0.

Final whiffle ball model with fillets applied to the edges.