Freed Linkage Assembler (FLA)

I have been developing a constraint solver based on the work of Glenn A Kramer.
(But the errors are all mine.)
The name of Kramer’s original solver had the three letter acronym TLA (The Linkage Assembler).
The new implementation is named FLA (Freed Linkage Assembler (or Four Letter Acronym)).
The goal of this project are to take advantage of an inherent strength in open-source.
Open-source has reduced legal barriers to integration any technical
solution should preserve this freedom by avoiding the introduction of technical barriers.

The idea of a tightly integrated CAD system is breed from
proprietary interest and not from the needs of the engineer.
With that in mind we have developed an open computer-aided-engineering architecture.
We currently inter-operate with Creo and OpenSCAD and would like to include FreeCAD.

https://github.com/phreed/freed-linkage-assembler

It is working with our skeleton design approach.
https://github.com/webgme/webgme-cyphy
https://github.com/webgme/webgme

Here is a video demonstrating skeleton design.
https://www.youtube.com/watch?v=yog270kMUhQ

There is also a named-content-server (MetaLink) which manages
topics between the component-authoring (currently with Creo),
skeleton-design (with desktop-gme-cypy),
linkage-assembly (also with Creo) and various analysis testbenches.
This forms the basis for a collaborative CAE system.

What I would like to discuss is adapting the technology to inter-operate with FreeCAD.
In particular what is needed is a way to post “supplemental geometry”.
https://www.cax-if.org/documents/rec_prac_suppl_geo_v1.pdf
https://www.cax-if.org/library/index.html
I saw a prior post on “How to create Datum Points” that sounded promising.

Are supplementatal-geometry items part of FreeCAD?

Are they written to the STEP file?
(STEP AP214 and AP203-2nd-edition include sup-geom in their schema)

How to write a freecad extension and extract the sup-geom from a model?

Thanks

Hi,
first there is the question of the license. The license file you provide in the source has only the disclaimer. There are no rights granted. You have to think about a proper license. (LGPL, BSD, MIT, Apache or whatever, not GPL!)…

Clojure makes it hard, or nearly impossible, to integrate. It would have to run somewhat detached as a process. Also its nearly impossibly to maintain such a component. Since the 3D constraint solver runs in our Document update cycle we need a well defined behavior and a long term maintenance. Most of the academic stuff is dead in the water after the thesis is done and a new job is on the way, so we need to be able to maintain the code.

About Glenn A Kramer. I found a paper from 1990, the rest is not freely availably.. So I can not say something about the quality. Is there a useful implementation, or is it all academic?

Regarding the license…
Presently I am the sole copyright holder so the choice of license is flexible.
Probably some variant on MIT license.

Regarding the integration…
Our plan is to not be tightly integrated with freecad (or any particular cad package).
We are specifically interested in collaborative assembly design.

Regarding the availability of Dr Kramer’s work…
I will have to defer to him on that subject although Stefan Tröger is apparently familiar with his work.
http://books.google.com/books?id=TxRPYdYqIT0C
https://www.google.com/patents/US5253189
https://www.google.com/patents/US5410496

Hello Fred,

nice to see you here after the mailing :slight_smile:

Regarding the integration…
Our plan is to not be tightly integrated with freecad (or any particular cad package).
We are specifically interested in collaboration assembly design.

I have watched the youtube video. I suppose you think of a way to use freecad from wthin your tool? making some kind of connection to view the stuff your tool has created?

Are supplementatal-geometry items part of FreeCAD?
Are they written to the STEP file?
(STEP AP214 and AP203-2nd-edition include sup-geom in their schema)
How to write a freecad extension and extract the sup-geom from a model?

Here I leave my area of expertiese, but AFAIK most supplementary geometry items do not have a representation in freecad (yet). Therefore they are also not exportet to step. They are part of the redesigned part design workbench available in the assembly development branch, but not yet in the master. And the assembly code is not useable a the moment.

There is a STEP importer geared toward Assembly, which should be able to transfer most of the STEP concepts regarding product design and structure. But its not finished - as the whole Assembly :wink:

You can surly use a very weak interface. Basically the transformation of the part graph and the position and geometry of the constraints. You can read and tweak by python, but thats nothing I would say its for real world usage…

I have watched the youtube video. I suppose you think of a way to use freecad from wthin your tool?

That is (mostly) correct.
The idea is to have a federation of services (freecad being one) which share named content.
There are two main areas we would like to use freecad.
The are: component part authoring, and assembly visualization.
Your two comments speak to these two purposes.

making some kind of connection to view the stuff your tool has created?

This is the area of assembly visualization.
One of our tools (WebCyphy) produces a set of constraints between components.
Another tool (FLA) uses those constraints to derive a set of transformations for the components.

The idea is to have an extension to freecad which monitors FLA for component position updates.
When FLA posts the transformations and component identifiers the extension would load and place those components.
The extension would know how to map component identifiers to freecad part file names.

The user interface change would be to be able to toggle/refresh the external feed of these events.
This is the area where we are currently using OpenSCAD.
I do not think adding this capability to freecad would be particularly difficult but
it would be good to do it properly as the ability to receive such updates would be generally available.

Here I leave my area of expertise, but AFAIK most supplementary geometry items do not have a representation in freecad (yet). Therefore they are also not exported to step. They are part of the redesigned part design workbench available in the assembly development branch, but not yet in the master. And the assembly code is not useable a the moment.

This is the area of component authoring.
This would be the area where freecad would be of the most use to us.
Is the plan for how this will work documented anywhere other than the new assembly workbench code?
I see that supplemental geometry for assemblies is (possibly) available in OpenCascade
http://www.opencascade.org/occt/overview/compocc3/xde/.
Is that what you are planning on using for freecad?

collaborative component design
There is a third area of interest where having served named content would be useful.
It is really a separate topic so I will just mention it here.
The ability to perform collaborative component development is an area where
open-source CAD could differentiate itself from proprietary systems.
“Architectural Limitations in Multi-User Computer-Aided Engineering Applications”,
http://www.ccsenet.org/journal/index.php/cis/article/view/28391
http://en.wikipedia.org/wiki/Cloud-based_design_and_manufacturing
http://www.springer.com/engineering/mechanical+engineering/book/978-3-319-07397-2