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
Internal Involute Gear - Helical Mode errors #90
Comments
can you post your freecad-version. I cannot reproduce with:
|
OS: Windows 10 Version 2009 Using Realthunder's branch. I compiled from the LinkDaily tip yesterday, but it might happen on his current 10.15 release as well, I'm not sure. |
Let me check out an older node on his fork, just to rule out any recent changes have caused issues. |
Okay so I can confirm it occurs on pretty much any recent release on Realthunder's fork: Example - https://github.com/realthunder/FreeCAD_assembly3/releases I am assuming a lot of this fork is slated to be merged into 0.20 before the final release, so the issue may eventually be migrated into the official FreeCAD fork. @realthunder Is this an issue with this particular module or is there some other incompatibility? |
More updates:
|
Okay, one more update. So the error being thrown in I think I know what is happening. Because this is only triggered at 25 teeth, each tooth is (presumably) creating 4 elements. 4 * 25 = 100, leading to the threshold being hit. @realthunder -- Why is this threshold set to 100? For performance reasons? Is there any reason not to remove it? |
A while back it looks like it was set to a Unfortunately it looks like a different break condition might need to be used. |
Increasing I stress-tested it by creating a 1000-tooth internal involute gear. Increasing the break threshold to 4096 prevented all of the errors, but I feel like it also took longer to complete generation (~45 seconds), while leaving the threshold at 100 completed around 25-30 seconds. |
Added this issue to FreeCAD project, as it will likely need some fixes there as well. But perhaps there is a way to refactor I also noticed that when using Face binders with gears, I can predictably bind the top and bottom faces of gears when they are NOT helical gears, even when the number of teeth are changed. However, when the gear is made helical, the face binder breaks, as the upper and lower faces change. To correct it, the face binder has to be manually re-set to the correct upper and lower faces. And if the teeth count changes while it is still helical, the face binder will have to be re-set every single time. But again, this is only when it is helical. When |
This 'non fatal' error is due to failure in auto resolving topo name duplicates. The threshold is added because It is potentially expensive to auto resolve as each geometry element produced by each operation needs to have a name whenever possible. The intention is to remind the programmer to insert |
Line 1573 in features.py for me was:
in I am using an older node (ef73b66) from the develop branch, but the issue persists on the current tip of What is the effect of the error, even if it is non-fatal? I am using the affected face produced by the gear as a parametric input downstream, so I need the integrity of the element relationships to be in-tact. If it's simply element naming (with no effect on integrity of the part's relationship), then that's fine. But perhaps it should be switched to warning level? In this case, it will be triggered any time an internal gear is produced with 25 or more teeth. Which is incredibly common for internal gears. Would a higher threshold be more appropriate? Or is |
Just a suggestion for you to work around the issue with the face builder: Depending on what you need the face binder for, it my be an option to just use ordinary circles that reference (via expressions) the inner/outer diameter of the gear object, offset by the gear's height. |
I do use that approach for aligning objects, but I'm actually creating a lofted transition between two gears of different teeth count, so using face binders (or referenced faces) is necessary to get the surface profiles. For now I'm just using non-helical gears, but should I want to use helical gears in the future, it's looking like I'll have to get rid of the lofted transition, and instead just use a regular planar divider (or no divider). |
Possibly related looooo/freecad.gears#90
I just fixed an obscure bug in sub shape topo naming, which may be the root cause of the duplicated element error message here. You may want to pull my branch and try again. |
Yep, this is fixed now, with leaving |
I'm sorry, I had a "brain fart". When I rebuilt and tested with your latest commits @realthunder, I went back to double check, and unfortunately I did not actually revert my change to However, the issue persists still:
|
When I apply a beta angle to the new internal involute gear, the following errors show up in the report panel:
I am using the following parameters:
The gear looks fine, but it fills up the report. There are dozens of the same entries every time the object is recomputed.
The text was updated successfully, but these errors were encountered: