feat(gui,cli): 弹射后等待增加开关控制,版本升至0.6.0
- GUI: 弹射后等待改为勾选框+微调框模式,与热床降温统一 - CLI: 新增 --no-eject-wait 参数跳过弹射等待 - 不勾选时 wait_after_eject_seconds=0,build_swap_block 跳过 G4 - __init__.py: 版本号 0.5.0 → 0.6.0
This commit is contained in:
@@ -6,6 +6,6 @@
|
||||
# 应用程序显示名称
|
||||
APP_NAME = "A1 Swap Mod Packer"
|
||||
# 语义化版本号
|
||||
__version__ = "0.5.0"
|
||||
__version__ = "0.6.0"
|
||||
# 窗口标题:应用名称 + 版本号
|
||||
APP_TITLE = f"{APP_NAME} v{__version__}"
|
||||
|
||||
@@ -70,7 +70,7 @@ def build_command(args: argparse.Namespace) -> int:
|
||||
swap_gcode=args.swap_gcode,
|
||||
output_3mf=Path(args.output),
|
||||
cool_bed_temp=cool_bed_temp,
|
||||
wait_after_eject_seconds=args.wait,
|
||||
wait_after_eject_seconds=0 if args.no_eject_wait else args.wait,
|
||||
show_plate_number=args.show_plate_number,
|
||||
swap_after_final=not args.no_swap_after_final,
|
||||
metadata_mode=args.metadata_mode,
|
||||
@@ -147,6 +147,7 @@ def create_parser() -> argparse.ArgumentParser:
|
||||
build.add_argument("--no-bed-cooldown", action="store_true", help="不在换料代码前插入 M190。")
|
||||
# 时间与编号
|
||||
build.add_argument("--wait", type=int, default=45, help="板弹射后等待的秒数。")
|
||||
build.add_argument("--no-eject-wait", action="store_true", help="不插入弹射后等待指令 G4。")
|
||||
build.add_argument("--show-plate-number", action="store_true", help="每板号向 M73 R 值增加 100 小时。")
|
||||
# 行为开关
|
||||
build.add_argument("--no-swap-after-final", action="store_true", help="最后一块板后不执行换料 G-code。")
|
||||
|
||||
@@ -523,12 +523,18 @@ class MainWindow(QMainWindow):
|
||||
bed_row.addWidget(QLabel("°C"))
|
||||
bed_row.addStretch(1)
|
||||
|
||||
# 弹射后等待时间
|
||||
# 弹射后等待时间(勾选后启用,不勾选则不插入等待指令)
|
||||
self.eject_wait_check = QCheckBox("弹射后等待")
|
||||
self.eject_wait_check.setChecked(True)
|
||||
self.wait_spin = QSpinBox()
|
||||
self.wait_spin.setRange(0, 3600)
|
||||
self.wait_spin.setValue(45)
|
||||
self.wait_spin.setSuffix(" 秒")
|
||||
self.wait_spin.setFixedWidth(96)
|
||||
eject_wait_row = QHBoxLayout()
|
||||
eject_wait_row.addWidget(self.eject_wait_check)
|
||||
eject_wait_row.addWidget(self.wait_spin)
|
||||
eject_wait_row.addStretch(1)
|
||||
|
||||
# 剩余时间板号显示
|
||||
self.show_plate_number_check = QCheckBox("在剩余时间的百位显示当前板号")
|
||||
@@ -592,7 +598,7 @@ class MainWindow(QMainWindow):
|
||||
|
||||
# 第 2 行:弹射后等待 | 剩余时间板号
|
||||
grid.addWidget(QLabel("弹射后等待时间"), 2, 0)
|
||||
grid.addWidget(self.wait_spin, 2, 1)
|
||||
grid.addLayout(eject_wait_row, 2, 1)
|
||||
grid.addWidget(QLabel("剩余时间板号"), 2, 2)
|
||||
grid.addWidget(self.show_plate_number_check, 2, 3)
|
||||
|
||||
@@ -700,6 +706,8 @@ class MainWindow(QMainWindow):
|
||||
self.default_copies_spin.valueChanged.connect(self.save_current_settings)
|
||||
self.bed_cooldown_check.stateChanged.connect(self.save_current_settings)
|
||||
self.cool_bed_spin.valueChanged.connect(self.save_current_settings)
|
||||
self.eject_wait_check.stateChanged.connect(self.save_current_settings)
|
||||
self.eject_wait_check.toggled.connect(self.wait_spin.setEnabled)
|
||||
self.wait_spin.valueChanged.connect(self.save_current_settings)
|
||||
self.show_plate_number_check.stateChanged.connect(self.save_current_settings)
|
||||
self.swap_final_check.stateChanged.connect(self.save_current_settings)
|
||||
@@ -720,6 +728,7 @@ class MainWindow(QMainWindow):
|
||||
self.default_copies_spin.setValue(int(options.get("default_copies", 1)))
|
||||
self.bed_cooldown_check.setChecked(bool(options.get("bed_cooldown_enabled", True)))
|
||||
self.cool_bed_spin.setValue(int(options.get("cool_bed_temp", 45)))
|
||||
self.eject_wait_check.setChecked(bool(options.get("eject_wait_enabled", True)))
|
||||
self.wait_spin.setValue(int(options.get("wait_after_eject_seconds", 45)))
|
||||
self.show_plate_number_check.setChecked(bool(options.get("show_plate_number", True)))
|
||||
self.swap_final_check.setChecked(bool(options.get("swap_after_final", True)))
|
||||
@@ -755,6 +764,7 @@ class MainWindow(QMainWindow):
|
||||
"default_copies": self.default_copies_spin.value(),
|
||||
"bed_cooldown_enabled": self.bed_cooldown_check.isChecked(),
|
||||
"cool_bed_temp": self.cool_bed_spin.value(),
|
||||
"eject_wait_enabled": self.eject_wait_check.isChecked(),
|
||||
"wait_after_eject_seconds": self.wait_spin.value(),
|
||||
"show_plate_number": self.show_plate_number_check.isChecked(),
|
||||
"swap_after_final": self.swap_final_check.isChecked(),
|
||||
@@ -1303,11 +1313,12 @@ class MainWindow(QMainWindow):
|
||||
if not swap_gcode_path:
|
||||
raise ValueError("请在 swap_gcode 文件夹中放入至少一个换料 G-code 文件并选择它。")
|
||||
cool_bed_temp = self.cool_bed_spin.value() if self.bed_cooldown_check.isChecked() else None
|
||||
eject_wait_seconds = self.wait_spin.value() if self.eject_wait_check.isChecked() else 0
|
||||
return BuildOptions(
|
||||
swap_gcode=Path(swap_gcode_path),
|
||||
output_3mf=output_path,
|
||||
cool_bed_temp=cool_bed_temp,
|
||||
wait_after_eject_seconds=self.wait_spin.value(),
|
||||
wait_after_eject_seconds=eject_wait_seconds,
|
||||
show_plate_number=self.show_plate_number_check.isChecked(),
|
||||
swap_after_final=self.swap_final_check.isChecked(),
|
||||
metadata_mode=self.metadata_combo.currentData(),
|
||||
|
||||
Reference in New Issue
Block a user