Giter Site home page Giter Site logo

deepnestport's Introduction

Hi there, my name is Felix πŸ‘‹

I'm a software developer. Doing random projects (2D/3D graphics apps, Neural nets, Arduino/ESP32, FPGA), or even small tools that may help you.

Always open for new opportunities 😎

My projects

CAD/BREP projects:

  1. CascadeDesktop - OpenCASCADE debug tool
  2. GeomPad - geometric 2D/3D debug tool
  3. OpenCAD - simple CAD (using OpenCASCADE)
  4. LiteCAD - simple CAD (zero dependency)
  5. DxfPad - simple CSP solver for 2D drafts (export to dxf)

Deep learning projects:

  1. Dendrite - ONNX visualizer/editor, inference pipeline graph editor
    Ready environments for Dendrite
  2. Retina - debug tool for faces detection/recognition
  3. Soba - simple object annotator
  4. Xnor - debug tool for XNOR networks

Ports (JS→C#):

  1. DeepNestPort - nesting library for laser cutting
  2. Dagre.NET - directed acyclic graph layout library nuget
  3. Springy.NET - force directed graph layout library nuget
  4. ConvNetPort - port of ConvNetJs (https://github.com/karpathy/convnetjs)

Arduino projects:

  1. GFXFontTool - gfx font generator
  2. ArduinoDisplay - customizable touch display
  3. ArduinoVoltmeter - USB voltmeter plotter/logger

3D graphics:

  1. OpenGLSamples - some of the LearnOpenGL samples in C# (https://github.com/JoeyDeVries/LearnOpenGL)

FPGA projects:

  1. HDLProc - simple VHDL processor
  2. HDLCodeGen - code compiler for HDLProc

Others:

  1. AutoDialog - dialog generation library nuget
  2. Scanner - hard disk space usage viewer
  3. TeamOn - LAN chat/remote desktop
  4. VBoxClient - VirtualBox client
  5. BitmapPad - bitmap editor
  6. Obertonizer - sounds spectrum viewer
  7. Commander - file organizer via tags (using NTFS Forks (Alternate data stream (ADS)))
  8. AutoUI - scripts for automatic GUI testing
  9. YoutubeDownloader - YouTube video downloader
  10. MinesweeperBot - minesweeper bot (took 1st place at https://minesweeper.online/ and was banned for a long timeπŸ˜„)

πŸš€ If you can offer me a remote job or relocation, please let me know πŸš€

deepnestport's People

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

Watchers

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

deepnestport's Issues

Stuffing _7.dxf with _12.dxf

Curious why you've added the C part to the DXF samples. Have you done any work to understand why the following happens (using some more of the sample shapes you've included):

image

The full donut I've added and the original DeepNest and the Port are quite happy to place the smaller parts in the hole, but the C part you had never gets filled.

// returned data only contains outer nfp, we have to account for any holes separately in the synchronous portion

Noting the comment about holes in Background.cs (and the limitations of the C++ import) shouldn't the hole in the C shape be serviced by the OuterNfp?

Problem nesting different shapes

Hi, sorry if i bother you but i'm not that experienced of a programmer.

As for the title, when i try nesting multiple different shapes, i get a strange behavior. Shapes overlap one with another.

This is not a spacing problem, as it works perfectly when i use only multiple copies of the same shape.

Here's an example of what i mean
image

Is this an error on my side?
What can i do to fix this?

EDIT:
Also, sometimes the shapes go outside of the container (happens more when using different shapes, but sometimes happens with single shapes too)
This also is represented in the example i posted, with the square on the left that overlaps its bottom left corner with the container.

Compile Boost

Hi,

I have no experience running .bat files, hence I have a question how to compile minkowski cpp files correctly.

I have downloaded Boost 1.68 version, added to environmental variables. I was using boost before and it works on visual studio.

What I am doing wrong in following procedure?

  1. I open compile.bat using text editor and add path directory like this:
    cl /Ox /Ob2 /Oi /Ot /Oy- /GL /GF /Gm- /MD /GS- /arch:AVX2 /fp:fast -I <C:\Libs\boost_1_68_0> /LD minkowski.cc

  2. Then run visual studio command prompt (as administrator), navigate to correct directory and type compile. But I get this exception:

C:\Libs\DeepNestPort-master\DeepNestPort-master\Minkowski>cl /Ox /Ob2 /Oi /Ot /Oy- /GL /GF /Gm- /MD /GS- /arch:AVX2 /fp:fast -I 0<C:\Libs\boost_1_68_0 1>/LD
Access is denied
.

I tried adding these directories and they all have the same issue:
C:\Libs\boost_1_68_0
C:\Libs\boost_1_68_0\boost
C:\Libs\boost_1_68_0\lib64-msvc-14.0

2018-11-12

Conversion of mergedLength to C#

Hi!

I've been trying to work on the mergedLength function. But I really didn't get anywhere.
If the function is enabled the program will run forever as soon as you add more than a few parts.
I tried it with about 100 parts and stopped the program after 15min. The function got called over 5 million times.
The original DeepNest Program only takes a few minutes to solve the problem. So obviously I'm missing something important.

Do you have any idea how we can continue?

Michel

Exception from HRESULT: 0x8007000B

Hi,

I am trying to implement your library is my software, and I get error:

  1. Solution exception:An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)

I really need to run the code on 64 bit, as I cannot load native code minkowski.dll that is 32 bit (I assume it is) on 64 bit environment (I assume this is the main error).

Is there any way to compile it under 64 bits?

Random with constant seed so that results stays the same

Hi,

Every time application run results - placement of elements are different (I am not talking about each iteration but each time application is run).

I believe that this happens because of Random function inside some of the methods.
Is there a possibility to add seed number, so that result would stay the same if I run application once, then close it and open it again? Or it is a bit more complex than simple seed number as it uses genetic algorithm?

Instructions on running / building DeepNestPort

Hey fel88, first of all, thank you for the great work on this port!

I was able to follow the instructions on compiling the minkowski dll, but wondered about how to proceed to get an actual executable of the nesting program shown in the images.
Would it be possible to include instructions on how to run the program? I tried building using the DeepNestPort.sln in Visual Studio Code as well as running DeepNestPort/Program.cs, however, no launch.json or build or exe can be found.

System.badimageformatexception in minkowski DLL

Hi guys, I need your help.

I'm compiling the DLL as the example described by fel88, it is correctly generating the dll.
When I put the dll together with DeepNestPort.exe folder and run the application the exception is generated.

I tried to change the dll path, but the error remains.

Has anyone been through this, or has any idea to help me.
Do I need to install something else?

Thanks.
WhatsApp Image 2021-06-28 at 13 47 24 (1)
WhatsApp Image 2021-06-28 at 13 47 24 (2)
WhatsApp Image 2021-06-28 at 13 47 24 (3)
WhatsApp Image 2021-06-28 at 13 47 24

'minkowski.cc': No such file or directory

I tried to follow the instructions to compile minkowski.dll but I get the following error:

c1xx: fatal error C1083: Cannot open source file: 'minkowski.cc': No such file or directory

I downloaded Boost 1.62 and unpacked it to C:\boost_1_62_0 as mentioned in the instructions

Did I miss something?

Random gaps between items

Hi.

First of all, great work. I'd fought with the original DeepNest repo but just wasn't getting a successful build then found this port. C# being my preferred language the port's really helpful.

I've already forked (https://github.com/9swampy/DeepNestPort/tree/develop - hopefully you'll be happy to take a PR in due course), applied some core standards and added persisted configuration settings (PlacementType, PopulatonSize etc) but am having problems nesting complex shapes without leaving gaps.

