So the error thrown is:
Code: Select all
'ObjectDrilling' object has no attribute 'baseobject'
Which means that the initialization of obj.baseobject is not done at the point where I added that call to findAllHoles()-function. The operations work if I simply add obj.recompute() before calling that. I haven't been studying the code after the major refactoring of PathOp related stuff, so I am quite lost there. So I don't know why the recompute is required there or is that the best way to clear this problem. @mlampert what do you think?
For anyone willing to fix it right now, the Create() function on the end of file PathDrilling.py and PathHelix.py should be modified to contain obj.recompute() like so:
Code: Select all
def Create(name):
'''Create(name) ... Creates and returns a Helix operation.'''
obj = FreeCAD.ActiveDocument.addObject("Path::FeaturePython", name)
proxy = ObjectHelix(obj)
if obj.Proxy:
obj.recompute()
proxy.findAllHoles(obj)
return obj
Another thing I noticed is that on the Base Location tab, pressing Add and manually writing the coordinates or pressing Edit and trying to modify existing location does not work. I need to go right now, so I couldn't investigate this at all..