Assembly Workbench/pt-br: Difference between revisions

From FreeCAD Documentation
(Created page with "== Introdução ==")
(Updating to match new version of source page)
 
(6 intermediate revisions by 2 users not shown)
Line 3: Line 3:
<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
{{Docnav
{{Docnav
|[[Arch_Workbench|Arch Workbench]]
|[[Std_Base|Std Base]]
|[[CAM_Workbench|CAM Workbench]]
|[[BIM_Workbench|BIM Workbench]]
|IconL=Workbench_Arch.svg
|IconL=Freecad.svg
|IconR=Workbench_CAM.svg
|IconR=Workbench_BIM.svg
}}
}}
</div>
</div>
Line 27: Line 27:
</div>
</div>


<span id="Tools"></span>
<div lang="en" dir="ltr" class="mw-content-ltr">
<div class="mw-translate-fuzzy">
More to come...
== Ferramentas ==
</div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
== Tools ==
===Assembly===
</div>
</div>


Line 40: Line 41:


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
* [[Image:Assembly_InsertLink.svg|32px]] [[Assembly_InsertLink|Insert Link]]
* [[Image:Assembly_InsertLink.svg|32px]] [[Assembly_InsertLink|Insert Component]]
</div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
* [[Image:Assembly_SolveAssembly.svg|32px]] [[Assembly_SolveAssembly|Solve Assembly]]
* [[Image:Assembly_SolveAssembly.svg|32px]] [[Assembly_SolveAssembly|Solve Assembly]]
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
* [[Image:Assembly_CreateView.svg|32px]] [[Assembly_CreateView|Create Exploded View]]
</div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
* [[Image:Assembly_ExportASMT.svg|32px]] [[Assembly_ExportASMT|Export ASMT File]]
* [[Image:Assembly_ExportASMT.svg|32px]] [[Assembly_ExportASMT|Export ASMT File]]
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
===Joints===
</div>
</div>


Line 77: Line 86:
<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
* [[Image:Assembly_CreateJointDistance.svg|32px]] [[Assembly_CreateJointDistance|Create Distance Joint]]
* [[Image:Assembly_CreateJointDistance.svg|32px]] [[Assembly_CreateJointDistance|Create Distance Joint]]
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
* [[Image:Assembly_CreateJointParallel.svg|32px]] [[Assembly_CreateJointParallel|Create Parallel Joint]]
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
* [[Image:Assembly_CreateJointPerpendicular.svg|32px]] [[Assembly_CreateJointPerpendicular|Create Perpendicular Joint]]
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
* [[Image:Assembly_CreateJointAngle.svg|32px]] [[Assembly_CreateJointAngle|Create Angle Joint]]
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
* [[Image:Assembly_CreateJointRackPinion.svg|32px]] [[Assembly_CreateJointRackPinion|Create Rack and Pinion Joint]]
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
* [[Image:Assembly_CreateJointScrew.svg|32px]] [[Assembly_CreateJointScrew|Create Screw Joint]]
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
* <span id="Assembly_CreateJointGearBelt">[[Image:Assembly_CreateJointGears.svg|x32px]][[Image:Toolbar_flyout_arrow_blue_background.svg|x32px]] Create Gear/Belt Joint:</span><!--Do not edit span id: the Assembly_CompCreateJointGearBelt pages redirect here-->
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
:* [[Image:Assembly_CreateJointGears.svg|32px]] [[Assembly_CreateJointGears|Create Gears Joint]]
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
:* [[Image:Assembly_CreateJointBelt.svg|32px]] [[Assembly_CreateJointBelt|Create Belt Joint]]
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
==Example==
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
<div class="mw-collapsible mw-collapsed toccolours">
[[Image:Assembly3_KinematicExample-01.png|80px]] This example is temporary and may be removed once proper descriptions/tutorials are available.
<div class="mw-collapsible-content">
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
===A kinematic assembly===
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
The kinematic assembly to be created consists of four parts: a Base, a Slider, a Crank, and a connecting Rod. They are connected with four joints.
</div>

[[Image:Assembly3_KinematicExample-01.png|300px]]

<div lang="en" dir="ltr" class="mw-content-ltr">
{{Caption|Assembled parts: Base (amber), Slider (light blue), Crank (red), connecting Rod (green)}}
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
====Prepare parts====
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
In this example all parts and the assembly are created in one document.
</div>

[[Image:Assembly3_KinematicExample-02.png|200px]]
[[Image:Assembly3_KinematicExample-03.png|200px]]
[[Image:Assembly3_KinematicExample-04.png|200px]]
[[Image:Assembly3_KinematicExample-05.png|200px]]

<div lang="en" dir="ltr" class="mw-content-ltr">
{{Caption|From left to right: Base, Slider, Crank, connecting Rod}}
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
Cylindrical geometries are either parallel or perpendicular, the rest of the shapes is not relevant for this example unless it causes clashes. With this in mind model your own shapes.
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
====Add a root assembly====
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
[[Image:Assembly_CreateAssembly.svg|16px]] [[Assembly_CreateAssembly|Create Assembly]] adds a root assembly to a document. (this tool can also add a sub-assembly to an existing selected assembly)
</div>

