Add Draft workbench to .pre-commit-config (#24664)

* Add Draft workbench to .pre-commit-config

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
marcuspollio
2025-10-15 11:21:09 +02:00
committed by GitHub
parent 87f88bba30
commit 50e4864efb
225 changed files with 10713 additions and 9269 deletions

View File

@@ -91,10 +91,10 @@ class TaskPanelPolarArray:
self.fuse = params.get_param("Draft_array_fuse")
self.use_link = params.get_param("Draft_array_Link")
self.form.input_c_x.setProperty('rawValue', self.center.x)
self.form.input_c_y.setProperty('rawValue', self.center.y)
self.form.input_c_z.setProperty('rawValue', self.center.z)
self.form.spinbox_angle.setProperty('rawValue', self.angle)
self.form.input_c_x.setProperty("rawValue", self.center.x)
self.form.input_c_y.setProperty("rawValue", self.center.y)
self.form.input_c_z.setProperty("rawValue", self.center.z)
self.form.spinbox_angle.setProperty("rawValue", self.angle)
self.form.spinbox_number.setValue(self.number)
self.form.checkbox_fuse.setChecked(self.fuse)
self.form.checkbox_link.setChecked(self.use_link)
@@ -122,61 +122,63 @@ class TaskPanelPolarArray:
self.form.button_reset.clicked.connect(self.reset_point)
# When the checkbox changes, change the internal value
if hasattr(self.form.checkbox_fuse, "checkStateChanged"): # Qt version >= 6.7.0
if hasattr(self.form.checkbox_fuse, "checkStateChanged"): # Qt version >= 6.7.0
self.form.checkbox_fuse.checkStateChanged.connect(self.set_fuse)
self.form.checkbox_link.checkStateChanged.connect(self.set_link)
else: # Qt version < 6.7.0
else: # Qt version < 6.7.0
self.form.checkbox_fuse.stateChanged.connect(self.set_fuse)
self.form.checkbox_link.stateChanged.connect(self.set_link)
def accept(self):
"""Execute when clicking the OK button or Enter key."""
self.selection = Gui.Selection.getSelection()
(self.number,
self.angle) = self.get_number_angle()
(self.number, self.angle) = self.get_number_angle()
self.center = self.get_center()
self.valid_input = self.validate_input(self.selection,
self.number,
self.angle,
self.center)
self.valid_input = self.validate_input(self.selection, self.number, self.angle, self.center)
if self.valid_input:
self.create_object()
# The internal function already displays messages
# self.print_messages()
self.finish()
def validate_input(self, selection,
number, angle, center):
def validate_input(self, selection, number, angle, center):
"""Check that the input is valid.
Some values may not need to be checked because
the interface may not allow one to input wrong data.
"""
if not selection:
_err(translate("draft","At least 1 element must be selected"))
_err(translate("draft", "At least 1 element must be selected"))
return False
# TODO: this should handle multiple objects.
# Each of the elements of the selection should be tested.
obj = selection[0]
if obj.isDerivedFrom("App::FeaturePython"):
_err(translate("draft","Selection is not suitable for array"))
_err(translate("draft","Object:") + " {}".format(selection[0].Label))
_err(translate("draft", "Selection is not suitable for array"))
_err(translate("draft", "Object:") + " {}".format(selection[0].Label))
return False
if number < 2:
_err(translate("draft","Number of elements must be at least 2"))
_err(translate("draft", "Number of elements must be at least 2"))
return False
if angle > 360:
_wrn(translate("draft","The angle is above 360 degrees. It is set to this value to proceed."))
_wrn(
translate(
"draft", "The angle is above 360 degrees. It is set to this value to proceed."
)
)
self.angle = 360
elif angle < -360:
_wrn(translate("draft","The angle is below -360 degrees. It is set to this value to proceed."))
_wrn(
translate(
"draft", "The angle is below -360 degrees. It is set to this value to proceed."
)
)
self.angle = -360
# The other arguments are not tested but they should be present.
@@ -220,15 +222,17 @@ class TaskPanelPolarArray:
_cmd += "use_link=" + str(self.use_link)
_cmd += ")"
Gui.addModule('Draft')
Gui.addModule("Draft")
_cmd_list = ["_obj_ = " + _cmd,
"_obj_.Fuse = " + str(self.fuse),
"Draft.autogroup(_obj_)",
"App.ActiveDocument.recompute()"]
_cmd_list = [
"_obj_ = " + _cmd,
"_obj_.Fuse = " + str(self.fuse),
"Draft.autogroup(_obj_)",
"App.ActiveDocument.recompute()",
]
# We commit the command list through the parent command
self.source_command.commit(translate("draft","Create Polar Array"), _cmd_list)
self.source_command.commit(translate("draft", "Create Polar Array"), _cmd_list)
def get_number_angle(self):
"""Get the number and angle parameters from the widgets."""
@@ -243,16 +247,16 @@ class TaskPanelPolarArray:
c_x_str = self.form.input_c_x.text()
c_y_str = self.form.input_c_y.text()
c_z_str = self.form.input_c_z.text()
center = App.Vector(U.Quantity(c_x_str).Value,
U.Quantity(c_y_str).Value,
U.Quantity(c_z_str).Value)
center = App.Vector(
U.Quantity(c_x_str).Value, U.Quantity(c_y_str).Value, U.Quantity(c_z_str).Value
)
return center
def reset_point(self):
"""Reset the center point to the original distance."""
self.form.input_c_x.setProperty('rawValue', 0)
self.form.input_c_y.setProperty('rawValue', 0)
self.form.input_c_z.setProperty('rawValue', 0)
self.form.input_c_x.setProperty("rawValue", 0)
self.form.input_c_y.setProperty("rawValue", 0)
self.form.input_c_z.setProperty("rawValue", 0)
self.center = self.get_center()
@@ -262,7 +266,7 @@ class TaskPanelPolarArray:
state = self.tr_true
else:
state = self.tr_false
_msg(translate("draft","Fuse:") + " {}".format(state))
_msg(translate("draft", "Fuse:") + " {}".format(state))
def set_fuse(self):
"""Execute as a callback when the fuse checkbox changes."""
@@ -275,7 +279,7 @@ class TaskPanelPolarArray:
state = self.tr_true
else:
state = self.tr_false
_msg(translate("draft","Create link array:") + " {}".format(state))
_msg(translate("draft", "Create link array:") + " {}".format(state))
def set_link(self):
"""Execute as a callback when the link checkbox changes."""
@@ -291,13 +295,13 @@ class TaskPanelPolarArray:
# For example, it could take the shapes of all objects,
# make a compound and then use it as input for the array function.
sel_obj = self.selection[0]
_msg(translate("draft","Object:") + " {}".format(sel_obj.Label))
_msg(translate("draft","Number of elements:") + " {}".format(self.number))
_msg(translate("draft","Polar angle:") + " {}".format(self.angle))
_msg(translate("draft","Center of rotation:")
+ " ({0}, {1}, {2})".format(self.center.x,
self.center.y,
self.center.z))
_msg(translate("draft", "Object:") + " {}".format(sel_obj.Label))
_msg(translate("draft", "Number of elements:") + " {}".format(self.number))
_msg(translate("draft", "Polar angle:") + " {}".format(self.angle))
_msg(
translate("draft", "Center of rotation:")
+ " ({0}, {1}, {2})".format(self.center.x, self.center.y, self.center.z)
)
self.print_fuse_state(self.fuse)
self.print_link_state(self.use_link)
@@ -338,24 +342,24 @@ class TaskPanelPolarArray:
# sby = self.form.spinbox_c_y
# sbz = self.form.spinbox_c_z
if dp:
if self.mask in ('y', 'z'):
if self.mask in ("y", "z"):
# sbx.setText(displayExternal(dp.x, None, 'Length'))
self.form.input_c_x.setProperty('rawValue', dp.x)
self.form.input_c_x.setProperty("rawValue", dp.x)
else:
# sbx.setText(displayExternal(dp.x, None, 'Length'))
self.form.input_c_x.setProperty('rawValue', dp.x)
if self.mask in ('x', 'z'):
self.form.input_c_x.setProperty("rawValue", dp.x)
if self.mask in ("x", "z"):
# sby.setText(displayExternal(dp.y, None, 'Length'))
self.form.input_c_y.setProperty('rawValue', dp.y)
self.form.input_c_y.setProperty("rawValue", dp.y)
else:
# sby.setText(displayExternal(dp.y, None, 'Length'))
self.form.input_c_y.setProperty('rawValue', dp.y)
if self.mask in ('x', 'y'):
self.form.input_c_y.setProperty("rawValue", dp.y)
if self.mask in ("x", "y"):
# sbz.setText(displayExternal(dp.z, None, 'Length'))
self.form.input_c_z.setProperty('rawValue', dp.z)
self.form.input_c_z.setProperty("rawValue", dp.z)
else:
# sbz.setText(displayExternal(dp.z, None, 'Length'))
self.form.input_c_z.setProperty('rawValue', dp.z)
self.form.input_c_z.setProperty("rawValue", dp.z)
if plane:
pass
@@ -410,4 +414,5 @@ class TaskPanelPolarArray:
# Runs the parent command to complete the call
self.source_command.completed()
## @}