-
Notifications
You must be signed in to change notification settings - Fork 86
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
Thread crest missing after boolean cut (Part_Cut) a ISO 4017 Hex head screw head with a cube (Part_Box), with Refine=true #379
Comments
Could you give us a File and a picture similar to the first or third but with the green Box? |
For sure. I have updated my original message with the required information. |
I can see your Problem in your file, but I am just not able to reproduce it from scratch, seem to me that this may be a DEV build problem, my guess is the OCC version since this was changed to a newer one and made some Problems.
And with
|
Generating threads is notoriously problematic with OCC. Sometimes the generated fastener is not a perfect solid and this can cause issues when more solid manipulations are done. But this is not something that can be solved within Fasteners WB. |
Could be related with #375 ? |
@lmutt could you open a FreeCAD Issue and also link in it to this one. |
I did more careful testing and edited my original message (EDIT 4) with the details I found. I now believe that this can be easily reproduced by you. I think that the artifact present in the screw ("stray face") directly generated by Fasteners is causing this bug, and in this case it would not be appropriate to report this bug in Freecad. Maybe it's better if I open another bug here reporting only the problem of the artifact present in the pure screw, and link it to this issue. What do you think? |
What are the steps to get this stray face? I can not reproduce it. (though the missing crest is easily reproduced - without stray faces to start with) |
|
Yes I did see the artifacts but for some reason did not report them or ignored the, I may have to.much focused on the problem you described. |
Still can't reproduce the stray face. However cutting still results with missing crest. |
Tested here again... with the latest Freecad weekly build available, and this time with a clean Freecad config:
Then starting the "brand new" Freecad and downloading again the fasteners WB. The stray face are reproduced again easily. Just adding an ISO 4017 hex head bolt and setting it for the diameter M10, enabling threads, and pressing 5 on keyboard to see the bottom side. Please see attached screenshot with the stray face highlighted. Does this problem (stray face) appears just for me? Version info:
|
I'm trying to remove (cut) the head from a "ISO 4017 Hex head screw". To accomplish this, I do the following steps:
Using the Fasteners Workbench, I add the fastener, configure it to be M30, length custom (20 mm), and select "enable" from "thread" property (EDIT 4: I discovered later that diameter and length don't matter here). All ok, the fastener and its thread looks good -- see .
Then I create a cube (Part_Box) with Part Workbench, resize and position it to make it cover the entire head of the screw (the part I want to eliminate) -- see .
Then I select first the screw object, second the cube and click the cut icon (Part_Cut). (EDIT 4: also, set the property Refine=true for the Cut object). The screw is cut in the correct location, but the thread crest faces are now gone -- see . I'm sure that the cut object is really missing "pieces", because when I export it in STL and import it in OrcaSlicer, I see the same thing: I can see the other side through the slits. It is no longer a solid object. OrcaSlicer complains about this, reporting error 1087 (non-manifold edges).
I'm doing something wrong? Is this a Freecad bug? or a fasteners bug?
INFO: Freecad/fasteners information obtained from Help->About menu:
EDIT 1.1: Source FCStd file (zipped):
bug_test.zip
EDIT 1.2: Same figure of the step 3 but with the cube unhidden.
EDIT 4 (beginning):
(the text from EDIT 2 and 3 were eliminated to make this report a little more concise)
4.1) After thorough testing, I discovered that, contrary to what I stated previously, this bug occurs both in the stable version (0.21.2, which uses OCC 7.6.3) and in the weekly-builds (0.22.0dev.37249, which uses to OCC 7.7.2). The key for the bug to occur is the Cut object's property Refine=true.
4.1.1) Details: In the weekly-builds version, which I usually use,
the option "Automatically refine model after boolean operation" was enabled (It's in the Edit->Preferences->Part/Part Design->General menu). This option makes the "Refine" property of the "Cut" object set to "true" by default. I had forgotten to mention that. Furthermore, always before running the stable version, I would make a backup of the ~/.config/FreeCAD/ directory and delete the original (to avoid possible configuration file compatibility issues between different versions of FreeCad). This meant that tests using the stable version were inadvertently done with the default settings ("Refine=false"), while those using the weekly-builds version were done with "Refine=true". This all led me to mistakenly state that this bug only manifested itself in the weekly-builds version. Sorry for the confusion.
4.2) I also did some tests by changing the type and diameter of the screw and also the cutting object:
4.3) I tested changing the "z" position of the cutting object. I found that, for the bug to occur, the cutting object needs to be above a certain point on the screw, apparently at the beginning of the thread (close to the head). Examples of points where this occurs: M8 Screw: z >= -0.37; M10 screw: z > -0.55 (examples considering a screw in the standard position, z=0).
4.4) As previously reported in this comment, it is possible to observe a strange artifact (a "stray face") on the pure screw (before cutting) located at the beginning of the thread. I found that it appears clearly on screws with a diameter >= M10 (ISO 4017 Hex type, I haven't tested other types). I have now also discovered that the "z" position of the cut object where the bug starts to occur coincides exactly with the "z" position of this artifact. I believe this is strong evidence that this bug is caused by this artifact. Is this artifact generated by a bug in Freecad or Fasteners?
4.5) Summary: For the bug to manifest itself, the two conditions below must occur:
EDIT 4 (end)
The text was updated successfully, but these errors were encountered: