Update Draft.py
This commit is contained in:
committed by
Yorik van Havre
parent
d259a17b16
commit
7b5d6d2944
@@ -727,15 +727,23 @@ def makeCircle(radius, placement=None, face=None, startangle=None, endangle=None
|
||||
placement = FreeCAD.Placement(edge.Placement)
|
||||
delta = edge.Curve.Center.sub(placement.Base)
|
||||
placement.move(delta)
|
||||
# Rotation of the edge
|
||||
rotOk = FreeCAD.Rotation(edge.Curve.XAxis, edge.Curve.YAxis, edge.Curve.Axis, "ZXY")
|
||||
placement.Rotation = rotOk
|
||||
if len(edge.Vertexes) > 1:
|
||||
# ref = placement.multVec(FreeCAD.Vector(1,0,0)) ## INCORRECT
|
||||
ref = FreeCAD.Vector(1,0,0)
|
||||
#ref = placement.multVec(FreeCAD.Vector(1,0,0))
|
||||
#ref = ref.sub(edge.Curve.Center)
|
||||
v1 = (edge.Vertexes[0].Point).sub(edge.Curve.Center)
|
||||
v2 = (edge.Vertexes[-1].Point).sub(edge.Curve.Center)
|
||||
a1 = -math.degrees(DraftVecUtils.angle(v1,ref))
|
||||
a2 = -math.degrees(DraftVecUtils.angle(v2,ref))
|
||||
obj.FirstAngle = a1
|
||||
obj.LastAngle = a2
|
||||
#a1 = -math.degrees(DraftVecUtils.angle(v1,ref))
|
||||
#a2 = -math.degrees(DraftVecUtils.angle(v2,ref))
|
||||
v0 = (edge.Curve.XAxis).normalize()
|
||||
v1.normalize()
|
||||
v2.normalize()
|
||||
# Angle between edge.Curve.XAxis and the vector from center to start of arc
|
||||
obj.FirstAngle = math.degrees(math.acos((v0.x*v1.x)+(v0.y*v1.y)+(v0.z*v1.z)))
|
||||
# Angle between edge.Curve.XAxis and the vector from center to end of arc
|
||||
obj.LastAngle = math.degrees(math.acos((v0.x*v2.x)+(v0.y*v2.y)+(v0.z*v2.z)))
|
||||
else:
|
||||
obj.Radius = radius
|
||||
if (startangle != None) and (endangle != None):
|
||||
|
||||
Reference in New Issue
Block a user