Lattice workbench [updated Polar Array]

Need help, or want to share a macro? Post here!
User avatar
DeepSOIC
Posts: 7810
Joined: Fri Aug 29, 2014 12:45 am
Location: Saint-Petersburg, Russia

Lattice workbench [updated Polar Array]

Postby DeepSOIC » Sat Sep 12, 2015 10:29 pm

What is Lattice 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 applied.

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.

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

Status
Lattice v1 is deprecated, as Lattice 2 is becoming stable.

Some TODOs:
* path array
* polyhedral arrangement

* fusing arrays; removal of duplicate/coincident placements

* Parametric Upgrade
Last edited by DeepSOIC on Mon Aug 06, 2018 1:27 pm, edited 8 times in total.
User avatar
DeepSOIC
Posts: 7810
Joined: Fri Aug 29, 2014 12:45 am
Location: Saint-Petersburg, Russia

Re: Lattice workbench [development just started]

Postby DeepSOIC » Mon Sep 14, 2015 12:51 pm

First result worth posting: compound filter is working. For fun, I've made a voxelated sphere. Perfectly parametric.
voxelated sphere.png
voxelated sphere.png (20.57 KiB) Viewed 5036 times
User avatar
JMG
Posts: 278
Joined: Wed Dec 25, 2013 9:32 am
Location: Spain
Contact:

Re: Lattice workbench [development just started]

Postby JMG » Mon Sep 14, 2015 4:25 pm

Wow, FreeCAD meets Minecraft! :D
FreeCAD scripts, animations, experiments and more: http://linuxforanengineer.blogspot.com.es/
Open source CNC hot wire cutter project (NiCr): https://github.com/JMG1/NiCr
Exploded Assembly Workbench: https://github.com/JMG1/ExplodedAssembly
User avatar
DeepSOIC
Posts: 7810
Joined: Fri Aug 29, 2014 12:45 am
Location: Saint-Petersburg, Russia

Re: Lattice workbench [development just started]

Postby DeepSOIC » Fri Oct 16, 2015 11:26 pm

Just implemented: precision parametric bounding box
lattice bounding boxes.png
lattice bounding boxes.png (126.7 KiB) Viewed 4873 times
User avatar
DeepSOIC
Posts: 7810
Joined: Fri Aug 29, 2014 12:45 am
Location: Saint-Petersburg, Russia

Re: Lattice workbench [becomes interesting]

Postby DeepSOIC » Sat Oct 17, 2015 10:19 pm

Spent all day coding the workbench.
New tools:
* Parametric Downgrade (creates a compound containing the results, in contrast to Draft Downgrade)
* Explode: breaks a compound into individual objects that link to the originals (this tool is semi-parametric. Semi = it will not react well to the changes in number of compound children. But if the number of items in compound does not change - it is parametric.)
triplus
Posts: 9475
Joined: Mon Dec 12, 2011 4:45 pm

Re: Lattice workbench [becomes interesting]

Postby triplus » Sat Oct 17, 2015 10:31 pm

Sounds interesting.

P.S. Will test in the future for sure.
triplus
Posts: 9475
Joined: Mon Dec 12, 2011 4:45 pm

Re: Lattice workbench [becomes interesting]

Postby triplus » Sat Oct 17, 2015 11:07 pm

Question:

If i insert a cube and i add parametric downgrade feature and set the mode to edges. Could there be additional (group) mode where edges would be listed as individual entities with individual properties (the same properties available compared to when grouped)?
User avatar
DeepSOIC
Posts: 7810
Joined: Fri Aug 29, 2014 12:45 am
Location: Saint-Petersburg, Russia

Re: Lattice workbench [becomes interesting]

Postby DeepSOIC » Sat Oct 17, 2015 11:11 pm

triplus wrote:Could there be additional (group) mode where edges would be listed as individual entities with individual properties (the same properties available compared to when grouped)?
I didn't really understand what you meant. Try Explode command after downgrading (the command has no icon yet).

PS. Thanks for interest ;)
triplus
Posts: 9475
Joined: Mon Dec 12, 2011 4:45 pm

Re: Lattice workbench [becomes interesting]

Postby triplus » Sat Oct 17, 2015 11:42 pm

DeepSOIC wrote:
triplus wrote:Could there be additional (group) mode where edges would be listed as individual entities with individual properties (the same properties available compared to when grouped)?
I didn't really understand what you meant. Try Explode command after downgrading (the command has no icon yet).
I probably didn't have parametric downgrade feature set to edges mode (but i thought i did) as indeed once this is set it does EXACTLY what i would like it to do. :mrgreen:
PS. Thanks for interest ;)
Need to test something before i decide if i like/love it.

If you are after some user feedback at this time:
  • Workbench icon missing
  • Explode Feature icon missing
  • If Parametric Downgrade Feature is added don't name the feature "wire" as that is only one mode.
  • If Parametric Downgrade Feature is added don't show the "Opel Logo" rather "downgrade" gracefully to lower entity available. If there is none at vertex level show "Opel Logo". ;)
  • Would be great if exploded entities would be sub-grouped by default in tree view.
triplus
Posts: 9475
Joined: Mon Dec 12, 2011 4:45 pm

Re: Lattice workbench [becomes interesting]

Postby triplus » Sun Oct 18, 2015 1:43 am

Yes, i love it. And i like how this set of high end tools give such low level geometry access. Just a few days back i was asking:

Draft Shape2DView control the individual edge

And now this is packed behind nice GUI in Lattice workbench. One possible use case therefore is:
Example.png
Example.png (37.06 KiB) Viewed 4810 times
Fully parametric Draft Shape2DView geometry converted to Drawing Geometry and individual line has its own properties. And note that Draft Dimension already has possibility to be added as parametric dimension.

Really nice. The only issue i noticed is exploded edges didn't like the fact i rotated Draft Shape2DView geometry but usually it makes sense to do that in Drawing WB in the first place.

I don't know where you intend to take this WB but it offers some nice tools already. What i would suggest is for you to describe the features as you add them in more detail as without documentation average FreeCAD user could be lost easily.

Just some food for thought: As this tools give such low level access maybe in the future you could add tolerance parameter as it would be fun to be able to control the tolerance for individual vertex/edge/face with ease (as i doubt my attempt will make it into master). Maybe some diagnostic capabilities like offered in FCInfo macro could be implemented.

Anyway good work and Lattice WB was just added to my standard list of FreeCAD modules.