From 66c12a5c54697c3692191257b7d0bfe3ea6cb73a Mon Sep 17 00:00:00 2001 From: yijian Date: Tue, 13 Oct 2026 19:32:03 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E5=81=8F=E6=89=A7=E8=B7=9D?= =?UTF-8?q?=E7=A6=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/autocal/config/locales/en_US.json | 2 +- apps/autocal/config/locales/zh_CN.json | 2 +- .../autocal/src/orisys_autocal/preferences.py | 2 +- .../src/orisys_autocal/ui/multipoint_panel.py | 27 ++----------------- 4 files changed, 5 insertions(+), 28 deletions(-) diff --git a/apps/autocal/config/locales/en_US.json b/apps/autocal/config/locales/en_US.json index 855dee5..021179f 100644 --- a/apps/autocal/config/locales/en_US.json +++ b/apps/autocal/config/locales/en_US.json @@ -405,7 +405,7 @@ "row_residual": "Alignment residual", "row_frames": "Frame mapping", "tool_xy": "Tool X / Y", - "tool_hint": "Where the tool is in the table frame, straight above the table origin by default. The table move is what carries the contact to this point. Measure it on the real setup.", + "tool_hint": "Where the tool is in the table frame. With Y at 3 mm, every point's table Y is the solved move plus 3 mm, so the sensor shell tail stays on the platform centre axis.", "sensor_xy": "Sensor X / Y", "sensor_zy": "Sensor Z / yaw", "setup_hint": "How the sensor actually sits on the stack with the machine at zero: X/Y/Z translation and a yaw about Z. Z is the mounting plate, shims included — there is no separate plate field. Measure it on the real setup.", diff --git a/apps/autocal/config/locales/zh_CN.json b/apps/autocal/config/locales/zh_CN.json index e8b54e8..fa61f9e 100644 --- a/apps/autocal/config/locales/zh_CN.json +++ b/apps/autocal/config/locales/zh_CN.json @@ -405,7 +405,7 @@ "row_residual": "对齐残差", "row_frames": "坐标映射", "tool_xy": "刀具 X / Y", - "tool_hint": "刀具在工作台坐标系中的位置,默认在原点正上方;工作台的移动量就是把接触点送到此处所需的位移。请按实际安装测量填写。", + "tool_hint": "刀具在工作台坐标系中的位置。Y 为 3 mm 时,每个测点的工作台 Y 都会在解算结果上再加 3 mm,使传感器壳体尾部与平台原中心同轴。", "sensor_xy": "传感器 X / Y", "sensor_zy": "传感器 Z / yaw", "setup_hint": "传感器在转台零位时相对工作台原点的实际安装位姿:X/Y/Z 平移与绕 Z 的偏摆。Z 即安装板厚度(含垫片),无需另填。请按实际安装测量填写。", diff --git a/apps/autocal/src/orisys_autocal/preferences.py b/apps/autocal/src/orisys_autocal/preferences.py index 47776d0..3e22502 100644 --- a/apps/autocal/src/orisys_autocal/preferences.py +++ b/apps/autocal/src/orisys_autocal/preferences.py @@ -228,7 +228,7 @@ def default_preferences() -> dict[str, Any]: #: against it, so it is what makes the reported move match the bench. A tool #: tip offset belongs here — it used to be a separate field, and having two #: of them is what let the picture and the numbers disagree. - "finger_tool_xy_mm": [0.0, 0.0], + "finger_tool_xy_mm": [0.0, 3.0], #: Stage travel, degrees. Confirmed at the bench: the vertical stage turns #: a full half-turn either way (±180), and the horizontal stage turns #: continuously. An earlier value of 90 was wrong and made half the patch diff --git a/apps/autocal/src/orisys_autocal/ui/multipoint_panel.py b/apps/autocal/src/orisys_autocal/ui/multipoint_panel.py index 33f02dc..2c5698a 100644 --- a/apps/autocal/src/orisys_autocal/ui/multipoint_panel.py +++ b/apps/autocal/src/orisys_autocal/ui/multipoint_panel.py @@ -120,10 +120,9 @@ class MultipointPanel(QWidget): layout.addLayout(buttons) extra = QHBoxLayout() extra.setSpacing(8) - self.import_button = QPushButton(page) self.align_button = QPushButton(page) self.reacquire_button = QPushButton(page) - for button in (self.import_button, self.align_button, self.reacquire_button): + for button in (self.align_button, self.reacquire_button): extra.addWidget(button, 1) layout.addLayout(extra) @@ -201,7 +200,6 @@ class MultipointPanel(QWidget): self.remove_button.clicked.connect(self._remove) self.up_button.clicked.connect(lambda: self._move(-1)) self.down_button.clicked.connect(lambda: self._move(1)) - self.import_button.clicked.connect(self._import_finger) self.align_button.clicked.connect(self._align) self.reacquire_button.clicked.connect(self._reacquire) self.source.currentIndexChanged.connect(lambda _index: self._refresh()) @@ -247,7 +245,6 @@ class MultipointPanel(QWidget): self.remove_button.setText(t("multipoint.remove")) self.up_button.setText(t("multipoint.up")) self.down_button.setText(t("multipoint.down")) - self.import_button.setText(t("multipoint.import_points")) self.align_button.setText(t("multipoint.align")) self.reacquire_button.setText(t("multipoint.reacquire")) self.source_label.setText(t("multipoint.source")) @@ -420,26 +417,6 @@ class MultipointPanel(QWidget): """The right-hand confirm button records the current multi-point step.""" self._confirm() - def _import_finger(self) -> None: - def go(): - if self._finger is None or not hasattr(self._finger, "acquisition_points"): - raise RuntimeError(t("multipoint.no_finger")) - points = self._finger.acquisition_points() - if not points: - raise RuntimeError(t("multipoint.no_finger_points")) - force = self._max_force() - lower = self._min_force() - for point in points: - uv = point.get("u_px"), point.get("v_px") - self.campaign.add_solved_site( - point["site_id"], point["x"], point["y"], point["z"], - (point["nx"], point["ny"], point["nz"]), point["pose"], - self._levels(), self._hold(), self.repeats.value(), - max_force_n=force, min_force_n=lower, - uv_px=None if uv[0] is None else (float(uv[0]), float(uv[1])), - ) - self._run(go) - def _align(self) -> None: if not self._selected: self.message.setText(t("multipoint.align_select")) @@ -524,7 +501,7 @@ class MultipointPanel(QWidget): self.wrench_box.setVisible(wrench) for widget in ( self.add_button, self.update_button, self.remove_button, self.up_button, - self.down_button, self.import_button, self.simulate_button, self.start_button, + self.down_button, self.simulate_button, self.start_button, self.site_id, self.repeats, self.frame, self.max_force, self.min_force, self.source, ): widget.setEnabled(not active)