Giter Site home page Giter Site logo

Best fitness result NaN about deepnestport HOT 6 OPEN

fel88 avatar fel88 commented on June 16, 2024
Best fitness result NaN

from deepnestport.

Comments (6)

9swampy avatar 9swampy commented on June 16, 2024 1

Only noticed after I replied that the question was 3 years old! Sorry for that, glad it helped. You're still using regularly?

I had a similar problem; some long thin parts that nest fairly well with each other leaving gaps that could be filled by small parts if they were fit later, after the long thin ones have placed already. I've attempted two routes;

  • restricting rotation on a part by part basis to only vertical or horizontal (for the long thin parts) - which works well and on the original branch you can replicate by either
    - reducing the number of Rotations from default 4 to 2 but then that applies to all parts.
    - changing the code in the procreant GeneticAlgorithm constructor for the long thin parts
  • the notion of IsPriority - essentially forcing the long thin parts to get placed first which, especially in combination with the rotation restriction, works very well IF you can fit all parts on a single sheet. More than one sheet and the parts overlay and the nest is invalidated. Still debugging this one and isn't really easy to replicate in the code as it stands. If I fix the problem I'll publish the code :)

from deepnestport.

fel88 avatar fel88 commented on June 16, 2024

Hello, i think this is error somewhere. If you give me your input data, i'll try to reproduce this bug and try to fix it.

from deepnestport.

petrasvestartas avatar petrasvestartas commented on June 16, 2024

I cannot replicate NaN error anymore.
It seems that it happens only when an element cannot be placed withing a sheet i.e. a polygon bounding box diagonal is bigger than the sheet bounding box diagonal.

I noticed that scaling is highly important too. Here comes the tolerance issue. Below I do not display simplified polygons, as I do not know which property could give me the simplified polygon (Please advice which property I should search for).

Below I compare different tolerances. By tolerance. I mean that I scale polygons before outputting to nesting application and when nesting is finished I scale back to original scale. Random seed number stays the same in all examples.

Original scale:
tolerance1

Scaling 10 times more:
tolerance 0_1

Scaling 10 times less
tolerance10

Scaling 100 times results in some shapes not nested as they are probably average to integers and becomes bigger shapes than sheets. And then nested shapes overlap:

tolerance100

It is quite obvious why it happens because polygons gets simplified or rounded to integers (correct me if i am wrong) But ordinary user do not have clue about the scale and which tolerance to choose.

from deepnestport.

fel88 avatar fel88 commented on June 16, 2024

Thank you, for this report. I'll check it out.

from deepnestport.

9swampy avatar 9swampy commented on June 16, 2024

The code uses float in parts of the nest which can result in overflows so in my branch I flipped to double, just kicks the can down the road though. If you keep scaling up then of course the issue could reappear, as you've found. You could get some mileage by reducing ClipperScale but if you go too far you'll very quickly lose precision in the nest.

from deepnestport.

petrasvestartas avatar petrasvestartas commented on June 16, 2024

Thank for the reply.

Other question: do you know how to nest long linear elements, they usually nest very poorly?

from deepnestport.

Related Issues (20)

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.