Lattice2 Workbench: Difference between revisions

From FreeCAD Documentation
(Marked this version for translation)
(Marked this version for translation)
(One intermediate revision by one other user not shown)
Line 38: Line 38:
<!--T:11-->
<!--T:11-->
Detailed description on the [https://github.com/DeepSOIC/Lattice2/wiki Lattice2 Github wiki]
Detailed description on the [https://github.com/DeepSOIC/Lattice2/wiki Lattice2 Github wiki]

===Toolbar=== <!--T:28-->


<!--T:12-->
<!--T:12-->
Line 43: Line 45:
{{Caption|Lattice2 Toolbar}}
{{Caption|Lattice2 Toolbar}}


<!--T:13-->
===Commands=== <!--T:29-->

* [[Image:Lattice2_Placement.svg|32px]] '''Placement'''
<!--T:30-->
** [[Image:Lattice2_Placement.svg|24px]] Single Placement: '''Custom'''
** [[Image:Lattice2_Placement.svg|24px]] Single Placement: '''XY plane'''
* [[Image:Lattice2_Placement.svg|32px]] [[Lattice2_Placement|Placement]]
** [[Image:Lattice2_Placement.svg|24px]] Single Placement: '''XZ plane'''
** [[Image:Lattice2_Placement.svg|24px]] [[Lattice2_Placement|Single Placement: Custom]]
** [[Image:Lattice2_Placement.svg|24px]] Single Placement: '''YZ plane'''
** [[Image:Lattice2_Placement.svg|24px]] [[Lattice2_Placement|Single Placement: XY plane]]
** [[Image:Lattice2_Placement.svg|24px]] Single Placement: '''along X'''
** [[Image:Lattice2_Placement.svg|24px]] [[Lattice2_Placement|Single Placement: XZ plane]]
** [[Image:Lattice2_Placement.svg|24px]] Single Placement: '''along Y'''
** [[Image:Lattice2_Placement.svg|24px]] [[Lattice2_Placement|Single Placement: YZ plane]]
** [[Image:Lattice2_Placement.svg|24px]] Single Placement: '''along Z'''
** [[Image:Lattice2_Placement.svg|24px]] [[Lattice2_Placement|Single Placement: along X]]
** [[Image:Lattice2_Placement.svg|24px]] Single Placement: '''Euler angles'''
** [[Image:Lattice2_Placement.svg|24px]] [[Lattice2_Placement|Single Placement: along Y]]
** [[Image:Lattice2_Placement.svg|24px]] [[Lattice2_Placement|Single Placement: along Z]]
** [[Image:Lattice2_PlacementFromShape.svg|32px]] Placement of shape: '''Copy object.Placement'''
** [[Image:Lattice2_Placement.svg|24px]] [[Lattice2_Placement|Single Placement: Euler angles]]
** [[Image:Lattice2_PlacementFromShape.svg|32px]] Placement of shape: '''Center of bounding box'''
** [[Image:Lattice2_PlacementFromShape.svg|32px]] Placement of shape: '''Center of mass'''
** [[Image:Lattice2_PlacementFromShape.svg|32px]] [[Lattice2_PlacementFromShape|Placement of shape: Copy object.Placement]]
** [[Image:Lattice2_PlacementFromShape.svg|32px]] Placement of shape: '''Inertial axis system'''
** [[Image:Lattice2_PlacementFromShape.svg|32px]] [[Lattice2_PlacementFromShape|Placement of shape: Center of bounding box]]
** [[Image:Lattice2_PlacementFromShape.svg|32px]] [[Lattice2_PlacementFromShape|Placement of shape: Center of mass]]
* [[Image:Lattice2_LinearArray.svg|32px]] '''Generate linear array'''
** [[Image:Lattice2_PlacementFromShape.svg|32px]] [[Lattice2_PlacementFromShape|Placement of shape: Inertial axis system]]
* [[Image:Lattice2_PolarArray.svg|32px]] '''Generate polar array'''
* [[Image:Lattice2_ArrayFromShape.svg|32px]] '''Array from shape'''
* [[Image:Lattice2_AttachablePlacement.svg|32px]] [[Lattice2_AttachablePlacement|Attachable Placement]]
** [[Image:Lattice2_ArrayFromShape.svg|32px]] '''Internal placements'''
* [[Image:Lattice2_LinearArray.svg|32px]] [[Lattice2_LinearArray|Generate linear array]]
** [[Image:Lattice2_ArrayFromShape.svg|32px]] '''Center of bounding box'''
* [[Image:Lattice2_PolarArray.svg|32px]] [[Lattice2_PolarArray|Generate polar array]]
** [[Image:Lattice2_ArrayFromShape.svg|32px]] '''Center of mass'''
* [[Image:Lattice2_ArrayFromShape.svg|32px]] [[Lattice2_ArrayFromShape|Array from shape]]
** [[Image:Lattice2_ArrayFromShape.svg|32px]] '''Inertial axis system'''
** [[Image:Lattice2_ArrayFromShape.svg|32px]] [[Lattice2_ArrayFromShape|Internal placements]]
* [[Image:Lattice2_InvertLattice.svg|32px]] '''Invert lattice'''
** [[Image:Lattice2_ArrayFromShape.svg|32px]] [[Lattice2_ArrayFromShape|Center of bounding box]]
* [[Image:Lattice2_JoinArrays.svg|32px]] '''Join arrays'''
** [[Image:Lattice2_ArrayFromShape.svg|32px]] [[Lattice2_ArrayFromShape|Center of mass]]
* [[Image:Lattice2_ArrayFilter.svg|32px]] '''Array filter'''
** [[Image:Lattice2_ArrayFromShape.svg|32px]] [[Lattice2_ArrayFromShape|Inertial axis system]]
** [[Image:Lattice2_ArrayFilter.svg|32px]] '''Selected items'''
* [[Image:Lattice2_InvertLattice.svg|32px]] [[Lattice2_InvertLattice|Invert lattice]]
** [[Image:Lattice2_ArrayFilter.svg|32px]] '''Touching'''
* [[Image:Lattice2_JoinArrays.svg|32px]] [[Lattice2_JoinArrays|Join arrays]]
** [[Image:Lattice2_ArrayFilter.svg|32px]] '''Within distance window'''
* [[Image:Lattice2_ArrayFilter.svg|32px]] [[Lattice2_ArrayFilter|Array filter]]
** [[Image:Lattice2_ArrayFilter.svg|32px]] '''Pointing at shape'''
** [[Image:Lattice2_ArrayFilter.svg|32px]] [[Lattice2_ArrayFilter|Selected items]]
* [[Image:Lattice2_ExplodeArray.svg|32px]] '''Explode array'''
** [[Image:Lattice2_ArrayFilter.svg|32px]] [[Lattice2_ArrayFilter|Touching]]
* [[Image:Lattice2_ProjectArray.svg|32px]] '''Project array'''
** [[Image:Lattice2_ArrayFilter.svg|32px]] [[Lattice2_ArrayFilter|Within distance window]]
* [[Image:Lattice2_ResampleArray.svg|32px]] '''Resample array'''
** [[Image:Lattice2_ArrayFilter.svg|32px]] [[Lattice2_ArrayFilter|Pointing at shape]]
* [[Image:Lattice2_PopulateCopiesNormal.svg|32px]] '''Populate with copies'''
* [[Image:Lattice2_ExplodeArray.svg|32px]] [[Lattice2_ExplodeArray|Explode array]]
** [[Image:Lattice2_PopulateCopiesNormal.svg|32px]] '''Populate with copies'''
* [[Image:Lattice2_ProjectArray.svg|32px]] [[Lattice2_ProjectArray|Project array]]
** [[Image:Lattice2_PopulateCopiesArray.svg|32px]] '''Populate with copies: Build array'''
* [[Image:Lattice2_ResampleArray.svg|32px]] [[Lattice2_ResampleArray|Resample array]]
** [[Image:Lattice2_PopulateCopiesMove.svg|32px]] '''Moved object'''
* [[Image:Lattice2_PopulateCopiesNormal.svg|32px]] [[Lattice2_PopulateCopiesNormal|Populate with copies]]
* [[Image:Lattice2_PopulateChildrenNormal.svg|32px]] '''Populate with children'''
** [[Image:Lattice2_PopulateCopiesNormal.svg|32px]] [[Lattice2_PopulateCopiesNormal|Populate with copies]]
** [[Image:Lattice2_PopulateChildrenNormal.svg|32px]] '''Populate with children'''
** [[Image:Lattice2_PopulateCopiesArray.svg|32px]] [[Lattice2_PopulateCopiesArray|Populate with copies: Build array]]
** [[Image:Lattice2_PopulateChildrenArray.svg|32px]] '''Populate with children: Build array'''
** [[Image:Lattice2_PopulateCopiesMove.svg|32px]] [[Lattice2_PopulateCopiesMove|Moved object]]
** [[Image:Lattice2_PopulateChildrenMove.svg|32px]] '''Moved children'''
* [[Image:Lattice2_PopulateChildrenNormal.svg|32px]] [[Lattice2_PopulateChildrenNormal|Populate with children]]
** [[Image:Lattice2_PopulateChildrenNormal.svg|32px]] [[Lattice2_PopulateChildrenNormal|Populate with children]]
* [[Image:Lattice2_ParametricDowngrade.svg|24px]] '''Parametric downgrade'''
** [[Image:Lattice2_PopulateChildrenArray.svg|32px]] [[Lattice2_PopulateChildrenArray|Populate with children: Build array]]
** [[Image:Lattice2_ParametricDowngrade.svg|24px]] '''Downgrade to '''
** [[Image:Lattice2_ParametricDowngrade.svg|24px]] '''Downgrade to Leaves'''
** [[Image:Lattice2_PopulateChildrenMove.svg|32px]] [[Lattice2_PopulateChildrenMove|Moved children]]
** [[Image:Lattice2_ParametricDowngrade.svg|24px]] '''Downgrade to CompSolids'''
* [[Image:Lattice2_ParametricDowngrade.svg|24px]] [[Lattice2_ParametricDowngrade|Parametric downgrade]]
** [[Image:Lattice2_ParametricDowngrade.svg|24px]] '''Downgrade to Shells'''
** [[Image:Lattice2_ParametricDowngrade.svg|24px]] [[Lattice2_ParametricDowngrade|Downgrade to ]]
** [[Image:Lattice2_ParametricDowngrade.svg|24px]] '''Downgrade to OpenWires'''
** [[Image:Lattice2_ParametricDowngrade.svg|24px]] [[Lattice2_ParametricDowngrade|Downgrade to Leaves]]
** [[Image:Lattice2_ParametricDowngrade.svg|24px]] '''Downgrade to Faces'''
** [[Image:Lattice2_ParametricDowngrade.svg|24px]] [[Lattice2_ParametricDowngrade|Downgrade to CompSolids]]
** [[Image:Lattice2_ParametricDowngrade.svg|24px]] '''Downgrade to Wires'''
** [[Image:Lattice2_ParametricDowngrade.svg|24px]] [[Lattice2_ParametricDowngrade|Downgrade to Shells]]
** [[Image:Lattice2_ParametricDowngrade.svg|24px]] '''Downgrade to Edges'''
** [[Image:Lattice2_ParametricDowngrade.svg|24px]] [[Lattice2_ParametricDowngrade|Downgrade to OpenWires]]
** [[Image:Lattice2_ParametricDowngrade.svg|24px]] '''Downgrade to Seam edges'''
** [[Image:Lattice2_ParametricDowngrade.svg|24px]] [[Lattice2_ParametricDowngrade|Downgrade to Faces]]
** [[Image:Lattice2_ParametricDowngrade.svg|24px]] '''Downgrade to Non-seam edges'''
** [[Image:Lattice2_ParametricDowngrade.svg|24px]] [[Lattice2_ParametricDowngrade|Downgrade to Wires]]
** [[Image:Lattice2_ParametricDowngrade.svg|24px]] '''Downgrade to Vertices'''
** [[Image:Lattice2_ParametricDowngrade.svg|24px]] [[Lattice2_ParametricDowngrade|Downgrade to Edges]]
** [[Image:Lattice2_ParametricDowngrade.svg|24px]] [[Lattice2_ParametricDowngrade|Downgrade to Seam edges]]
* [[Image:Lattice2_SubLink.svg|32px]] '''Sub link'''
** [[Image:Lattice2_ParametricDowngrade.svg|24px]] [[Lattice2_ParametricDowngrade|Downgrade to Non-seam edges]]
* [[Image:Lattice2_MakeCompound.svg|32px]] '''Make compound'''
** [[Image:Lattice2_ParametricDowngrade.svg|24px]] [[Lattice2_ParametricDowngrade|Downgrade to Vertices]]
* [[Image:Lattice2_ExplodeCompound.svg|32px]] '''Explode compound'''
* [[Image:Lattice2_FuseCompound.svg|32px]] '''Fuse compound'''
* [[Image:Lattice2_SubLink.svg|32px]] [[Lattice2_SubLink|Sub link]]
* [[Image:Lattice2_BoundingBox.svg|32px]] '''Bounding box'''
* [[Image:Lattice2_MakeCompound.svg|32px]] [[Lattice2_MakeCompound|Make compound]]
** [[Image:Lattice2_BoundingBox.svg|32px]] '''Whole'''
* [[Image:Lattice2_ExplodeCompound.svg|32px]] [[Lattice2_ExplodeCompound|Explode compound]]
** [[Image:Lattice2_BoundingBoxCompound.svg|32px]] '''Children'''
* [[Image:Lattice2_FuseCompound.svg|32px]] [[Lattice2_FuseCompound|Fuse compound]]
* [[Image:Lattice2_ShapeString.svg|32px]] '''Shape string for array'''
* [[Image:Lattice2_BoundingBox.svg|32px]] [[Lattice2_BoundingBox|Bounding box]]
* [[Image:Lattice2_ParaSeries.svg|32px]] '''Para series'''
** [[Image:Lattice2_BoundingBox.svg|32px]] [[Lattice2_BoundingBox|Whole]]
* [[Image:Lattice2_Inspect.svg|32px]] '''Inspect'''
** [[Image:Lattice2_BoundingBoxCompound.svg|32px]] [[Lattice2_BoundingBoxCompound|Children]]
** [[Image:Lattice2_InspectSelection.svg|32px]] '''Inspect seletion'''
* [[Image:Lattice2_ShapeString.svg|32px]] [[Lattice2_ShapeString|Shape string for array]]
** [[Image:Lattice2_InspectShape.svg|32px]] '''Shape info (feature)'''
* [[Image:Lattice2_ParaSeries.svg|32px]] [[Lattice2_ParaSeries|Para series]]
* [[Image:Lattice2_SubstituteObject.svg|32px]] '''Substitute object'''
* [[Image:Lattice2_Inspect.svg|32px]] [[Lattice2_Inspect|Inspect]]
** [[Image:Lattice2_InspectSelection.svg|32px]] [[Lattice2_InspectSelection|Inspect seletion]]
* '''Expose links to subelements'''
** [[Image:Lattice2_InspectShape.svg|32px]] [[Lattice2_InspectShape|Shape info (feature)]]
* [[Image:Lattice2_SubstituteObject.svg|32px]] [[Lattice2_SubstituteObject|Substitute object]]
* Expose links to subelements


<!--T:14-->
<!--T:14-->
Other
Other
* '''Recomputes'''
* Recomputes
** [[Image:Lattice2_RecomputeMakeFeature.svg|32px]] '''Make recompute locher object''':
** [[Image:Lattice2_RecomputeMakeFeature.svg|32px]] [[Lattice2_RecomputeMakeFeature|Make recompute locher object]]:
** [[Image:Lattice2_RecomputeLock.svg|32px]] '''Lock recomputes''':
** [[Image:Lattice2_RecomputeLock.svg|32px]] [[Lattice2_RecomputeLock|Lock recomputes]]:
** [[Image:Lattice2_RecomputeUnlock.svg|32px]] '''Unlock recomputes''':
** [[Image:Lattice2_RecomputeUnlock.svg|32px]] [[Lattice2_RecomputeUnlock|Unlock recomputes]]:
** [[Image:Lattice2_RecomputeFeature.svg|32px]] '''Recompute feature''':
** [[Image:Lattice2_RecomputeFeature.svg|32px]] [[Lattice2_RecomputeFeature|Recompute feature]]:
** [[Image:Lattice2_RecomputeDocument.svg|32px]] '''Recompute document''':
** [[Image:Lattice2_RecomputeDocument.svg|32px]] [[Lattice2_RecomputeDocument|Recompute document]]:
** [[Image:Lattice2_RecomputeForce.svg|32px]] '''Force recompute''':
** [[Image:Lattice2_RecomputeForce.svg|32px]] [[Lattice2_RecomputeForce|Force recompute]]:
** [[Image:Lattice2_RecomputeTouch.svg|32px]] '''Touch selected feature''':
** [[Image:Lattice2_RecomputeTouch.svg|32px]] [[Lattice2_RecomputeTouch|Touch selected feature]]:
* [[Image:Lattice2_Lattice2.svg|32px]] Lattice2 icon
* [[Image:Lattice2_Lattice2.svg|32px]] Lattice2 Workbench icon


==Installation== <!--T:15-->
==Installation== <!--T:15-->

Revision as of 22:48, 18 March 2020

This documentation is not finished. Please help and contribute documentation.

GuiCommand model explains how commands should be documented. Browse Category:UnfinishedDocu to see more incomplete pages like this one. See Category:Command Reference for all commands.

See WikiPages to learn about editing the wiki pages, and go to Help FreeCAD to learn about other ways in which you can contribute.

The FreeCAD Lattice2 External Workbench Icon

Introduction

Lattice2 is stable. New features may be added, but no breaking changes are supposed to happen.

The Lattice2 Workbench is a FreeCAD external workbench that serves the purpose of working with placements and arrays of placements. It is a sort of Assembly workbench, but with emphasis on arrays. There are no constraints and relations, there are just arrays of placements that can be generated, combined, transformed, superimposed, and populated with shapes.

Ever wondered how to create a protractor with FreeCAD? That's the aim of the workbench (including tick labeling). Also, exploded assemblies can be made with the workbench.

Additionally, the workbench features a few general-purpose tools, such as parametric downgrade, bounding boxes, shape info tool, and tools for working with collections of shapes (compounds).

One of the big design goals of the workbench is being as parametric as possible.

References

Tools

Detailed description on the Lattice2 Github wiki

Toolbar

Lattice2 Toolbar

Commands

Other

Installation

Prerequisites Lattice2 WB requires FreeCAD >= v0.16.5155.

Automatic installation

As of v0.17 one can use the Addon Manager to install the Lattice2 Workbench. Use {MenuCommand|Tools → Addon Manager}}

Manual Install

  • Scroll to the top of the page, and click 'download zip' button
  • Unpack the contents into a "Lattice2" folder created in \Path\to\FreeCAD\Mod, and restart FreeCAD.
  • Note that InitGui.py (and the rest of .py files) should end up directly under Mod\Lattice2 (not under nested directory like Mod\Lattice2\Lattice2).

After you install the workbench, it should appear at the bottom of list of workbench selector in FreeCAD.

Tutorials

Links to Lattice2 WB

Other useful links