Beginner's problems with model change
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Be nice to others! Respect the FreeCAD code of conduct!
Re: Beginner's problems with model change
Here.
Timo
Timo
- Attachments
-
- Ylä_PS.21b.FCStd
- (575.38 KiB) Downloaded 17 times
Re: Beginner's problems with model change
Dear Sirs,
after qick thinking I propose three functions to MillSurface, Pocket and Adaptive operations, others may be found necessary with 3D cases.
-Ignore edge loops, mills over like there was no hole or pocket at all. Some Step converters seem to use non-standard direction of loops (CW, CCW compared to surface normal) in internal loops, so it should be possible to force picking incorrect loops also. This has been a problem with some other codes, because it looks like there is surface inside surface instead of a hole, when inner loop direction is wrong.
-Consider edge loops, leaves islands intact in the surface. This helps leaving screw towers etc. to surface. Again same CW/CCW is a problem with some Step converters.
-Extend given edge. Given two connected edges means cleaning a corner. To avoid unnecessary milling too far, a limiter distances from corner may be given also. Problems arise when extension should go to non-normal direction like my model has, and extension can penetrate through material. A direction vector or something would be needed to the ends to avoid this.
Best regards,
Timo
after qick thinking I propose three functions to MillSurface, Pocket and Adaptive operations, others may be found necessary with 3D cases.
-Ignore edge loops, mills over like there was no hole or pocket at all. Some Step converters seem to use non-standard direction of loops (CW, CCW compared to surface normal) in internal loops, so it should be possible to force picking incorrect loops also. This has been a problem with some other codes, because it looks like there is surface inside surface instead of a hole, when inner loop direction is wrong.
-Consider edge loops, leaves islands intact in the surface. This helps leaving screw towers etc. to surface. Again same CW/CCW is a problem with some Step converters.
-Extend given edge. Given two connected edges means cleaning a corner. To avoid unnecessary milling too far, a limiter distances from corner may be given also. Problems arise when extension should go to non-normal direction like my model has, and extension can penetrate through material. A direction vector or something would be needed to the ends to avoid this.
Best regards,
Timo
Re: Beginner's problems with model change
Thanks, seems to be complaining about invalid shapes on multiple edges of your modified Body_out part. Am not really sure why, but I don't see these errors if I create a new Path job referencing a new copy of just the BaseFeature part.
Just looking at your changes to this BaseFeature part. Are these new sketches & pads only there to work around the issue that you're unable to use "Use Outline" to ignore the holes and the internal pocket for the Adaptive? With that 'fixed' I'm able to adaptive the face on the BaseFeature part, and extend the open edges as you want, see screenshot..
Just looking at your changes to this BaseFeature part. Are these new sketches & pads only there to work around the issue that you're unable to use "Use Outline" to ignore the holes and the internal pocket for the Adaptive? With that 'fixed' I'm able to adaptive the face on the BaseFeature part, and extend the open edges as you want, see screenshot..
Re: Beginner's problems with model change
Dear Jescombe,
you are right, those are my attempts to get at least something done. Very good, if things would go without them, as it is quite time consumping to add them and after each one needs to repick all operation's surfaces due to ID:s getting mixed. I will study your message and try to get my model working. Thanks!
Best regards,
Timo
you are right, those are my attempts to get at least something done. Very good, if things would go without them, as it is quite time consumping to add them and after each one needs to repick all operation's surfaces due to ID:s getting mixed. I will study your message and try to get my model working. Thanks!
Best regards,
Timo
Last edited by Siltti on Sun Jan 29, 2023 5:16 pm, edited 1 time in total.
Re: Beginner's problems with model change
I'm not very familiar with the code, but this is what I think is going on with "Use Outline"..
The Adaptive operation expects the outline of the face to come from face.Wires[0].
In your model this isn't the case - Wires[0] is actually the hole in the lower left corner, and Wires[7] is the outline.
I worked around this by changing the Adaptive code to use face.OuterWire instead. This seems to work fine for me, however I've no idea whether it's the correct fix.
"Use Outline" doesn't work properly in a Pocket operation either, which I think uses a different approach to find the outline. This suggests to me that the geometry of your model is suspect, and so perhaps the error is coming from the import / conversion process from the original STEP file?
The Adaptive operation expects the outline of the face to come from face.Wires[0].
In your model this isn't the case - Wires[0] is actually the hole in the lower left corner, and Wires[7] is the outline.
I worked around this by changing the Adaptive code to use face.OuterWire instead. This seems to work fine for me, however I've no idea whether it's the correct fix.
"Use Outline" doesn't work properly in a Pocket operation either, which I think uses a different approach to find the outline. This suggests to me that the geometry of your model is suspect, and so perhaps the error is coming from the import / conversion process from the original STEP file?
Re: Beginner's problems with model change
Dear Sirs,
I updated to FC to the most recent weekly version 31709, but still can't get my model working properly. Even if I add a totally new job_out2 to it and start collecting operations to it, extensions wires don't show up. Unfortunately remaking everything from scratch is too much work, so I have to try to work with my workaround tabs. Some of them are needed anyway because extension would not clean some sharp angle details.
If the core reason for this can't be found, is it be possible to save the entire job into a log file and redo all the editing and operations from it to a clean document only having imported Step geometry? That would create a model file without problems caused by my trials and errors.
Best regards,
Timo
I updated to FC to the most recent weekly version 31709, but still can't get my model working properly. Even if I add a totally new job_out2 to it and start collecting operations to it, extensions wires don't show up. Unfortunately remaking everything from scratch is too much work, so I have to try to work with my workaround tabs. Some of them are needed anyway because extension would not clean some sharp angle details.
If the core reason for this can't be found, is it be possible to save the entire job into a log file and redo all the editing and operations from it to a clean document only having imported Step geometry? That would create a model file without problems caused by my trials and errors.
Best regards,
Timo
Re: Beginner's problems with model change
For what it's worth, I've raised issue #8294 to see whether the suggested change to the Adaptive outline code is acceptable..
If you want to try it in the meantime, you could just unpack the AppImage and change that one line?
If so, run the AppImage with --appimage-extract as a parameter, change line #842 in src/Mod/Path/Path/Op/Adaptive.py, and then launch the AppRun executable
If you want to try it in the meantime, you could just unpack the AppImage and change that one line?
If so, run the AppImage with --appimage-extract as a parameter, change line #842 in src/Mod/Path/Path/Op/Adaptive.py, and then launch the AppRun executable
Re: Beginner's problems with model change
Dear Jescombe,
sorry i missed your last message. Yes, it is really possible, almost very probable, that my step is incorrect. I have been strugling with many Step incompatibilities between the most expensive codes: holes in surfaces and corner roundings are something which typically are not received as expected, but their complements are created so the solid part is not consistent. This happens even between products owned by same company!
In the dark frustrating hours I have been dreaming of a Step interpreter which reads the file line by line and user could heal the data for consistent material side and holes really being holes, stitching points etc. Remembering that we are talking about hundreds of millions in license costs and enormous amount of lost manpower, I wonder why this has not been a subject of interst to any coder. This is not anybody's fault, Step definition simply is not as exact as it should be.
Best regards,
Timo
sorry i missed your last message. Yes, it is really possible, almost very probable, that my step is incorrect. I have been strugling with many Step incompatibilities between the most expensive codes: holes in surfaces and corner roundings are something which typically are not received as expected, but their complements are created so the solid part is not consistent. This happens even between products owned by same company!
In the dark frustrating hours I have been dreaming of a Step interpreter which reads the file line by line and user could heal the data for consistent material side and holes really being holes, stitching points etc. Remembering that we are talking about hundreds of millions in license costs and enormous amount of lost manpower, I wonder why this has not been a subject of interst to any coder. This is not anybody's fault, Step definition simply is not as exact as it should be.
Best regards,
Timo
Re: Beginner's problems with model change
Dear Jescombe,
--appimage sounds to be a Linux command line. I live in WIndows world, this does not apply to me?
Best regards,
Timo
--appimage sounds to be a Linux command line. I live in WIndows world, this does not apply to me?
Best regards,
Timo
Re: Beginner's problems with model change
Ah no, in that case you should have Mod/Path/Path/Op/Adaptive.py already extracted from the zip file?
You should just need to change line 842 in that file to test, change wire_B = face.Wires[0] to wire_B = face.OuterWire
You should just need to change line 842 in that file to test, change wire_B = face.Wires[0] to wire_B = face.OuterWire