Code: Select all
OS: Windows 10 Version 2009
Word size of FreeCAD: 64-bit
Version: 0.20.1.29410 (Git)
Build type: Release
Branch: releases/FreeCAD-0-20
Hash: f5d13554ecc7a456fb6e970568ae5c74ba727563
Python 3.8.10, Qt 5.15.2, Coin 4.0.1, Vtk 8.2.0, OCC 7.6.3
Installed mods:
* BIM 2021.12.0
* Design456 0.0.1
* Manipulator 1.4.5
I have the following code snippet which is working and executes in FC Python Console
Code: Select all
import draftguitools.gui_trackers as DraftTrackers
import FreeCADGui, FreeCAD, Part
class _MyTracker(DraftTrackers.boxTracker):
def __init__(self,val):
self.pts = []
self.pts.append(FreeCAD.Vector(1000,5000,0))
self.tracker = DraftTrackers.boxTracker()
self.tracker.width(200)
self.tracker.height(50)
self.tracker.length(100)
self.tracker.on()
FreeCAD.activeDocument().recompute()
self.tracker.setRotation(FreeCAD.DraftWorkingPlane.getRotation().Rotation)
FreeCADGui.Snapper.getPoint(callback=self.PointClick, movecallback=self.mousemove)
def PointClick(self, point, extra):
self.pts.append(point)
print(self.pts)
self.tracker.pos(point)
def mousemove(self, point, extra):
if len(self.pts) == 0:
return
print(len(self.pts))
if hasattr(FreeCAD,"DraftWorkingPlane"):
delta = 2000
#self.tracker.update([self.pts[0].add(delta),point.add(delta)])
if len(self.pts) > 0 :
print( self.pts[0] )
else:
print( len(self.pts) )
Self.tracker.finalize()
def execute(self, obj):
"""
Code comment
"""
if self.clone(obj):
return
a=FreeCAD.ActiveDocument.addObject("Part::Feature","Tracker")
mtrack = _MyTracker(a)
Aside from that I'd like to emphasize that derived MyTracker directly from DraftTrackers.boxTracker Class, probably the way it handles was not appropriate in my case, can you shed some light on that ?
Regards,