Probably my problem. I've watched Sliptonic's path dress up tutorial, and I'm not seeing what's shown there with the attached file. It yields a tag dress up item in the tree with no nested items and no dialog to change values.
OS: Debian GNU/Linux 9.5 (stretch)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.18.14967 (Git) AppImage
Build type: Release
Branch: master
Hash: f6e9faa62c45a9fc8a9f977235abed139c31ab9a
Python version: 2.7.6
Qt version: 4.8.6
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: English/UnitedStates (en_US)
Thanks!
Tag dressup not working on exterior curved paths
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Be nice to others! Respect the FreeCAD code of conduct!
-
- Posts: 20
- Joined: Sat May 14, 2016 6:01 pm
Tag dressup not working on exterior curved paths
- Attachments
-
- MR105zz_fidget.fcstd
- (45.29 KiB) Downloaded 48 times
Re: Tag dressup not working on exterior curved paths
I believe that the tag dressup only works on straight edges at this time. Your model has none.
[Edit] Bad, outdated info. Please ignore.
Gene
[Edit] Bad, outdated info. Please ignore.
Gene
Last edited by GeneFC on Tue Oct 16, 2018 2:41 pm, edited 1 time in total.
Re: Tag dressup not working on exterior curved paths
Hi,
your start depht is the same as your final depht, - there is no space for a tag...
Set params to startdepht 0, final depht -6 and it works.
your start depht is the same as your final depht, - there is no space for a tag...
Set params to startdepht 0, final depht -6 and it works.
- Attachments
-
- MR105zz_fidget_herbk.fcstd
- (47.5 KiB) Downloaded 49 times
Gruß Herbert
-
- Posts: 20
- Joined: Sat May 14, 2016 6:01 pm
Re: Tag dressup not working on exterior curved paths
Danke, herbk!
I had to delete and recreate the profile to get it to work.
I had to delete and recreate the profile to get it to work.
-
- Posts: 74
- Joined: Tue Oct 23, 2018 3:35 pm
Re: Tag dressup not working on exterior curved paths
According to what I'm told, tags want to be on the convex sections of the shape, because it's much easier to file them down.
The feature seems to be buggy just on the default Angle=45. It's okay if you set it to 80 (in my attached example).
For reference, vid describing the feature is here: https://www.youtube.com/watch?v=JZ4prlR6sps
Code history here: https://github.com/FreeCAD/FreeCAD/comm ... ssupTag.py
Looking at how tags are generated.
Firstly line 536 findBottomWire() is run by finding all the edges in the toolpath whose Z value matches the lowest Z and hoping that the Part.Wire that is reated isClosed.
Then generateTags(obj, count) function is called on line 570 and where it goes through some very complicated code to create edgeDict = { edgeindex: number_of_tabs_on_this_edge } -- with the tabs roughly distributed by length, starting at the longest edge.
The edgeDict is then used on line 621 to make the tags array by evaluating equally spaced points on each chosen edge and generating the objects Tag(j, tag.x, tag.y, W, H, A, R, True).
I don't yet fully understand how the rest of the algorithm works. I note some use of functions like: PathGeom.isRoughly, and isDefinitelySmaller to overcome the fact that the topology of the toolpath has been lost, and you're trying to recreate it from the floating point positions which you do not trust.
I think the code that finds the best positions of the tags should be done in an external self-contained module, since it's a pure geometric optimization of finding corners of the over-all shape, and having all this other stuff around is a distraction. However, there's a UI to select new tag points to overcome the bad choices made by the auto tag generation.
I'm still wondering if tags ought to really be added to the underlying model geometry, like some visible flanges protruding from the shapes. Then all the contours and other toolpath operations treats this surface as a base-plane, rather than the Zmin.
The feature seems to be buggy just on the default Angle=45. It's okay if you set it to 80 (in my attached example).
For reference, vid describing the feature is here: https://www.youtube.com/watch?v=JZ4prlR6sps
Code history here: https://github.com/FreeCAD/FreeCAD/comm ... ssupTag.py
Looking at how tags are generated.
Firstly line 536 findBottomWire() is run by finding all the edges in the toolpath whose Z value matches the lowest Z and hoping that the Part.Wire that is reated isClosed.
Then generateTags(obj, count) function is called on line 570 and where it goes through some very complicated code to create edgeDict = { edgeindex: number_of_tabs_on_this_edge } -- with the tabs roughly distributed by length, starting at the longest edge.
The edgeDict is then used on line 621 to make the tags array by evaluating equally spaced points on each chosen edge and generating the objects Tag(j, tag.x, tag.y, W, H, A, R, True).
I don't yet fully understand how the rest of the algorithm works. I note some use of functions like: PathGeom.isRoughly, and isDefinitelySmaller to overcome the fact that the topology of the toolpath has been lost, and you're trying to recreate it from the floating point positions which you do not trust.
I think the code that finds the best positions of the tags should be done in an external self-contained module, since it's a pure geometric optimization of finding corners of the over-all shape, and having all this other stuff around is a distraction. However, there's a UI to select new tag points to overcome the bad choices made by the auto tag generation.
I'm still wondering if tags ought to really be added to the underlying model geometry, like some visible flanges protruding from the shapes. Then all the contours and other toolpath operations treats this surface as a base-plane, rather than the Zmin.
- Attachments
-
- swanneck3.fcstd
- (40.68 KiB) Downloaded 51 times
Re: Tag dressup not working on exterior curved paths
The idea was that the dressups can also be used on imported g-code, which is where a lot of the roundabout code comes from (trying to reconstruct the geometry).
The tags are definitely the touchiest of all the dressups and in desperate need of a rewrite. I probably should have never added the automatic tag generation - except that I didn't know about the Snapper at the time and couldn't imagine how to enter the tags location in a sensible way.
I also toyed with the idea of adding the tags to the model as you suggest, and I think that's the way to go, except that the current algorithms for the tool path generation (the ops) cannot deal with that This is one of the many reasons why I was so excited about the description of your approach - adn still am. Can't wait to see that in action and hopefully help along the way.
The tags are definitely the touchiest of all the dressups and in desperate need of a rewrite. I probably should have never added the automatic tag generation - except that I didn't know about the Snapper at the time and couldn't imagine how to enter the tags location in a sensible way.
I also toyed with the idea of adding the tags to the model as you suggest, and I think that's the way to go, except that the current algorithms for the tool path generation (the ops) cannot deal with that This is one of the many reasons why I was so excited about the description of your approach - adn still am. Can't wait to see that in action and hopefully help along the way.
-
- Posts: 74
- Joined: Tue Oct 23, 2018 3:35 pm
Re: Tag dressup not working on exterior curved paths
Thanks for the notes. This is amazingly fast response; there must be a lot of people watching.
I had a look at AD Fusion yesterday, and its tag feature is more limited (fewer shape options), there is no editing of positions, and it puts tags on the concave parts. So I think this implementation is ahead of the game. The other tag system I've looked at is makercam.com (it's written in flash, but I know people who swear by it.)
I have added some of this information to the wiki here: https://www.freecadweb.org/wiki/Path_DressupTag
The "dressup" structure in the UI would work well for linking, where the toolpath comes out of one algorithm with only retract links, and then various "linking dressup" options would do the reordering, and shortest path linking.
Applying tags as part of the model to the Z-values of the pass doesn't require full 3D tool surface collision modelling. If tags are considered as upright cones, hemispheres or cylinders then you can calculate the Z-height above the base using a simple formula, such as (for a cylinder):
If dist(tool_xy, tag_xy) < cylinder_radius+tool_radius then z = tag_height; otherwise z=0.
This will work even if the tag is not exactly on the path, or if you have other parts of the path coming close from the other side which would accidentally machine the tag away.
I'll need to investigate the contour milling code to see how this could fit in. I hope I can eventually find something to work on that makes a difference.
Am I right that this is the only cutting algorithm for which the tag dressup means something?
I had a look at AD Fusion yesterday, and its tag feature is more limited (fewer shape options), there is no editing of positions, and it puts tags on the concave parts. So I think this implementation is ahead of the game. The other tag system I've looked at is makercam.com (it's written in flash, but I know people who swear by it.)
I have added some of this information to the wiki here: https://www.freecadweb.org/wiki/Path_DressupTag
The "dressup" structure in the UI would work well for linking, where the toolpath comes out of one algorithm with only retract links, and then various "linking dressup" options would do the reordering, and shortest path linking.
Applying tags as part of the model to the Z-values of the pass doesn't require full 3D tool surface collision modelling. If tags are considered as upright cones, hemispheres or cylinders then you can calculate the Z-height above the base using a simple formula, such as (for a cylinder):
If dist(tool_xy, tag_xy) < cylinder_radius+tool_radius then z = tag_height; otherwise z=0.
This will work even if the tag is not exactly on the path, or if you have other parts of the path coming close from the other side which would accidentally machine the tag away.
I'll need to investigate the contour milling code to see how this could fit in. I hope I can eventually find something to work on that makes a difference.
Am I right that this is the only cutting algorithm for which the tag dressup means something?
Re: Tag dressup not working on exterior curved paths
The tag dressup (dogbone, dragknife) work on any of the profile ops. Contour is a Profile op with most of it's parameters preset, essentially it's a shortcut because almost every job needs one - at least so far.JulianTodd wrote: ↑Fri Dec 14, 2018 1:11 pm I'll need to investigate the contour milling code to see how this could fit in. I hope I can eventually find something to work on that makes a difference.
Am I right that this is the only cutting algorithm for which the tag dressup means something?