@yorik
Have you seen Deepnest ?
https://deepnest.io
https://github.com/Jack000/Deepnest
Nester
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Be nice to others! Respect the FreeCAD code of conduct!
Re: Nester
Alone you go faster. Together we go farther
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs
Re: Nester
Yorik brought this up some time ago: https://svgnest.com/, it seems to be the same source.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
Re: Nester
Yes it's till apparently the same thing, only now it has been extended with several other functionalities. The DXF interface is especially interesting...
-
- Posts: 74
- Joined: Tue Oct 23, 2018 3:35 pm
Re: Nester
I think we can extend the nester to the Path/Part design workbench, by taking the stock shape as the container, and the Z-flat faces of the bodies that we want to cut out from the stock.
I have had a look at running this nester from Python, and it seems to depend on having a set of shapes that contain one face each.
https://github.com/goatchurchprime/tran ... test.ipynb
All it needs to do is instead take the face itself (not the shape with one face), and it might extend easily.
This would be used for nesting a set of parts to be routed, or cut out with a laser cutter or water jet.
We need the feature to set a clearance distance between the faces. (Maybe this could be hacked into the above application using an offset shape).
It is more important to establish a general-purpose interface to a nesting algorithm that includes all the features, than it is to write a fully optimal implementation of the algorithm. If you do reimplement the algorithm, then it should be done abstractly, away from all the functionality of FC, and preferably in a completely separate process/executable.
The job of the implementation in FC would be to run the UI and package up the geometry into some polylines or curves (I like the SVG encoding of a 2D shape, because it's in ascii, has all the curve types, and can encode islands in a single string), and then stream it to the stdin of a self-contained executable program, which would return a set of numbers representing the optimal placements.
With a bit of luck, this self-contained nester could be a compiled javascript distribution of SVGnest running from a command line, which would save a lot of work on many people's parts, and make sure that FC developers keep on top of stuff that really matters -- rather than what is fun to program.
(I am really talking to myself here, because for a long time I have had thoughts of writing my own really high performance multi-core nesting algorithm, and I have to fight hard to avoid giving in to this temptation!)
I have had a look at running this nester from Python, and it seems to depend on having a set of shapes that contain one face each.
https://github.com/goatchurchprime/tran ... test.ipynb
All it needs to do is instead take the face itself (not the shape with one face), and it might extend easily.
This would be used for nesting a set of parts to be routed, or cut out with a laser cutter or water jet.
We need the feature to set a clearance distance between the faces. (Maybe this could be hacked into the above application using an offset shape).
It is more important to establish a general-purpose interface to a nesting algorithm that includes all the features, than it is to write a fully optimal implementation of the algorithm. If you do reimplement the algorithm, then it should be done abstractly, away from all the functionality of FC, and preferably in a completely separate process/executable.
The job of the implementation in FC would be to run the UI and package up the geometry into some polylines or curves (I like the SVG encoding of a 2D shape, because it's in ascii, has all the curve types, and can encode islands in a single string), and then stream it to the stdin of a self-contained executable program, which would return a set of numbers representing the optimal placements.
With a bit of luck, this self-contained nester could be a compiled javascript distribution of SVGnest running from a command line, which would save a lot of work on many people's parts, and make sure that FC developers keep on top of stuff that really matters -- rather than what is fun to program.
(I am really talking to myself here, because for a long time I have had thoughts of writing my own really high performance multi-core nesting algorithm, and I have to fight hard to avoid giving in to this temptation!)
Re: Nester
JFYI, slic3r has a GSOC 2019 student that is porting SVGnest to c++
https://brlcad.org/wiki/Google_Summer_o ... to_C.2B.2B
https://brlcad.org/wiki/Google_Summer_o ... to_C.2B.2B
Alone you go faster. Together we go farther
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs
Re: Nester
DISCLAIMER: i am learning FreeCAD and lack expertise.
Can i use this to resolve https://git.dotya.ml/kreyren/kreyren/issues/7 / https://forum.freecadweb.org/viewtopic.php?f=3&t=60312 ?
Seems to not work on bodies? x.x
Can i use this to resolve https://git.dotya.ml/kreyren/kreyren/issues/7 / https://forum.freecadweb.org/viewtopic.php?f=3&t=60312 ?
Seems to not work on bodies? x.x