Merge branch 'master' into draft-feature_name

This commit is contained in:
Yorik van Havre
2021-04-29 12:40:27 +02:00
committed by GitHub
443 changed files with 8499 additions and 22452 deletions

View File

@@ -75,7 +75,7 @@ class Clone(gui_base_original.Modifier):
super(Clone, self).Activated(name="Clone")
if not Gui.Selection.getSelection():
if self.ui:
self.ui.selectUi()
self.ui.selectUi(on_close_call=self.finish)
_msg(translate("draft", "Select an object to clone"))
self.call = self.view.addEventCallback(
"SoEvent",

View File

@@ -63,7 +63,7 @@ class Downgrade(gui_base_original.Modifier):
super(Downgrade, self).Activated(name="Downgrade")
if self.ui:
if not Gui.Selection.getSelection():
self.ui.selectUi()
self.ui.selectUi(on_close_call=self.finish)
_msg(translate("draft", "Select an object to upgrade"))
self.call = self.view.addEventCallback(
"SoEvent",

View File

@@ -62,7 +62,7 @@ class Draft2Sketch(gui_base_original.Modifier):
super(Draft2Sketch, self).Activated(name="Convert Draft/Sketch")
if not Gui.Selection.getSelection():
if self.ui:
self.ui.selectUi()
self.ui.selectUi(on_close_call=self.finish)
_msg(translate("draft", "Select an object to convert."))
self.call = self.view.addEventCallback(
"SoEvent",

View File

@@ -300,7 +300,7 @@ class Edit(gui_base_original.Modifier):
if Gui.Selection.getSelection():
self.proceed()
else:
self.ui.selectUi()
self.ui.selectUi(on_close_call=self.finish)
App.Console.PrintMessage(translate("draft",
"Select a Draft object to edit")
+ "\n")

View File

@@ -91,12 +91,14 @@ class DraftWireGuiTools(GuiTools):
App.Console.PrintMessage(_err + "\n")
return
if obj.Closed:
# DNC: project the new point to the plane of the face if present
if hasattr(obj.Shape, "normalAt"):
normal = obj.Shape.normalAt(0,0)
point_on_plane = obj.Shape.Vertexes[0].Point
v.projectToPlane(point_on_plane, normal)
# TODO: Make consistent operation with trackers and open wires
# See: https://forum.freecadweb.org/viewtopic.php?f=23&t=56661
#if obj.Closed:
# # DNC: project the new point to the plane of the face if present
# if hasattr(obj.Shape, "normalAt"):
# normal = obj.Shape.normalAt(0,0)
# point_on_plane = obj.Shape.Vertexes[0].Point
# v.projectToPlane(point_on_plane, normal)
pts[node_idx] = v
obj.Points = pts

View File

@@ -67,7 +67,7 @@ class Facebinder(gui_base_original.Creator):
if not Gui.Selection.getSelection():
if self.ui:
self.ui.selectUi()
self.ui.selectUi(on_close_call=self.finish)
_msg(translate("draft", "Select faces from existing objects"))
self.call = self.view.addEventCallback(
"SoEvent",

View File

@@ -72,7 +72,7 @@ class Join(gui_base_original.Modifier):
if not self.ui:
return
if not Gui.Selection.getSelection():
self.ui.selectUi()
self.ui.selectUi(on_close_call=self.finish)
_msg(translate("draft", "Select an object to join"))
self.call = self.view.addEventCallback(
"SoEvent",

View File

@@ -69,7 +69,7 @@ class Mirror(gui_base_original.Modifier):
self.ghost = None
if self.ui:
if not Gui.Selection.getSelection():
self.ui.selectUi()
self.ui.selectUi(on_close_call=self.finish)
_msg(translate("draft", "Select an object to mirror"))
self.call = \
self.view.addEventCallback("SoEvent",

View File

@@ -77,7 +77,7 @@ class Move(gui_base_original.Modifier):
"""Get the object selection."""
if Gui.Selection.getSelectionEx():
return self.proceed()
self.ui.selectUi()
self.ui.selectUi(on_close_call=self.finish)
_msg(translate("draft", "Select an object to move"))
self.call = \
self.view.addEventCallback("SoEvent", gui_tool_utils.selectObject)

View File

@@ -72,7 +72,7 @@ class Offset(gui_base_original.Modifier):
self.arctrack = None
if self.ui:
if not Gui.Selection.getSelection():
self.ui.selectUi()
self.ui.selectUi(on_close_call=self.finish)
_msg(translate("draft", "Select an object to offset"))
self.call = self.view.addEventCallback(
"SoEvent",

View File

@@ -75,7 +75,7 @@ class Rotate(gui_base_original.Modifier):
"""Get the object selection."""
if Gui.Selection.getSelection():
return self.proceed()
self.ui.selectUi()
self.ui.selectUi(on_close_call=self.finish)
_msg(translate("draft", "Select an object to rotate"))
self.call = \
self.view.addEventCallback("SoEvent", gui_tool_utils.selectObject)

View File

@@ -83,7 +83,7 @@ class Scale(gui_base_original.Modifier):
"""Get object selection and proceed if successful."""
if Gui.Selection.getSelection():
return self.proceed()
self.ui.selectUi()
self.ui.selectUi(on_close_call=self.finish)
_msg(translate("draft", "Select an object to scale"))
self.call = self.view.addEventCallback("SoEvent",
gui_tool_utils.selectObject)

View File

@@ -91,6 +91,7 @@ class Draft_SelectPlane:
# Create task panel
FreeCADGui.Control.closeDialog()
self.taskd = task_selectplane.SelectPlaneTaskPanel()
self.taskd.reject = self.reject
# Fill values
self.taskd.form.checkCenter.setChecked(self.param.GetBool("CenterPlaneOnView", False))

View File

@@ -64,7 +64,7 @@ class Shape2DView(gui_base_original.Modifier):
super(Shape2DView, self).Activated(name="Project 2D view")
if not Gui.Selection.getSelection():
if self.ui:
self.ui.selectUi()
self.ui.selectUi(on_close_call=self.finish)
_msg(translate("draft", "Select an object to project"))
self.call = self.view.addEventCallback(
"SoEvent",

View File

@@ -407,6 +407,12 @@ class Snapper:
# Special snapping for polygons: add the center
snaps.extend(self.snapToPolygon(obj))
elif (Draft.getType(obj) == "BuildingPart"
and self.isEnabled("Center")):
# snap to the base placement of empty BuildingParts
snaps.append([obj.Placement.Base, 'center',
self.toWP(obj.Placement.Base)])
if (not self.maxEdges) or (len(shape.Edges) <= self.maxEdges):
if "Edge" in comp:
# we are snapping to an edge
@@ -458,9 +464,11 @@ class Snapper:
# for points we only snap to points
snaps.extend(self.snapToEndpoints(obj.Points))
elif Draft.getType(obj) in ("WorkingPlaneProxy", "BuildingPart"):
# snap to the center of WPProxies and BuildingParts
snaps.append([obj.Placement.Base, 'endpoint',
elif (Draft.getType(obj) in ("WorkingPlaneProxy", "BuildingPart")
and self.isEnabled("Center")):
# snap to the center of WPProxies or to the base
# placement of no empty BuildingParts
snaps.append([obj.Placement.Base, 'center',
self.toWP(obj.Placement.Base)])
elif Draft.getType(obj) == "SectionPlane":

View File

@@ -67,9 +67,11 @@ class Stretch(gui_base_original.Modifier):
def Activated(self):
"""Execute when the command is called."""
super(Stretch, self).Activated(name="Stretch")
self.rectracker = None
self.nodetracker = None
if self.ui:
if not Gui.Selection.getSelection():
self.ui.selectUi()
self.ui.selectUi(on_close_call=self.finish)
_msg(translate("draft", "Select an object to stretch"))
self.call = \
self.view.addEventCallback("SoEvent",
@@ -251,9 +253,9 @@ class Stretch(gui_base_original.Modifier):
def finish(self, closed=False):
"""Terminate the operation of the command. and clean up."""
if hasattr(self, "rectracker") and self.rectracker:
if self.rectracker:
self.rectracker.finalize()
if hasattr(self, "nodetracker") and self.nodetracker:
if self.nodetracker:
for n in self.nodetracker:
n.finalize()
super(Stretch, self).finish()

View File

@@ -87,7 +87,7 @@ class Trimex(gui_base_original.Modifier):
self.width = None
if self.ui:
if not Gui.Selection.getSelection():
self.ui.selectUi()
self.ui.selectUi(on_close_call=self.finish)
_msg(translate("draft", "Select objects to trim or extend"))
self.call = \
self.view.addEventCallback("SoEvent",
@@ -120,8 +120,7 @@ class Trimex(gui_base_original.Modifier):
self.extrudeMode = True
self.ghost = [trackers.ghostTracker([self.obj])]
self.normal = self.obj.Shape.Faces[0].normalAt(0.5, 0.5)
for v in self.obj.Shape.Vertexes:
self.ghost.append(trackers.lineTracker())
self.ghost += [trackers.lineTracker() for _v in self.obj.Shape.Vertexes]
elif len(self.obj.Shape.Faces) > 1:
# face extrude mode, a new object is created
ss = Gui.Selection.getSelectionEx()[0]
@@ -132,8 +131,7 @@ class Trimex(gui_base_original.Modifier):
self.extrudeMode = True
self.ghost = [trackers.ghostTracker([self.obj])]
self.normal = self.obj.Shape.Faces[0].normalAt(0.5, 0.5)
for v in self.obj.Shape.Vertexes:
self.ghost.append(trackers.lineTracker())
self.ghost += [trackers.lineTracker() for _v in self.obj.Shape.Vertexes]
else:
# normal wire trimex mode
self.color = self.obj.ViewObject.LineColor

View File

@@ -63,7 +63,7 @@ class Upgrade(gui_base_original.Modifier):
super(Upgrade, self).Activated(name="Upgrade")
if self.ui:
if not Gui.Selection.getSelection():
self.ui.selectUi()
self.ui.selectUi(on_close_call=self.finish)
_msg(translate("draft", "Select an object to upgrade"))
self.call = self.view.addEventCallback(
"SoEvent",