[[Image:Assembly_KinematicExample-01.png|200px]]

<div lang="en" dir="ltr" class="mw-content-ltr">
{{Caption|Tree view of Parts and Assembly in a document}}
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
====Move the parts into the assembly container====
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
In the [[Tree_view|Tree view]] drag and drop the parts on the Assembly object. Now they can be handled by the Assembly's solver.
</div>

[[Image:Assembly_KinematicExample-02.png|200px]]

<div lang="en" dir="ltr" class="mw-content-ltr">
{{Caption|The Parts are in the Assembly container now}}
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
====Ground a part====
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
To keep the assembly at the desired position, the base part should be locked, or grounded as it is called here. Select the Base in the [[Tree_view|Tree view]] or in the [[3D_view|3D view]] and use the [[Image:Assembly_ToggleGrounded.svg|16px]] [[Assembly_ToggleGrounded|Toggle grounded]] command. This fixes the position of the Base in relation to the local coordinate system (LCS) of the Assembly container. This (also suffixes a lock icon to the label of the Base object and (before weekly build 0.22 - 37213)) adds a GroundedJoint object in the Joints container.
</div>

[[Image:Assembly_KinematicExample-03.png|200px]]
[[Image:Button_right.svg|16px|link=]]
[[Image:Assembly_KinematicExample-04.png|240px]]

<div lang="en" dir="ltr" class="mw-content-ltr">
{{Caption|Expand the Joints container to find the GroundedJoint object}}
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
(The GroundedJoint object cannot be unhidden and has no representation in the 3D view (before weekly build 0.22 - 37213))
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
====Apply joints====
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
A joint connects exactly two elements of different parts. They can optionally be selected before the desired joint tool is invoked (any number of selected elements other than two results in an empty selection).<br>The elements define the position and orientation of a LCS represented by a filled circle on the local XY plane and three lines along the local X (red), Y (green), and Z (blue) axes.
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
* A Revolute joint between Base and Crank
</div>

[[Image:Assembly_KinematicExample-05.png|200px]]
[[Image:Button_right.svg|16px|link=]]
[[Image:Assembly_KinematicExample-06.png|200px]]

<div lang="en" dir="ltr" class="mw-content-ltr">
{{Caption|Selected elements + [[Image:Assembly_CreateJointRevolute.svg|16px]] [[Assembly_CreateJointRevolute|Create Revolute Joint]] → rearranged Crank}}
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
* A Cylindrical joint between Base and Slider
</div>

[[Image:Assembly_KinematicExample-07.png|200px]]
[[Image:Button_right.svg|16px|link=]]
[[Image:Assembly_KinematicExample-08.png|200px]]

<div lang="en" dir="ltr" class="mw-content-ltr">
{{Caption|Selected elements +[[Image:Assembly_CreateJointCylindrical.svg|16px]] [[Assembly_CreateJointCylindrical|Create Cylindrical Joint]] → rearranged Slider}}
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
* A Revolute joint between Crank and Rod
</div>

[[Image:Assembly_KinematicExample-09.png|200px]]
[[Image:Button_right.svg|16px|link=]]
[[Image:Assembly_KinematicExample-10.png|200px]]

<div lang="en" dir="ltr" class="mw-content-ltr">
{{Caption|Selected elements + [[Image:Assembly_CreateJointRevolute.svg|16px]] [[Assembly_CreateJointRevolute|Create Revolute Joint]] → rearranged Rod}}
</div>

[[Image:Assembly_KinematicExample-11.png|200px]]
[[Image:Button_right.svg|16px|link=]]
[[Image:Assembly_KinematicExample-12.png|200px]]

<div lang="en" dir="ltr" class="mw-content-ltr">
{{Caption|Now there are several joints in a line and we have to help the solver to find a sensible solution.<br>Click and drag the parts → into an easier to compute position.}}
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
* A Cylindrical joint between Rod and Slider
</div>

[[Image:Assembly_KinematicExample-13.png|200px]]
[[Image:Button_right.svg|16px|link=]]
[[Image:Assembly_KinematicExample-14.png|200px]]

<div lang="en" dir="ltr" class="mw-content-ltr">
{{Caption|Selected elements + [[Image:Assembly_CreateJointCylindrical.svg|16px]] [[Assembly_CreateJointCylindrical|Create Cylindrical Joint]] → finished Assembly}}
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
In the finished assembly use the mouse pointer to drag the parts according to the used joints.
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
====Drive the crank====
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
To control the layout of the assembly by the angle between the Base and the Crank we have to change the Revolute joint to a Fixed joint.<br>
To do so double-click on the Revolute object in the Tree view. In the dialog change Revolute to Fixed and change the Rotation value as desired (the movement should follow the mouse wheel action).
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
Now only the Label of the joint was changed but not its Name! (Each change of the joint type will also change the Label)
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
The Rotation property of the Fixed joint can be controlled via macro or from the Python console (just copy and paste the following lines):
</div>

{{Code|code=
actuator = FreeCAD.ActiveDocument.getObject('Revolute')

for angle in range(0,361,10):
# A full rotation of the Crank in steps of 10°
actuator.Rotation = angle
App.activeDocument().recompute(None,True,True)
}}

