Skip to content

Conversation

@yrodzikau
Copy link

LibMCCore: Refine hatch interpolation handling and improve nonlinear factor processing

  • Core toolpath logic (amc_toolpathlayerdata.cpp):

    • Introduced compile-time switch USEALLMODIFICATIONFACTORS to control whether all modification factors (F/G/H) or only factor F are processed.
    • Added safeguard when assigning nonlinear interpolation data to avoid out-of-range vector access when nSubInterpolationCount is zero.
  • ScanLabSMC driver (CSMCJobInstance):

    • Added parsing and output of new active channel data (active0, active1) in SMC v1.0 simulation files.
    • Updated CSV field mapping to include new channels, replacing placeholder unused entries.
    • Extended data table schema to add active0 and active1 columns.
    • Populated active channel values in the output table and reset corresponding vectors after use.
  • LibMCEnv layer evaluation (libmcenv_toolpathlayer.cpp):

    • Commented out exception throw for incomplete hatch profile evaluation to allow partial evaluation without interrupting execution.

…factor processing

- Core toolpath logic (amc_toolpathlayerdata.cpp):
  - Introduced compile-time switch `USEALLMODIFICATIONFACTORS` to control whether
    all modification factors (F/G/H) or only factor F are processed.
  - Added safeguard when assigning nonlinear interpolation data to avoid
    out-of-range vector access when `nSubInterpolationCount` is zero.

- ScanLabSMC driver (CSMCJobInstance):
  - Added parsing and output of new active channel data (`active0`, `active1`) in
    SMC v1.0 simulation files.
  - Updated CSV field mapping to include new channels, replacing placeholder
    unused entries.
  - Extended data table schema to add `active0` and `active1` columns.
  - Populated active channel values in the output table and reset corresponding
    vectors after use.

- LibMCEnv layer evaluation (libmcenv_toolpathlayer.cpp):
  - Commented out exception throw for incomplete hatch profile evaluation to
    allow partial evaluation without interrupting execution.

Signed-off-by: Yury Rodzikau <[email protected]>
…table channel filling

- Renamed simulation column `active0` to `power` to reflect actual laser power semantics
  in SMC v1.1 job data output.
- Updated simulation data export to write laser power values into the new `power` column.
- Implemented `fillScatterplotChannel` in `libmcenv_datatable.cpp`:
…a display in point inspector

- Added a new "powerramp" color mode in LayerView for visualizing laser power
  distribution across the toolpath.
- Implemented computeChannelColumnRange(...) to detect the min/max of a data
  column and normalize power values for coloring.
- Added makeLaserPowerColors() to convert normalized power values to HSL-based
  RGB gradient for visual representation.
- Extended point inspector to display per-point laser power.
- Updated data loading logic to correctly populate the "power" channel from
  backend stream data.
- Updated Vue integration to cycle `laseron → powerramp → uniform → time`
  when toggling color modes.

Signed-off-by: Yury Rodzikau <[email protected]>
@alexanderoster alexanderoster merged commit 35a791d into alexanderoster:develop Oct 20, 2025
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants