Draft: import Part module where necessary for the tools

Also import `DraftGeomUtils` where necessary.

These modules were previously imported globaly when the base
`DraftTool` class was first called by the individual tools
through the `Creator` and `Modifier` classes.

However, since `DraftTool` was moved to a separate module,
these `Part` and `DraftGeomUtils` modules are no longer
in the `DraftTools` namespace, and therefore they
cannot be imported globally anymore.

Now the `Part` and `DraftGeomUtils` modules are imported
in the specific functions where they are actually needed.
This commit is contained in:
vocx-fc
2020-03-29 18:53:30 -06:00
committed by Yorik van Havre
parent 9b3096353c
commit 181c5cb60d

View File

@@ -272,6 +272,7 @@ class Line(Creator):
def undolast(self):
"""undoes last line segment"""
import Part
if (len(self.node) > 1):
self.node.pop()
last = self.node[-1]
@@ -288,6 +289,7 @@ class Line(Creator):
def drawSegment(self,point):
"""draws a new segment"""
import Part
if self.planetrack and self.node:
self.planetrack.set(self.node[-1])
if (len(self.node) == 1):
@@ -440,6 +442,7 @@ class BSpline(Line):
def undolast(self):
"""undoes last line segment"""
import Part
if (len(self.node) > 1):
self.node.pop()
self.bsplinetrack.update(self.node)
@@ -449,6 +452,7 @@ class BSpline(Line):
FreeCAD.Console.PrintMessage(translate("draft", "Last point has been removed")+"\n")
def drawUpdate(self,point):
import Part
if (len(self.node) == 1):
self.bsplinetrack.on()
if self.planetrack:
@@ -560,6 +564,7 @@ class BezCurve(Line):
def updateShape(self, pts):
'''creates shape for display during creation process.'''
import Part
edges = []
if len(pts) >= 2: #allow lower degree segment
poles=pts[1:]
@@ -714,7 +719,8 @@ class CubicBezCurve(Line):
def updateShape(self, pts):
'''creates shape for display during creation process.'''
# not quite right. draws 1 big bez. sb segmented
import Part
# not quite right. draws 1 big bez. sb segmented
edges = []
if len(pts) >= 2: #allow lower degree segment
@@ -957,6 +963,7 @@ class Arc(Creator):
def action(self,arg):
"""scene event handler"""
import DraftGeomUtils
if arg["Type"] == "SoKeyboardEvent":
if arg["Key"] == "ESCAPE":
self.finish()
@@ -1172,6 +1179,7 @@ class Arc(Creator):
FreeCAD.Console.PrintMessage(translate("draft", "Pick radius")+"\n")
def numericRadius(self,rad):
import DraftGeomUtils
"""this function gets called by the toolbar when valid radius have been entered there"""
if (self.step == 1):
self.rad = rad
@@ -1271,6 +1279,7 @@ class Polygon(Creator):
def action(self,arg):
"""scene event handler"""
import DraftGeomUtils
if arg["Type"] == "SoKeyboardEvent":
if arg["Key"] == "ESCAPE":
self.finish()
@@ -1401,6 +1410,7 @@ class Polygon(Creator):
def numericRadius(self,rad):
"""this function gets called by the toolbar when valid radius have been entered there"""
import DraftGeomUtils
self.rad = rad
if len(self.tangents) == 2:
cir = DraftGeomUtils.circleFrom2tan1rad(self.tangents[0], self.tangents[1], rad)
@@ -2686,6 +2696,7 @@ class Offset(Modifier):
def action(self,arg):
"""scene event handler"""
import DraftGeomUtils
if arg["Type"] == "SoKeyboardEvent":
if arg["Key"] == "ESCAPE":
self.finish()
@@ -3297,6 +3308,7 @@ class Trimex(Modifier):
self.linetrack = trackers.lineTracker()
import DraftGeomUtils
import Part
if not "Shape" in self.obj.PropertiesList: return
if "Placement" in self.obj.PropertiesList:
@@ -3415,6 +3427,7 @@ class Trimex(Modifier):
if real: newedges = []
import DraftGeomUtils
import Part
# finding the active point
vlist = []
@@ -3529,6 +3542,7 @@ class Trimex(Modifier):
def trimObject(self):
"""trims the actual object"""
import Part
if self.extrudeMode:
delta = self.extrude(self.shift,real=True)
#print("delta",delta)
@@ -3591,6 +3605,7 @@ class Trimex(Modifier):
def trimObjects(self,objectslist):
"""attempts to trim two objects together"""
import Part
import DraftGeomUtils
wires = []
for obj in objectslist:
if not Draft.getType(obj) in ["Wire","Circle"]: