10C Inc 2: feature tail
119 of the app's 138 symbols now resolve; only the I/O modules and the Inc 4 tail are left. New: GCE2d, GCPnts, BRepFilletAPI, BRepOffsetAPI, ShapeAnalysis, ShapeFix, ShapeUpgrade, BRepCheck, BRepTools, BRepLib, BRepExtrema, BRepClass3d, IntCurvesFace, plus TopTools_HSequenceOfShape. The fillet and chamfer builders derive BRepBuilderAPI_MakeShape, so their history comes from the base bound in Inc 1 — which is what lets the app read a blend's provenance the same way it reads a boolean's. The Inc 2 gate compares that history exactly, alongside the splitter's, which is what sketch-region attribution depends on. Two shapes of deviation, both commented where they are bound: - Trailing enum arguments are left off four constructors (fillet's ChFi3d_FilletShape, MakeThickSolidByJoin's mode/join pair, BRepExtrema's Extrema flags, and Inc 1's GeomAPI_ProjectPointOnSurf). An unregistered enum cannot serve as a default argument — nanobind converts defaults at binding time, so it fails the whole module's import with std::bad_cast. The app never overrides any of them, so OCCT's own defaults apply and behaviour is unchanged. - ShapeAnalysis_FreeBounds.ConnectEdgesToWires reassigns a Handle& out parameter, which the caster cannot honour because it hands C++ a copy of the handle. The lambda splices the result into the sequence the caller passed, so the pass-empty-then-read shape the app uses still works. This is the one place upstream's holder semantics and ours differ observably. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DfriM8XUkn7uYf5Dwe2xo6
This commit is contained in:
@@ -499,5 +499,197 @@
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"inc2": {
|
||||
"fillet": {
|
||||
"sha256": "4da9eb256a1e012b94655f6ecd02b34590c4e058beb336794fb68c3047c0070c",
|
||||
"volume": 5974.247779607694,
|
||||
"area": 2172.530964914873,
|
||||
"bbox": [
|
||||
-1.000000004440892e-07,
|
||||
-1.000000004440892e-07,
|
||||
-1e-07,
|
||||
10.0000001,
|
||||
20.0000001,
|
||||
30.0000001
|
||||
],
|
||||
"n_faces": 7,
|
||||
"n_edges": 15,
|
||||
"n_solids": 1,
|
||||
"history": [
|
||||
{
|
||||
"pre": 0,
|
||||
"deleted": false,
|
||||
"modified": [
|
||||
3
|
||||
],
|
||||
"generated": []
|
||||
},
|
||||
{
|
||||
"pre": 1,
|
||||
"deleted": false,
|
||||
"modified": [],
|
||||
"generated": []
|
||||
},
|
||||
{
|
||||
"pre": 2,
|
||||
"deleted": false,
|
||||
"modified": [
|
||||
37
|
||||
],
|
||||
"generated": []
|
||||
},
|
||||
{
|
||||
"pre": 3,
|
||||
"deleted": false,
|
||||
"modified": [],
|
||||
"generated": []
|
||||
},
|
||||
{
|
||||
"pre": 4,
|
||||
"deleted": false,
|
||||
"modified": [
|
||||
32
|
||||
],
|
||||
"generated": []
|
||||
},
|
||||
{
|
||||
"pre": 5,
|
||||
"deleted": false,
|
||||
"modified": [
|
||||
13
|
||||
],
|
||||
"generated": []
|
||||
}
|
||||
]
|
||||
},
|
||||
"chamfer": {
|
||||
"sha256": "cdf8d040a239e6202f94e38fc0fc9595e475180c7067a5f1e2391d9ed95d03af",
|
||||
"volume": 5966.25,
|
||||
"area": 2171.389610306789,
|
||||
"bbox": [
|
||||
-1.000000001110223e-07,
|
||||
-1.000000001110223e-07,
|
||||
-1e-07,
|
||||
10.0000001,
|
||||
20.0000001,
|
||||
30.000000100000005
|
||||
],
|
||||
"n_faces": 7,
|
||||
"n_edges": 15,
|
||||
"n_solids": 1
|
||||
},
|
||||
"splitter": {
|
||||
"volume": 6000.0,
|
||||
"area": 3400.0,
|
||||
"bbox": [
|
||||
-1.5e-07,
|
||||
-1.5e-07,
|
||||
-1.5e-07,
|
||||
10.00000015,
|
||||
20.00000015,
|
||||
30.00000015
|
||||
],
|
||||
"n_faces": 16,
|
||||
"n_edges": 28,
|
||||
"n_solids": 3,
|
||||
"history": [
|
||||
{
|
||||
"pre": 0,
|
||||
"deleted": false,
|
||||
"modified": [
|
||||
3,
|
||||
37,
|
||||
61
|
||||
],
|
||||
"generated": [
|
||||
8,
|
||||
41
|
||||
]
|
||||
},
|
||||
{
|
||||
"pre": 1,
|
||||
"deleted": false,
|
||||
"modified": [
|
||||
33,
|
||||
57,
|
||||
81
|
||||
],
|
||||
"generated": [
|
||||
24,
|
||||
53
|
||||
]
|
||||
},
|
||||
{
|
||||
"pre": 2,
|
||||
"deleted": false,
|
||||
"modified": [],
|
||||
"generated": []
|
||||
},
|
||||
{
|
||||
"pre": 3,
|
||||
"deleted": false,
|
||||
"modified": [],
|
||||
"generated": []
|
||||
},
|
||||
{
|
||||
"pre": 4,
|
||||
"deleted": false,
|
||||
"modified": [
|
||||
25,
|
||||
54,
|
||||
78
|
||||
],
|
||||
"generated": [
|
||||
22,
|
||||
51
|
||||
]
|
||||
},
|
||||
{
|
||||
"pre": 5,
|
||||
"deleted": false,
|
||||
"modified": [
|
||||
13,
|
||||
44,
|
||||
68
|
||||
],
|
||||
"generated": [
|
||||
15,
|
||||
46
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"unified": {
|
||||
"volume": 12500.0,
|
||||
"area": 3650.0,
|
||||
"bbox": [
|
||||
-1.5e-07,
|
||||
-1.5e-07,
|
||||
-1.5e-07,
|
||||
25.00000015,
|
||||
25.00000015,
|
||||
30.00000015
|
||||
],
|
||||
"n_faces": 12,
|
||||
"n_edges": 30,
|
||||
"n_solids": 1
|
||||
},
|
||||
"distance": {
|
||||
"is_done": true,
|
||||
"value": 30.0,
|
||||
"n_solutions": 4
|
||||
},
|
||||
"classifier": {
|
||||
"inside": 0,
|
||||
"outside": 1
|
||||
},
|
||||
"uv_bounds": [
|
||||
0.0,
|
||||
30.0,
|
||||
-20.0,
|
||||
0.0
|
||||
],
|
||||
"outer_wire_edges": 4
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user