Req: Paintable seam positions
Quote from afro3d printer on 2021-04-29, 19:21Would be great if Craftware Pro slicer will feature a Paint seams feature, enabling us to specify where we can position where a seam will run?
Would be great if Craftware Pro slicer will feature a Paint seams feature, enabling us to specify where we can position where a seam will run?
Quote from Craftware Team on 2021-05-03, 12:31While we are working on the seam painting feature, in the next release (in 2 weeks) we will give you greater influence for the automatic seam guessing algorithm's internal parameters. We hope it will help you hide the seams as you need!
While we are working on the seam painting feature, in the next release (in 2 weeks) we will give you greater influence for the automatic seam guessing algorithm's internal parameters. We hope it will help you hide the seams as you need!
Quote from dartrax on 2021-07-07, 13:09I'd like to express my interest in such a function. I love the seam painting in PrusaSlicer, and before that was possible, I even made a pull request for Prusa with a very rudimentary approach to individual seam placement years ago.
One problem I have with the seam painting in prusa slicer is, that it gets deleted when the stl file is reloaded. It is common workflow to design, slice or even print, update the design and slice again. Needing to re-paint the seams every time is tedious and should only be neccessary if the model changed dramatically in this section. So I would like to see an implemetation that adapts when the model is reloaded from disk.
I'd like to express my interest in such a function. I love the seam painting in PrusaSlicer, and before that was possible, I even made a pull request for Prusa with a very rudimentary approach to individual seam placement years ago.
One problem I have with the seam painting in prusa slicer is, that it gets deleted when the stl file is reloaded. It is common workflow to design, slice or even print, update the design and slice again. Needing to re-paint the seams every time is tedious and should only be neccessary if the model changed dramatically in this section. So I would like to see an implemetation that adapts when the model is reloaded from disk.
Quote from Craftware Team on 2021-07-08, 13:05
It is very difficult to transfer the painting info between two different models, even if they are similar in shape. This applies especially on unstructured tessellated data like we use in most of the slicers.
This is not easily achievable, so I can not guarantee that we will implement this feature this way, but we will investigate the possible solutions.
This is the main reason why we started in the path of a highly parameterizable automatic seam finding solution.
You can find the "Entry Area Processor" areas processor:
- You can weigh more aspects
- You can choose the destination angle of the seam position. So it will put it hide it in concave corners
- You can choose a blocking angle. So the seam will avoid the smooth part of the surface
- You can choose a bisector facing. so the seams will hide in the corners, facing to a particular direction
- You can choose an extreme direction. so the seams will hide in a particular side of the model
- You can tell the algorithm to place the seam close (or preferably how far) the previous one, so you can collect the seam in one place or distribute them)
- You can randomize, and place dither in the seam positioning.
I know it is overwhelming at first glance, but we will clear this a bit with more accurate naming, and tooltips in the next release.
Best Regards,
András
It is very difficult to transfer the painting info between two different models, even if they are similar in shape. This applies especially on unstructured tessellated data like we use in most of the slicers.
This is not easily achievable, so I can not guarantee that we will implement this feature this way, but we will investigate the possible solutions.
This is the main reason why we started in the path of a highly parameterizable automatic seam finding solution.
You can find the "Entry Area Processor" areas processor:
- You can weigh more aspects
- You can choose the destination angle of the seam position. So it will put it hide it in concave corners
- You can choose a blocking angle. So the seam will avoid the smooth part of the surface
- You can choose a bisector facing. so the seams will hide in the corners, facing to a particular direction
- You can choose an extreme direction. so the seams will hide in a particular side of the model
- You can tell the algorithm to place the seam close (or preferably how far) the previous one, so you can collect the seam in one place or distribute them)
- You can randomize, and place dither in the seam positioning.
I know it is overwhelming at first glance, but we will clear this a bit with more accurate naming, and tooltips in the next release.
Best Regards,
András
Quote from dartrax on 2021-07-08, 20:02Thank you for your detailed answer.
Shouldn't it be possible to virtually superimpose the old and the new model and find the nearest position on the surface of the new model for each marked position? This way all markings could be easily transferred.
Especially thanks for the explanations to the Entry Area Processor. As the tooltips and guides are not yet ready, this is very helpful to understand the software. The test that I do when it comes to seam placement is to place the seam in the middle of the inner (concave) wall of a model in the shape of a C or U. It was not possible with Prusaslicer before the seam painting and is still not possible in Kissslicer (setting the angle will place the seam outside, not inside) or S3D. I'm happy to see so many options in Craftware, I do not understand all of them but I managed to place the seam where I wanted it to be using Facing direction = 1.5. So I assume, 360° = 2*pi, so 90°=1/2*pi=1,57. But how is that working, if that value means just facing in the direction of -Y, there is more than one solution... Is that location chosen because it is the most concave one, which may be preferred by some of the other weights?
Some fancy degree selecting control would be nice here, but I'm sure you have that already on the list 😉
-- dartrax
Thank you for your detailed answer.
Shouldn't it be possible to virtually superimpose the old and the new model and find the nearest position on the surface of the new model for each marked position? This way all markings could be easily transferred.
Especially thanks for the explanations to the Entry Area Processor. As the tooltips and guides are not yet ready, this is very helpful to understand the software. The test that I do when it comes to seam placement is to place the seam in the middle of the inner (concave) wall of a model in the shape of a C or U. It was not possible with Prusaslicer before the seam painting and is still not possible in Kissslicer (setting the angle will place the seam outside, not inside) or S3D. I'm happy to see so many options in Craftware, I do not understand all of them but I managed to place the seam where I wanted it to be using Facing direction = 1.5. So I assume, 360° = 2*pi, so 90°=1/2*pi=1,57. But how is that working, if that value means just facing in the direction of -Y, there is more than one solution... Is that location chosen because it is the most concave one, which may be preferred by some of the other weights?
Some fancy degree selecting control would be nice here, but I'm sure you have that already on the list 😉
-- dartrax
Uploaded files:- You need to login to have access to uploads.
Quote from Craftware Team on 2021-07-13, 09:57The fitness function is the following:
Fitness = Weight(designatedAngle) * Fitness(designatedAngle) + Weight(FacingAngle) * Fitness(FacingAngle) + .....(every other aspect)
So it depends on the weights, which Fitness aspect to use. If you put weight only for the Facing Angle (and zero to all others), then only the Facing Angle will be used and the algorithm will choose the corner with the most suitable direction. If there is more (which is unlikely), the choice will be random. To avoid this, you can put a little weight on the "Extrema weight", or "Previous weight" to overrule the floating point precision's noise, and collect the seams in one place (you can see this trick in the default settings too).
If you do the same with the "Destination Angle", then every inner corner of the C will be quasi equally good, so the seam position would be most likely random in the C's inner arch. It is more important to use a "spice" weight to collect the seams.
At the time, as the detailed tooltips added, the unit converters will be armed too, so you can use the most comfortable unit for every parameter (i.e. °, %, mm, μm)
Best Regards,
András
The fitness function is the following:
Fitness = Weight(designatedAngle) * Fitness(designatedAngle) + Weight(FacingAngle) * Fitness(FacingAngle) + .....(every other aspect)
So it depends on the weights, which Fitness aspect to use. If you put weight only for the Facing Angle (and zero to all others), then only the Facing Angle will be used and the algorithm will choose the corner with the most suitable direction. If there is more (which is unlikely), the choice will be random. To avoid this, you can put a little weight on the "Extrema weight", or "Previous weight" to overrule the floating point precision's noise, and collect the seams in one place (you can see this trick in the default settings too).
If you do the same with the "Destination Angle", then every inner corner of the C will be quasi equally good, so the seam position would be most likely random in the C's inner arch. It is more important to use a "spice" weight to collect the seams.
At the time, as the detailed tooltips added, the unit converters will be armed too, so you can use the most comfortable unit for every parameter (i.e. °, %, mm, μm)
Best Regards,
András
