Jump to content
Ultimaker Community of 3D Printing Experts
mokush

Layer start/end

Recommended Posts

Hello All!

I am pretty new ( <1 year) in 3D printing and using slicers and I'd like to ask a noob question...

The layer end/start usually leaves a more-or-less visible mark on the outer surface of the object (FDM technology).
Why it must be on the outer surface? Would it not be possible to start the layer or at least the outermost wall from the inside of the model? By this the seam would be more hideable.

Or is it a very stupid idea?

 

layer.PNG

Share this post


Link to post
Share on other sites

It's not a stupid idea at all. If you are using more than 1 line for the wall, just make sure the "outer before innner walls" setting is not enabled and the "optimize wall printing order" setting is enabled it will print the inner walls before the outers. Hope this helps.

Share this post


Link to post
Share on other sites

I print usually 3, sometimes 2 walls and both settings you mentioned are enabled.

But the printer prints the infill (before or after the walls) -let's say- separately from the walls.

Just wondered if the start or end of a perimeter (maybe both) coud be hidden eg. into the infill, so the possible blob it causes would be invisible and there would be less tinkering needed to create less visible Z seams..

I set the Z seam alignment to "closest", but it is still not exatly where the infill ended.

 

Share this post


Link to post
Share on other sites

If you use 3.x Cura, each layer is sliced independently in parallel fashion. The starting point of each layer is determined by the z-seam option and your hard coded setting of 'layer_start_x' and 'layer_start_y'

see:

https://github.com/Ultimaker/CuraEngine/blame/master/src/FffGcodeWriter.cpp#L1185

 

But this only impact how parts (a.k.a island) get sorted. (It is not an ideal way for path planning optimization. That's what I'm working on to improve it. See my path planning thread.)

 

To your question, the actual starting point of the layer is determined by the printing order of infill and wall. In fact, if you choose infill first, the layer starting point should always be inside the infill.

 

I haven't figured out the end point of layer yet. But the initialization of the starting point of parts (including wall and infill) could impact tool path planning, which it may not be taken care properly. 

After all Cura is open source, you could do whatever you want with your ideas.

 

Edited by Ricky

Share this post


Link to post
Share on other sites

Hi all,

as said in another thread, I think it would be a great feature to be able to disable the parallel processing to get back the "old" slicing quality of cura <=2.4.

However, what about doing the parallel processing not layer-wise but blocks-of-layers wise?

For example, one could assign layers 1..20 to thread 1, 21..40 to thread 2, etc. Within each block-of-layers the slicer could make use of starting a new layer at where the last one ended, and only after every 20 layers it would have to start at a possibly suboptimal position.

 

BTW, one more great option would be to have a "don't care" for print order, but just print shell, infill, holes, etc in any order just to avoid travels. For more technical objects, such as mounts, ducts, gears, etc, surface is not the most important thing so they may profit from such an option. Stupid idea?

 

Best regards,

Andre

Share this post


Link to post
Share on other sites

@al65

Assuming you ignore starting point and end point among layers, the slicing problem above is called embarrassingly parallel problem. One should not group or schedule ahead in algorithm. The reason is that one machine may have only 4 cores. It is reasonable to group the threads by 4. But what if I have a many core GPU or even a grid of computer where tens of thousand of core are available. If you still groups by 4, you won't gain any performance. Thus, it is a bad idea.

 

Early optimization is the root of all evils.

 

If you are interested in getting your hands dirty, we could work together in 15.04 legacy branch to optimize travel path.

 

My goal is to run TSP on path planning for parts. So far I'm working on my dev branch:

  • Added thread safe logging to file and screen with G3LOG
  • Enable CMake
  • Output parts (island) to an external file for TSP solvers
  • Added matplotlib to view the parts by layers

 

See my forked on Cura Engine: https://github.com/rickyzhang82/CuraEngine/tree/dev-15.04.6

 

Also, if you want a release version with UI, you can build it as RPM in Fedora 28. I patched the build script so that it can pull from my dev-15.04.6 CuraEngine repo: https://github.com/rickyzhang82/LegacyCura/tree/dev

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Our picks

    • Introducing Ultimaker Cura 3.6 | Beta
      Ultimaker Cura 3.6 | Beta is available. It comes with new features, bug fixes, and UX improvements. We would really like to have your feedback on it to make our stable release as good as it can be. As always, you can download the beta for free from our website, for Windows, MacOS, and Linux.
        • Like
      • 82 replies
    • Print Core CC | Red for Ruby
      Q: For some users, abrasive materials may be a new subject matter. Can you explain what it is that makes a material abrasive when you are not sure which print core to use?
      A: Materials which are hard in a solid piece (like metals, ceramics and carbon fibers) will generally also wear down the nozzle. In general one should assume...
        • Like
      • 28 replies
    • "Back To The Future" using Generative Design & Investment Casting
      Designing for light-weight parts is becoming more important, and I’m a firm believer in the need to produce lighter weight, less over-engineered parts for the future. This is for sustainability reasons because we need to be using less raw materials and, in things like transportation, it impacts the energy usage of the product during it’s service life.
        • Like
      • 12 replies
×

Important Information

Welcome to the Ultimaker Community of 3D printing experts. Visit the following links to read more about our Terms of Use or our Privacy Policy. Thank you!