[Draft] Arc Tracker by 3points method
Added arcBy3Points method to arc tracker
This commit is contained in:
committed by
Yorik van Havre
parent
cdcc647458
commit
04ce90c4fd
@@ -505,7 +505,7 @@ class arcTracker(Tracker):
|
||||
self.recompute()
|
||||
|
||||
def getAngle(self,pt):
|
||||
"returns the angle of a given vector"
|
||||
"returns the angle of a given vector in radians"
|
||||
c = self.trans.translation.getValue()
|
||||
center = Vector(c[0],c[1],c[2])
|
||||
rad = pt.sub(center)
|
||||
@@ -514,7 +514,7 @@ class arcTracker(Tracker):
|
||||
return(a)
|
||||
|
||||
def getAngles(self):
|
||||
"returns the start and end angles"
|
||||
"returns the start and end angles in degrees"
|
||||
return(self.startangle,self.endangle)
|
||||
|
||||
def setStartPoint(self,pt):
|
||||
@@ -531,6 +531,21 @@ class arcTracker(Tracker):
|
||||
self.endangle = self.startangle + ap
|
||||
self.recompute()
|
||||
|
||||
def setBy3Points(self,p1,p2,p3):
|
||||
"sets the arc by three points"
|
||||
import Part
|
||||
try:
|
||||
arc=Part.ArcOfCircle(p1,p2,p3)
|
||||
except: return
|
||||
e=arc.toShape()
|
||||
self.autoinvert = False
|
||||
self.normal = e.Curve.Axis.negative() # axis is always in wrong direction
|
||||
self.basevector = self.getDeviation()
|
||||
self.setCenter(e.Curve.Center)
|
||||
self.setRadius(e.Curve.Radius)
|
||||
self.setStartPoint(p1)
|
||||
self.setEndPoint(p3)
|
||||
|
||||
def recompute(self):
|
||||
import Part,re
|
||||
if self.circle:
|
||||
@@ -570,7 +585,7 @@ class arcTracker(Tracker):
|
||||
self.sep.addChild(self.circle)
|
||||
else:
|
||||
FreeCAD.Console.PrintWarning("arcTracker.recompute() failed to read-in Inventor string\n")
|
||||
|
||||
|
||||
|
||||
class ghostTracker(Tracker):
|
||||
'''A Ghost tracker, that allows to copy whole object representations.
|
||||
|
||||
Reference in New Issue
Block a user