Skip to content
This repository has been archived by the owner on Oct 11, 2023. It is now read-only.

How to implement automatic layout algorithm? #469

Open
jim-jiang-github opened this issue Jul 31, 2023 · 4 comments
Open

How to implement automatic layout algorithm? #469

jim-jiang-github opened this issue Jul 31, 2023 · 4 comments
Labels

Comments

@jim-jiang-github
Copy link

I want to implement autolayout of multiple elements in dxf, does anyone know how to implement this algorithm? ?

@DavidWishengrad
Copy link

DavidWishengrad commented Jul 31, 2023

I did write something that found numbers in modelspace and found the closest rectangles on a no print layer to the numbers, and then made a list and then copied an existing layout, renamed it and open the copied viewport in paperspace in each new layout and automatically zoomed to the area using the pick option with the zoom command in acad to put the right no print rectangle in the center of the viewport (derived from the points I had already extracted), and zoom the viewport to scale based on its size and a hard coded list I had in the code for reference.

A. I am not at all sure if this is what you are asking about. Yeah, it's pretty nifty to run a piece of code on and have 100 new layouts get created and every single one of them set up correct, but that was acad coding in vba. Doing all of that in netDXF would be a stretch for me, but it would probably be a few magnitudes faster in netDXF. It took several minutes for acad to do the job.

B. You will probably get better answers if you take the time to make sure what you are asking is backed up with clearly defined questions and with examples of some kind.

@jim-jiang-github
Copy link
Author

What I want is a typography like the one on the image, which can automatically arrange as many figures as possible on a canvas

d8b472e0b034f115fc4c7e74504c16e

Also, do you have an example or code for the'automatically zoomed to the area 'you mentioned? I just need this function too.

@DavidWishengrad
Copy link

Your image is called nesting and it is using a Boost c++ code implication of Minkowski's math.

I believe that program you are showing is code of one of the many csharp ports that use a wrapper to that Boost library. If you have that, then you should already have its source code.

I do not have any personal code to do that. I personally use Deepnest.io from time to time.

That code I have that does the layouts is VBA for acad and not c# and I already explained how it does it. If you want me to post that code anyway I will, but I don't think it will help you much.

@jim-jiang-github
Copy link
Author

Your image is called nesting and it is using a Boost c++ code implication of Minkowski's math.

I believe that program you are showing is code of one of the many csharp ports that use a wrapper to that Boost library. If you have that, then you should already have its source code.

I do not have any personal code to do that. I personally use Deepnest.io from time to time.

That code I have that does the layouts is VBA for acad and not c# and I already explained how it does it. If you want me to post that code anyway I will, but I don't think it will help you much.

Thank you very much.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

3 participants