If I use the Demo table and load simple rectangles then no gaps are left, as expected. If I load up actual complex shapes I'm getting random gaps between some items; some no gaps, some with gaps - when there's very clearly no need for any of the gaps at all.

Could you point me in the direction of what I should look in to to see where the gaps are coming from?

Cheers

Add a hole in NFP

I know I asked this question but maybe you could give a direct answer by looking at example below.

Currently I can add NFP to NFP List like this:

    public void AddTrianglePart(int src, int ww = 50, int hh = 80) {
        NFP pl = new NFP();
        polygons.Add(pl);//Add current nfp to nfp list
        pl.source = src; //Source is and id?
        pl.Points = new SvgPoint[] { new SvgPoint(0, hh) , new SvgPoint(ww, 0), new SvgPoint(0 + ww, 0 + hh) };
    }

Does NFP represents only one polygon or there is an option to specify a hole inside?
Or polygon with hole would require a bit more complex setup?

Also I see this line of code that represents outer loop and inner holes but I do not understand the logic behind as it becomes one polygon:
DeepNestLib.LocalContour tt = raw.Outers.Union(raw.Holes).OrderByDescending(z => z.Len).First();

Correct usage?

Hi,
im' trying to use this library as an external dll

as of now, i create a sheet and add it to context sheets
then i create polygons and add them to context polygons
i call StartNest, then i NestIterate for a given time span (tried up to 10 seconds, i'm testing with a low number of shapes made up by low number of points so time should not be an issue)

after that i try to take back the nested shapes by rotating and offsetting each point by the rotation and offsetx/y given by the context.Polygons property

result is not what i expected, as shapes are not actually in nested position.

What am i doing wrong?

Thanks in advance for the answer.

EDIT:
don't know if this could be useful but this is what i get trying to nest three stars
image

What work is still remaining?

Hi @fel88 thank you for the great project! In the readme you mention you are 80% finished with the project. Could you give us some insight on what still needs to be done and if there is any way we can contribute?

Support of path elements

foreach (var item in doc.Descendants("path"))

The file SvgParser suggests that path and rect elements are supported (lines 25-74) , but when loading svg's that contain path elements, no shape gets recognized. I am only able to nest the example svg's that consist of polygon points, using the examples included in this repo. I'm attaching an example SVG with paths to this comment (renamed to .CSV so that github let's me upload it here), that does not work for me.

I have not found an easy way to transform complex paths to polygons, so this route is not an easy work-around.
If you have an idea what the problem is, I would like to contribute/help!
example_path.csv

SEH exception in Minkowski.dll while calling CalculateNFP()

@fel88 : Thank you man, it works like a charm.

But sometimes on my other PC it produces SEH exception while Calling MinKowski.CalculateNFP() , i clearly know that the exception happens in Minkowski.dll but i dunno how to solve this. It works perfectly fine in one PC but on the other it throws this exception. Can you help, If Possible!

Best fitness result NaN

Hi,

I would like to ask if this actually an error.

The software produces correct result. But when I have lots of elements to nest the sum of area becomes so large that instead of large number it displays NaN.

Does such result produces an error internally? Or yield incorrect genetic algorithm result?

Would it be possible to scale down internally?

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.