no holding tags on round parts

Here's the place for discussion related to CAM/CNC and the development of the Path module.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Post Reply
rweait
Posts: 10
Joined: Sat Mar 04, 2017 6:01 pm

no holding tags on round parts

Post by rweait »

Hello. Many thanks for the Path module and all of the other goodies in FreeCAD.

It appears that holding-tags-dressup will not successfully place a holding tag on a curved portion of a part. On my complex poly-line part, holding tags are added to the rare flat spots. This sample cylinder gets no tags.

The error reported, in part, is:
"<type 'exceptions.IndexError'>: list index out of range
Traceback (most recent call last):
File "/usr/lib/freecad-daily/Mod/Path/PathScripts/PathDressupHoldingTags.py", line 1392, in addSelection
self.panel.selectTagWithId(i)"

Image

OS: Ubuntu 16.04.2 LTS
Word size of OS: 32-bit
Word size of FreeCAD: 32-bit
Version: 0.17.10646 (Git)
Build type: None
Branch: (detached from 732bd85)
Hash: 809758b7395f8e591a8a196459bf5a014a864aaf
Python version: 2.7.12
Qt version: 4.8.7
Coin version: 4.0.0a
OCC version: 7.1.0
mlampert
Veteran
Posts: 1772
Joined: Fri Sep 16, 2016 9:28 pm

Re: no holding tags on round parts

Post by mlampert »

Interestingly a cylinder has always been a test object for the holding tags - and I just tried it still seems to work (at least the way I tested it).

Could you share your file?
rweait
Posts: 10
Joined: Sat Mar 04, 2017 6:01 pm

Re: no holding tags on round parts

Post by rweait »

Including my sample file.
http://weait.com/round-part-tags.fcstd
mlampert
Veteran
Posts: 1772
Joined: Fri Sep 16, 2016 9:28 pm

Re: no holding tags on round parts

Post by mlampert »

rweait wrote:Including my sample file.
http://weait.com/round-part-tags.fcstd
mhh - works for me. What are your settings for the tags?
Also, could you update to the latest git repo and try again?
rweait
Posts: 10
Joined: Sat Mar 04, 2017 6:01 pm

Re: no holding tags on round parts

Post by rweait »

Thank you, mlampert, your tip on tag settings is helpful.
The default tag settings caused an error in my case. By changing the tag length and width to smaller values, the contour path reappears and the tags appear on the gui.
I'm finding a further, and perhaps related, issue. Perhaps I'm just clarifying the same issue, as I haven't been able to generate gcode from this file when I include holding tags. I'll try to state all of my actions so that where I'm mis-assuming might be apparent.

First I try to create a cylinder.
start freecad-daily, open a new document, select part-design WB, create a body, start a sketch in XY.
Draw a circle, pad it.
Save the file with a file name.

Now I try to generate some gcode.
Switch to Path WB. Create a job, based on the body. Use the default centroid_post.py, I don't assign a filename.
Click on ToolManager, create a tool controller for an endmill.
Open that tool controller and set feeds and speed.

Click on contour button.

Everything looks okay (to me) so far.

Click PostProcess the selected job.
First problem found.

Code: Select all

  File "/usr/lib/freecad-daily/Mod/Path/PathScripts/centroid_post.py", line 93, in export
    gcode+= UNITS+'\n'

local variable 'UNITS' referenced before assignment
Change to linuxcnc_post.py for this job.

Click postprocess the selected job, generated gcode looks reasonable, and no warnings or errors are apparent. Yay!

Now I try to add holding tags. It starts with an error

Select the contour. Select Path>>PathDressup>>HoldingTags Dressup

- HoldingTagsDressup appears in document, with red error flag. Message window informs: list index out of range

Code: Select all

