Files
OrcaSlicer/src/slic3r/GUI
Tommaso BianchiandClaude Opus 5 9013f530fa CAD: a sheet body reports no volume, instead of a confident wrong one
mass_properties on an open shell returned volume 96000 with an inertia diagonal
of [-4.2e7, -4.2e7, -6.9e7] for a 60x60x40 four-walled box — negative principal
moments, which no real body can have. BRepGProp::VolumeProperties integrates the
divergence theorem over whatever faces exist; on an open shell that is not a
volume at all, and the old code hid the only obvious tell by taking std::abs()
of the mass. "valid: true" then asserted the number was trustworthy.

This matters because mass_properties is what an agent or a user reaches for to
confirm a cut removed the right material. Silent nonsense there means the check
passes on garbage.

MassProps gains is_solid. For a sheet we compute surface area only — that stays
exact — and report volume 0 with the inertia left zeroed. The MCP verb returns
is_solid plus a note saying volume and inertia are not defined for an open
shell; the GUI's Mass command says "sheet body — N cm² of surface, no volume"
rather than quoting material that is not there.

Verified on the rig: the sheet now returns volume 0.0, surface_area 9600.0
(exactly 4 x 60 x 40), is_solid false. The solid controls are unchanged and
exact — a 60 mm cube reports 216000.0 and 21600.0.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-14 13:35:03 +02:00
..
2026-07-31 20:51:48 -03:00
2026-06-18 09:13:51 -03:00
2025-10-05 16:02:17 +08:00
2026-04-20 19:27:38 -03:00
2026-01-03 23:06:57 +08:00
2025-07-06 11:34:47 +08:00
2026-06-07 13:12:51 +08:00
2026-06-18 09:13:51 -03:00
2026-07-18 03:15:11 +08:00
2026-07-29 16:27:15 -03:00
2026-07-29 16:27:15 -03:00
2026-08-13 16:28:28 +08:00
2026-06-18 09:13:51 -03:00
2025-08-22 20:02:26 +08:00
2025-09-21 13:47:51 +08:00
2025-10-02 09:30:48 +08:00
2026-07-24 09:41:24 -03:00
2025-10-02 09:30:48 +08:00
2025-10-28 15:29:56 +08:00
2026-07-17 08:30:22 +08:00
2025-10-28 15:29:56 +08:00
2025-09-21 23:01:08 +08:00
2026-04-25 18:14:51 +08:00
2026-04-25 18:14:51 +08:00
2026-07-02 17:49:36 +08:00
2026-04-25 18:14:51 +08:00
2026-07-02 17:49:36 +08:00
2026-07-29 16:27:15 -03:00
2026-07-02 17:49:36 +08:00
2026-07-02 17:49:36 +08:00
2026-05-21 09:04:26 +08:00
2026-06-18 09:13:51 -03:00
2026-01-03 23:06:57 +08:00
2026-01-23 17:05:56 +08:00
2026-01-03 23:06:57 +08:00
2026-02-04 11:40:02 +00:00
2026-01-23 17:05:56 +08:00
2026-01-23 17:05:56 +08:00
2026-07-02 17:49:36 +08:00
2026-07-02 17:49:36 +08:00
2025-10-28 15:30:06 +08:00
2025-10-28 15:29:56 +08:00
2026-04-25 18:14:51 +08:00