feat: 完善参数化关系式与SCDM模型修改验证
This commit is contained in:
+20
-3
@@ -287,6 +287,16 @@ class StepEditorWindow(WindowCoreMixin, WindowStateMixin, WindowActionMixin, Inf
|
||||
self.property_command_buttons: dict[str, QPushButton] = {}
|
||||
self.relation_formula_items: list[dict[str, object]] = []
|
||||
self.relation_formula_next_id = 1
|
||||
self.relation_formula_base_snapshot: dict[object, object] | None = None
|
||||
self.relation_formula_replay_queue: list[dict[str, object]] = []
|
||||
self.relation_formula_replay_total = 0
|
||||
self.relation_formula_replay_done = 0
|
||||
self.relation_formula_replay_active = False
|
||||
self.relation_formula_replay_current_id: int | None = None
|
||||
self.relation_formula_replay_callback_seen = False
|
||||
self._relation_formula_replay_running_action = False
|
||||
self._relation_formula_object_label_cache_key: object = None
|
||||
self._relation_formula_object_label_cache: dict[str, object] = {}
|
||||
|
||||
self._build_ui()
|
||||
self._build_vtk()
|
||||
@@ -1292,7 +1302,7 @@ class StepEditorWindow(WindowCoreMixin, WindowStateMixin, WindowActionMixin, Inf
|
||||
self.relation_formula_box.setObjectName("relationFormulaBox")
|
||||
help_tip(
|
||||
self.relation_formula_box,
|
||||
"用 FaceID.参数 = 表达式 的形式建立关系式。第一版会先计算公式并回填当前参数表目标值,再执行参数化建模。",
|
||||
"用 FaceID.参数 = 表达式 的形式建立关系式。添加后会立即按当前公式组重新计算并修改模型。",
|
||||
)
|
||||
relation_layout = QVBoxLayout(self.relation_formula_box)
|
||||
relation_layout.setContentsMargins(6, 8, 6, 6)
|
||||
@@ -1305,13 +1315,20 @@ class StepEditorWindow(WindowCoreMixin, WindowStateMixin, WindowActionMixin, Inf
|
||||
self.relation_formula_input.setPlaceholderText("Face87.直径 = Face85.直径")
|
||||
help_tip(
|
||||
self.relation_formula_input,
|
||||
"示例:Face87.直径 = Face85.直径,或 Face87.位置 = Face85.位置 + (0, 0, -3.5)。输入 Face87. 后会提示当前可用参数。",
|
||||
"示例:Face87.直径 = Face85.直径,或 Face87.位置 = Face85.位置 + (0, 0, -3.5)。输入 Face87. 后会提示可用参数。",
|
||||
)
|
||||
self.relation_formula_completer_model = QStringListModel(self)
|
||||
self.relation_formula_completer = QCompleter(self.relation_formula_completer_model, self)
|
||||
self.relation_formula_completer.setCaseSensitivity(Qt.CaseSensitivity.CaseInsensitive)
|
||||
self.relation_formula_completer.setFilterMode(Qt.MatchFlag.MatchStartsWith)
|
||||
self.relation_formula_completer.setCompletionMode(QCompleter.CompletionMode.PopupCompletion)
|
||||
self.relation_formula_input.setCompleter(self.relation_formula_completer)
|
||||
self.relation_formula_completer.setMaxVisibleItems(12)
|
||||
self.relation_formula_completer.activated[str].connect(self._on_relation_formula_completion_activated)
|
||||
relation_popup = self.relation_formula_completer.popup()
|
||||
if relation_popup is not None:
|
||||
relation_popup.setFocusPolicy(Qt.FocusPolicy.NoFocus)
|
||||
relation_popup.installEventFilter(self)
|
||||
self.relation_formula_completer.setWidget(self.relation_formula_input)
|
||||
self.relation_formula_input.installEventFilter(self)
|
||||
self.relation_formula_input.textChanged.connect(self._on_relation_formula_input_changed)
|
||||
self.relation_formula_input.returnPressed.connect(self.add_relation_formula)
|
||||
|
||||
Reference in New Issue
Block a user