Further Draft lib name fixes
This commit is contained in:
parent
335d6cdfdb
commit
b1de8d217e
|
@ -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"):
|
||||
|
|
|
@ -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"
|
||||
|
|
Loading…
Reference in New Issue
Block a user