diff --git a/src/Mod/Arch/ArchComponent.py b/src/Mod/Arch/ArchComponent.py index c4f004ac4..9875ac796 100644 --- a/src/Mod/Arch/ArchComponent.py +++ b/src/Mod/Arch/ArchComponent.py @@ -26,6 +26,7 @@ __author__ = "Yorik van Havre" __url__ = "http://free-cad.sourceforge.net" import FreeCAD,FreeCADGui,Draft +from FreeCAD import Vector from PyQt4 import QtGui,QtCore from DraftTools import translate @@ -309,7 +310,7 @@ class Component: v1 = DraftVecUtils.scaleTo(n,width*1.1) # we extrude a little more to avoid face-on-face f.translate(v1) v2 = v1.negative() - v2 = v1.multiply(-2) + v2 = Vector(v1).multiply(-2) f = f.extrude(v2) if plac: f.Placement = plac diff --git a/src/Mod/Arch/ArchWall.py b/src/Mod/Arch/ArchWall.py index fc5cc617a..78c52d63d 100644 --- a/src/Mod/Arch/ArchWall.py +++ b/src/Mod/Arch/ArchWall.py @@ -411,18 +411,18 @@ class _Wall(ArchComponent.Component): if not DraftVecUtils.isNull(dvec): dvec.normalize() if obj.Align == "Left": - dvec = dvec.multiply(width) + dvec.multiply(width) w2 = DraftGeomUtils.offsetWire(wire,dvec) w1 = Part.Wire(DraftGeomUtils.sortEdges(wire.Edges)) sh = DraftGeomUtils.bind(w1,w2) elif obj.Align == "Right": - dvec = dvec.multiply(width) + dvec.multiply(width) dvec = dvec.negative() w2 = DraftGeomUtils.offsetWire(wire,dvec) w1 = Part.Wire(DraftGeomUtils.sortEdges(wire.Edges)) sh = DraftGeomUtils.bind(w1,w2) elif obj.Align == "Center": - dvec = dvec.multiply(width/2) + dvec.multiply(width/2) w1 = DraftGeomUtils.offsetWire(wire,dvec) dvec = dvec.negative() w2 = DraftGeomUtils.offsetWire(wire,dvec) @@ -459,8 +459,8 @@ class _Wall(ArchComponent.Component): pass elif (len(base.Faces) == 1) and (not obj.ForceWire): if height: - norm = normal.multiply(height) - base = base.extrude(norm) + normal.multiply(height) + base = base.extrude(normal) elif len(base.Wires) >= 1: temp = None for wire in obj.Base.Shape.Wires: diff --git a/src/Mod/Draft/Draft.py b/src/Mod/Draft/Draft.py index 66a679f21..f8f80ae7f 100644 --- a/src/Mod/Draft/Draft.py +++ b/src/Mod/Draft/Draft.py @@ -1018,12 +1018,12 @@ def array(objectslist,arg1,arg2,arg3,arg4=None): typecheck([(xvector,Vector), (yvector,Vector), (xnum,int), (ynum,int)], "rectArray") if not isinstance(objectslist,list): objectslist = [objectslist] for xcount in range(xnum): - currentxvector=xvector.multiply(xcount) + currentxvector=Vector(xvector).multiply(xcount) if not xcount==0: move(objectslist,currentxvector,True) for ycount in range(ynum): currentxvector=FreeCAD.Base.Vector(currentxvector) - currentyvector=currentxvector.add(yvector.multiply(ycount)) + currentyvector=currentxvector.add(Vector(yvector).multiply(ycount)) if not ycount==0: move(objectslist,currentyvector,True) def polarArray(objectslist,center,angle,num): @@ -1212,7 +1212,7 @@ def offset(obj,delta,copy=False,bind=False,sym=False,occ=False): pass else: if sym: - d1 = delta.multiply(0.5) + d1 = Vector(delta).multiply(0.5) d2 = d1.negative() n1 = DraftGeomUtils.offsetWire(obj.Shape,d1) n2 = DraftGeomUtils.offsetWire(obj.Shape,d2) @@ -3695,21 +3695,21 @@ class _Array(_DraftObject): import Part base = [shape.copy()] for xcount in range(xnum): - currentxvector=xvector.multiply(xcount) + currentxvector=Vector(xvector).multiply(xcount) if not xcount==0: nshape = shape.copy() nshape.translate(currentxvector) base.append(nshape) for ycount in range(ynum): currentyvector=FreeCAD.Vector(currentxvector) - currentyvector=currentyvector.add(yvector.multiply(ycount)) + currentyvector=currentyvector.add(Vector(yvector).multiply(ycount)) if not ycount==0: nshape = shape.copy() nshape.translate(currentyvector) base.append(nshape) for zcount in range(znum): currentzvector=FreeCAD.Vector(currentyvector) - currentzvector=currentzvector.add(zvector.multiply(zcount)) + currentzvector=currentzvector.add(Vector(zvector).multiply(zcount)) if not zcount==0: nshape = shape.copy() nshape.translate(currentzvector) diff --git a/src/Mod/Draft/DraftGeomUtils.py b/src/Mod/Draft/DraftGeomUtils.py index 86eb77fa4..d35122965 100755 --- a/src/Mod/Draft/DraftGeomUtils.py +++ b/src/Mod/Draft/DraftGeomUtils.py @@ -1871,8 +1871,8 @@ 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, edgeDir.multiply(projectedDist)) - projectedCen2 = Vector.add(s, edgeDir.multiply(-projectedDist)) + projectedCen1 = Vector.add(s, Vector(edgeDir).multiply(projectedDist)) + projectedCen2 = Vector.add(s, Vector(edgeDir).multiply(-projectedDist)) perpEdgeDir = edgeDir.cross(Vector(0,0,1)) perpCen1 = Vector.add(projectedCen1, perpEdgeDir) perpCen2 = Vector.add(projectedCen2, perpEdgeDir) @@ -1968,8 +1968,8 @@ def circleFromPointLineRadius (point, edge, radius): if dist.Length == 0: segment = vec(edge) perpVec = DraftVecUtils.crossproduct(segment); perpVec.normalize() - normPoint_c1 = perpVec.multiply(radius) - normPoint_c2 = perpVec.multiply(-radius) + normPoint_c1 = Vector(perpVec).multiply(radius) + normPoint_c2 = Vector(perpVec).multiply(-radius) center1 = point.add(normPoint_c1) center2 = point.add(normPoint_c2) elif dist.Length > 2 * radius: @@ -1989,8 +1989,8 @@ def circleFromPointLineRadius (point, edge, radius): dist = math.sqrt(radius**2 - (radius - normDist)**2) centerNormVec = DraftVecUtils.scaleTo(point.sub(normPoint), radius) edgeDir = edge.Vertexes[0].Point.sub(normPoint); edgeDir.normalize() - center1 = centerNormVec.add(normPoint.add(edgeDir.multiply(dist))) - center2 = centerNormVec.add(normPoint.add(edgeDir.multiply(-dist))) + center1 = centerNormVec.add(normPoint.add(Vector(edgeDir).multiply(dist))) + center2 = centerNormVec.add(normPoint.add(Vector(edgeDir).multiply(-dist))) circles = [] if center1: circ = Part.Circle(center1, NORM, radius) @@ -2020,8 +2020,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, perpDir.multiply(dist)) - cen2 = Vector.add(mid, perpDir.multiply(-dist)) + cen1 = Vector.add(mid, Vector(perpDir).multiply(dist)) + cen2 = Vector.add(mid, Vector(perpDir).multiply(-dist)) circles = [] if cen1: circles.append(Part.Circle(cen1, norm, radius)) if cen2: circles.append(Part.Circle(cen2, norm, radius)) @@ -2266,12 +2266,12 @@ def findHomotheticCenterOfCircles(circle1, circle2): perpCenDir = cenDir.cross(Vector(0,0,1)); perpCenDir.normalize() # Get point on first circle - p1 = Vector.add(circle1.Curve.Center, perpCenDir.multiply(circle1.Curve.Radius)) + p1 = Vector.add(circle1.Curve.Center, Vector(perpCenDir).multiply(circle1.Curve.Radius)) centers = [] # Calculate inner homothetic center # Get point on second circle - p2_inner = Vector.add(circle1.Curve.Center, perpCenDir.multiply(-circle1.Curve.Radius)) + p2_inner = Vector.add(circle1.Curve.Center, Vector(perpCenDir).multiply(-circle1.Curve.Radius)) hCenterInner = DraftVecUtils.intersect(circle1.Curve.Center, circle2.Curve.Center, p1, p2_inner, True, True) if hCenterInner: centers.append(hCenterInner) @@ -2279,7 +2279,7 @@ def findHomotheticCenterOfCircles(circle1, circle2): # 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, perpCenDir.multiply(circle1.Curve.Radius)) + p2_outer = Vector.add(circle1.Curve.Center, Vector(perpCenDir).multiply(circle1.Curve.Radius)) hCenterOuter = DraftVecUtils.intersect(circle1.Curve.Center, circle2.Curve.Center, p1, p2_outer, True, True) if hCenterOuter: centers.append(hCenterOuter) diff --git a/src/Mod/Draft/DraftTools.py b/src/Mod/Draft/DraftTools.py index 1d41311f9..db5d62b18 100644 --- a/src/Mod/Draft/DraftTools.py +++ b/src/Mod/Draft/DraftTools.py @@ -1351,7 +1351,7 @@ class Ellipse(Creator): p1 = self.node[0] p3 = self.node[-1] diagonal = p3.sub(p1) - halfdiag = diagonal.multiply(0.5) + halfdiag = Vector(diagonal).multiply(0.5) center = p1.add(halfdiag) p2 = p1.add(DraftVecUtils.project(diagonal, plane.v)) p4 = p1.add(DraftVecUtils.project(diagonal, plane.u)) @@ -1761,7 +1761,7 @@ class Dimension(Creator): # for unlinked arc mode: # if self.arcmode: # v = self.node[1].sub(self.node[0]) - # v = v.multiply(0.5) + # v.multiply(0.5) # cen = self.node[0].add(v) # self.node = [self.node[0],self.node[1],cen] self.createObject() @@ -2656,7 +2656,7 @@ class Trimex(Modifier): if real: if self.force: ray = self.newpoint.sub(v1) - ray = ray.multiply(self.force/ray.Length) + ray.multiply(self.force/ray.Length) self.newpoint = Vector.add(v1,ray) newedges.append(Part.Line(self.newpoint,v2).toShape()) else: diff --git a/src/Mod/Draft/WorkingPlane.py b/src/Mod/Draft/WorkingPlane.py index 45a3fc0f4..7c7aa5bdf 100644 --- a/src/Mod/Draft/WorkingPlane.py +++ b/src/Mod/Draft/WorkingPlane.py @@ -261,9 +261,9 @@ class plane: def getGlobalCoords(self,point): "returns the global coordinates of the given point, taken relatively to this working plane" - vx = self.u.multiply(point.x) - vy = self.v.multiply(point.y) - vz = self.axis.multiply(point.z) + vx = Vector(self.u).multiply(point.x) + vy = Vector(self.v).multiply(point.y) + vz = Vector(self.axis).multiply(point.z) pt = (vx.add(vy)).add(vz) return pt.add(self.position) @@ -285,9 +285,9 @@ class plane: def getGlobalRot(self,point): "Same as getGlobalCoords, but discards the WP position" - vx = self.u.multiply(point.x) - vy = self.v.multiply(point.y) - vz = self.axis.multiply(point.z) + vx = Vector(self.u).multiply(point.x) + vy = Vector(self.v).multiply(point.y) + vz = Vector(self.axis).multiply(point.z) pt = (vx.add(vy)).add(vz) return pt diff --git a/src/Mod/Draft/importDXF.py b/src/Mod/Draft/importDXF.py index 9735ef914..7adc1c93e 100644 --- a/src/Mod/Draft/importDXF.py +++ b/src/Mod/Draft/importDXF.py @@ -145,8 +145,8 @@ def calcBulge(v1,bulge,v2): ''' chord = v2.sub(v1) sagitta = (bulge * chord.Length)/2 - startpoint = v1.add(chord.multiply(0.5)) perp = chord.cross(Vector(0,0,1)) + startpoint = v1.add(chord.multiply(0.5)) if not DraftVecUtils.isNull(perp): perp.normalize() endpoint = perp.multiply(sagitta) return startpoint.add(endpoint) @@ -231,7 +231,7 @@ class fcformat: v1 = FreeCAD.Vector(r1,g1,b1) v2 = FreeCAD.Vector(r2,g2,b2) v = v2.sub(v1) - v = v.multiply(0.5) + v.multiply(0.5) cv = v1.add(v) else: c1 = bparams.GetUnsigned("BackgroundColor") diff --git a/src/Mod/Draft/importSVG.py b/src/Mod/Draft/importSVG.py index 2f792ba1b..b78911260 100644 --- a/src/Mod/Draft/importSVG.py +++ b/src/Mod/Draft/importSVG.py @@ -320,7 +320,7 @@ def arcend2center(lastvec,currentvec,rx,ry,xrotation=0.0,correction=False): rx = float(rx) ry = float(ry) v0 = lastvec.sub(currentvec) - v0 = v0.multiply(0.5) + v0.multiply(0.5) m1=FreeCAD.Matrix() m1.rotateZ(-xrotation) #Formular 6.5.1 v1=m1.multiply(v0) @@ -347,7 +347,7 @@ def arcend2center(lastvec,currentvec,rx,ry,xrotation=0.0,correction=False): m2=FreeCAD.Matrix() m2.rotateZ(xrotation) centeroff = currentvec.add(lastvec) - centeroff = centeroff.multiply(.5) + centeroff.multiply(.5) vcenter = m2.multiply(vcx1).add(centeroff) # Step3 F.6.5.3 #angle1 = Vector(1,0,0).getAngle(Vector((v1.x-vcx1.x)/rx,(v1.y-vcx1.y)/ry,0)) # F.6.5.5 #angledelta = Vector((v1.x-vcx1.x)/rx,(v1.y-vcx1.y)/ry,0).getAngle(Vector((-v1.x-vcx1.x)/rx,(-v1.y-vcx1.y)/ry,0)) # F.6.5.6 @@ -616,11 +616,11 @@ class svgHandler(xml.sax.ContentHandler): else: # anticlockwise perp = DraftVecUtils.rotate2D(chord,math.pi/2) - chord = chord.multiply(.5) + chord.multiply(.5) if chord.Length > rx: a = 0 else: a = math.sqrt(rx**2-chord.Length**2) s = rx - a - perp = perp.multiply(s/perp.Length) + perp.multiply(s/perp.Length) midpoint = lastvec.add(chord.add(perp)) seg = Part.Arc(lastvec,midpoint,currentvec).toShape() else:# big arc or elliptical arc