jack000 / deepnest Goto Github PK
View Code? Open in Web Editor NEWAn open source nesting application for laser cutters, plasma cutters and other CNC machines
An open source nesting application for laser cutters, plasma cutters and other CNC machines
Hi @Jack000 ,
Can you share me how to build deepnest app for window?
I clone your source code and using npm to build but not success. It build complete but when run it can't start nest.
Thanks.
Hi,
First, congratulations for this very nice software and thank you VERY MUCH for grasping this essential matter for an Open Source CAD/CAM production chain.
Primarily as a woodworker, and after a successful quick test, the first feature I'm missing is being able to import my cutlists to generate panels optimisation. Today, these lists hold the following values:
Part name, length, width, thickness, material, number of parts
Material column refers to materials (Plywood, Particule board,...) defined in a table of the software I'm using today. For the record, another table holds the list of panels of defined materials.
Thank you again for your great work and for considering this request
i wish the parts can be named.
First of all, great programme which is easy to use and already feature rich!
see attached svg files, one have all paths combined into 1 object, and one have the paths breaked down into smaller objects. the latter imported with no problem while the svg with 1 combined object will fail and the programme will freeze.
Also tested if the combined object have relatively less path (as in attached ok.svg), it can be imported successfully, albeit noticbly take more time in order to import compare to one that has broken down.
Wedding files.zip
I like to add part identification labels to my deepnest-ed projects since pieces may end up far away from their mates or even on completely different sheets. If I add these as single-stroke fonts (I use the Hershey text extension in Inkscape) deepnest rejects the file on import. I have found that I need to add normal text and then convert stroke to path, which preserves closed paths. It seems that any open paths in the svg will cause deepnest to reject the file. Would it be possible to allow open paths if they are within a bounding closed path? Possibly an option to ignore any paths in a defined color? or layer?
The Mac Application bundle is not properly signed.
An unsigned application package is a huge risk. It can be silently replaced with one containing malware. (as already happened with other open source projects)
place a payment option by PAYPAL
This is maybe an alternate strategy to fixing the remaining parts issue I noted before, make sure that all the parts pack even if it 'overflows' to a new sheet. or give the user the ability to specify how many sheets it will try for.
How do you set the sheet size. And what is the standard sheet size. Mine is 60x120
I have error (Win 10 x64, VS2017):
D:\Deepnest-master\build\addon.vcxproj(51,398): error MSB4025: The project file could not be loaded.
Why in File addon.vcxproj strange characters at that position "C:�oost_1_62_0"?
When I export this:
and post process it in inkscape (scaling and some ungrouping):
it is imported in Deepnest like this:
Here is the SVG:
fm.svg.zip
@Jack000 suffice to say the way Deepnest treats the SVG is both wrong (Look at the circles of which some are turned into ellipses and some are shown twice (!)) and completely useless since Deepnest treats it as one single object and therefore won't nest anything.
Both in Affinity Designer and in Inkscape the SVG has multiple layers / groups and I can select them individually, move them around, etc.
Dear Jack,
it would be great if it was possible to implement an option to optionally export the sheet with the nested parts to DXF.
I've exported my nesting result to DXF and the sheet was missing
Thanks,
Bastian
Nesting multiple retangular parts in retangular bin is likely what industrial look for in most situation. However, the current algorithum is not optimise - in fact, countertuitive for retangular polygons, especially if the rotation settings is greater than 4.
Should have checked if all parts and bins are retangular, if so, limit the rotation to only 4.
In early iteration/for a single thread, it may also worth not rotating at first, then rotating all parts with the same rotation, which in some situation (especially so for retangular bin), less mutated or uniformly mutated configuration are the best one.
Considering a bin of 250 x 480 mm and trying to nest 70 45 x 24 mm rectangle. Logically one would try to fit these by tiling , then fit the remainig gap with rotated rectangles.
When cutting more than one sheet, it would be nice if there was a way to make the export save one file per sheet rather than a single file with everything.
Dear Jack,
it would be great to keep dxf-layers untouched during nesting/export. Since we also have labels and construction lines within the cutting boundaries of each element, which we would like to keep in our nest.
Thanks
Merlin
Most laser cutters seem to use the layer or the stroke width of a line/shape to determine whether to cut or mark the given shape. Would it be possible to tell deepnest whether a line style is a mark or a cut? Mark lines could be ignored with regard to placement, but are scaled/rotated/moved as appropriate.
It might be nice to set the line settings for every imported shape/file, and then set the common export line settings too.
Currently the SVG export introduce an extra 10% margin in height, which I assume is to seperate boards if there are more than one board? However, such extra margin was also introduced when there is only one board to be exported. Is that intended behaviour? If not can it be fixed, as it will streamline the process to fabrication
Hi
Is there any way or guides using deepest in simple cpp console application or it is based on java script?
Could you suggest any cpp library or code that computes no fit polygon?
When exporting an SVG, some of the path widths are modified, and others have their colors modified/lost. I created a simple test input file in Inkscape consisting of a square containing a few other rectangles (2 black, 1 red, 1 blue) and some blue text converted to paths (and applied "Break apart"). I had Deepnest pack 4 of these (but seems to be consistently bad no matter how many are added). The internal rectangles all lost their colors and became the same black as the outer square. A few of the text paths turned black and had their stroke widths increased.
Source files:
Square-Test.zip
I've got some files that are missing components or don't show up at all and I don't know why that would be.
I can't see any log files or the like to indicate if something has gone wrong.
I've attached one to help diagnostics.
Thanks.
In fabrication rarely does the medium (MDF, arcylic boards, etc.) exactly the intended size, nor aligned perfectly while placed on the machine bed during fabrication, some margin (bleeding) is usually included in the design.
While it is easy enough to set the bin slightly smaller for the nesting process, then center the nested, exported svg with the correct document size in vector editing software, it will be great to have settings allow that in the nesting software.
Hi I would like to ask about nfp calculation method.
What library do you use?
Do you use boost only and if yes is it faster than clipper c++ library?
Or it is libnfp https://github.com/kallaballa/libnfporb ?
I am trying to understand which lib is the fasted for nfp.
I'm trying to use the Windows version of the software but I can only have it open a few seconds before it force closes and the desktop icon disappears. The installer also disappears. The files are nowhere to be seen after that.
This is a weird installer, it goes into the AppData folder apparently. What could cause this issue?
I have Windows 10 which is up to date.
Hello. I just tried Deepnest out today and think it's very cool!
I ran into an issue where some of the lines seem to be incorrect in an exported SVG file (even though it looks correct in the the Deepnest preview before exporting).
I made a part in CAD (using Onshape), and as part of the design the part is mirrored across a line on a 45deg angle, and then those parts were again mirrored across another plane. From CAD I exported a drawing as DXF 2013 and also tried as DXF R14. Both of these import into Deepnest just fine, and once nested look correct in the preview. After exporting as SVG and opening in Inkscape two parts have incorrect lines though.
https://i.imgur.com/YafrgCI.jpg
Here are the 2013 and R14 DXF files if that's any use.
https://pastebin.com/Jtd4ue4u
https://pastebin.com/G8MZ1b9E
If I import these DXF files into Inkscape all parts look correct. Maybe something about the mirroring caused this?
Thank you
-marc
It would be very useful to exclude shapes of a certain color and just pretend they are not there.
Visicut determines what the laser cutter should do based on the color of shapes. For instance (by default), red means cutting, green means marking and blue is ignored because it is used as a guide color or for comments. This can be changed but at least the Fablabs in my area all use that setting.
With Deepnest not being aware of this, the guides get nested too and occupy space.
Since inkscape 0.92 the correct CSS default of 96dpi is used. Before 90dpi was used in inkscape.
I suggest to update the help text to say
This is the conversion factor between inches or mm to SVG units.
Conforming to the CSS standard, use 96 units/inch.
Set to 72 units/inch for Illustrator and
90 units/inch for old Inkscape versions 0.91 and before.
Reference: http://wiki.inkscape.org/wiki/index.php/Units_In_Inkscape
I have complex svg objects, e.g. not fully closed outline, or drawn in multiple colors (so that the laser would select engrave, mark, cut per color). These cannot be reduced to simple paths.
Is it possible to identify objects based on svg groups?
In this example file, it is known that all parts fit into the large rectangle.
xwing-nest-test.svg.zip
Loading the file into deepnest breaks most of the objects apart, some objects are shown in red or blue. That probably indicates import errors?
MAC OSX.
are there any c# ports for this available or do you have any plans to port this to C#? Please kindly let me know
Dear Jack,
it would be good, if Deepnest could keep the DXF properties like line types and line colors when exporting a nesting result as DXF again
Thanks,
Bastian
DXF files are not read correctly - all information in DXF is not taken into account
Adding SVGs or individual shapes would be greatly simplified if one could just drag them into Deepnest or copy paste them there.
Hi @Jack000
Every time I import my dxf, I have
Now I want to have an option to make my dxf become:
Where should I change in the source code?
Thanks a lot!
Best regards,
Huy.
Hi,
when using the configuration menu, when ever i change values, i constantly have a loading icon next to the chosen parameters, this is on all settings. Even setting to default has this. The changed settings hence dont get applied to the nester.
By the way, Great software, its a god send!
The extension is missing on my exported files (Mac).
That's a minor thing though. Deepnest is so cool, thank you 😋 !
Is there any plan to support mirroring of parts in addition to rotation?
Hi Jack,
Great work has been done as can be seen in your deepnest release.
Is there any change you will be working on SVGnest issues #15 and #57 ?
That is about grain directions and orientations. Working towards a solution for that would make SvgNest/DeepNest really stand out from commercially available solutions.
Some other questions:
_ While nesting the resultbar shows all kinds of colors, what is the meaning of these colors, what can a user learn from that?
Appreciate your efforts put in SVGnest/Deepnest !
Hello Jack
DXF/ SVG conversion login in this repo is referring to convert.deepnest.io URL. Will this be available and up all time or you have plans to open source that all also.
Thanks
It might be nice to be able to specify a default sheet (bin) size somewhere that's saved across closing and restarting Deepnest.
(I do like how it is pretty easy to add a rectangle to set that though. Thanks!)
When importing a mm DXF file, from Sketchup or Fusion360 for example, the objects import as much larger than they are in the original drawing.
If I open the dxf file in Lightburn, the objects are exactly the right size. The shaded area is my cutting profile - 900mm x 600mm
If I import them into Deepnest, they are huge - those 1000+mm objects are actually 380mm
My settings are very straightforward
It looks like you have based your code on imperial units, instead of metric, which introduces all sorts of weirdness - if I change the SVG ratio to 2.54, as soon as I have done so, it changes all the previous settings as per:
The objects are closer to correct size, but still wrong: 424.,1mm vs the correct size of 380mm
Surely everything should be in mm internally, with only the import and export in inches if you were unfortunate enough to not learn about the metric system at school?
Performing ongoing inch/metric calculations introduces increasing errors, and when I am working on tolerances of 0.05mm, can get out of hand pretty quickly.
Typically in laser cutting we want to cut out all the interior lines (holes in a part) before cutting around the perimeter of a part. When a part is cut free from the sheet material sometimes it's position shifts a little bit. If holes are cut second then they can be slightly misaligned from their correct location.
SVG file of above image: https://pastebin.com/4dfXWb0c
If Deepnest could recognize interior lines (holes) and color these with a different stroke color when exporting SVG files then it would make if very easy to select these (select all lines with same stroke color), and be able to tell the laser cutter to cut those first. Ideally there would be an option to set the stroke color for interior and exterior lines.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.