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_Downgrade","Draft_Trimex"]
|
||||
self.draftcontexttools = ["Draft_ApplyStyle","Draft_ToggleDisplayMode",
|
||||
"Draft_AddToGroup","Draft_SelectGroup",
|
||||
"Draft_SelectPlane","Draft_ToggleSnap"]
|
||||
"Draft_AddToGroup","Draft_SelectGroup",
|
||||
"Draft_SelectPlane","Draft_ToggleSnap",
|
||||
"Draft_ShowSnapBar","Draft_ToggleGrid"]
|
||||
self.meshtools = ["Arch_SplitMesh","Arch_MeshToShape",
|
||||
"Arch_SelectNonSolidMeshes","Arch_RemoveShape"]
|
||||
self.appendToolbar(str(DraftTools.translate("arch","Arch tools")),self.archtools)
|
||||
|
|
|
@ -73,6 +73,7 @@ class Snapper:
|
|||
self.snapInfo = None
|
||||
self.lastSnappedObject = None
|
||||
self.active = True
|
||||
self.forceGridOff = False
|
||||
self.trackers = [[],[],[],[]] # view, grid, snap, extline
|
||||
|
||||
self.polarAngles = [90,45]
|
||||
|
@ -166,7 +167,7 @@ class Snapper:
|
|||
self.radius = self.getScreenDist(Draft.getParam("snapRange"),screenpos)
|
||||
|
||||
# set the grid
|
||||
if self.grid and Draft.getParam("grid"):
|
||||
if self.grid and Draft.getParam("grid") and (not self.forceGridOff):
|
||||
self.grid.set()
|
||||
|
||||
# activate snap
|
||||
|
@ -243,18 +244,20 @@ class Snapper:
|
|||
if (not self.maxEdges) or (len(obj.Edges) <= self.maxEdges):
|
||||
if "Edge" in comp:
|
||||
# we are snapping to an edge
|
||||
edge = obj.Shape.Edges[int(comp[4:])-1]
|
||||
snaps.extend(self.snapToEndpoints(edge))
|
||||
snaps.extend(self.snapToMidpoint(edge))
|
||||
snaps.extend(self.snapToPerpendicular(edge,lastpoint))
|
||||
#snaps.extend(self.snapToOrtho(edge,lastpoint,constrain)) # now part of snapToPolar
|
||||
snaps.extend(self.snapToIntersection(edge))
|
||||
snaps.extend(self.snapToElines(edge,eline))
|
||||
en = int(comp[4:])-1
|
||||
if len(obj.Shape.Edges) > en:
|
||||
edge = obj.Shape.Edges[en]
|
||||
snaps.extend(self.snapToEndpoints(edge))
|
||||
snaps.extend(self.snapToMidpoint(edge))
|
||||
snaps.extend(self.snapToPerpendicular(edge,lastpoint))
|
||||
#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):
|
||||
# the edge is an arc, we have extra options
|
||||
snaps.extend(self.snapToAngles(edge))
|
||||
snaps.extend(self.snapToCenter(edge))
|
||||
if isinstance (edge.Curve,Part.Circle):
|
||||
# the edge is an arc, we have extra options
|
||||
snaps.extend(self.snapToAngles(edge))
|
||||
snaps.extend(self.snapToCenter(edge))
|
||||
|
||||
elif "Vertex" in comp:
|
||||
# directly snapped to a vertex
|
||||
|
@ -418,18 +421,19 @@ class Snapper:
|
|||
def snapToGrid(self,point):
|
||||
"returns a grid snap point if available"
|
||||
if self.grid:
|
||||
if self.isEnabled("grid"):
|
||||
np = self.grid.getClosestNode(point)
|
||||
if np:
|
||||
if self.radius != 0:
|
||||
dv = point.sub(np)
|
||||
if dv.Length <= self.radius:
|
||||
if self.tracker:
|
||||
self.tracker.setCoords(np)
|
||||
self.tracker.setMarker(self.mk['grid'])
|
||||
self.tracker.on()
|
||||
self.setCursor('grid')
|
||||
return np
|
||||
if self.grid.Visible:
|
||||
if self.isEnabled("grid"):
|
||||
np = self.grid.getClosestNode(point)
|
||||
if np:
|
||||
if self.radius != 0:
|
||||
dv = point.sub(np)
|
||||
if dv.Length <= self.radius:
|
||||
if self.tracker:
|
||||
self.tracker.setCoords(np)
|
||||
self.tracker.setMarker(self.mk['grid'])
|
||||
self.tracker.on()
|
||||
self.setCursor('grid')
|
||||
return np
|
||||
return point
|
||||
|
||||
def snapToEndpoints(self,shape):
|
||||
|
@ -889,7 +893,7 @@ class Snapper:
|
|||
if self.grid:
|
||||
if self.grid.Visible:
|
||||
self.grid.set()
|
||||
|
||||
|
||||
if not hasattr(FreeCADGui,"Snapper"):
|
||||
FreeCADGui.Snapper = Snapper()
|
||||
if not hasattr(FreeCAD,"DraftWorkingPlane"):
|
||||
|
|
|
@ -3828,7 +3828,27 @@ class Draft_Clone():
|
|||
return True
|
||||
else:
|
||||
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
|
||||
#---------------------------------------------------------------------------
|
||||
|
@ -3876,6 +3896,7 @@ FreeCADGui.addCommand('Draft_SelectGroup',SelectGroup())
|
|||
FreeCADGui.addCommand('Draft_Shape2DView',Shape2DView())
|
||||
FreeCADGui.addCommand('Draft_ToggleSnap',ToggleSnap())
|
||||
FreeCADGui.addCommand('Draft_ShowSnapBar',ShowSnapBar())
|
||||
FreeCADGui.addCommand('Draft_ToggleGrid',ToggleGrid())
|
||||
|
||||
# a global place to look for active draft Command
|
||||
FreeCAD.activeDraftCommand = None
|
||||
|
|
|
@ -192,12 +192,12 @@ class DraftWorkbench (Workbench):
|
|||
"Draft_Clone"]
|
||||
self.treecmdList = ["Draft_ApplyStyle","Draft_ToggleDisplayMode","Draft_AddToGroup",
|
||||
"Draft_SelectGroup","Draft_SelectPlane","Draft_ToggleSnap",
|
||||
"Draft_ShowSnapBar"]
|
||||
"Draft_ShowSnapBar","Draft_ToggleGrid"]
|
||||
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 modification tools")),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)
|
||||
|
||||
def Activated(self):
|
||||
|
@ -211,7 +211,7 @@ class DraftWorkbench (Workbench):
|
|||
if (FreeCAD.activeDraftCommand == None):
|
||||
if (FreeCADGui.Selection.getSelection()):
|
||||
self.appendContextMenu("Draft",self.cmdList+self.modList)
|
||||
self.appendContextMenu("Display options",self.treecmdList)
|
||||
self.appendContextMenu("Draft context tools",self.treecmdList)
|
||||
else:
|
||||
self.appendContextMenu("Draft",self.cmdList)
|
||||
else:
|
||||
|
|
Loading…
Reference in New Issue
Block a user