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

Better tool offset algorithm for core top profile #43

Open
mikemag opened this issue Mar 9, 2018 · 0 comments
Open

Better tool offset algorithm for core top profile #43

mikemag opened this issue Mar 9, 2018 · 0 comments
Assignees

Comments

@mikemag
Copy link
Owner

mikemag commented Mar 9, 2018

Given a core top profile curve, you just can't use that as the Z depth of the cutter because the cutter has width, and the wider the cutter the more error there will be matching the profile. Example: if a profile specifies that the rise from the thin part of the nose starts 2" from the end of the effective edge, and if you use a 1.5" cutter, then the rise will really start 2.75" from the end.

Thus, the profile curve is adjusted to account for the cutter width via the ToolOffsetPath class.

However, the algorithm is too basic, and will only work pretty much for profile paths formed by MonkeyCAM now: thin at the ends, thick in the center. If we want to be able to have top profiles with more curves in them, then we'll need a better offsetting algorithm.

I have some ideas on this I need to research. The current alg is very brute force, but I have a suspicion that a Minkowski Sum (https://en.wikipedia.org/wiki/Minkowski_addition) using a horizontal line the width of the cutter and the profile path as the trajectory would yield a polygon whose upper curve would represent the proper tool path. We'll see. If so, then this would be a reason to move up to a more recent version of Clipper.

@mikemag mikemag self-assigned this Mar 9, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant