FreeCAD workbench about arrays of all sorts and kinds, and local coordinate systems
Go to file
2016-01-24 19:13:26 +03:00
fonts ShapeString: bundle a few OFL-licensed fonts for easy playaround 2015-11-01 20:00:57 +03:00
PyResources BoundBox: icon for multi boundbox 2016-01-07 00:18:13 +03:00
shapes Lattice: cooler orientation marker 2015-11-01 23:19:24 +03:00
.gitignore .gitignore *.FCStd1 backup FreeCAD files 2015-09-15 00:23:46 +03:00
CompoundFilter2.py CompoundFilter: Explode: fix #2 + group together the result of explosion 2016-01-24 19:13:26 +03:00
copying.lib Add licence (LGPL) 2015-10-17 20:35:16 +03:00
FuseCompound2.py V2: another take at internal renames because of file renames 2015-11-27 00:59:26 +03:00
InitGui.py New tool: ExposeLinkSubs 2016-01-09 01:22:30 +03:00
lattice2_rc.py BoundBox: icon for multi boundbox 2016-01-07 00:18:13 +03:00
Lattice2.py Change initGui to use "import Lattice2" 2015-12-17 02:04:22 +03:00
Lattice2ArrayFeatures.py make a module: one can now "import Lattice2" 2015-12-17 01:31:06 +03:00
lattice2ArrayFilter.py [Breaking] Substantial changes to populate features, and latticeBaseFeature 2015-12-08 18:26:14 +03:00
lattice2ArrayFromShape.py [breaking] ArrayFromShape: change names of properties 2016-01-01 03:31:21 +03:00
lattice2BaseFeature.py ParaSeries (and possibly others): fix errors on save/load 2015-12-20 03:11:28 +03:00
lattice2BoundBox.py [Breaking] BoundBox: array support 2016-01-07 00:09:02 +03:00
Lattice2CodeModules.py ParaSeries: made built-in series generator 2015-12-20 01:44:17 +03:00
lattice2Common.py Fix Lattice2 failing to load when no Lattice v1 is installed 2015-12-25 15:21:46 +03:00
lattice2CompoundExplorer.py V2: another take at internal renames because of file renames 2015-11-27 00:59:26 +03:00
Lattice2CompoundFeatures.py New feature: SubLink (aka ShapeBinder) 2016-01-08 02:40:01 +03:00
lattice2Downgrade.py Downgrade: replace Compounds mode with Leaves 2016-01-02 14:30:52 +03:00
lattice2Dummy.py V2: renaming .py files 2015-11-26 23:26:43 +03:00
lattice2Executer.py New tool: ExposeLinkSubs 2016-01-09 01:22:30 +03:00
lattice2ExposeLinkSub.py New tool: ExposeLinkSubs 2016-01-09 01:22:30 +03:00
lattice2GeomUtils.py V2: renames inside files 2015-11-26 23:53:58 +03:00
Lattice2GuiTools.py New tool: ExposeLinkSubs 2016-01-09 01:22:30 +03:00
lattice2Inspect.py V2: more internal changes due to file renames 2015-11-27 00:13:06 +03:00
lattice2InterpolatorUtil.py V2: renaming .py files 2015-11-26 23:26:43 +03:00
lattice2Invert.py V2: another take at internal renames because of file renames 2015-11-27 00:59:26 +03:00
lattice2JoinArrays.py V2: another take at internal renames because of file renames 2015-11-27 00:59:26 +03:00
lattice2LinearArray.py LinearArray: fix fail to be created on an edge 2015-12-27 01:13:38 +03:00
lattice2MakeCompound.py Fix Lattice2 failing to load when no Lattice v1 is installed 2015-12-25 15:21:46 +03:00
lattice2Markers.py V2: renaming .py files 2015-11-26 23:26:43 +03:00
lattice2ParaSeries.py ParaSeries: support for multiple parameters 2016-01-15 03:38:25 +03:00
lattice2Placement.py [Dirty fix] Workaround for crash when selecting Placement objects 2016-01-23 03:59:07 +03:00
lattice2PolarArray.py PolarArray: fix - remove dead Mode property 2015-12-27 18:10:15 +03:00
lattice2PopulateChildren.py PopulateChildren: fix not working when looped 2015-12-22 21:55:24 +03:00
lattice2PopulateCopies.py Fix Lattice2 failing to load when no Lattice v1 is installed 2015-12-25 15:21:46 +03:00
lattice2ProjectArray.py [Breaking]ProjectArray: renames 2016-01-01 23:14:48 +03:00
lattice2RecomputeLocker.py RecomputeLocker: temporarily disable recomputeFeature for c++ objects 2015-12-19 19:13:16 +03:00
lattice2Resample.py V2: another take at internal renames because of file renames 2015-11-27 00:59:26 +03:00
lattice2ShapeString.py ShapeString: search for fonts in project folder, not project folder/fonts 2015-12-27 21:54:40 +03:00
lattice2SubLink.py SubLink: fix save-load errors 2016-01-10 01:42:33 +03:00
lattice2SubstituteObject.py SubstituteObject: make it circular-dependency aware 2015-12-17 04:08:19 +03:00
lattice2ValueSeriesGenerator.py Fix Lattice2 failing to load when no Lattice v1 is installed 2015-12-25 15:21:46 +03:00
readme.md Update readme 2015-12-31 17:46:02 +03:00

What is Lattice2 workbench

Lattice Workbench is a plug-in module for FreeCAD.

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

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

Highlights

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

Download/install

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

Installation: download zip, unpack the contents into a "Lattice2" folder created in \Path\to\FreeCAD\Mod, restart FreeCAD. Lattice2 workbench was also packaged to Launchpad in the Ubuntu FreeCAD Community PPA.

Lattice2 WB requires FreeCAD no less than v0.16.5155 (only available as development snapshots at the moment of writing). In earlier FreeCADs, dropdown toolbar buttons are not going to work, making many useful commands unavailable (and possibly, total inability to load the workbench). That may be fixed at some point in future.

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.

License

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

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 is in devlopment. Breaking changes can be introduced at any point. If you want to make a project with use of Lattice workbench, it is recommended to stick with Lattice v1.

Lattice v1 is available here: https://github.com/DeepSOIC/Lattice