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:
@@ -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()
|
||||
|
||||
|
||||
## @}
|
||||
|
||||
Reference in New Issue
Block a user