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() 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."""