diff --git a/Resources/panels/ffDesign_RoofBridge.ui b/Resources/panels/ffDesign_RoofBridge.ui index 4257178..62297ee 100644 --- a/Resources/panels/ffDesign_RoofBridge.ui +++ b/Resources/panels/ffDesign_RoofBridge.ui @@ -14,26 +14,6 @@ Roof Bridge - - - - Bridge Clearance - - - - - - - mm - - - 0.000000000000000 - - - Amount of additional clearance to add beneath the bridge to account for filament drooping. - - - @@ -54,6 +34,13 @@ + + + + 60° Overhang Angle + + + @@ -61,10 +48,40 @@ - - + + - 60° Overhang Angle + Bridge Clearance + + + + + + + mm + + + 0.000000000000000 + + + Amount of additional clearance to add beneath the bridge to account for filament drooping. + + + + + + + Rotation + + + + + + + deg + + + Direction of the roof bridge around the hole axis. diff --git a/Resources/panels/ffDesign_Teardrop.ui b/Resources/panels/ffDesign_Teardrop.ui index e9c34a7..43a99d3 100644 --- a/Resources/panels/ffDesign_Teardrop.ui +++ b/Resources/panels/ffDesign_Teardrop.ui @@ -14,21 +14,21 @@ Teardrop - - + + - 120° Teardrop Angle + 90° Teardrop Angle - - + + - 90° Teardrop Angle + 120° Teardrop Angle - + Also add a Teardrop shape to the counterbore of this hole. @@ -38,7 +38,7 @@ - + Make the Teardrop shape double sided (symmetric). @@ -48,6 +48,23 @@ + + + + Rotation + + + + + + + deg + + + Direction of the teardrop around the hole axis. + + + diff --git a/ffDesign_RoofBridge.py b/ffDesign_RoofBridge.py index b292fa3..1b8f328 100644 --- a/ffDesign_RoofBridge.py +++ b/ffDesign_RoofBridge.py @@ -213,6 +213,9 @@ def __init__(self, body, hole): # Default is 45° overhang angle self.form.Angle45.toggle() + # 90° means "up" in the sketch plane, usually + self.form.BridgeRotation.setProperty("rawValue", 90) + def accept(self): try: angle = "45 deg" @@ -224,6 +227,7 @@ def accept(self): do_counterbore = self.form.DoCounterbore.checkState() == QtCore.Qt.CheckState.Checked do_doublesided = self.form.DoubleSided.checkState() == QtCore.Qt.CheckState.Checked bridge_clearance = self.form.BridgeClearance.property("value") + bridge_rotation = self.form.BridgeRotation.property("value") Gui.Control.closeDialog() @@ -233,7 +237,7 @@ def accept(self): self.body, self.hole, angle=angle, - rotation="90 deg", + rotation=bridge_rotation, do_counterbore=do_counterbore, do_doublesided=do_doublesided, bridge_clearance=bridge_clearance, diff --git a/ffDesign_Teardrop.py b/ffDesign_Teardrop.py index 1d25542..7076059 100644 --- a/ffDesign_Teardrop.py +++ b/ffDesign_Teardrop.py @@ -45,9 +45,7 @@ def _single_tear( Sketcher.Constraint("DistanceX", last_geo_id + 0, 3, 0), Sketcher.Constraint("DistanceY", last_geo_id + 0, 3, 0), Sketcher.Constraint("Diameter", last_geo_id + 0, 2), - Sketcher.Constraint( - "Angle", last_geo_id + 1, 2, last_geo_id + 2, 2, math.pi / 2 - ), + Sketcher.Constraint("Angle", last_geo_id + 1, 2, last_geo_id + 2, 2, math.pi / 2), Sketcher.Constraint("Angle", last_geo_id + 3, math.pi / 2), ] sketch.addConstraint(new_constraints) @@ -71,9 +69,7 @@ def make_parametric_teardrop( ): Utils.assert_sketch(sketch) - last_geo_id, last_c = _single_tear( - sketch, hole_loc, diameter_expr, angle_expr, rotation_expr - ) + last_geo_id, last_c = _single_tear(sketch, hole_loc, diameter_expr, angle_expr, rotation_expr) if double_sided: last_geo_id2, last_c2 = _single_tear( sketch, hole_loc, diameter_expr, angle_expr, f"({rotation_expr}) + 180 deg" @@ -106,23 +102,17 @@ def make_teardrops( assert rotation.Unit.Type == "Angle" if "TeardropAngle" not in hole.PropertiesList: - hole.addProperty( - "App::PropertyAngle", "TeardropAngle", group="FusedFilamentDesign" - ) + hole.addProperty("App::PropertyAngle", "TeardropAngle", group="FusedFilamentDesign") hole.TeardropAngle = angle if "TeardropRotation" not in hole.PropertiesList: - hole.addProperty( - "App::PropertyAngle", "TeardropRotation", group="FusedFilamentDesign" - ) + hole.addProperty("App::PropertyAngle", "TeardropRotation", group="FusedFilamentDesign") hole.TeardropRotation = rotation profile_sketch = Utils.get_hole_profile_sketch(hole) teardrop_sketch = Utils.make_derived_sketch(body, profile_sketch, "_Teardrops") - hole_locations = Utils.get_sketch_locations( - profile_sketch, Utils.get_hole_profile_type(hole) - ) + hole_locations = Utils.get_sketch_locations(profile_sketch, Utils.get_hole_profile_type(hole)) for hole_loc in hole_locations: make_parametric_teardrop( teardrop_sketch, @@ -146,9 +136,7 @@ def make_teardrops( if not do_counterbore or not Utils.hole_has_counterbore_maybe(hole): return - teardrops_cb_sketch = Utils.make_derived_sketch( - body, profile_sketch, "_TeardropsCb" - ) + teardrops_cb_sketch = Utils.make_derived_sketch(body, profile_sketch, "_TeardropsCb") for hole_loc in hole_locations: make_parametric_teardrop( @@ -177,13 +165,14 @@ def __init__(self, body, hole): self.body = body self.hole = hole - self.form = Gui.PySideUic.loadUi( - Utils.Resources.get_panel("ffDesign_Teardrop.ui") - ) + self.form = Gui.PySideUic.loadUi(Utils.Resources.get_panel("ffDesign_Teardrop.ui")) # Default is 120° teardrop angle self.form.Angle120.toggle() + # 90° means "up" in the sketch plane, usually + self.form.TeardropRotation.setProperty("rawValue", 90) + def accept(self): try: angle = "120 deg" @@ -192,12 +181,9 @@ def accept(self): elif self.form.Angle120.isChecked(): angle = "120 deg" - do_counterbore = ( - self.form.DoCounterbore.checkState() == QtCore.Qt.CheckState.Checked - ) - double_sided = ( - self.form.DoubleSided.checkState() == QtCore.Qt.CheckState.Checked - ) + do_counterbore = self.form.DoCounterbore.checkState() == QtCore.Qt.CheckState.Checked + double_sided = self.form.DoubleSided.checkState() == QtCore.Qt.CheckState.Checked + rotation = self.form.TeardropRotation.property("value") Gui.Control.closeDialog() @@ -207,7 +193,7 @@ def accept(self): self.body, self.hole, angle=angle, - rotation="90 deg", + rotation=rotation, do_counterbore=do_counterbore, double_sided=double_sided, )