forked from 1b-agent/opencadstudio-upstream
fix(thickness): edit persists + wide polyline extrudes as a solid tube
Entering a thickness (DXF 39 extrusion) on a wide polyline now works end to end: - The properties Thickness field is a General-group common prop, so it is routed to apply_common_prop (set_entity_thickness) instead of the geometry setter, which ignored it — the value was silently dropped and reverted to 0. - A wide polyline extrudes its whole band into a 3-D tube (outer + inner walls with top and bottom caps), not just its centreline. - The tube is real 3-D geometry, not a flat draw-order hatch: it renders solid in every view mode with true depth, so nothing shows through the walls. The flat 2-D band fill is skipped for a thickened polyline. - A fill whose triangles span depth keeps its real depth (no draw-order bias), so the extrusion's own edge wires stay in front of the surface and remain visible instead of only the silhouette. - The corner and cap edge lines read black, framing the coloured tube. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
1 parent
626e8091f7
commit
3d37e1f8d8
5 files changed
+124
-3
No files matched your search
@@ -1576,7 +1576,13 @@ pub(super) fn on_tab_close(&mut self, idx: usize) -> Task<Message> {
|
||||
);
|
||||
}
|
||||
}
|
||||
"linetype_scale" | "transparency" => {
|
||||
"linetype_scale" | "transparency" | "thickness" => {
|
||||
// Thickness (DXF 39 extrusion) is a General-
|
||||
// group common prop, not a geometry-group one:
|
||||
// route it to apply_common_prop (which handles
|
||||
// it via set_entity_thickness). apply_geom_prop
|
||||
// ignores it, so the edit would otherwise be a
|
||||
// silent no-op and revert to the old value.
|
||||
if let Some(entity) =
|
||||
self.tabs[i].scene.document.get_entity_mut(handle)
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user