Merge branch 'master' into draft-feature_name
This commit is contained in:
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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":
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user