GithubHelp home page GithubHelp logo

jack000 / deepnest Goto Github PK

View Code? Open in Web Editor NEW
828.0 828.0 258.0 89.94 MB

An open source nesting application for laser cutters, plasma cutters and other CNC machines

C++ 1.49% Python 1.50% JavaScript 78.58% HTML 12.87% CSS 1.99% Makefile 3.56%

deepnest's People

Contributors

bmtm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

deepnest's Issues

Help to build Deepnest app for window

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.

Cutlist import: import rectangular parts list as tabular data

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

Fail to import svg file with large group

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

Feature Request: Allow non-closed interior paths (Hershey fonts)

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?

Mac Application is not Properly Signed.

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)

ability to also export trailing / unpacked parts

When packing, if I've got many pars which wont fit on to two sheets, there is currently no way to export the remaining unpacked pieces.

for example, Ive got the following and I'd like to get the remaining pieces even though they will never fit into the 2 sheets it's allocated for the pack.

screen shot 2018-09-18 at 8 13 12 pm

sheet size

How do you set the sheet size. And what is the standard sheet size. Mine is 60x120

request to add support for pre-packing explosion

say I've got a file like this:

screen shot 2018-09-18 at 8 11 08 pm

I'd like each of those shapes to cut independently, currently this thinks its interior, which is 'correct' in most cases, but having a pre-pack-explosion option would be amazing!

Building project

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

Deepnest treats SVG as one single big part

When I export this:
image
and post process it in inkscape (scaling and some ungrouping):
image
it is imported in Deepnest like this:
image

Here is the SVG:
fm.svg.zip

It renders fine in Chrome:
image

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

Countertuitive for only retangular parts

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.

Feature Request: Keep DXF Layer

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

Preserve line widths

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.

SVG export have 10% extra in document height even when only 1 board is exported

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

Deepest using C++ simple console app

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?

Inconsistent path colors / stroke widths

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.

Input:
image

Output (cropped):
image

Source files:
Square-Test.zip

Some DXF polylines are not displayed

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.

untitled.zip

Thanks.

Feature Request: config for bleeding/margin of bin/media

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.

Minkowski nfp

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.

Crash and desktop icon + installer disappear

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.

Some lines incorrect in SVG export

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

Feature Request: Ignore shapes of a certain color

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.

Feature request: keep grouped svg objects

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?

C# Port

are there any c# ports for this available or do you have any plans to port this to C#? Please kindly let me know

dxf format

DXF files are not read correctly - all information in DXF is not taken into account

Setting nest distance

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!

Not Nesting

The software is laying out 1 part and no more. This part should be 2 copies, It's been running for 5 min with no change.
deepnestissue

File extension missing

The extension is missing on my exported files (Mac).

That's a minor thing though. Deepnest is so cool, thank you 😋 !

Enhancement suggestion: Required orientation

Hi Jack,

Great work has been done as can be seen in your deepnest release.

  • Big improvement to be able to import DXF
  • Good looking user interface
  • Working towards .cc code

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?

  • The register/login section option: What is the puropse apart form being able to do an export?

Appreciate your efforts put in SVGnest/Deepnest !

DXF/SVG Conversion

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

Default sheet (bin) size option

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!)

ratios are all over the place.

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

screen shot 2019-02-22 at 1 37 54 pm

If I import them into Deepnest, they are huge - those 1000+mm objects are actually 380mm

screen shot 2019-02-22 at 1 45 32 pm

My settings are very straightforward

screen shot 2019-02-22 at 1 44 56 pm

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:

screen shot 2019-02-22 at 1 56 47 pm

The objects are closer to correct size, but still wrong: 424.,1mm vs the correct size of 380mm

screen shot 2019-02-22 at 1 59 17 pm

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.

Request to recognize and color interior holes in parts

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.