Compare commits

...

7 Commits

Author SHA1 Message Date
jyviko 1b74d23224 Kernel ladder: re-record 07-fillets/012 and 021 at solidcore 5d2635d36
solidcore#2364 (the smooth-vertex End) brings back the End at 012's smooth
vertex: its variable round fails its answer (47770.946 mm3 against 47755.126)
with 9 faces, 20 edges and 13 vertices; 021 gains an edge and a vertex.
Every other entry is unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-11-04 02:10:42 -05:00
jyviko 5eb12084f0 Known failures: the new pin's regressions, each with the solidcore PR that made it
Bisected over solidcore's merges since 8ddce9016: solidcore#2364 (the smooth-vertex
End) breaks 9 tests and 5 fillet rig cases, solidcore#2480 (the procedural blend
record) 8 tests, solidcore#2369 and #2382 (the setback corner and its scale) move
the later round at a mitre and refuse one rig case's corner fill.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-11-04 02:10:42 -05:00
jyviko c85efa657f Known failures: drop the tests and the rig case the new pin fixes
Six tests now pass at solidcore 5d2635d36, and the fillet rig case
cov-junction-boss-tilt-40-root-round.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-11-04 02:10:42 -05:00
jyviko 6d3c4cd313 smlib: hold back fillet_round_ends_on_outline (WR-730)
With it on, 11 tests that pass with it off fail: volumes off their
closed forms (fillet_over_a_cliff 721.832 against 693.205) and rounds
too big for their faces built, or refused where they build without it.
Its cases and numbers are in HELD_BACK's doc.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-11-04 02:10:42 -05:00
jyviko d6474a73f0 smlib: turn on solidcore's nine new fixes
Every opt-in fix is on unless shown broken (every_upstream_fix_is_on_unless_shown_broken):
offset_extends_ball_patches_as_themselves (WR-728, solidcore#2484),
approximate_surface_checks_every_row (WR-726, #2507),
topological_vertex_has_only_edge_uses (WR-727, #2520),
planar_section_face_tolerance (WR-723, #2480),
face_swap_uv_transposes_trims (WR-729, #2479),
closed_smooth_pole_tangent_limit (WR-725, #2521),
fillet_round_ends_on_outline (WR-730, #2541),
fillet_setback_beside_curved_faces (#2343),
fillet_chamfer_corner (WR-716, #2345).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-11-04 02:10:42 -05:00
jyviko b650b5eea9 smlib: drop the per-kernel blend serial ranges and WR-641's flag, gone from solidcore
solidcore#2388 keys the station memo by each definition's own identity
(Kernel::blend_last_serial is gone), so kernels need no serial ranges of
their own; solidcore#2617 removed fillet_through_extended_rail_end, its
behaviour now without a flag.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-11-04 02:10:42 -05:00
jyviko c6328b0eb7 Move the solidcore pin to 5d2635d36
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-11-04 02:10:42 -05:00
7 changed files with 64 additions and 46 deletions
Generated
+2 -1
View File
@@ -4054,8 +4054,9 @@ dependencies = [
[[package]]
name = "solidcore"
version = "1.0.1"
source = "git+https://github.com/tangency-labs/solidcore?rev=8ddce901671f1cebd9214a31d21895d725e886c8#8ddce901671f1cebd9214a31d21895d725e886c8"
source = "git+https://github.com/tangency-labs/solidcore?rev=5d2635d360def3dfbb24d696ae6e763aacf5b7b9#5d2635d360def3dfbb24d696ae6e763aacf5b7b9"
dependencies = [
"serde",
"thiserror 2.0.21",
]
+1 -1
View File
@@ -35,7 +35,7 @@ solidcraft-3dx-client = { path = "crates/threedx-client" }
# move the rev on its own commit. For a
# local checkout, add `[patch."https://github.com/tangency-labs/solidcore"] solidcore = { path =
# "../solidcore/crates/solidcore" }` to a `.cargo/config.toml` outside the repository.
solidcore = { git = "https://github.com/tangency-labs/solidcore", rev = "8ddce901671f1cebd9214a31d21895d725e886c8" }
solidcore = { git = "https://github.com/tangency-labs/solidcore", rev = "5d2635d360def3dfbb24d696ae6e763aacf5b7b9" }
# Geometry as data (solidcore's layers §1, "Record"): the B-rep record, its structural validation
# and the native body file. Pinned like solidcore; for a local checkout, patch it as above.
solidcore-record = { git = "https://github.com/tangency-labs/solidcore", rev = "f5e8e9a29e0c9b7cf6c4040a5bc8878382b3c62f" }
+24 -11
View File
@@ -6,7 +6,6 @@
//! fork fixed in its own sources; each one turned on here says which fork commit it matches.
use std::panic::{AssertUnwindSafe, catch_unwind};
use std::sync::atomic::{AtomicU64, Ordering};
use std::sync::{Mutex, PoisonError};
use solidcore::geom::attribute::{AttributeStore, ObjectKey};
@@ -153,7 +152,6 @@ pub(crate) fn fixes() -> UpstreamFixes {
f.fillet_point_step_per_point = true;
f.analytic_copy_keeps_parameterization = true;
f.fillet_point_bigger_step_retry = true;
f.fillet_through_extended_rail_end = true;
f.precise_properties_body_length_scale = true;
f.offset_extension_from_base = true;
f.corner_blend_stays_inside_neighbours = true;
@@ -390,6 +388,16 @@ pub(crate) fn fixes() -> UpstreamFixes {
f.plane_first_torus_section_exact = true;
f.keep_exact_pcurves = true;
f.shell_one_construction = true;
f.offset_extends_ball_patches_as_themselves = true;
f.approximate_surface_checks_every_row = true;
f.topological_vertex_has_only_edge_uses = true;
f.planar_section_face_tolerance = true;
f.face_swap_uv_transposes_trims = true;
f.closed_smooth_pole_tangent_limit = true;
// Held back: see `HELD_BACK`.
f.fillet_round_ends_on_outline = false;
f.fillet_setback_beside_curved_faces = true;
f.fillet_chamfer_corner = true;
f
}
@@ -407,20 +415,25 @@ pub(crate) fn fixes() -> UpstreamFixes {
/// 324-fillet-over-hole-cut-by-overlong-cylinder, 324-fillet-over-hole-overlap,
/// 5158-fillet-adjacent-plate-edges-as-thick-as-plate and the sloped and equal-slope basin rims of
/// #1080 and #5835. A fix under the same flag is in progress on solidcore.
///
/// `fillet_round_ends_on_outline` (WR-730, solidcore#2541): volumes wrong against their closed
/// forms, and rounds too big for their faces built instead of refused. With it on, each of these
/// passes with it off: `fillet_over_a_cliff` measures 721.832 against the closed form's 693.205;
/// `a_round_wider_than_its_faces_overflows_onto_its_tangent_sides` 6125.719 against 6107.529;
/// `taper_follows_the_room_along_the_edge` 4210.926 against 4195.579; the round larger than the
/// cube in `hostile_inputs_are_errors` builds (4773.168 against the 1094.853 its refusal leaves),
/// as do the fillets the CLI's `run_strict` and `json_out` tests need to fail; and
/// `a_corner_round_wider_than_its_faces_overflows_and_takes_the_corners_other_edges`,
/// `overflow_goes_first`, `corners_refuse_what_they_cannot_build` and
/// `fillet_edge_removed_by_a_larger_overflowing_round_is_noted` are refused (too large, no room,
/// status 1001), where with it off they build.
#[cfg(test)]
const HELD_BACK: &[&str] = &["fillet_refuse_rounds_breaking_through"];
const HELD_BACK: &[&str] = &["fillet_refuse_rounds_breaking_through", "fillet_round_ends_on_outline"];
/// How far apart two kernels' procedural blend serials start. A body keeps the serials of the
/// kernel that made it and may be used on any other, whose memo of solved stations is keyed by
/// serial alone: the ranges keep one definition's stations from answering for another's.
pub(crate) const BLEND_SERIALS_PER_KERNEL: u64 = 1 << 40;
/// A new kernel. Each takes the next range of blend serials, the first starting at 0.
/// A new kernel, with this backend's fixes.
fn fresh() -> Kernel {
static MADE: AtomicU64 = AtomicU64::new(0);
let mut k = Kernel::new(&KernelOptions::default());
k.fixes = fixes();
k.blend_last_serial.set(MADE.fetch_add(1, Ordering::Relaxed).wrapping_mul(BLEND_SERIALS_PER_KERNEL));
k
}
-13
View File
@@ -485,19 +485,6 @@ fn bodies_move_between_kernels_and_calls_run_side_by_side() {
}
}
/// Each kernel has its own range of blend serials: a body keeps the serials of the kernel that
/// made it, and another kernel's memo of solved stations must not take them for its own.
#[test]
fn kernels_never_issue_the_same_blend_serial() {
let range = core::BLEND_SERIALS_PER_KERNEL as usize;
let ranges = core::run("outer", |outer| {
let inner = core::run("inner", |inner| Ok(inner.blend_last_serial.get() as usize)).unwrap_or_default();
Ok([outer.blend_last_serial.get() as usize / range, inner / range])
});
let [outer, inner] = ranges.unwrap();
assert_ne!(outer, inner);
}
/// A panic in a call running beside another costs neither: the panicking call's kernel is thrown
/// away and the other call and later ones go on.
#[test]
+19 -7
View File
@@ -8,10 +8,12 @@
# and junit-gpu-1..4), run `cargo xtask known-failing --junit <dir>`, then drop each FIXED line and
# add each REGRESSION line with its cause, from the test's failure message.
solidcraft-cli::action_matrix::action_matrix_sample 3 baseline actions fail, the same 3 as on C++: 2 shells (Bad Loop Orient on issue-616-lid-ribs; status 1001 on filleted-shelled-box), 1 fillet (SmSurfOfRevolution Test #7 on oblique_cut_of_cylinder)
solidcraft-cli::model_cache::a_later_round_after_opening_blends_the_saved_rounds_again the later r3 round at the r2 mitre builds solidcore's 10-face corner (7928.743041), the test wants SMLib f916a8d's setback corner (smlib#104), which solidcore ports in solidcore#2310: 15 faces, 7928.142563938
solidcraft-cli::model_cache::a_later_round_after_opening_blends_the_saved_rounds_again the later r3 round at the r2 mitre builds 7927.724283 since solidcore#2382 (a9ef4c707, the least-certifying setback scale); the test wants SMLib f916a8d's setback corner (smlib#104), 15 faces, 7928.142563938, which solidcore#2369 built (7928.142564)
solidcraft-cli::naming_corpus::corpus_designs_name_alike_every_build_and_fail_where_a_reference_is_gone oracle/83-boundary-loop-thicken does not load: step 8, thicken status 1001, as on C++
solidcraft-doc::eval::chain_tests::a_propagated_chain_that_cannot_build_says_how_to_blend_the_edge_alone with tangent_chain off the r3 round builds 9 faces, the test wants 8, since solidcore#2364 (845bdb4e0, the smooth-vertex End); passes at fb937dd8d
solidcraft-doc::eval::cost_tests::a_tap_marking_searches_only_the_bodies_near_it main's mesh-based version (#10303) not taken; the exact replacement is to come
solidcraft-doc::eval::cost_tests::a_tap_marking_still_searches_the_bodies_within_its_reach main's mesh-based version (#10303) not taken; the exact replacement is to come
solidcraft-engine::boolean_regression_tests::box_intersect_splits_the_end_off_a_raked_wedge_after_its_end_rounds the wedge's end rounds fail status 1001 since solidcore#2480 (819a5ad3a, the procedural blend record); passes at 7906d0d0c
solidcraft-engine::cmd::edit::tests::inserting_variable_fillet_control_preserves_parameters_at_existing_positions solidcore refuses a variable fillet whose law has a corner (solidcore#430)
solidcraft-engine::cmd::file::tests::each_format_has_an_export_command_of_its_own the box's planar faces are meshed into 124 triangles, not 12 (the STL is 6284 bytes, the test counts 84 + 50 x 12), as on SMLib
solidcraft-engine::cmd::sketch_project::tests::intersection_curve_of_picked_faces_spans_the_whole_surface its premise fails off truck: the fit-point spline wall's 3 span faces are not one surface patch in the kernel's mesh (surface_patch gives 1 face, the test wants 3), as on SMLib
@@ -19,22 +21,32 @@ solidcraft-engine::extent_tests::cut_to_the_far_side_of_a_curved_wall main's mes
solidcraft-engine::face_name_tests::a_join_that_makes_the_body_bigger_leaves_round_walls_it_never_touched_alone main's edge lookup by a stored point (#11286) finds the edge on the display mesh (edge_near on the body's mesh), not taken; the exact replacement is to come
solidcraft-engine::hole_face_tests::a_hole_wider_than_the_part_says_it_removes_all_of_it a 40 mm hole at (10, 10) touches the plate's edge y = 30 at one point; the kernel parts the plate there into 2 bodies, the test wants truck's 1, as on SMLib
solidcraft-engine::measure_centre_tests::a_fillet_round_a_boss_reports_its_radius the round at the foot of a boss is not an analytic torus of minor radius 3, so no face of the body is (the test finds none to measure), as on SMLib
solidcraft-engine::pleat_regressions::mirrored_pleat_joins_into_a_thick_case_wall FilletRearOuter and FilletRearInner fail status 1001 since solidcore#2480 (819a5ad3a, the procedural blend record); passes at 7906d0d0c
solidcraft-engine::pleat_regressions::pleat_built_at_the_far_end_joins_the_finished_case FilletRearOuter and FilletRearInner fail status 1001 since solidcore#2480 (819a5ad3a, the procedural blend record); passes at 7906d0d0c
solidcraft-engine::tests::a_later_round_at_a_mitred_corner_is_blended_with_the_rounds_there the later r3 round at the r2 mitre builds 7927.724283 since solidcore#2382 (a9ef4c707, the least-certifying setback scale); 7928.142564 at solidcore#2369 (the fork's setback corner, smlib#104); the test wants the old 10-face corner, 7928.743041
solidcraft-engine::tests::chord_and_variable_fillets its 2 → 4 → 2 waist: solidcore refuses a variable fillet whose law has a corner (solidcore#430)
solidcraft-engine::tests::fillet_fit_taper_closes_to_a_point fillet status 1001 on the taper fit (radius 16 closing to 0), as on C++
solidcraft-engine::tests::mirror_placed::dragging_a_mirrored_part_meshes_its_copies_once a copy of a copy drawn from its first copy's triangles (#10101) is triangulated differently from a fresh mesh of it, where truck's meshes are the same under a rigid move, as on SMLib
solidcraft-engine::tests::shell_tangent_chain_that_opens_every_face_explains_how_to_keep_walls the 2 mm shell of the box with every edge rounded r 1.5, its front face open, fails SM_ERR_INVALID_INPUT at solidcore 8ddce9016: the wall is thicker than the rounds and their Ball corners (BallPatch, fillet_blend_corner), whose inward offsets collapse
solidcraft-engine::tests::pleat_join::the_pleats_join_at_every_wall_from_2_4_to_2_6_mm at 2.5 mm FilletRearOuter and FilletRearInner fail status 1001 since solidcore#2480 (819a5ad3a, the procedural blend record); passes at 7906d0d0c
solidcraft-engine::tests::robustness::a_boundary_found_across_a_seam_is_not_used seed 20's fillet fails status 1001 since solidcore#2480 (819a5ad3a, the procedural blend record); passes at 7906d0d0c
solidcraft-engine::tests::robustness::fillet_into_an_earlier_round the r3 round into the r2 round measures 35923.387 against the closed form 35919.524 (within 2 wanted) since solidcore#2364 (845bdb4e0, the smooth-vertex End); passes at fb937dd8d
solidcraft-kernel::blend::corner_tests::a_round_ending_in_an_earlier_round_matches_both_together fillet status 1001 on the round that ends in the earlier one, as on C++
solidcraft-kernel::blend::corner_tests::corner_blends_hold_at_any_scale at 0.01x the arc case's rounds remove 72.783 (scaled back) against 72.713 at 1x, as on C++
solidcraft-kernel::blend_corner::tests::a_round_next_to_a_round_of_another_radius the r3 round ending on the r2 round makes 9 faces, the test wants 8, since solidcore#2364 (845bdb4e0, the smooth-vertex End); passes at fb937dd8d
solidcraft-kernel::blend_corner::tests::issue2422_vertical_after_separate_bottom_rounds the vertical edge after the separate bottom rounds is refused as smooth ("its faces meet tangentially, so there is nothing to round"): the rounds leave it tangent at solidcore 8ddce9016
solidcraft-kernel::blend_corner::tests::three_rounds_at_a_corner the corner's variable-radius transition between rounds of different radii meets its neighbours at 0.144 degrees once its sections are the balls' touch circles (fillet_gn_section_generator, solidcore#2262; 0 with the great circles), as on SMLib d01d7b0; the corner step replaces that transition
solidcraft-kernel::blend_variable::tests::variable_radius_on_a_box_edge the variable round r 2 to 5 along a box edge fails status 1001 at solidcore 8ddce9016
solidcraft-kernel::blend_smlib::tests::smooth_edges_and_unfinished_tangent_chains_are_refused_saying_why the r1 top round alone measures 7957.723 against the closed form 7957.505 since solidcore#2364 (845bdb4e0, the smooth-vertex End); passes at fb937dd8d
solidcraft-kernel::blend_variable::tests::variable_radius_with_a_corner_through_a_middle_point solidcore refuses a variable fillet whose law has a corner (solidcore#430)
solidcraft-kernel::blend_wrong_way_tests::a_chamfer_that_would_grow_the_part_on_a_convex_edge_is_refused at solidcore 8ddce9016 the 0.5 chamfer of the ball cut's rim is no longer refused as too large: the session builds no face (made no change), its tangent chain running into an unblended edge
solidcraft-kernel::corner_g2::tests::a_long_setback_keeps_the_g2_patch_inside_the_box at set backs 11 to 15 the G2 corner patch bulges past the box, as on C++
solidcraft-kernel::corner_g2::tests::curvature_rounds_meet_at_a_g2_corner the corner between curvature rounds jumps 2.07 in curvature over 538 stations on solidcore; the test wants it curvature continuous, as SMLib f916a8d's setback corner (smlib#104), which solidcore ports in solidcore#2310 builds it
solidcraft-kernel::corner_g2::tests::the_box_corner_g2_patch_is_a_closed_solid_curvature_continuous_to_its_neighbours the fitted G2 corner patch bulges 1.7e-5 past the box, as on C++
solidcraft-kernel::fillet_setback_tests::a_setback_not_past_the_radius_is_refused_naming_the_least solidcore builds setback 5.5 (15 faces) where SMLib f916a8d's setback corner (smlib#104), which solidcore ports in solidcore#2310 refuses it naming the least that builds; nothing names the least setback on solidcore until then
solidcraft-kernel::modify_history_tests::fillet_variable_and_chord the variable round r 2 to 5 along the cube's edge fails status 1001 at solidcore 8ddce9016, as variable_radius_on_a_box_edge
solidcraft-kernel::issue_851_tests::blend_the_arc_top_edge_and_the_top_front_edge the arc then the front removes 59.148 against 60.122 since solidcore#2364 (845bdb4e0, the smooth-vertex End); passes at fb937dd8d
solidcraft-kernel::issue_851_tests::fillet_the_arc_top_edge_and_the_front_upright_at_the_arc the arc then the upright removes 31.497 against 32.310 since solidcore#2364 (845bdb4e0, the smooth-vertex End); passes at fb937dd8d
solidcraft-kernel::issue_851_tests::fillet_the_top_front_edge_and_the_front_left_upright the top front then the upright removes 42.236 against 43.187 since solidcore#2364 (845bdb4e0, the smooth-vertex End); passes at fb937dd8d
solidcraft-kernel::issue_851_tests::fillet_the_top_front_edge_and_the_front_upright_at_the_arc the top front then the upright removes 41.341 against 42.146 since solidcore#2364 (845bdb4e0, the smooth-vertex End); passes at fb937dd8d
solidcraft-kernel::native::tests::box_and_fillet_have_stable_wire_records the box-edge round's wire record differs from the fixture at solidcore 8ddce9016 (a value 3 is 5): the fixture is re-blessed (NATIVE_BREP_BLESS=1) once the change is shown right
solidcraft-kernel::tests::fillet_partial_mixed_arc_and_line_perimeter_run the partial arc-and-line run fails status 1001 since solidcore#2480 (819a5ad3a, the procedural blend record); passes at 7906d0d0c
solidcraft-kernel::tests::fillet_tabbed_plate_outer_loop_and_partial_selection_after_hole the tabbed plate's outer-loop rounds fail status 1001 since solidcore#2480 (819a5ad3a, the procedural blend record); passes at 7906d0d0c
solidcraft-smlib::core::blend_tests::tabbed_plate_rounds_mitred_on_the_arcs_continuation the rounds fail status 1001 since solidcore#2480 (819a5ad3a, the procedural blend record); passes at 7906d0d0c
solidcraft-smlib::ops::tests::a_variable_round_with_a_corner_in_its_law_is_its_balls_union solidcore refuses a variable fillet whose law has a corner (solidcore#430)
solidcraft-ui-egui::preselect_tests::variable_fillet_round_trip the dialog's variable round fails status 1001 at solidcore 8ddce9016, as variable_radius_on_a_box_edge
solidcraft-smlib::ops::tests::fillet_takes_exactly_the_picked_edges one picked edge of the rim's tangent chain adds 9 faces, the test wants 1, since solidcore#2364 (845bdb4e0, the smooth-vertex End); passes at fb937dd8d
+7 -2
View File
@@ -1,12 +1,15 @@
# The fillets cases that fail today on solidcore, one a line: `<case> <why it fails today>`. Sorted.
# The kernel rig gate fails on a case that fails and is not listed, and on a listed case that passes.
# Baseline: solidcore pin 8ddce9016, tests/kernel-cases run by `cargo xtask kernel-cases`, x86_64 Linux.
# Baseline: solidcore pin 5d2635d36, tests/kernel-cases run by `cargo xtask kernel-cases`, x86_64 Linux.
1080-fillet-equal-slope-basin-1-mm-rim-loop-4 [fail] continuity_order: got {'body': 'Slab', 'edges': 'blend', 'order': 'g0', want >= g1 at every blend seam
1080-fillet-notched-block-top-outline-r8 [fail] continuity_order: g0, a blend seam meets at 90 degrees, want >= g1 at every blend seam; 15 faces (13 before) since solidcore#2364 (845bdb4e0, the smooth-vertex End); passes at fb937dd8d
1080-fillet-sloped-basin-1-mm-rim-r4-2-edges [fail] continuity_order: got {'body': 'Slab', 'edges': 'blend', 'order': 'g0', want >= g1 at every blend seam
1080-fillet-sloped-basin-1-mm-rim-r4-4-edges [fail] continuity_order: got {'body': 'Slab', 'edges': 'blend', 'order': 'g0', want >= g1 at every blend seam
1207-fillet-box-end-edge-into-unblended-round-partial-chain [fail] continuity_order: g0, a contact seam meets at 90 degrees, want >= g1 at every blend seam; 9 faces (8 before) since solidcore#2364 (845bdb4e0, the smooth-vertex End); passes at fb937dd8d
2893-chamfer-distance-and-angle-past-the-wall-refused [fail] refused, but not because "angle": step 2 (solid.chamfer): SMLib chamfer: operation: SMLib rejected the input (SM_ERR_INVALID_INPUT)
2893-chamfer-two-distances-elliptical-rim [fail] refused, but not because "not supported yet": step 3 (solid.chamfer): SMLib chamfer: operation: SMLib failed (status 1001) (tangent propagation blended the picked edges' tangent chain with them; with it off, tangent_chain:
4782-fillet-bar-edge-wider-than-both-faces [fail] continuity_order: got Box: no null seams want >= g1 at every blend seam
5158-fillet-adjacent-plate-edges-as-thick-as-plate [fail] continuity_order: g0, a contact seam meets at 90 degrees, want >= g1 at every blend seam; 10 faces (8 before) since solidcore#2364 (845bdb4e0, the smooth-vertex End); passes at fb937dd8d
9-fillet-corner-curvature-with-reduce-fit [unsupported] solid.fillet builds `corner: g2` with `fit: exact` only
9-fillet-corner-curvature-with-taper-fit [unsupported] solid.fillet builds `corner: g2` with `fit: exact` only
cov-fillet-g2-corner-beside-a-cylinder [fail] step 6 (solid.fillet): the open setback corner is not a closed solid, as on SMLib d01d7b0
@@ -16,9 +19,11 @@ cov-fillet-g2-mixed-corner [unsupported] refused as on SMLib d01d7b0: a G2 corne
cov-fillet-g2-oblique-three-edge-corner [unsupported] refused on solidcore: its three edges meet at different wedge angles, and one curvature fillet takes the first edge's equal-area thumbweight for every edge (solidcore#2250, issuecomment-6563419897); SMLib d01d7b0 fails it too
cov-fillet-g2-pocket-corner [fail] continuity_order: G1 at one seam where the corner patch meets a contact face (g2 wanted), as on SMLib d01d7b0
cov-junction-boss-tilt-20-root-round [fail] fillet status 1001 on a cylinder tilted 20 degrees into the plate, as on SMLib
cov-junction-boss-tilt-40-root-round [fail] fillet status 1001 on a cylinder tilted 40 degrees into the plate, as on SMLib
cov-junction-tee-equal-round [fail] the result is not a closed solid, as on SMLib: equal pipes' intersection is two plane ellipses crossing, a corner the old corner code cannot join (the corner step)
cov-junction-y-junction-120-round [unsupported] refused as on SMLib: the faces between the three intersection curves narrow to nothing at the two triple points, so the room check trips (the corner step)
every-block-cylinder-tangent-concave-arc-r2-partial-chain [fail] continuity_order: g0, a contact seam meets at 90 degrees, want >= g1 at every blend seam since solidcore#2364 (845bdb4e0, the smooth-vertex End); passes at fb937dd8d
every-fillet-after-fillet-curvature-front-then-side-r3-partial-chain [fail] continuity_order: g0, a contact seam meets at 90 degrees, want >= g2 at every blend seam since solidcore#2364 (845bdb4e0, the smooth-vertex End); passes at fb937dd8d
report-drafted-peg-front-and-concave-rounds-together-r2 [unsupported] step 13 (solid.fillet): invalid input: not supported yet: the fillet meets a corner of this kind, which SMLib's blends do not handle yet (where its ed
report-fillet-curvature-three-edges-at-bar-corner [fail] continuity_order: G1 at one seam where the corner patch meets a contact face (g2 wanted), as on SMLib d01d7b0 (see KNOWN_FAILING)
report-fillet-curvature-three-edges-at-bar-corner-solver-residues [fail] continuity_order: G1 at one seam where the corner patch meets a contact face (g2 wanted), as on SMLib d01d7b0 (see KNOWN_FAILING)
report-fillet-curvature-three-edges-at-bar-corner-solver-residues-outside-setback [unsupported] the corner fill is refused (misses its neighbours' curvature by 4.02e-3, tolerance 2.5e-3) since solidcore#2369 (23a97889b, the setback corner); built the closed form's 9526.705048 at 8ddce9016
+11 -11
View File
@@ -1318,15 +1318,15 @@
},
"ladder/07-fillets/012-variable-into-rounded-corner": {
"measured": {
"area_mm2": 8665.945693077198,
"area_mm2": 8680.795661185239,
"body_count": 1,
"edges": 18,
"faces": 8,
"vertices": 12,
"volume_mm3": 47755.118560933464
"edges": 20,
"faces": 9,
"vertices": 13,
"volume_mm3": 47770.94594616632
},
"seconds": 0.08138784,
"status": "pass"
"status": "fail"
},
"ladder/07-fillets/013-corner-setback": {
"measured": {
@@ -1402,12 +1402,12 @@
},
"ladder/07-fillets/021-corner-three-sequential-r5-r3-r2-partial-chain": {
"measured": {
"area_mm2": 8591.67500897809,
"area_mm2": 8593.662753693226,
"body_count": 1,
"edges": 24,
"edges": 25,
"faces": 11,
"vertices": 15,
"volume_mm3": 47589.77046707538
"vertices": 16,
"volume_mm3": 47591.48201214169
},
"seconds": 0.091579704,
"status": "pass"
@@ -2001,5 +2001,5 @@
"status": "pass"
}
},
"reason": "a modelled external thread running a whole face to a shoulder now runs on through the plane of the face end and is trimmed there (#11610): 06-threads/004, 007, 010, 025, 026 and 11-cumulative-parts/003 gain the faces of the trimmed last turn, their volumes worked out again by hand; every other case as before. Before: 04-spline-profiles/009 and 012 re-recorded, an extruded spline or ellipse sweeps one wall (one-curve extrude): 009 makes 3 faces, 3 edges and 2 vertices (8, 18 and 12 per span before); 012 makes 28 faces, 78 edges and 52 vertices (31, 86 and 57 before); every other case as before. Before: recorded at solidcore 8ddce9016: 06-threads/018 makes 606 edges and 404 vertices (486 and 324 at 97ed188db), its 204 faces, area and volume the same to 1e-11; every other case as before. Before: recorded on solidcore, the only kernel since the C++ SMLib kernel was removed (the golden before was C++ SMLib v1.1.0-alpha, a18bbe5): 07-fillets/012 passes (the variable round no longer gains the End at the smooth vertex: 8 faces, 18 edges, 12 vertices, 47755.12 mm3); 07-fillets/021 has 24 edges and 15 vertices (no End cap edge); 07-fillets/013 removes 47325.53 mm3; 06-threads/018 makes 486 edges and 324 vertices every run, so it is no longer marked unstable"
"reason": "07-fillets/012 and 021 re-recorded at solidcore 5d2635d36, both from solidcore#2364 (the smooth-vertex End): 012's variable round into the rounded corner fails (9 faces, 20 edges, 13 vertices against 8, 18 and 12; 47770.946 mm3 against its answer 47755.126); 021 makes 25 edges and 16 vertices (24 and 15 before) and 47591.482 mm3 (47589.770 before); times as before. Before: a modelled external thread running a whole face to a shoulder now runs on through the plane of the face end and is trimmed there (#11610): 06-threads/004, 007, 010, 025, 026 and 11-cumulative-parts/003 gain the faces of the trimmed last turn, their volumes worked out again by hand; every other case as before. Before: 04-spline-profiles/009 and 012 re-recorded, an extruded spline or ellipse sweeps one wall (one-curve extrude): 009 makes 3 faces, 3 edges and 2 vertices (8, 18 and 12 per span before); 012 makes 28 faces, 78 edges and 52 vertices (31, 86 and 57 before); every other case as before. Before: recorded at solidcore 8ddce9016: 06-threads/018 makes 606 edges and 404 vertices (486 and 324 at 97ed188db), its 204 faces, area and volume the same to 1e-11; every other case as before. Before: recorded on solidcore, the only kernel since the C++ SMLib kernel was removed (the golden before was C++ SMLib v1.1.0-alpha, a18bbe5): 07-fillets/012 passes (the variable round no longer gains the End at the smooth vertex: 8 faces, 18 edges, 12 vertices, 47755.12 mm3); 07-fillets/021 has 24 edges and 15 vertices (no End cap edge); 07-fillets/013 removes 47325.53 mm3; 06-threads/018 makes 486 edges and 324 vertices every run, so it is no longer marked unstable"
}