-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Requesting Nonplanar code pull #4864
Conversation
…things. Yet I persist.
…he the file later)
Updates to Build Process
I can't accept this PR as it has lots of conflicts and a pile of commits. |
This was not intended to be merged into the master at the current state of development |
Closing as this is not a true PR and there's so much divergent here (and I'm not sure why). Please ensure your development is started from Slic3r:master |
I'll try updating it up to master in a few days, but it seems like much have to be rewritten as slic3r ported some relevant code to C++. |
I switched back to the old build system in: |
I'm puzzled on why |
@l29ah not really, no. |
I was too lazy to change Point to Point3 everywhere so I simply modified Point. |
What would be a proper way to handle it then? The Point to Point3 change needs to propagate to Line ( |
It's probably okay to adapt Line into a Line3 without breaking all the code in the universe. That is, update it to always have the 3rd coordinate (default of 0), with constructors from Point and Point3. Getting it into the GUI routines was always going to be a pain as the very nature of the thing tends to invalidate most of our draw code and UI assumptions. It's either that or template I also wonder if it's useful at all to have a reference X/Y/Z plane in the constructor so you can use relative coordinates. |
Sounds easy enough, but there are upper level classes affected as well. For instance, ExtrusionPath needs to be 3D, that means Polyline.points should be made of Point3's, but a lot of code refers directly to a Polyline.points, assuming Point's. I could add a separate variable to Polyline denoting the z offsets of the Points but then it will get really messy to use them and convert from and to Point3's. |
in my fork, i created a extrusionpath3D, extrusionMultipath3D, and now i'm using a visitor when i want something to/from an extrusion entity (no more cast). You can grab them if you want. |
a lot of the code from this branch is incompatible with most forms of support generation done within the slicer already but for the most part, the nonplanar build runs fine on this old version of slic3r. The most I can do is fix typos and try to find out what parts are missing in order to build on ubuntu, but I'm hoping by making a request, at least part of this code can make it in.
more changes are needed before even starting to move over the code, but current features include:
there are two major bugs, however
I highly encourage reading the author's master thesis before reviewing and evaluating the code (https://tams.informatik.uni-hamburg.de/research/3d-printing/nonplanar_printing/index.php), but I hope at least part of this feature can enter a modern slicer within this year.
this looks like the same TAMS that brought Adaptive Slicing to Prusa slicer and slic3r, would be great to see another method for smooth(er) printing surfaces, even if there is hardware changes that need to be done in order to be more effective.