In the realm of computer-aided design (CAD), creating assemblies is a crucial skill for developing complex mechanical systems with multiple moving parts. FreeCAD, an open-source CAD software, has historically lacked a robust native assembly workbench, often relying on third-party add-ons to fill the gap. However, with the release of version 0.22 and the upcoming 1.0, FreeCAD introduces a new Assembly Workbench developed with contributions from Ondsel—a company aiming to enhance FreeCAD for enterprise users while giving back to the community.
In this tutorial, we'll explore how to use FreeCAD's new Assembly Workbench to create a simple scissor lift mechanism. We'll walk through the process of designing individual parts, assembling them, and setting up joints to simulate movement. This hands-on approach will help you grasp the fundamentals of assemblies in FreeCAD, paving the way for more complex projects.
Before diving into the design, ensure you have FreeCAD version 0.22 or later installed. The new Assembly Workbench is included in these versions, eliminating the need for third-party add-ons.
2. Designing the Individual Parts
We'll begin by creating the individual components of our scissor lift:
Base Arm
Two Moving Arms
Three Pins
Creating the Base Arm
Switch to the Part Design Workbench.
Create a New Document and Create a New Body.
Create a New Sketch on the XY plane.
Draw the Base Arm:
Use the Slot Tool to draw an oval slot centered on the origin.
Make the slot symmetrical around the origin using the Symmetry Constraint.
Set Dimensions:
Length between arc centers: 100 mm.
Width of the slot: 7.5 mm.
Add a Hole for the Peg:
Place a circle at one end of the slot.
Diameter: 3.5 mm.
Distance from the slot end: 8 mm.
Close the Sketch and Pad it to a thickness of 3 mm.
Rename the Body to "base".
Creating the Moving Arms
We'll create one arm and clone it for the second:
Create a New Body and Rename it to "arm_1".
Create a New Sketch on the XY plane.
Reference the base Arm:
Use a SubShapeBinder to import the base arm's dimensions.
Draw the Arm:
Replicate the slot shape without attaching constraints to the SubShapeBinder.
If you attach the sketch to the external geometry from the SubShapeBinder, your sketch will break when we move parts around later!
Set Dimensions identical to the base arm.
Add Holes:
One at the end (same as the base arm's peg hole).
One at the center (for the central pin).
Close the Sketch and Pad it to 3 mm thickness.
Transform the Arm:
Move it aside using the Transform Tool to separate it from the base visually.
Clone arm_1:
Select arm_1 and click on the Clone Tool (the orange sheep icon).
Rename the clone to "arm_2".
Transform arm_2 to position it separately.
Designing the Pins
We'll design a simple pin and clone it for the other two:
Create a New Body and Rename it to "pin_1".
Create a New Sketch on the XY plane.
Draw the Pin:
Draw a circle centered at the origin.
Diameter: 3 mm (to fit the peg holes).
Close the Sketch and Pad it to a length of 9 mm.
Transform Pin1 to position it near the base.
Clone Pin1 Twice:
Select Pin1 and create two clones.
Rename them to "Pin2" and "Pin3".
Transform them to position them near the arms.
3. Assembling the Scissor Lift
With all parts designed, we'll proceed to assemble them using the Assembly Workbench.
Setting Up the Assembly
Switch to the Assembly Workbench.
Create a New Assembly:
Click on the Assembly Container icon.
An Assembly object appears in the tree view.
Move Parts into the Assembly:
Drag and drop each part (base, arm_1, arm_2, pin_1, pin_2, pin_3) into the Assembly container.
Ensure all parts are nested under the Assembly.
Grounding the Base
To have a reference point, we'll ground the base:
Double-click on the Assembly to activate it (it will highlight in yellow in the Tree View).
Transform the base to rotate it along the desired plane (e.g., I rotate it so that the scissor lift goes up in the Z axis.)
Select the Base in the tree view.
Click on the Toggle Grounded icon to fix the base in space.
Adding Joints and Constraints
We'll use various joints to connect parts:
Connecting pin_1 to the Base
Select the Revolute Joint tool.
Define Attachment Points:
First Object: Select the outer cylindrical face of pin_1 (ensure the local axis is at the top or middle).
Second Object: Select the inner cylindrical face of the base's peg hole.
Adjust Alignment if necessary, using the Reverse Option.
Click OK to finalize the joint.
Attaching arm_1 to the base
Select the Cylindrical Joint tool.
First Object: Select the inner cylindrical face of arm_1’s hole.
Second Object: Select the outer cylindrical face of pin_1.
Click OK.
Select the Distance Joint tool.
First Object: Click the inside face of the base arm.
Second Object: Click the inside face of arm_1.
Set the distance to 0 mm so that the faces touch.
Click OK.
Connecting arm_1 to pin_2
Select the Revolute Joint tool.
First Object: Select the outer cylindrical face of arm_1’s opposite hole.
Second Object: Select the inner cylindrical face of pin_2.
Click OK.
Attaching arm_2 to pin_2
Select the Revolute Joint tool.
First Object: Select the inner cylindrical face of arm_2’s hole.
Second Object: Select the outer cylindrical face of pin_2.
Click OK.
Connecting arm_2 to the base Arm
Select the Revolute Joint tool.
First Object: Select the inner cylindrical face of arm_2’s hole.
Second Object: Select the outer cylindrical face of pin_3.
Click OK.
Select the Distance tool.
First Object: Click the outside cylinder face of pin_3.
Second Object: Click the inside slot face of the base arm.
Set the Distance to 0.25 mm.
Click OK.
4. Testing and Simulating Movement
With all joints in place, you can now test the movement:
Activate the Assembly (double-click on it if not activated already).
Select and Move Arm1 or Arm2:
Drag them to simulate the scissor lift's action.
Observe how the arms rotate around the pins.
Adjust Constraints if movement isn't as expected:
Use Distance Constraints to limit movement.
For example, prevent pins from sliding out by setting distance limits between faces.
Challenge: Enhance the Assembly
Objective: Modify the assembly so that the pins stop at appropriate positions, mimicking physical constraints.
Hints:
Use Slider Joints:
Although FreeCAD lacks collision detection, you can simulate limits by setting minimum and maximum positions.
Create Temporary Bodies:
If necessary, design helper objects to define limits.
Make them transparent or hide them in the final model.
Test the Movement:
Ensure that arms and pins move realistically within defined constraints.
Optional: Replace pins with real-world fasteners (e.g., M3 bolts) for a more accurate model.
Conclusion
In this tutorial, we've explored FreeCAD's new Assembly workbench, demonstrating how to:
Design individual parts for an assembly.
Use joints and constraints to simulate mechanical movement.
Ground components and organize parts within an assembly.
While FreeCAD's assembly capabilities are still evolving, the current tools provide a solid foundation for creating and testing complex designs. By mastering these techniques, you can enhance your CAD projects, ensuring parts work together seamlessly before manufacturing or 3D printing.
Share Your Work: If you completed the challenge or customized the scissor lift, share your designs on social media with the hashtag #DKFreeCAD and tag @DigiKey.
Explore Further: In the next tutorial, we'll delve into finite element analysis (FEA) to simulate stress, heat, and vibration in your designs.