Lattice2 Workbench: Difference between revisions

From FreeCAD Documentation
(Marked this version for translation)
m (Reformatted Tools section)
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:12-->
<!--T:12-->
Line 43: Line 45:
{{Caption|Lattice2 Toolbar}}
{{Caption|Lattice2 Toolbar}}


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

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