# DeepSOIC/Lattice2

FreeCAD workbench about arrays of all sorts and kinds, and local coordinate systems
Latest commit abb2e51 Dec 18, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
ExampleProjects Aug 14, 2018
PyResources
fonts
lattice2Base
shapes Nov 1, 2015
.gitignore
CompoundFilter2.py
FuseCompound2.py Jun 13, 2018
InitGui.py Aug 6, 2018
Lattice2.py
Lattice2ArrayFeatures.py Aug 6, 2018
Lattice2CodeModules.py Jan 15, 2017
Lattice2CompoundFeatures.py
Lattice2GuiTools.py
Lattice2PartDesignFeatures.py Jun 13, 2018
copying.lib Oct 17, 2015
lattice2ArrayFilter.py May 14, 2018
lattice2ArrayFromShape.py
lattice2AttachablePlacement.py
lattice2BaseFeature.py Dec 18, 2018
lattice2BoundBox.py
lattice2Common.py Aug 6, 2018
lattice2Compatibility.py
lattice2CompoundExplorer.py Nov 21, 2017
lattice2Dummy.py
lattice2Executer.py May 14, 2018
lattice2GeomUtils.py
lattice2HelpCommands.py May 14, 2018
lattice2InjectedToolbars.py Jun 13, 2018
lattice2Inspect.py
lattice2InterpolatorUtil.py Nov 26, 2015
lattice2Invert.py
lattice2JoinArrays.py May 14, 2018
lattice2LinearArray.py Dec 1, 2018
lattice2MakeCompound.py
lattice2Markers.py Nov 23, 2017
lattice2Mirror.py
lattice2PDPattern.py Aug 6, 2018
lattice2PDPatternCommand.py Jun 13, 2018
lattice2ParaSeries.py
lattice2Placement.py
lattice2PolarArray.py May 14, 2018
lattice2PolarArray2.py
lattice2PopulateChildren.py
lattice2PopulateCopies.py Jun 13, 2018
lattice2ProjectArray.py
lattice2RecomputeLocker.py May 14, 2018
lattice2Resample.py May 14, 2018
lattice2SeriesGroup.py
lattice2ShapeCopy.py Jun 13, 2018
lattice2ShapeInfoFeature.py
lattice2ShapeString.py Dec 1, 2018
lattice2Slice.py
lattice2Subsequencer.py Aug 6, 2018
lattice2SubstituteObject.py
lattice2TopoSeries.py May 14, 2018
lattice2Utils.py Aug 6, 2018
lattice2ValueSeriesGenerator.py
lattice2_rc.py

# What is Lattice2 workbench

The workbench purpose is 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.

# Getting started

Follow through Basic Tutorial to get the basic concept of Lattice2.

# Highlights

Take a look at other examples in the Gallery of screenshots.

Let's have a glance over the most important capabilities that the workbench adds to FreeCAD:

• Re-use arrays as many times as you need. Unlike Draft array, which directly generates the array of shapes, lattice array tools generate arrays of placements. These can later be populated with shapes, as many times as necessary, without having to set up another array.

• Elements of array can be different. Unlike Draft Arrays, which always generate a set of equal shapes, Lattice arrays can be used to arrange a set of different shapes. Pack the shapes to be arranged into a Compound, and use Lattice Populate with children feature to arrange them.

• Arrays of placements can be combined, inverted, generated from existing shape arrangements, made from individual placements, projected onto shapes, filtered, etc. This allows to produce complex arrangements without scripting.

• single placements can be used for primitive assembling of parts.

• linear arrays and polar arrays can have their axes linked to edges of shapes

• parametric explode commands allow extraction of specific elements of arrays, without losing parametric relation to the original.

• ParaSeries feature allows to generate a series of parts with some parameter varied over a list of values.

# Why Lattice2, not just Lattice?

Lattice2 was created at the moment when breaking changes needed to be made, but there were a few things made with Lattice. So, it was decided to keep the workbench in that time's state indefinitely as version 1.0, and start development of a new version.

The goal was to be able to have both Lattice v1 and v2 in a single FreeCAD installation. So a new repository was started, and all the files were renamed to start with 'lattice2' or otherwise differ from those of Lattice v1.

# What's changed in Lattice2

• Population tools now have 'move' mode: a placement/set of placements can be supplied to treat as origins of the objects being populated

• Experimental recompute controlling tools were added

• Most icons were redesigned to follow a concept

• Lattice workbench can now be imported from Py console all at once, like that: import Lattice2

• ParaSeries feature was added, which can create a series of parts by changing some parameter of the model.

repository: https://github.com/DeepSOIC/Lattice2

Lattice2 WB requires FreeCAD no less than v0.16.5155.

The workbench is OS independent, it should work on any system FreeCAD can be run on. If you find that it doesn't - that is a bug. Please make an issue.

Lattice2 is written in FreeCAD's Python, and must be run from within FreeCAD. It requires no compilation, and can be installed by copying the repository to a special location.

# Manual install:

1. Scroll to the top of the page, and click 'download zip' button

2. 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.

# Automated installation:

• Lattice2 workbench is packaged to Launchpad in the Ubuntu FreeCAD Community PPA (thanks to @abdullahtahiriyo).
• Lattice2 can be installed via @microelly's Plugin Loader

Lattice workbench is licenced under LGPL V2, just like FreeCAD. For more info, see copying.lib file in the repository.

# Getting Help

Documentation: see Lattice2 wiki on Github. As the word "wiki" suggests, you can help by editing the documentation.

If you need help on something specific, you can ask a question on FreeCAD forum (there is no Lattice forum yet...). You can also ask me directly.

If you have found a bug, report it here, in Github's issue tracker for Lattice2. You can also post ideas for new features there, as well as plain questions.

If you have fixed a bug, or implemented a new feature you think suits the workbench, or whatever - feel free to make a pull-request here on github.

# Status

This version can be considered a release candidate. I will take care to not make breaking changes, but new functionality may keep coming.

You can’t perform that action at this time.