<div lang="en" dir="ltr" class="mw-content-ltr">
Or alternatively:
</div>

{{Code|code=
actuator = FreeCAD.ActiveDocument.getObject('Revolute')

for angle in range(0,361,10):
# A full rotation of the Crank in steps of 10°
actuator.Rotation = angle
Gui.runCommand('Assembly_SolveAssembly',0)
}}

<div lang="en" dir="ltr" class="mw-content-ltr">
(The Name of the joint is still Revolute while its Label has changed to Fixed, and the end of the range must be greater than 360 to also include this angle as a valid result.)
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
</div> <!-- End of collapsible element for ... section. Do not remove! -->
</div> <!-- End of collapsible element for ... section. Do not remove! -->
</div>
</div>


Line 82: Line 333:
<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
{{Docnav
{{Docnav
|[[Arch_Workbench|Arch Workbench]]
|[[Std_Base|Std Base]]
|[[CAM_Workbench|CAM Workbench]]
|[[BIM_Workbench|BIM Workbench]]
|IconL=Workbench_Arch.svg
|IconL=Freecad.svg
|IconR=Workbench_CAM.svg
|IconR=Workbench_BIM.svg
}}
}}
</div>
</div>

Latest revision as of 19:03, 31 May 2024

Other languages:
Assembly workbench icon

Introdução

The Assembly Workbench is FreeCAD's new built-in assembly workbench.

Ferramentas

Assembly

Joints

  • Create Gear/Belt Joint:

Example

This example is temporary and may be removed once proper descriptions/tutorials are available.

A kinematic assembly

The kinematic assembly to be created consists of four parts: a Base, a Slider, a Crank, and a connecting Rod. They are connected with four joints.

Assembled parts: Base (amber), Slider (light blue), Crank (red), connecting Rod (green)

Prepare parts

In this example all parts and the assembly are created in one document.

From left to right: Base, Slider, Crank, connecting Rod

Cylindrical geometries are either parallel or perpendicular, the rest of the shapes is not relevant for this example unless it causes clashes. With this in mind model your own shapes.

Add a root assembly

Create Assembly adds a root assembly to a document. (this tool can also add a sub-assembly to an existing selected assembly)

Tree view of Parts and Assembly in a document

Move the parts into the assembly container

In the Tree view drag and drop the parts on the Assembly object. Now they can be handled by the Assembly's solver.

The Parts are in the Assembly container now

Ground a part

To keep the assembly at the desired position, the base part should be locked, or grounded as it is called here. Select the Base in the Tree view or in the 3D view and use the Toggle grounded command. This fixes the position of the Base in relation to the local coordinate system (LCS) of the Assembly container. This (also suffixes a lock icon to the label of the Base object and (before weekly build 0.22 - 37213)) adds a GroundedJoint object in the Joints container.

Expand the Joints container to find the GroundedJoint object

(The GroundedJoint object cannot be unhidden and has no representation in the 3D view (before weekly build 0.22 - 37213))

Apply joints

A joint connects exactly two elements of different parts. They can optionally be selected before the desired joint tool is invoked (any number of selected elements other than two results in an empty selection).
The elements define the position and orientation of a LCS represented by a filled circle on the local XY plane and three lines along the local X (red), Y (green), and Z (blue) axes.

  • A Revolute joint between Base and Crank

Selected elements + Create Revolute Joint → rearranged Crank

  • A Cylindrical joint between Base and Slider

Selected elements + Create Cylindrical Joint → rearranged Slider

  • A Revolute joint between Crank and Rod

Selected elements + Create Revolute Joint → rearranged Rod

Now there are several joints in a line and we have to help the solver to find a sensible solution.
Click and drag the parts → into an easier to compute position.

  • A Cylindrical joint between Rod and Slider

Selected elements + Create Cylindrical Joint → finished Assembly

In the finished assembly use the mouse pointer to drag the parts according to the used joints.

Drive the crank

To control the layout of the assembly by the angle between the Base and the Crank we have to change the Revolute joint to a Fixed joint.
To do so double-click on the Revolute object in the Tree view. In the dialog change Revolute to Fixed and change the Rotation value as desired (the movement should follow the mouse wheel action).

Now only the Label of the joint was changed but not its Name! (Each change of the joint type will also change the Label)

The Rotation property of the Fixed joint can be controlled via macro or from the Python console (just copy and paste the following lines):

actuator = FreeCAD.ActiveDocument.getObject('Revolute')

for angle in range(0,361,10):
    # A full rotation of the Crank in steps of 10°
    actuator.Rotation = angle
    App.activeDocument().recompute(None,True,True)

Or alternatively:

actuator = FreeCAD.ActiveDocument.getObject('Revolute')

for angle in range(0,361,10):
    # A full rotation of the Crank in steps of 10°
    actuator.Rotation = angle
    Gui.runCommand('Assembly_SolveAssembly',0)

(The Name of the joint is still Revolute while its Label has changed to Fixed, and the end of the range must be greater than 360 to also include this angle as a valid result.)