PathPost.DEBUG: obj: Contour
PathPost(171).exportObjectsWith()
Traceback (most recent call last):
  File "/usr/lib/freecad-daily/Mod/Path/PathScripts/PathDressupHoldingTags.py", line 856, in execute
    self.doExecute(obj)
  File "/usr/lib/freecad-daily/Mod/Path/PathScripts/PathDressupHoldingTags.py", line 888, in doExecute
    self.processTags(obj)
  File "/usr/lib/freecad-daily/Mod/Path/PathScripts/PathDressupHoldingTags.py", line 903, in processTags
    obj.Path = self.createPath(obj, self.pathData, self.tags)
  File "/usr/lib/freecad-daily/Mod/Path/PathScripts/PathDressupHoldingTags.py", line 781, in createPath
    mapper.add(edge)
  File "/usr/lib/freecad-daily/Mod/Path/PathScripts/PathDressupHoldingTags.py", line 528, in add
    self.commands.extend(self.commandsForEdges())
  File "/usr/lib/freecad-daily/Mod/Path/PathScripts/PathDressupHoldingTags.py", line 490, in commandsForEdges
    for e,flip in self.orderAndFlipEdges(self.cleanupEdges(shape.Edges)):
  File "/usr/lib/freecad-daily/Mod/Path/PathScripts/PathDressupHoldingTags.py", line 375, in cleanupEdges
    self.realEntry = sorted(self.edgePoints, key=lambda p: (p - self.entry).Length)[0]
<type 'exceptions.IndexError'>: list index out of range
I open the dressup and change the width and height each to 2mm. Error flag disappears. Tags and contour appear to render in gui.

Try to generate the gcode for these paths. It doesn't go well.

Code: Select all

PathPost(194).Activated()
PathPost.DEBUG: Possible post objects: [u'Job']
PathPost.DEBUG: about to postprocess job: Job
PathPost.DEBUG: obj: Default_Tool
PathPost.DEBUG: obj: T45__eighth_carbide
PathPost.DEBUG: obj: HoldingTagsDressup
Running the Python command 'Path_Post' failed:
Traceback (most recent call last):
  File "/usr/lib/freecad-daily/Mod/Path/PathScripts/PathPost.py", line 248, in Activated
    if obj.ToolController.ToolNumber != currTool:

'FeaturePython' object has no attribute 'ToolController'


What? No tool controller? Okay, I check the contour to which I've added the holding tags. It still has the 1/8" end mill selected.

Now what? Try again?

I delete the DressupHoldingTags. The contour path looks okay, but the generated gcode now is nearly empty; just the preamble and postamble.

So
I'd love to know which critical steps I'm missing in creating my file. Thanks in advance for your patience with me.
If by chance, I'm finding some bugs? Yay! Let me know how I can help?

I've zipped my document file, and the gcode, here: http://weait.com/freecad-cylinder-holding-tags.zip

Best regards,

Version info
OS: Ubuntu 16.04.2 LTS
Word size of OS: 32-bit
Word size of FreeCAD: 32-bit
Version: 0.17.10707 (Git)
Build type: None
Branch: master
Hash: 04a3283000cfdf92b26c54fd4ae7a0fbd636a74b
Python version: 2.7.12
Qt version: 4.8.7
Coin version: 4.0.0a
OCC version: 7.1.0
User avatar
bill
Posts: 376
Joined: Fri Jan 09, 2015 9:25 pm

Re: no holding tags on round parts

Post by bill »

I dont think you are missing any critical steps RWEAIT!

Went through step by step to encounter all the same problems. Something is not right! I see things not updating properly.

I noticed that once dressup tags are applied, the STEP DOWN is locked out. You can change it in properties panel, but it will not be applied/updated to the object until you remove the dressup.

At least thats what I thought I was seeing. It was very late at night at the time!
rweait
Posts: 10
Joined: Sat Mar 04, 2017 6:01 pm

Re: no holding tags on round parts

Post by rweait »

This problem appears to now be resolved. I have removed freecad and freecad-daily, then reinstalled freecad-daily, only.

:-)
Post Reply