From b1de8d217e20ce36cca92b42e3c667db6fef7bfc Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Tue, 22 May 2012 12:00:03 -0300 Subject: [PATCH] Further Draft lib name fixes --- src/Mod/Arch/ArchSectionPlane.py | 3 +- src/Mod/Draft/DraftGeomUtils.py | 170 +++++++++++++++---------------- 2 files changed, 87 insertions(+), 86 deletions(-) diff --git a/src/Mod/Arch/ArchSectionPlane.py b/src/Mod/Arch/ArchSectionPlane.py index 59c802382..e1230e59f 100644 --- a/src/Mod/Arch/ArchSectionPlane.py +++ b/src/Mod/Arch/ArchSectionPlane.py @@ -21,7 +21,7 @@ #* * #*************************************************************************** -import FreeCAD,FreeCADGui,ArchComponent,WorkingPlane,Drawing,math,Draft,ArchCommands, DraftVecUtils +import FreeCAD,FreeCADGui,ArchComponent,WorkingPlane,math,Draft,ArchCommands, DraftVecUtils from FreeCAD import Vector from PyQt4 import QtCore from pivy import coin @@ -197,6 +197,7 @@ class _ArchDrawingView: else: # render using the Drawing module + import Drawing shapes = [] for o in objs: if o.isDerivedFrom("Part::Feature"): diff --git a/src/Mod/Draft/DraftGeomUtils.py b/src/Mod/Draft/DraftGeomUtils.py index ccacbf62c..16468ad0c 100755 --- a/src/Mod/Draft/DraftGeomUtils.py +++ b/src/Mod/Draft/DraftGeomUtils.py @@ -27,7 +27,7 @@ __url__ = ["http://free-cad.sourceforge.net"] "this file contains generic geometry functions for manipulating Part shapes" -import FreeCAD, Part, fcvec, math, cmath +import FreeCAD, Part, DraftVecUtils, math, cmath from FreeCAD import Vector NORM = Vector(0,0,1) # provisory normal direction for all geometry ops. @@ -51,7 +51,7 @@ def vec(edge): def edg(p1,p2): "edg(Vector,Vector) -- returns an edge from 2 vectors" if isinstance(p1,FreeCAD.Vector) and isinstance(p2,FreeCAD.Vector): - if fcvec.equals(p1,p2): return None + if DraftVecUtils.equals(p1,p2): return None else: return Part.Line(p1,p2).toShape() def getVerts(shape): @@ -85,7 +85,7 @@ def isPtOnEdge(pt,edge) : '''isPtOnEdge(Vector,edge) -- Tests if a point is on an edge''' if isinstance(edge.Curve,Part.Line) : orig = edge.Vertexes[0].Point - if fcvec.isNull(pt.sub(orig).cross(vec(edge))) : + if DraftVecUtils.isNull(pt.sub(orig).cross(vec(edge))) : return pt.sub(orig).Length <= vec(edge).Length and pt.sub(orig).dot(vec(edge)) >= 0 else : return False @@ -101,16 +101,16 @@ def isPtOnEdge(pt,edge) : else : begin = edge.Vertexes[0].Point end = edge.Vertexes[-1].Point - if fcvec.isNull(pt.sub(begin)) or fcvec.isNull(pt.sub(end)) : + if DraftVecUtils.isNull(pt.sub(begin)) or DraftVecUtils.isNull(pt.sub(end)) : return True else : # newArc = Part.Arc(begin,pt,end) - # return fcvec.isNull(newArc.Center.sub(center)) \ - # and fcvec.isNull(newArc.Axis-axis) \ + # return DraftVecUtils.isNull(newArc.Center.sub(center)) \ + # and DraftVecUtils.isNull(newArc.Axis-axis) \ # and round(newArc.Radius-radius,precision) == 0 - angle1 = fcvec.angle(begin.sub(center)) - angle2 = fcvec.angle(end.sub(center)) - anglept = fcvec.angle(pt.sub(center)) + angle1 = DraftVecUtils.angle(begin.sub(center)) + angle2 = DraftVecUtils.angle(end.sub(center)) + anglept = DraftVecUtils.angle(pt.sub(center)) if (angle1 < anglept) and (anglept < angle2): return True return False @@ -165,8 +165,8 @@ def findEdge(anEdge,aList): '''findEdge(anEdge,aList): returns True if anEdge is found in aList of edges''' for e in range(len(aList)): if str(anEdge.Curve) == str(aList[e].Curve): - if fcvec.equals(anEdge.Vertexes[0].Point,aList[e].Vertexes[0].Point): - if fcvec.equals(anEdge.Vertexes[-1].Point,aList[e].Vertexes[-1].Point): + if DraftVecUtils.equals(anEdge.Vertexes[0].Point,aList[e].Vertexes[0].Point): + if DraftVecUtils.equals(anEdge.Vertexes[-1].Point,aList[e].Vertexes[-1].Point): return(e) return None @@ -202,13 +202,13 @@ def findIntersection(edge1,edge2,infinite1=False,infinite2=False,ex1=False,ex2=F return [pt2] #we have 2 straight lines - if fcvec.isNull(pt2.sub(pt1).cross(pt3.sub(pt1)).cross(pt2.sub(pt4).cross(pt3.sub(pt4)))): + if DraftVecUtils.isNull(pt2.sub(pt1).cross(pt3.sub(pt1)).cross(pt2.sub(pt4).cross(pt3.sub(pt4)))): vec1 = pt2.sub(pt1) ; vec2 = pt4.sub(pt3) - if fcvec.isNull(vec1) or fcvec.isNull(vec2): + if DraftVecUtils.isNull(vec1) or DraftVecUtils.isNull(vec2): return [] vec1.normalize() ; vec2.normalize() cross = vec1.cross(vec2) - if not fcvec.isNull(cross) : + if not DraftVecUtils.isNull(cross) : k = ((pt3.z-pt1.z)*(vec2.x-vec2.y)+(pt3.y-pt1.y)*(vec2.z-vec2.x)+ \ (pt3.x-pt1.x)*(vec2.y-vec2.z))/(cross.x+cross.y+cross.z) vec1.scale(k,k,k) @@ -251,7 +251,7 @@ def findIntersection(edge1,edge2,infinite1=False,infinite2=False,ex1=False,ex2=F elif (pt2 in [pt3,pt4]): return [pt2] - if fcvec.isNull(pt1.sub(center).cross(pt2.sub(center)).cross(arc.Curve.Axis)) : + if DraftVecUtils.isNull(pt1.sub(center).cross(pt2.sub(center)).cross(arc.Curve.Axis)) : # Line and Arc are on same plane dOnLine = center.sub(pt1).dot(dirVec) @@ -303,18 +303,18 @@ def findIntersection(edge1,edge2,infinite1=False,infinite2=False,ex1=False,ex2=F axis1, axis2 = edge1.Curve.Axis , edge2.Curve.Axis c2c = cent2.sub(cent1) - if fcvec.isNull(axis1.cross(axis2)) : + if DraftVecUtils.isNull(axis1.cross(axis2)) : if round(c2c.dot(axis1),precision) == 0 : # circles are on same plane dc2c = c2c.Length ; - if not fcvec.isNull(c2c): c2c.normalize() + if not DraftVecUtils.isNull(c2c): c2c.normalize() if round(rad1+rad2-dc2c,precision) < 0 \ or round(rad1-dc2c-rad2,precision) > 0 or round(rad2-dc2c-rad1,precision) > 0 : return [] else : norm = c2c.cross(axis1) - if not fcvec.isNull(norm): norm.normalize() - if fcvec.isNull(norm): x = 0 + if not DraftVecUtils.isNull(norm): norm.normalize() + if DraftVecUtils.isNull(norm): x = 0 else: x = (dc2c**2 + rad1**2 - rad2**2)/(2*dc2c) y = abs(rad1**2 - x**2)**(0.5) c2c.scale(x,x,x) @@ -369,8 +369,8 @@ def geom(edge): v2 = edge.Vertexes[-1].Point c = edge.Curve.Center cu = Part.Circle(edge.Curve.Center,edge.Curve.Axis,edge.Curve.Radius) - a1 = -fcvec.angle(v1.sub(c),ref,edge.Curve.Axis) - a2 = -fcvec.angle(v2.sub(c),ref,edge.Curve.Axis) + a1 = -DraftVecUtils.angle(v1.sub(c),ref,edge.Curve.Axis) + a2 = -DraftVecUtils.angle(v2.sub(c),ref,edge.Curve.Axis) print "creating sketch arc from ",cu, ", p1=",v1, " (",math.degrees(a1), "d) p2=",v2," (", math.degrees(a2),"d)" p= Part.ArcOfCircle(cu,a1,a2) return p @@ -382,7 +382,7 @@ def mirror (point, edge): normPoint = point.add(findDistance(point, edge, False)) if normPoint: normPoint_point = Vector.sub(point, normPoint) - normPoint_refl = fcvec.neg(normPoint_point) + normPoint_refl = DraftVecUtils.neg(normPoint_point) refl = Vector.add(normPoint, normPoint_refl) return refl else: @@ -547,13 +547,13 @@ def findWires(edgeslist): return False if len(e2.Vertexes) < 2: return False - if fcvec.equals(e1.Vertexes[0].Point,e2.Vertexes[0].Point): + if DraftVecUtils.equals(e1.Vertexes[0].Point,e2.Vertexes[0].Point): return True - if fcvec.equals(e1.Vertexes[0].Point,e2.Vertexes[-1].Point): + if DraftVecUtils.equals(e1.Vertexes[0].Point,e2.Vertexes[-1].Point): return True - if fcvec.equals(e1.Vertexes[-1].Point,e2.Vertexes[0].Point): + if DraftVecUtils.equals(e1.Vertexes[-1].Point,e2.Vertexes[0].Point): return True - if fcvec.equals(e1.Vertexes[-1].Point,e2.Vertexes[-1].Point): + if DraftVecUtils.equals(e1.Vertexes[-1].Point,e2.Vertexes[-1].Point): return True return False @@ -656,7 +656,7 @@ def findMidpoint(edge): if len(edge.Vertexes) == 1: # Circle dv = first.sub(center) - dv = fcvec.neg(dv) + dv = DraftVecUtils.neg(dv) return center.add(dv) axis = edge.Curve.Axis chord = last.sub(first) @@ -665,12 +665,12 @@ def findMidpoint(edge): ray = first.sub(center) apothem = ray.dot(perp) sagitta = radius - apothem - startpoint = Vector.add(first, fcvec.scale(chord,0.5)) - endpoint = fcvec.scaleTo(perp,sagitta) + startpoint = Vector.add(first, DraftVecUtils.scale(chord,0.5)) + endpoint = DraftVecUtils.scaleTo(perp,sagitta) return Vector.add(startpoint,endpoint) elif isinstance(edge.Curve,Part.Line): - halfedge = fcvec.scale(last.sub(first),.5) + halfedge = DraftVecUtils.scale(last.sub(first),.5) return Vector.add(first,halfedge) else: @@ -759,7 +759,7 @@ def isReallyClosed(wire): if len(wire.Edges) == len(wire.Vertexes): return True v1 = wire.Vertexes[0].Point v2 = wire.Vertexes[-1].Point - if fcvec.equals(v1,v2): return True + if DraftVecUtils.equals(v1,v2): return True return False def getNormal(shape): @@ -784,7 +784,7 @@ def getNormal(shape): if FreeCAD.GuiUp: import Draft vdir = Draft.get3DView().getViewDirection() - if n.getAngle(vdir) < 0.78: n = fcvec.neg(n) + if n.getAngle(vdir) < 0.78: n = DraftVecUtils.neg(n) return n def offsetWire(wire,dvec,bind=False,occ=False): @@ -815,8 +815,8 @@ def offsetWire(wire,dvec,bind=False,occ=False): curredge = edges[i] delta = dvec if i != 0: - angle = fcvec.angle(vec(edges[0]),vec(curredge),norm) - delta = fcvec.rotate(delta,angle,norm) + angle = DraftVecUtils.angle(vec(edges[0]),vec(curredge),norm) + delta = DraftVecUtils.rotate(delta,angle,norm) nedge = offset(curredge,delta) nedges.append(nedge) nedges = connect(nedges,closed) @@ -890,7 +890,7 @@ def findDistance(point,edge,strict=False): chord = edge.Vertexes[0].Point.sub(point) norm = segment.cross(chord) perp = segment.cross(norm) - dist = fcvec.project(chord,perp) + dist = DraftVecUtils.project(chord,perp) if not dist: return None newpoint = point.add(dist) if (dist.Length == 0): @@ -912,14 +912,14 @@ def findDistance(point,edge,strict=False): center = edge.Curve.Center segment = center.sub(point) ratio = (segment.Length - edge.Curve.Radius) / segment.Length - dist = fcvec.scale(segment,ratio) + dist = DraftVecUtils.scale(segment,ratio) newpoint = Vector.add(point, dist) if (dist.Length == 0): return None if strict and ve2: - ang1 = fcvec.angle(ve1.sub(center)) - ang2 = fcvec.angle(ve2.sub(center)) - angpt = fcvec.angle(newpoint.sub(center)) + ang1 = DraftVecUtils.angle(ve1.sub(center)) + ang2 = DraftVecUtils.angle(ve2.sub(center)) + angpt = DraftVecUtils.angle(newpoint.sub(center)) if ((angpt <= ang2 and angpt >= ang1) or (angpt <= ang1 and angpt >= ang2)): return dist else: @@ -954,15 +954,15 @@ def angleBisection(edge1, edge2): int = findIntersection(edge1, edge2, True, True) if int: line1Dir = p2.sub(p1) - angleDiff = fcvec.angle(line1Dir, p4.sub(p3)) + angleDiff = DraftVecUtils.angle(line1Dir, p4.sub(p3)) ang = angleDiff * 0.5 origin = int[0] line1Dir.normalize() - dir = fcvec.rotate(line1Dir, ang) + dir = DraftVecUtils.rotate(line1Dir, ang) return Part.Line(origin,origin.add(dir)).toShape() else: diff = p3.sub(p1) - origin = p1.add(fcvec.scale(diff, 0.5)) + origin = p1.add(DraftVecUtils.scale(diff, 0.5)) dir = p2.sub(p1); dir.normalize() return Part.Line(origin,origin.add(dir)).toShape() else: @@ -998,8 +998,8 @@ def isPlanar(shape): n = bt.normalAt(0,0) for p in shape.Vertexes[3:]: pv = p.Point.sub(pts[0]) - rv = fcvec.project(pv,n) - if not fcvec.isNull(rv): + rv = DraftVecUtils.project(pv,n) + if not DraftVecUtils.isNull(rv): return False return True @@ -1216,9 +1216,9 @@ def getCubicDimensions(shape): vx = vec(base.Edges[0]) vy = vec(base.Edges[1]) # getting rotations - rotZ = fcvec.angle(vx) - rotY = fcvec.angle(vx,FreeCAD.Vector(vx.x,vx.y,0)) - rotX = fcvec.angle(vy,FreeCAD.Vector(vy.x,vy.y,0)) + rotZ = DraftVecUtils.angle(vx) + rotY = DraftVecUtils.angle(vx,FreeCAD.Vector(vx.x,vx.y,0)) + rotX = DraftVecUtils.angle(vy,FreeCAD.Vector(vy.x,vy.y,0)) # getting height vz = None rpi = round(math.pi/2,precision) @@ -1687,22 +1687,22 @@ def circlefrom1Line2Points(edge, p1, p2): v2 = p2.sub(s) projectedDist = math.sqrt(abs(v1.dot(v2))) edgeDir = vec(edge); edgeDir.normalize() - projectedCen1 = Vector.add(s, fcvec.scale(edgeDir, projectedDist)) - projectedCen2 = Vector.add(s, fcvec.scale(edgeDir, -projectedDist)) + projectedCen1 = Vector.add(s, DraftVecUtils.scale(edgeDir, projectedDist)) + projectedCen2 = Vector.add(s, DraftVecUtils.scale(edgeDir, -projectedDist)) perpEdgeDir = edgeDir.cross(Vector(0,0,1)) perpCen1 = Vector.add(projectedCen1, perpEdgeDir) perpCen2 = Vector.add(projectedCen2, perpEdgeDir) mid = findMidpoint(p1_p2) - x = fcvec.crossproduct(vec(p1_p2)); x.normalize() + x = DraftVecUtils.crossproduct(vec(p1_p2)); x.normalize() perp_mid = Vector.add(mid, x) cen1 = findIntersection(edg(projectedCen1, perpCen1), edg(mid, perp_mid), True, True) cen2 = findIntersection(edg(projectedCen2, perpCen2), edg(mid, perp_mid), True, True) circles = [] if cen1: - radius = fcvec.dist(projectedCen1, cen1[0]) + radius = DraftVecUtils.dist(projectedCen1, cen1[0]) circles.append(Part.Circle(cen1[0], NORM, radius)) if cen2: - radius = fcvec.dist(projectedCen2, cen2[0]) + radius = DraftVecUtils.dist(projectedCen2, cen2[0]) circles.append(Part.Circle(cen2[0], NORM, radius)) if circles: return circles @@ -1714,26 +1714,26 @@ def circleFrom2LinesRadius (edge1, edge2, radius): if not int: return None int = int[0] bis12 = angleBisection(edge1,edge2) - bis21 = Part.Line(bis12.Vertexes[0].Point,fcvec.rotate(vec(bis12), math.pi/2.0)) - ang12 = abs(fcvec.angle(vec(edge1),vec(edge2))) + bis21 = Part.Line(bis12.Vertexes[0].Point,DraftVecUtils.rotate(vec(bis12), math.pi/2.0)) + ang12 = abs(DraftVecUtils.angle(vec(edge1),vec(edge2))) ang21 = math.pi - ang12 dist12 = radius / math.sin(ang12 * 0.5) dist21 = radius / math.sin(ang21 * 0.5) circles = [] - cen = Vector.add(int, fcvec.scale(vec(bis12), dist12)) + cen = Vector.add(int, DraftVecUtils.scale(vec(bis12), dist12)) circles.append(Part.Circle(cen, NORM, radius)) - cen = Vector.add(int, fcvec.scale(vec(bis12), -dist12)) + cen = Vector.add(int, DraftVecUtils.scale(vec(bis12), -dist12)) circles.append(Part.Circle(cen, NORM, radius)) - cen = Vector.add(int, fcvec.scale(vec(bis21), dist21)) + cen = Vector.add(int, DraftVecUtils.scale(vec(bis21), dist21)) circles.append(Part.Circle(cen, NORM, radius)) - cen = Vector.add(int, fcvec.scale(vec(bis21), -dist21)) + cen = Vector.add(int, DraftVecUtils.scale(vec(bis21), -dist21)) circles.append(Part.Circle(cen, NORM, radius)) return circles def circleFrom3LineTangents (edge1, edge2, edge3): "circleFrom3LineTangents(edge,edge,edge)" def rot(ed): - return Part.Line(v1(ed),v1(ed).add(fcvec.rotate(vec(ed),math.pi/2))).toShape() + return Part.Line(v1(ed),v1(ed).add(DraftVecUtils.rotate(vec(ed),math.pi/2))).toShape() bis12 = angleBisection(edge1,edge2) bis23 = angleBisection(edge2,edge3) bis31 = angleBisection(edge3,edge1) @@ -1766,7 +1766,7 @@ def circleFrom3LineTangents (edge1, edge2, edge3): for int in intersections: exists = False for cir in circles: - if fcvec.equals(cir.Center, int.Center): + if DraftVecUtils.equals(cir.Center, int.Center): exists = True break if not exists: @@ -1783,16 +1783,16 @@ def circleFromPointLineRadius (point, edge, radius): center2 = None if dist.Length == 0: segment = vec(edge) - perpVec = fcvec.crossproduct(segment); perpVec.normalize() - normPoint_c1 = fcvec.scale(perpVec, radius) - normPoint_c2 = fcvec.scale(perpVec, -radius) + perpVec = DraftVecUtils.crossproduct(segment); perpVec.normalize() + normPoint_c1 = DraftVecUtils.scale(perpVec, radius) + normPoint_c2 = DraftVecUtils.scale(perpVec, -radius) center1 = point.add(normPoint_c1) center2 = point.add(normPoint_c2) elif dist.Length > 2 * radius: return None elif dist.Length == 2 * radius: normPoint = point.add(findDistance(point, edge, False)) - dummy = fcvec.scale(normPoint.sub(point), 0.5) + dummy = DraftVecUtils.scale(normPoint.sub(point), 0.5) cen = point.add(dummy) circ = Part.Circle(cen, NORM, radius) if circ: @@ -1801,12 +1801,12 @@ def circleFromPointLineRadius (point, edge, radius): return None else: normPoint = point.add(findDistance(point, edge, False)) - normDist = fcvec.dist(normPoint, point) + normDist = DraftVecUtils.dist(normPoint, point) dist = math.sqrt(radius**2 - (radius - normDist)**2) - centerNormVec = fcvec.scaleTo(point.sub(normPoint), radius) + centerNormVec = DraftVecUtils.scaleTo(point.sub(normPoint), radius) edgeDir = edge.Vertexes[0].Point.sub(normPoint); edgeDir.normalize() - center1 = centerNormVec.add(normPoint.add(fcvec.scale(edgeDir, dist))) - center2 = centerNormVec.add(normPoint.add(fcvec.scale(edgeDir, -dist))) + center1 = centerNormVec.add(normPoint.add(DraftVecUtils.scale(edgeDir, dist))) + center2 = centerNormVec.add(normPoint.add(DraftVecUtils.scale(edgeDir, -dist))) circles = [] if center1: circ = Part.Circle(center1, NORM, radius) @@ -1824,10 +1824,10 @@ def circleFromPointLineRadius (point, edge, radius): def circleFrom2PointsRadius(p1, p2, radius): "circleFrom2PointsRadiust(Vector, Vector, radius)" - if fcvec.equals(p1, p2): return None + if DraftVecUtils.equals(p1, p2): return None p1_p2 = Part.Line(p1, p2).toShape() - dist_p1p2 = fcvec.dist(p1, p1) + dist_p1p2 = DraftVecUtils.dist(p1, p1) mid = findMidpoint(p1_p2) if dist_p1p2 == 2*radius: circle = Part.Circle(mid, norm, radius) @@ -1836,8 +1836,8 @@ def circleFrom2PointsRadius(p1, p2, radius): dir = vec(p1_p2); dir.normalize() perpDir = dir.cross(Vector(0,0,1)); perpDir.normailze() dist = math.sqrt(radius**2 - (dist_p1p2 / 2.0)**2) - cen1 = Vector.add(mid, fcvec.scale(perpDir, dist)) - cen2 = Vector.add(mid, fcvec.scale(perpDir, -dist)) + cen1 = Vector.add(mid, DraftVecUtils.scale(perpDir, dist)) + cen2 = Vector.add(mid, DraftVecUtils.scale(perpDir, -dist)) circles = [] if cen1: circles.append(Part.Circle(cen1, norm, radius)) if cen2: circles.append(Part.Circle(cen2, norm, radius)) @@ -2069,7 +2069,7 @@ def findHomotheticCenterOfCircles(circle1, circle2): ''' if isinstance(circle1.Curve, Part.Circle) and isinstance(circle2.Curve, Part.Circle): - if fcvec.equals(circle1.Curve.Center, circle2.Curve.Center): + if DraftVecUtils.equals(circle1.Curve.Center, circle2.Curve.Center): return None cen1_cen2 = Part.Line(circle1.Curve.Center, circle2.Curve.Center).toShape() @@ -2079,21 +2079,21 @@ def findHomotheticCenterOfCircles(circle1, circle2): perpCenDir = cenDir.cross(Vector(0,0,1)); perpCenDir.normalize() # Get point on first circle - p1 = Vector.add(circle1.Curve.Center, fcvec.scale(perpCenDir, circle1.Curve.Radius)) + p1 = Vector.add(circle1.Curve.Center, DraftVecUtils.scale(perpCenDir, circle1.Curve.Radius)) centers = [] # Calculate inner homothetic center # Get point on second circle - p2_inner = Vector.add(circle1.Curve.Center, fcvec.scale(perpCenDir, -circle1.Curve.Radius)) - hCenterInner = fcvec.intersect(circle1.Curve.Center, circle2.Curve.Center, p1, p2_inner, True, True) + p2_inner = Vector.add(circle1.Curve.Center, DraftVecUtils.scale(perpCenDir, -circle1.Curve.Radius)) + hCenterInner = DraftVecUtils.intersect(circle1.Curve.Center, circle2.Curve.Center, p1, p2_inner, True, True) if hCenterInner: centers.append(hCenterInner) # Calculate outer homothetic center (only exists of the circles have different radii) if circle1.Curve.Radius != circle2.Curve.Radius: # Get point on second circle - p2_outer = Vector.add(circle1.Curve.Center, fcvec.scale(perpCenDir, circle1.Curve.Radius)) - hCenterOuter = fcvec.intersect(circle1.Curve.Center, circle2.Curve.Center, p1, p2_outer, True, True) + p2_outer = Vector.add(circle1.Curve.Center, DraftVecUtils.scale(perpCenDir, circle1.Curve.Radius)) + hCenterOuter = DraftVecUtils.intersect(circle1.Curve.Center, circle2.Curve.Center, p1, p2_outer, True, True) if hCenterOuter: centers.append(hCenterOuter) @@ -2121,13 +2121,13 @@ def findRadicalAxis(circle1, circle2): ''' if isinstance(circle1.Curve, Part.Circle) and isinstance(circle2.Curve, Part.Circle): - if fcvec.equals(circle1.Curve.Center, circle2.Curve.Center): + if DraftVecUtils.equals(circle1.Curve.Center, circle2.Curve.Center): return None r1 = circle1.Curve.Radius r2 = circle1.Curve.Radius cen1 = circle1.Curve.Center # dist .. the distance from cen1 to cen2. - dist = fcvec.dist(cen1, circle2.Curve.Center) + dist = DraftVecUtils.dist(cen1, circle2.Curve.Center) cenDir = cen1.sub(circle2.Curve.Center); cenDir.normalize() # Get the perpedicular vector. @@ -2142,7 +2142,7 @@ def findRadicalAxis(circle1, circle2): k1 = (dist + (r1^2 - r2^2) / dist) / 2.0 #k2 = dist - k1 - K = Vector.add(cen1, fcvec.scale(cenDir, k1)) + K = Vector.add(cen1, DraftVecUtils.scale(cenDir, k1)) # K_ .. A point somewhere between K and J (actually with a distance of 1 unit from K). K_ = Vector,add(K, perpCenDir) @@ -2208,13 +2208,13 @@ def pointInversion(circle, point): cen = circle.Curve.Center rad = circle.Curve.Radius - if fcvec.equals(cen, point): + if DraftVecUtils.equals(cen, point): return None # Inverse the distance of the point # dist(cen -> P) = r^2 / dist(cen -> invP) - dist = fcvec.dist(point, cen) + dist = DraftVecUtils.dist(point, cen) invDist = rad**2 / d invPoint = Vector(0, 0, point.z) @@ -2260,7 +2260,7 @@ def circleInversion(circle, circle2): cen1 = circle.Curve.Center rad1 = circle.Curve.Radius - if fcvec.equals(cen1, point): + if DraftVecUtils.equals(cen1, point): return None invCen2 = Inversion(circle, circle2.Curve.Center) @@ -2268,7 +2268,7 @@ def circleInversion(circle, circle2): pointOnCircle2 = Vector.add(circle2.Curve.Center, Vector(circle2.Curve.Radius, 0, 0)) invPointOnCircle2 = Inversion(circle, pointOnCircle2) - return Part.Circle(invCen2, norm, fcvec.dist(invCen2, invPointOnCircle2)) + return Part.Circle(invCen2, norm, DraftVecUtils.dist(invCen2, invPointOnCircle2)) else: print "debug: circleInversion bad parameters!\n"