Kernel: fillets and chamfers along plane-cylinder rulings; blend
booleans refused when they change the solid by more than their tool.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Kernel: spline normals and tangents kept while a body is meshed —
solid display of spline-heavy drawings up to 2.7 times faster.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Kernel: fillets and chamfers round plane-cylinder/cone circles (hole and
boss rims, countersinks), shell for any planar solid, NURBS projection
onto the right pass of a looping curve, straight rational profile
pieces, slice section precision.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
A region's loop area sums its pieces with Curve::chain_area, the
composable share: enclosed_area closes an open polyline by its chord.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Island cuts stay inside the face; MASSPROP falls back to a coarser mesh
when the finest leaves a face untriangulated.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
- Pins: codec 8189f83, kernel a82f17d, graph d3558bb (all manifests and
the python plugin lock).
- MASSPROP reports volume, centroid, inertia, products, radii of
gyration and principal moments of 3D solids and bodies from their
B-rep (exact where analytic, else from a fine mesh).
- OFFSET of ellipses and splines through the kernel's curve offset.
- FILLET between circles, ellipses and splines through the kernel's
curve-curve fillet, trimming arcs and open splines to the tangents.
The kernel bump brings the DWG ACIS audit fixes: slices, booleans and
press/pull on cones, slanted cylinder sections, survey coordinates,
spline walls and touching parts.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
SWEEP: base point from the path; kernel sweep validity fixes
The fork pin the PR carried ([patch] to ramox81/cadkernel 30b3810) is
resolved to upstream instead: kernel 99b6b48 (opencadkernel #78-#83),
codec c9ffcac (opencadcodec #102, #103), graph 7f6aae7, in every manifest.
A single profile's base point comes from the path it is swept along: a
path leaving the profile's plane from inside the profile sweeps it where
it stands. Kernel 30b3810: pcurves in the edge's parameterisation (valid
spline-faced sweeps), corner crossings fitted to the modeller's
resolution, run faces through stations evenly spaced along the run.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
DWG layout owners and the overall paper-space viewport read back as
written (opencadcodec#78, opencadcodec#80).
Co-Authored-By: Claude Opus 5.5 <[email protected]>
- Cargo: drop the fork patches; codec 8e93175, kernel 0665fc9, graph
3b91e67 in every manifest and lock.
- A swept surface's expression link is written through set_entity_xdata,
so OCS_SWEEP_EXPRESSION has its APPID record and the record its handle.
- Applying the whole named-parameter table also rebuilds the swept
surfaces linked to expressions, not only a single-row edit.
- swept_surface_entity keeps its doc comment.
- The native-constraint tests find a scope's network through its own
dictionary, where it is now stored.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
A closed 3D polyline profile that does not lie in one plane sweeps a
surface with the reference's refusals. Swept surfaces made with an
Expression scale or twist follow the named parameters, and reference
surfaces linked through their associative action are picked up on open.
Saving keeps the associative actions the constraint graph does not
rebuild and stores each scope network through its own dictionary.
Kernel 23138fc, codec 64fe2a6.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Sweep history records in the reference layout.
Pins resolved to upstream: codec bff95f5 (#93, #94, #95, #96, #97 and
review fixes), kernel 6146d31 (#75 and review fixes), graph 9635ba7.
- Fillet/chamfer hole and boss rims, edges of non-convex bodies, and a
chamfer next to a fillet (and the reverse).
- Fillet after an extruded PRESSPULL: booleans now join coplanar faces.
- Union/subtract/intersect of a sphere with an off-axis cylinder.
- Web open dialog lists drawing templates.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
- Text styles keep their TrueType typeface through save and reopen (codec
reads and writes the STYLE record's ACAD extended data) (#1633)
- Unnamed shape-file entries no longer show in text style lists (#1634)
- Save As offers DWT 2018; NEW asks for the template to start from, while
Ctrl+N and the quick-access New run QNEW with the default template (#1635)
- An edge next to an earlier fillet of the same radius rounds together with
it (kernel); the solid stays drawn and pickable while edges are chosen
(#1625, #1107)
- A full cache rebuild drops the B-rep cache too, so an undone fillet does
not come back with the next edge operation (#1107)
- Selected solids in shaded styles highlight only their visible edges (#1031)
- VIEW ISO / SWISO / SEISO / NEISO / NWISO snap to the isometric corners
Co-Authored-By: Claude Opus 5.5 <[email protected]>
New sweep records store the source and placed profile frames, the
default mitred joint, groups 292-294 and a 3D polyline path as a wire
body, so the reference re-evaluates them. Builds against the sweep
history codec and kernel revisions.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Brings codec PRs #84 (cross-version visual styles, table styles,
subentity managers), #88 (viewport clipping flag, DXF boundary handle),
#89 (DXF viewport snap/twist in degrees) and #92 (field format codes,
event updates).
With #88 a viewport keeps a stored boundary whether or not clipping is
on, so a linked boundary alone no longer means "clipped": rendering,
paper picking, VPCLIP and the Clipped property check the clipping flag
too, and VPCLIP / MVIEW Object and Polygon set it. Before, OCS never set
the flag, so its clipped viewports opened rectangular elsewhere.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
The codec now carries upstream acadrust 0.6.0 (foldhash, thiserror 2,
MLINE / legacy class / layer handle fixes). Its new Spline::dwg_scenario
is serde-skipped, so the Python plugin's generated entity records could
not name it; they now take such fields from the type's Default.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
#1617 pinned the codec at ramox81/cadcodec through a [patch] block. Its
codec PR (#83) is merged upstream together with #85 and #86, so every
manifest now pins the upstream revision and the patch is gone.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
The codec writes R2018 AuxHeader maintenance fields as RL, so AutoCAD no
longer reads a 2018 save as student-made. The kernel drops zero-area
spikes before triangulating, so a hatch whose boundary folds back on
itself fills on screen instead of vanishing.
Fixes#1564Fixes#1569
Co-Authored-By: Claude Opus 5.5 <[email protected]>
The PR pinned codec and kernel to its fork through [patch]; codec #77 and
kernel #73 are merged upstream, so the patch sections are replaced by
the upstream pins (codec 8d23408, kernel d22a270, graph 9b5ae39) in this
same commit: the kernel now applies the body transform during the lift,
and an OCS without this PR's change would apply it twice. The new codec
also brings AssocCurveValue, registered with the plugin API's type
registry, and EmbeddedEntity::Body, named as a polyline profile.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Codec PRs #75 (field authoring API) and #76 (solid history evaluation
graphs, ACSH layouts); kernel PR #71 (sweep history with a placed profile).
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Real BT/Tj text objects ride alongside the vector outlines (Tr 3,
zero visual change): runs preserved at layout time, TTF styles embedded
as allsorts subsets with ToUnicode, width-matched Tm, clip-culled.
WireModel literals moved to ..Default::default() tails.
Codec: PRs #71-#74 merged (MPOLYGON layout, multiline ATTDEF/ATTRIB DXF,
DXF MATERIAL/ACSH matrix, restorable SAT/SAB + history roots) and issues
#55 #64-#69 fixed. EntityType now boxes Surface, Extended, Table,
MultiLeader and Helix (2344 B -> 848 B per entity): construction sites
wrap in Box, the entity traits forward through Box, and the python
plugin generator converts with into(). Kernel: PR #70 (cuboid ring
winding).
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Point clouds: drawn from their scans, attached, cropped and stylized.
The fork's codec patch is resolved to the upstream pins: the point cloud
records landed in opencadcodec 5ef9376, carried through opencadkernel
68eeda1 and opencadgraph e204966.
Co-Authored-By: Claude Opus 5.5 <[email protected]>