Commit Graph
30 Commits
Author SHA1 Message Date
Valerii Bokhan 3e1daccd7c Feature: Add inward wipe for external perimeters (#15407) 2026-09-15 20:01:39 -03:00
Valerii Bokhan 0888e331b5 fix: validate float-or-percent input ranges (#15392) 2026-09-12 10:59:13 -03:00
Valerii Bokhan e8d35fadd4 Fix internal bridges over Hilbert Curve/Octagram Spiral sparse infill (#15206)
* Fix internal bridges over Hilbert Curve/Octagram Spiral sparse infill

For patterns with curved/turning anchor lines (Hilbert Curve, Octagram
Spiral), the bridge_over_infill algorithm produced incorrect results:

1. determine_bridging_angle: sampling curved anchor orientations
   produced noise across all turning directions (0/90/180/270°)
   instead of a single dominant one, yielding unstable bridge angles
   with 180° spread. Fix: use the configured infill_direction + 90°
   directly, bypassing the noisy sampling. The old blind +0.25*PI
   (Hilbert) and +1/16*PI (Octagram) offsets are removed.

2. construct_anchored_polygon: curved Hilbert/Octagram anchors
   intersected each vertical scan line many times at wildly different
   Y positions, producing chaotic polygon sections — holes in random
   places, bridges over air, rotated bridges. Fix: replace the curved
   infill polylines with synthetic straight lines parallel to
   infill_direction, spaced at the real infill line spacing
   (flow_spacing / density). Lines are centered on the limiting_area
   bbox center so that after rotation they span the full bridged_area.
   Anchors are left at full bbox length (not clipped) to guarantee
   every scan line finds an anchor.

Rectilinear and other straight-line patterns are unaffected.

Known limitation: some bridge edges may still terminate over air in
edge cases where the nearest synthetic anchor line is more than one
infill spacing away from the bridge boundary. This will be addressed
in a follow-up.

* fix: anchor internal bridges to actual sparse infill

Preserve real anchors across regions and align plane-path anchor origins with printed infill. Respect lower-layer rotation templates and model alignment, and sample curved bridge boundaries more finely.

Add regression coverage for anchor alignment, bridge angles and region isolation, with Orca comments explaining the geometry constraints. Verified 175 FFF tests before the comment-only follow-up; preserve CRLF in modified files.

* Fix internal bridge support contacts and separated infill origins

Restore anchor contact after bridge smoothing and share per-body pattern origins between anchors and printed infill. Recompute origins when preparation settings change.

Cover multiline counts 1, 2 and 3 and add regressions for printed bridge support, separated infill alignment and reslicing.

* Add explicit standard headers to PrintObject tests

* test: cover surface centering when infill settings change

Verify top and bottom Archimedean Chords and Octagram Spiral paths after switching centering modes or toggling separated infills. Compare reslicing against fresh slicing and document dependent infill invalidation.

* test: preserve directional surface infill when settings change

* perf: index layer islands for connected-body detection

* test: use public print pipeline for body centering checks
2026-09-10 08:03:50 -03:00
Valerii BokhanandIan Bassi 24967b543a Fix contour cleanup across coplanar triangles (#15366)
* Fix contour cleanup across coplanar triangles

Avoid generic collinear simplification after slicing. Skip only junctions created by shared edges between coplanar faces so contours stay stable without altering shallow geometry.

Fixes #15364

* Fix contour cleanup across coplanar triangles (code review fixes)

---------

Co-authored-by: Ian Bassi <ian.bassi@outlook.com>
2026-08-25 19:31:09 -03:00
Valerii Bokhan 524fd5e9c0 Fix: resolve 23 MSVC compiler warnings (#15280)
* fix: resolve MSVC compiler warnings and build error

C4101 - unreferenced local variables:
  - STEP.cpp, FilamentGroup.cpp: remove unused catch variable 'e'
  - GLGizmoMeasure.cpp: remove unused 'direction_on_model'
  - PartPlate.cpp: remove unused 'origin1, origin2'
  - DevStatus.cpp: suppress unused 'e' via (void)e

C4005 - macro redefinition:
  - Wrap NOMINMAX defines in #ifndef guards (OrcaSlicer.cpp, Preset.cpp,
    SupportTreeBuilder.cpp, OpenVDBUtils.cpp, GUI.cpp)
  - Remove conflicting DESIGN_INPUT_SIZE redefine in DownloadProgressDialog.cpp

C4172 - return address of local/temporary:
  - Config.cpp: return static const double instead of temporary 0

C4996 - deprecated API usage:
  - ImGuiWrapper.cpp: use GetText().Length() instead of GetTextLength()
  - OrcaCloudServiceAgent.cpp: replace deprecated wxPATH_NORM_ALL with
    explicit flags matching old default behavior
  - ASCIIFolding.cpp: replace deprecated std::wstring_convert/codecvt_utf8
    with boost::locale::conv::utf_to_utf (already used in same function)

C2440 - build error from deprecated wxTipWindow constructor:
  - Button.hpp/cpp: replace raw wxTipWindow* with wxTipWindow::Ref (weak
    reference). Ref auto-nulls when the tip window closes, eliminating
    the manual Bind(wxEVT_DESTROY) handler. delete uses operator->() to
    access the raw pointer since Ref is non-owning

* fix: avoid duplicate GetText() call in ImGuiWrapper clipboard handler

Capture wxTextDataObject::GetText() result in a local variable instead
of calling it twice (for .Length() check and into_u8()). GetText()
returns wxString by value, so this avoids an extra allocation/copy.

* fix: resolve MSVC compiler warnings (code review fixes)

* fix: resolve MSVC compiler warnings (code review fixes)
2026-08-24 15:37:47 -03:00
Valerii Bokhan f05444dc94 Fix unstable contours from triangulated planar faces (redone) (#15316) 2026-08-21 10:50:58 -03:00
Valerii Bokhan 87ca2bc42e Fix unstable contours from triangulated planar faces (#15313) 2026-08-20 18:03:38 -03:00
Valerii Bokhan fb36d5e73b Feature: Smooth Factor for the Hilbert Curve sparse infill (#14969) 2026-08-01 17:58:04 -03:00
Valerii Bokhan e28b5dae94 Fix: Default values in tooltips for coFloats, coInts, coPercents, coFloatsOrPercents, coBools, coStrings config options (#14796) 2026-07-20 17:09:37 -03:00
Valerii BokhanandIan Bassi 50768e0716 Feature: Retract amount after wipe (#11015)
Co-authored-by: Ian Bassi <ian.bassi@outlook.com>
2026-07-14 14:42:16 -03:00
Valerii BokhanandSoftFever b68cb8b97b Adding the add:north filament profiles to OrcaFilamentLibrary (#13366)
* Adding add:north filament profiles to OrcaFilamentLibrary

* addnorth filament profiles: moving the files to the BBL folder

* addnorth filament profiles: fixing filenames and setting ids

* addnorth filament profiles: updated settings (baseed on 26-06-2026 version)

* addnorth filament profiles: removed unsupported printers

* bump version

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-07-05 15:41:11 +08:00
Valerii Bokhan 1882861a98 Feature: Small perimeters speed for supports (#13459) 2026-07-03 17:27:57 -03:00
Valerii Bokhan 6fd4984cad Fix: Fixing the range check in ZAA code (#13452) 2026-05-02 18:35:15 -03:00
5358191499 Freature: Max Resolution and Deviation settings exposed for Arachne (#11925)
* Freature: Max Resolution and Deviation settings exposed for Arachne

Fixes #10235

Co-Authored-By: Copilot <175728472+Copilot@users.noreply.github.com>

* move the new option to comExpert

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-04-26 17:12:33 +08:00
Valerii BokhanandCopilot c30276ef24 Feature: Ability to set flow ratio for brims (#11876)
Fixes #11853

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-24 14:19:14 +08:00
Valerii Bokhan 31c1c29325 Fix: Globally fixing the "milimeters" typo in the code (#13295) 2026-04-19 20:28:13 -03:00
Valerii Bokhan b919148c66 Fix: Added a warning if the Hollow base pattern is selected for the non-tree supports (#12710)
Fixes point 4 of #12684
2026-03-10 23:56:00 +08:00
Valerii Bokhan e6f3eb7fe9 QoL: Default values in tooltips for Percent, FloatOrPercent, String and Bool options (#12508)
QoL: Default values in tooltips for Percent, String and Bool options
2026-03-10 10:21:10 +08:00
Valerii Bokhan 5e30783dcf Enhancement: Enabling base patterns (infill) for Organic supports (#12141)
Enhancement: Enabling base patterns for Organic supports
2026-02-28 18:25:21 +08:00
Valerii Bokhan 5c07cb5c39 I18n: Preview translations minor fix (Ukrainian) (#12504) 2026-02-27 15:24:06 -03:00
Valerii Bokhan 76436bb29a Fix: Fixed the values comparison for Float-based config options (#12478) 2026-02-26 09:28:45 -03:00
4343ddf823 Fix: Correct range checking for int and float Config Options + QoL changes in tooltips (#11915)
* Fix float number not working properly for option min/max (#11211)

* ConfigOptionDef: min/max values type are changed from INT to FLOAT.

(cherry picked from commit f277bc80c22e0c9a067481a4301922e2c96aed47)

* Fix infinite loop and crash when `fuzzy_skin_point_distance` = 0 (SoftFever/OrcaSlicer#11069)

* Fix Linux build issue

* Fix float comparison due to precision loss

* Fix: Range check added for coInt options; Ranges and defaults added in tooltips

---------

Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-02-23 13:06:07 +08:00
Valerii Bokhan 98cb91110e Fix: Free camera panning/rotating fixed (#12174)
Fixes #10266
2026-02-05 19:57:23 +00:00
Valerii Bokhan 9ed8848c9d Fix: The correct build plate is being selected in the UI on project loading (#11985)
# Description

Fixes: #11966

Fixed the build plate type setting during project load.

Implemented the code solution suggested by @kisslorand
2026-01-21 12:19:56 +08:00
Valerii Bokhan e6b93f9b90 Fix: Correct overriding for Support and Support Interface flow ratios per printing object (#11872)
Fixes #11859
2026-01-15 11:37:55 -03:00
Valerii Bokhan 08bd21310c Fix: Correcting the behavior of the camera panning. (#11111)
* Fix: Correcting the behavior of the camera panning.

Fixes #11107
2025-11-09 12:29:27 +08:00
Valerii Bokhan ead6f9d763 Fix: Hiding the ironing_angle_fixed setting in the UI if the ironing is disabled (#11286)
* Fix: Hiding the `ironing_angle_fixed` setting in the UI if the ironing is disabled
2025-11-06 23:53:57 +08:00
Valerii Bokhan 790bb39783 Fix: The fix of the adaptive layer height logic for supports (#10697)
Fix: Fixing the logic of the adaptive layer height for supports

Removing `tree_support_adaptive_layer_height` because its logic duplicates `independent_support_layer_height`
2025-10-28 17:31:49 +08:00
Valerii Bokhan e6a4ddf32d Feature: Ability to change flow ratios by extrusion path types (Code + Docs) (#10641)
This new feature allows users to override flow ratios for the following extrusion path types:

* First layer (excluding Brims and Skirts)
* Outer walls
* Inner walls
* Overhang perimeters
* Sparse infill
* Internal solid infill
* Gap fill
* Support
* Support interfaces
2025-10-20 21:45:52 +08:00
Valerii BokhanandSoftFever 0bdb114881 Fix: A proper handling of the support_base_pattern_spacing = 0 for the Tree Slim support (#11084)
Fixes #11082

Slicing is going to the endless loop when the `Base pattern spacing` value is 0 for `Tree Slim` support.

Co-authored-by: SoftFever <softfeverever@gmail.com>
2025-10-20 16:32:19 +08:00