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

Allow points to slightly overlap lines to avoid generating vast numbers of small line segments. #904

Closed

Conversation

smartavionics
Copy link
Contributor

Avoid generating a new point for each of the small overlaps that can occur when curved
walls lie next to each other and the vertices of the wall with the smaller radius
protrude into the line segments of the wall with the larger radius

This fix only helps when curved walls are adjacent and not actually overlapping.

Here's a project that benefits from this PR. Without the PR, the gcode contains very many small line segments which have a negative effect on print quality.

CFDMP_80.zip

…rs of small line segments.

Avoid generating a new point for each of the small overlaps that can occur when curved
walls lie next to each other and the vertices of the wall with the smaller radius
protrude into the line segments of the wall with the larger radius

This fix only helps when curved walls are adjacent and not actually overlapping.
@Ghostkeeper
Copy link
Collaborator

Ghostkeeper commented Dec 31, 2018

Good idea. CURA-6062.

I don't think it has a significant effect on the part quality, but at the very least it saves on processing power, g-code and makes everything simpler.

@smartavionics
Copy link
Contributor Author

The reason this was investigated was because a user was getting poor print quality. This change improved the print quality for them.

@@ -189,6 +189,22 @@ void PolygonProximityLinker::findProximatePoints(const ListPolyIt a_point_it, Li
return;
}

if (dist2 > proximity_distance_2 * 0.9)
Copy link
Collaborator

Choose a reason for hiding this comment

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

This doesn't filter out any short line segments. It filters out line segments that are sort-of-close but not very close. I think this is then not a good change to make because it negatively affects accuracy. If they are sort-of-close but not very close (<10% overlap) then the flow rate won't change much anyway, so the visual quality will not be affected much.

You might've seen a user here that judged print quality based on how layer view looked, or based on a single experiment with one model.

The original idea is good to me, but this implementation is not implementing that idea.

@smartavionics
Copy link
Contributor Author

I don't care anymore if you use this PR or not. I'll keep using it.

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

Successfully merging this pull request may close these issues.

3 participants