Skip to content
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

Fix the issue of avoiding excessive invalid computations that can cau… #6757

Open
wants to merge 5 commits into
base: main
Choose a base branch
from

Conversation

dongzhongshu
Copy link

Fix the issue of avoiding excessive invalid computations that can cause the program to freeze when support is enabled and either support_bottom_distance or support_top_distance is very large.

…se the program to freeze when support is enabled and either support_bottom_distance or support_top_distance is very large.
@dongzhongshu
Copy link
Author

Fix the issue of avoiding excessive invalid computations that can cause the program to freeze when support is enabled and either support_bottom_distance or support_top_distance is very large.

@SoftFever
Copy link
Owner

Thank you @dongzhongshu
Could you please explain a bit more about the issue and its fix?

@dongzhongshu
Copy link
Author

Thank you @dongzhongshu Could you please explain a bit more about the issue and its fix?
When I enable the support and set top_z_distance to 50mm (or less), the slicing process gets stuck at 50%. I found that in the trim_support_layers_by_object function within SupportMaterial.cpp, there is no validation of valid values when calculating the number of intersecting layers with the current layer, leading to a large amount of invalid calculations. A similar situation occurs in the calculateCollision function in TreeModelVolumes.cpp.
1726620423101

@vovodroid
Copy link
Contributor

May be just limit this value in PrintConfig.cpp to something reasonable like 1mm?

Copy link
Owner

@SoftFever SoftFever left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

agree with @vovodroid here
It's better to limite the max value for the parameter in PrintConfig(via def->max).
Setting 10mm is fine though

@vovodroid
Copy link
Contributor

vovodroid commented Sep 23, 2024 via email

@SoftFever
Copy link
Owner

Just in case for those using pellets extruders, they use large nozzles

@dongzhongshu
Copy link
Author

Is it possible to implement a feature in the future where automatic support generation can be supplemented with manual support drawing? In such a usage scenario, this modification is also necessary.

@dongzhongshu
Copy link
Author

agree with @vovodroid here It's better to limite the max value for the parameter in PrintConfig(via def->max). Setting 10mm is fine though

Thank you for your reply, but setting 10mm will also cause the system to freeze.

@vovodroid
Copy link
Contributor

So let's limit it (or check) corresponding to nozzle diameter or maximum layer height.

@Noisyfox
Copy link
Collaborator

I'm wondering if this improves the performance with large models too, such as this one #6098

@discip
Copy link
Contributor

discip commented Sep 25, 2024

@Noisyfox

I'm wondering if this improves the performance with large models too, such as this one #6098

I did test it but unfortunately could not observe any improvement.

@dongzhongshu
Copy link
Author

@Noisyfox

I'm wondering if this improves the performance with large models too, such as this one #6098

I did test it but unfortunately could not observe any improvement.

Perhaps my description was not accurate. The reason for the modification is that when the modified value is too large, it causes unnecessary calculations during the computation of support and the intersection of slicing layers, as subtracting an excessively large z_threshold results in no possible intersection with the slicing layers. This issue you described is unrelated to the one mentioned here. 😊

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

Successfully merging this pull request may close these issues.

5 participants