Giter Club home page Giter Club logo

deepnestsharp's Introduction

DeepNestSharp

DeepNest - The Original (https://github.com/Jack000/Deepnest)
DeepNestPort - C# port (https://github.com/fel88/DeepNestPort)

"If I have seen further, it is by standing upon the shoulders of giants"
Jack and Felix have done some great work but the Original's use of a remote service to translate between image formats was an issue and the Port just wasn't proving flexible/stable enough for my needs. I really needed the ability to save projects, nest results and individual sheet placements, and wanted to add the ability to seed subsequent nests with the results of prior nests (outstanding) and the ability to edit placements (implemented) - to slip that last piece in to the gaps on the sheet that the algorithm just wasn't finding.

Felix was keen to keep true to the original DeepNest code in DeepNestPort...

Hope you consider breaking away from the legacy code base because it's getting really hard to merge.

I'll try, but it is important to keep compatibility with the original code... I think we shouldn't entangle our repositories too much

...so DeepNestSharp was born. It completely rebuilds the UI using WPF on Net.Core and is a huge refactor which has paid some dividends but also introduced some compromises and issues, some of which are outstanding...

DXF Import/Export: https://github.com/IxMilia/Dxf

Project status: WIP

On the Sheet Placement Editor you can edit the offsets or Shift+Click on parts to drag/drop in the Preview. FYI dragging is a little out of sync so multiple small moves work better than one large move. . . and atm you can only move around parts already present; todo => moving from one sheet to another, adding & removing additional parts etc.

Individual Parts, whole Nest Result sets and single Sheet Placements can be saved, edited and reloaded. You can also persist and view the interim calculation objects; SheetNfp and FinalNfp - for debugging purposes.

Compiling minkowski.dll

Included are a set of minkowski.dlls that work on various Windows setups I have; AnyCpu, x86 & x64; but you'll likely need to build the dlls for your own setup. You can avoid the need for the C++ import altogether if you switch off DllImport in the settings; and use the internal C# implementation instead. Be warned that this internal implementation is not as performant as the C++ import atm, and it sometimes generates sub-optimal nests but it's an easy-start option that's proving good enough most of the time. . .

  1. Replace <boost_1.76_path> with your real BOOST (1.76+) path in compile.bat

Example:

cl /Ox -I "D:\boost\boost_1_76_0" /LD minkowski.cc
  1. Run compile.bat using Developer Command Prompt for Visual Studio
  2. Copy minkowski.dll to MinkowskiDlls folder. If you're running in Visual Studio DeepNestLib.CiTests has a PostBuild task to copy the DLLs from there for you. Otherwise make sure the appropriate DLLs get to the DeepNestSharp.exe folder. Note there's preprocessor directives to pick the right DLL dependent on which Arch you're running. Works for me; YMMV.

Contributors

deepnestsharp's People

Contributors

9swampy avatar fel88 avatar

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.