mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-07-26 12:22:32 +00:00
refactor(plugin): prefix SlicingPipelineStepPlugin values with pos/ps to mirror Print steps
This commit is contained in:
@@ -3130,7 +3130,7 @@ bool GUI_App::on_init_inner()
|
||||
// cancellation, and convert a plugin failure into a (non-critical) SlicingError so it surfaces as a
|
||||
// slicing-error notification rather than the fatal-crash dialog.
|
||||
Slic3r::Print::set_slicing_pipeline_hook_fn(
|
||||
[](Slic3r::Print& print, const Slic3r::PrintObject* object, Slic3r::SlicingPipelineStep step) {
|
||||
[](Slic3r::Print& print, const Slic3r::PrintObject* object, Slic3r::SlicingPipelineStepPlugin step) {
|
||||
const auto* caps = print.config().option<ConfigOptionStrings>("slicing_pipeline_plugin");
|
||||
// `plugins` is a dynamic-only manifest key (not a static PrintConfig member), so it
|
||||
// must be read from the full/dynamic config -- reading it off print.config() (the
|
||||
@@ -3180,10 +3180,10 @@ bool GUI_App::on_init_inner()
|
||||
// out in Release), so it must NOT be called from a pipeline hook.
|
||||
if (!r.message.empty()) {
|
||||
static const char* const kStepNames[] = {
|
||||
"Slice", "Perimeters", "EstimateCurledExtrusions", "PrepareInfill", "Infill",
|
||||
"Ironing", "Contouring", "SupportMaterial", "DetectOverhangsForLift",
|
||||
"SimplifyPath", "WipeTower", "SkirtBrim"
|
||||
}; // order must match Slic3r::SlicingPipelineStep
|
||||
"posSlice", "posPerimeters", "posEstimateCurledExtrusions", "posPrepareInfill", "posInfill",
|
||||
"posIroning", "posContouring", "posSupportMaterial", "posDetectOverhangsForLift",
|
||||
"posSimplifyPath", "psWipeTower", "psSkirtBrim"
|
||||
}; // order must match Slic3r::SlicingPipelineStepPlugin
|
||||
const char* step_name = static_cast<size_t>(step) < sizeof(kStepNames) / sizeof(kStepNames[0])
|
||||
? kStepNames[static_cast<int>(step)] : "Unknown";
|
||||
BOOST_LOG_TRIVIAL(info) << "Slicing pipeline plugin '" << ref.capability_name
|
||||
|
||||
@@ -1794,7 +1794,7 @@ void Tab::on_value_change(const std::string& opt_key, const boost::any& value)
|
||||
// always carries resolved "name;uuid;capability" references that full_config() and save_to_json()
|
||||
// then pass downstream as-is -- no separate rebuild anywhere else.
|
||||
if (const ConfigOptionDef* opt_def = m_config->def()->get(opt_key);
|
||||
opt_def && opt_def->gui_type == ConfigOptionDef::GUIType::plugin_picker)
|
||||
opt_def && opt_def->plugin_type != ConfigOptionDef::PluginType::None)
|
||||
m_config->update_plugin_manifest();
|
||||
|
||||
if (opt_key == "gcode_flavor" && m_type == Preset::TYPE_PRINTER) {
|
||||
|
||||
@@ -414,7 +414,7 @@ void PluginHostSlicing::RegisterBindings(py::module_& host)
|
||||
layer_region
|
||||
.def_readonly("slices", &LayerRegion::slices,
|
||||
"Sliced, typed surfaces (SurfaceCollection). Edit in place, or replace with "
|
||||
"slices.set(expolygons, surface_type). At Step.Slice this is the primary mutation "
|
||||
"slices.set(expolygons, surface_type). At Step.posSlice this is the primary mutation "
|
||||
"target; the split slice loop runs make_perimeters() afterward so edits cascade downstream.")
|
||||
.def_readonly("fill_surfaces", &LayerRegion::fill_surfaces,
|
||||
"Surfaces prepared for infill (SurfaceCollection). Edit in place or via fill_surfaces.set(...).")
|
||||
|
||||
@@ -13,19 +13,19 @@ void SlicingPipelinePluginCapability::RegisterBindings(py::module_& module, py::
|
||||
(void) pluginTypes; // matches gcode/script/printerAgent; Step is a fresh enum below.
|
||||
auto slicing = module.def_submodule("slicing", "Slicing pipeline API (research/experimental).");
|
||||
|
||||
py::enum_<SlicingPipelineStep>(slicing, "Step")
|
||||
.value("Slice", SlicingPipelineStep::Slice)
|
||||
.value("Perimeters", SlicingPipelineStep::Perimeters)
|
||||
.value("EstimateCurledExtrusions", SlicingPipelineStep::EstimateCurledExtrusions)
|
||||
.value("PrepareInfill", SlicingPipelineStep::PrepareInfill) // after prepare_infill, before make_fills: editing fill_surfaces here CASCADES
|
||||
.value("Infill", SlicingPipelineStep::Infill) // after make_fills: editing fill_surfaces here does NOT regenerate fills (v1)
|
||||
.value("Ironing", SlicingPipelineStep::Ironing)
|
||||
.value("Contouring", SlicingPipelineStep::Contouring)
|
||||
.value("SupportMaterial", SlicingPipelineStep::SupportMaterial)
|
||||
.value("DetectOverhangsForLift", SlicingPipelineStep::DetectOverhangsForLift)
|
||||
.value("SimplifyPath", SlicingPipelineStep::SimplifyPath) // covers all simplify sub-steps
|
||||
.value("WipeTower", SlicingPipelineStep::WipeTower)
|
||||
.value("SkirtBrim", SlicingPipelineStep::SkirtBrim)
|
||||
py::enum_<SlicingPipelineStepPlugin>(slicing, "Step")
|
||||
.value("posSlice", SlicingPipelineStepPlugin::posSlice)
|
||||
.value("posPerimeters", SlicingPipelineStepPlugin::posPerimeters)
|
||||
.value("posEstimateCurledExtrusions", SlicingPipelineStepPlugin::posEstimateCurledExtrusions)
|
||||
.value("posPrepareInfill", SlicingPipelineStepPlugin::posPrepareInfill) // after prepare_infill, before make_fills: editing fill_surfaces here CASCADES
|
||||
.value("posInfill", SlicingPipelineStepPlugin::posInfill) // after make_fills: editing fill_surfaces here does NOT regenerate fills (v1)
|
||||
.value("posIroning", SlicingPipelineStepPlugin::posIroning)
|
||||
.value("posContouring", SlicingPipelineStepPlugin::posContouring)
|
||||
.value("posSupportMaterial", SlicingPipelineStepPlugin::posSupportMaterial)
|
||||
.value("posDetectOverhangsForLift", SlicingPipelineStepPlugin::posDetectOverhangsForLift)
|
||||
.value("posSimplifyPath", SlicingPipelineStepPlugin::posSimplifyPath) // covers all simplify sub-steps
|
||||
.value("psWipeTower", SlicingPipelineStepPlugin::psWipeTower)
|
||||
.value("psSkirtBrim", SlicingPipelineStepPlugin::psSkirtBrim)
|
||||
.export_values();
|
||||
|
||||
// The read-graph data model (Surface / ExPolygon / the extrusion tree / LayerRegion /
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#pragma once
|
||||
#include "slic3r/plugin/PythonPluginInterface.hpp"
|
||||
#include "libslic3r/Print.hpp" // SlicingPipelineStep, Print, PrintObject
|
||||
#include "libslic3r/Print.hpp" // SlicingPipelineStepPlugin, Print, PrintObject
|
||||
#include <pybind11/pybind11.h>
|
||||
#include <map>
|
||||
#include <string>
|
||||
@@ -15,7 +15,7 @@ namespace Slic3r {
|
||||
// src/slic3r/plugin/PluginHostSlicing.cpp.
|
||||
struct SlicingPipelineContext {
|
||||
std::string orca_version;
|
||||
SlicingPipelineStep step { SlicingPipelineStep::Slice };
|
||||
SlicingPipelineStepPlugin step { SlicingPipelineStepPlugin::posSlice };
|
||||
Print* print { nullptr }; // always present when dispatched
|
||||
const PrintObject* object { nullptr }; // null for print-wide steps
|
||||
// read-only per-plugin settings, populated by the dispatcher from the
|
||||
|
||||
Reference in New Issue
Block a user