From b10a559fb290ada281c5733047d1b31ad71ac560 Mon Sep 17 00:00:00 2001 From: Roy-043 <70520633+Roy-043@users.noreply.github.com> Date: Fri, 2 Jul 2021 11:32:51 +0200 Subject: [PATCH 1/2] Draft: Draft_Trimex: Fix wrong angle units in taskpanel The redraw function was changed to return a list [dist, ang] if the real argument is not True. With this list the action function 'knows' which units to display. This also made it possible to move the "self.ui." related stuff that was in the redraw function to the the action function. I have also changed to tooltip texts by removing the article "The". This more in keeping with other tooltips. --- src/Mod/Draft/draftguitools/gui_trimex.py | 30 ++++++++++++++--------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/src/Mod/Draft/draftguitools/gui_trimex.py b/src/Mod/Draft/draftguitools/gui_trimex.py index 85fe2c6799..65f97a3212 100644 --- a/src/Mod/Draft/draftguitools/gui_trimex.py +++ b/src/Mod/Draft/draftguitools/gui_trimex.py @@ -203,9 +203,21 @@ class Trimex(gui_base_original.Modifier): if self.extrudeMode: dist = self.extrude(self.shift) else: - dist = self.redraw(self.point, self.snapped, - self.shift, self.alt) - self.ui.setRadiusValue(dist, unit="Length") + # If the geomType of the edge is "Line" ang will be None, + # else dist will be None. + dist, ang = self.redraw(self.point, self.snapped, + self.shift, self.alt) + + if dist: + self.ui.labelRadius.setText(translate("draft", "Distance")) + self.ui.radiusValue.setToolTip(translate("draft", + "Offset distance")) + self.ui.setRadiusValue(dist, unit="Length") + else: + self.ui.labelRadius.setText(translate("draft", "Angle")) + self.ui.radiusValue.setToolTip(translate("draft", + "Offset angle")) + self.ui.setRadiusValue(ang, unit="Angle") self.ui.radiusValue.setFocus() self.ui.radiusValue.selectAll() gui_tool_utils.redraw3DView() @@ -301,6 +313,7 @@ class Trimex(gui_base_original.Modifier): # modifying active edge if DraftGeomUtils.geomType(edge) == "Line": + ang = None ve = DraftGeomUtils.vec(edge) chord = v1.sub(point) n = ve.cross(chord) @@ -313,9 +326,6 @@ class Trimex(gui_base_original.Modifier): dist = v1.sub(self.newpoint).Length ghost.p1(self.newpoint) ghost.p2(v2) - self.ui.labelRadius.setText(translate("draft", "Distance")) - self.ui.radiusValue.setToolTip(translate("draft", - "The offset distance")) if real: if self.force: ray = self.newpoint.sub(v1) @@ -323,16 +333,14 @@ class Trimex(gui_base_original.Modifier): self.newpoint = App.Vector.add(v1, ray) newedges.append(Part.LineSegment(self.newpoint, v2).toShape()) else: + dist = None center = edge.Curve.Center rad = edge.Curve.Radius ang1 = DraftVecUtils.angle(v2.sub(center)) ang2 = DraftVecUtils.angle(point.sub(center)) _rot_rad = DraftVecUtils.rotate(App.Vector(rad, 0, 0), -ang2) self.newpoint = App.Vector.add(center, _rot_rad) - self.ui.labelRadius.setText(translate("draft", "Angle")) - self.ui.radiusValue.setToolTip(translate("draft", - "The offset angle")) - dist = math.degrees(-ang2) + ang = math.degrees(-ang2) # if ang1 > ang2: # ang1, ang2 = ang2, ang1 # print("last calculated:", @@ -384,7 +392,7 @@ class Trimex(gui_base_original.Modifier): if real: return newedges else: - return dist + return [dist, ang] def trimObject(self): """Trim the actual object.""" From 2b353837445651974263879b0aa9075cf324a72d Mon Sep 17 00:00:00 2001 From: Roy-043 <70520633+Roy-043@users.noreply.github.com> Date: Fri, 2 Jul 2021 11:37:31 +0200 Subject: [PATCH 2/2] Draft: Draft_Trimex: Fix wrong angle units in taskpanel: tooltip in DraftGui.py I have changed the tooltip from "Trim distance" to "Offset distance" to match the tooltip in gui_trimex.py --- src/Mod/Draft/DraftGui.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Mod/Draft/DraftGui.py b/src/Mod/Draft/DraftGui.py index a3aa93284d..2e254f123b 100644 --- a/src/Mod/Draft/DraftGui.py +++ b/src/Mod/Draft/DraftGui.py @@ -1095,7 +1095,7 @@ class DraftToolBar: self.taskUi(title, icon="Draft_Trimex") self.radiusUi() self.labelRadius.setText(translate("draft","Distance")) - self.radiusValue.setToolTip(translate("draft", "Trim distance")) + self.radiusValue.setToolTip(translate("draft", "Offset distance")) self.radiusValue.setText(FreeCAD.Units.Quantity(0,FreeCAD.Units.Length).UserString) todo.delay(self.radiusValue.setFocus,None) self.radiusValue.selectAll()