Draft: Added Draft_ToggleGrid() command to toggle the Draft grid
This commit is contained in:
parent
4c566a6113
commit
fbd3556aaf
|
@ -69,8 +69,9 @@ class ArchWorkbench(Workbench):
|
||||||
"Draft_Offset","Draft_Upgrade",
|
"Draft_Offset","Draft_Upgrade",
|
||||||
"Draft_Downgrade","Draft_Trimex"]
|
"Draft_Downgrade","Draft_Trimex"]
|
||||||
self.draftcontexttools = ["Draft_ApplyStyle","Draft_ToggleDisplayMode",
|
self.draftcontexttools = ["Draft_ApplyStyle","Draft_ToggleDisplayMode",
|
||||||
"Draft_AddToGroup","Draft_SelectGroup",
|
"Draft_AddToGroup","Draft_SelectGroup",
|
||||||
"Draft_SelectPlane","Draft_ToggleSnap"]
|
"Draft_SelectPlane","Draft_ToggleSnap",
|
||||||
|
"Draft_ShowSnapBar","Draft_ToggleGrid"]
|
||||||
self.meshtools = ["Arch_SplitMesh","Arch_MeshToShape",
|
self.meshtools = ["Arch_SplitMesh","Arch_MeshToShape",
|
||||||
"Arch_SelectNonSolidMeshes","Arch_RemoveShape"]
|
"Arch_SelectNonSolidMeshes","Arch_RemoveShape"]
|
||||||
self.appendToolbar(str(DraftTools.translate("arch","Arch tools")),self.archtools)
|
self.appendToolbar(str(DraftTools.translate("arch","Arch tools")),self.archtools)
|
||||||
|
|
|
@ -73,6 +73,7 @@ class Snapper:
|
||||||
self.snapInfo = None
|
self.snapInfo = None
|
||||||
self.lastSnappedObject = None
|
self.lastSnappedObject = None
|
||||||
self.active = True
|
self.active = True
|
||||||
|
self.forceGridOff = False
|
||||||
self.trackers = [[],[],[],[]] # view, grid, snap, extline
|
self.trackers = [[],[],[],[]] # view, grid, snap, extline
|
||||||
|
|
||||||
self.polarAngles = [90,45]
|
self.polarAngles = [90,45]
|
||||||
|
@ -166,7 +167,7 @@ class Snapper:
|
||||||
self.radius = self.getScreenDist(Draft.getParam("snapRange"),screenpos)
|
self.radius = self.getScreenDist(Draft.getParam("snapRange"),screenpos)
|
||||||
|
|
||||||
# set the grid
|
# set the grid
|
||||||
if self.grid and Draft.getParam("grid"):
|
if self.grid and Draft.getParam("grid") and (not self.forceGridOff):
|
||||||
self.grid.set()
|
self.grid.set()
|
||||||
|
|
||||||
# activate snap
|
# activate snap
|
||||||
|
@ -243,18 +244,20 @@ class Snapper:
|
||||||
if (not self.maxEdges) or (len(obj.Edges) <= self.maxEdges):
|
if (not self.maxEdges) or (len(obj.Edges) <= self.maxEdges):
|
||||||
if "Edge" in comp:
|
if "Edge" in comp:
|
||||||
# we are snapping to an edge
|
# we are snapping to an edge
|
||||||
edge = obj.Shape.Edges[int(comp[4:])-1]
|
en = int(comp[4:])-1
|
||||||
snaps.extend(self.snapToEndpoints(edge))
|
if len(obj.Shape.Edges) > en:
|
||||||
snaps.extend(self.snapToMidpoint(edge))
|
edge = obj.Shape.Edges[en]
|
||||||
snaps.extend(self.snapToPerpendicular(edge,lastpoint))
|
snaps.extend(self.snapToEndpoints(edge))
|
||||||
#snaps.extend(self.snapToOrtho(edge,lastpoint,constrain)) # now part of snapToPolar
|
snaps.extend(self.snapToMidpoint(edge))
|
||||||
snaps.extend(self.snapToIntersection(edge))
|
snaps.extend(self.snapToPerpendicular(edge,lastpoint))
|
||||||
snaps.extend(self.snapToElines(edge,eline))
|
#snaps.extend(self.snapToOrtho(edge,lastpoint,constrain)) # now part of snapToPolar
|
||||||
|
snaps.extend(self.snapToIntersection(edge))
|
||||||
|
snaps.extend(self.snapToElines(edge,eline))
|
||||||
|
|
||||||
if isinstance (edge.Curve,Part.Circle):
|
if isinstance (edge.Curve,Part.Circle):
|
||||||
# the edge is an arc, we have extra options
|
# the edge is an arc, we have extra options
|
||||||
snaps.extend(self.snapToAngles(edge))
|
snaps.extend(self.snapToAngles(edge))
|
||||||
snaps.extend(self.snapToCenter(edge))
|
snaps.extend(self.snapToCenter(edge))
|
||||||
|
|
||||||
elif "Vertex" in comp:
|
elif "Vertex" in comp:
|
||||||
# directly snapped to a vertex
|
# directly snapped to a vertex
|
||||||
|
@ -418,18 +421,19 @@ class Snapper:
|
||||||
def snapToGrid(self,point):
|
def snapToGrid(self,point):
|
||||||
"returns a grid snap point if available"
|
"returns a grid snap point if available"
|
||||||
if self.grid:
|
if self.grid:
|
||||||
if self.isEnabled("grid"):
|
if self.grid.Visible:
|
||||||
np = self.grid.getClosestNode(point)
|
if self.isEnabled("grid"):
|
||||||
if np:
|
np = self.grid.getClosestNode(point)
|
||||||
if self.radius != 0:
|
if np:
|
||||||
dv = point.sub(np)
|
if self.radius != 0:
|
||||||
if dv.Length <= self.radius:
|
dv = point.sub(np)
|
||||||
if self.tracker:
|
if dv.Length <= self.radius:
|
||||||
self.tracker.setCoords(np)
|
if self.tracker:
|
||||||
self.tracker.setMarker(self.mk['grid'])
|
self.tracker.setCoords(np)
|
||||||
self.tracker.on()
|
self.tracker.setMarker(self.mk['grid'])
|
||||||
self.setCursor('grid')
|
self.tracker.on()
|
||||||
return np
|
self.setCursor('grid')
|
||||||
|
return np
|
||||||
return point
|
return point
|
||||||
|
|
||||||
def snapToEndpoints(self,shape):
|
def snapToEndpoints(self,shape):
|
||||||
|
@ -889,7 +893,7 @@ class Snapper:
|
||||||
if self.grid:
|
if self.grid:
|
||||||
if self.grid.Visible:
|
if self.grid.Visible:
|
||||||
self.grid.set()
|
self.grid.set()
|
||||||
|
|
||||||
if not hasattr(FreeCADGui,"Snapper"):
|
if not hasattr(FreeCADGui,"Snapper"):
|
||||||
FreeCADGui.Snapper = Snapper()
|
FreeCADGui.Snapper = Snapper()
|
||||||
if not hasattr(FreeCAD,"DraftWorkingPlane"):
|
if not hasattr(FreeCAD,"DraftWorkingPlane"):
|
||||||
|
|
|
@ -3828,7 +3828,27 @@ class Draft_Clone():
|
||||||
return True
|
return True
|
||||||
else:
|
else:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
class ToggleGrid():
|
||||||
|
"The Draft ToggleGrid command definition"
|
||||||
|
|
||||||
|
def GetResources(self):
|
||||||
|
return {'Pixmap' : 'Snap_Grid',
|
||||||
|
'Accel' : "G,R",
|
||||||
|
'MenuText': QtCore.QT_TRANSLATE_NOOP("Draft_ToggleGrid", "Toggle Grid"),
|
||||||
|
'ToolTip' : QtCore.QT_TRANSLATE_NOOP("Draft_ToggleGrid", "Toggles the Draft gid on/off")}
|
||||||
|
|
||||||
|
def Activated(self):
|
||||||
|
if hasattr(FreeCADGui,"Snapper"):
|
||||||
|
if FreeCADGui.Snapper.grid:
|
||||||
|
if FreeCADGui.Snapper.grid.Visible:
|
||||||
|
FreeCADGui.Snapper.grid.off()
|
||||||
|
FreeCADGui.Snapper.forceGridOff=True
|
||||||
|
else:
|
||||||
|
FreeCADGui.Snapper.grid.on()
|
||||||
|
FreeCADGui.Snapper.forceGridOff=False
|
||||||
|
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# Adds the icons & commands to the FreeCAD command manager, and sets defaults
|
# Adds the icons & commands to the FreeCAD command manager, and sets defaults
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
|
@ -3876,6 +3896,7 @@ FreeCADGui.addCommand('Draft_SelectGroup',SelectGroup())
|
||||||
FreeCADGui.addCommand('Draft_Shape2DView',Shape2DView())
|
FreeCADGui.addCommand('Draft_Shape2DView',Shape2DView())
|
||||||
FreeCADGui.addCommand('Draft_ToggleSnap',ToggleSnap())
|
FreeCADGui.addCommand('Draft_ToggleSnap',ToggleSnap())
|
||||||
FreeCADGui.addCommand('Draft_ShowSnapBar',ShowSnapBar())
|
FreeCADGui.addCommand('Draft_ShowSnapBar',ShowSnapBar())
|
||||||
|
FreeCADGui.addCommand('Draft_ToggleGrid',ToggleGrid())
|
||||||
|
|
||||||
# a global place to look for active draft Command
|
# a global place to look for active draft Command
|
||||||
FreeCAD.activeDraftCommand = None
|
FreeCAD.activeDraftCommand = None
|
||||||
|
|
|
@ -192,12 +192,12 @@ class DraftWorkbench (Workbench):
|
||||||
"Draft_Clone"]
|
"Draft_Clone"]
|
||||||
self.treecmdList = ["Draft_ApplyStyle","Draft_ToggleDisplayMode","Draft_AddToGroup",
|
self.treecmdList = ["Draft_ApplyStyle","Draft_ToggleDisplayMode","Draft_AddToGroup",
|
||||||
"Draft_SelectGroup","Draft_SelectPlane","Draft_ToggleSnap",
|
"Draft_SelectGroup","Draft_SelectPlane","Draft_ToggleSnap",
|
||||||
"Draft_ShowSnapBar"]
|
"Draft_ShowSnapBar","Draft_ToggleGrid"]
|
||||||
self.lineList = ["Draft_UndoLine","Draft_FinishLine","Draft_CloseLine"]
|
self.lineList = ["Draft_UndoLine","Draft_FinishLine","Draft_CloseLine"]
|
||||||
self.appendToolbar(str(DraftTools.translate("draft","Draft creation tools")),self.cmdList)
|
self.appendToolbar(str(DraftTools.translate("draft","Draft creation tools")),self.cmdList)
|
||||||
self.appendToolbar(str(DraftTools.translate("draft","Draft modification tools")),self.modList)
|
self.appendToolbar(str(DraftTools.translate("draft","Draft modification tools")),self.modList)
|
||||||
self.appendMenu(str(DraftTools.translate("draft","&Draft")),self.cmdList+self.modList)
|
self.appendMenu(str(DraftTools.translate("draft","&Draft")),self.cmdList+self.modList)
|
||||||
self.appendMenu([str(DraftTools.translate("draft","&Draft")),str(DraftTools.translate("draft","Display options"))],self.treecmdList)
|
self.appendMenu([str(DraftTools.translate("draft","&Draft")),str(DraftTools.translate("draft","Context tools"))],self.treecmdList)
|
||||||
self.appendMenu([str(DraftTools.translate("draft","&Draft")),str(DraftTools.translate("draft","Wire tools"))],self.lineList)
|
self.appendMenu([str(DraftTools.translate("draft","&Draft")),str(DraftTools.translate("draft","Wire tools"))],self.lineList)
|
||||||
|
|
||||||
def Activated(self):
|
def Activated(self):
|
||||||
|
@ -211,7 +211,7 @@ class DraftWorkbench (Workbench):
|
||||||
if (FreeCAD.activeDraftCommand == None):
|
if (FreeCAD.activeDraftCommand == None):
|
||||||
if (FreeCADGui.Selection.getSelection()):
|
if (FreeCADGui.Selection.getSelection()):
|
||||||
self.appendContextMenu("Draft",self.cmdList+self.modList)
|
self.appendContextMenu("Draft",self.cmdList+self.modList)
|
||||||
self.appendContextMenu("Display options",self.treecmdList)
|
self.appendContextMenu("Draft context tools",self.treecmdList)
|
||||||
else:
|
else:
|
||||||
self.appendContextMenu("Draft",self.cmdList)
|
self.appendContextMenu("Draft",self.cmdList)
|
||||||
else:
|
else:
|
||||||
|
|
Loading…
Reference in New Issue
Block a user