From 6e3f04032df27e9cc71c1577107ff421f3f16a6e Mon Sep 17 00:00:00 2001 From: dotCooCoo Date: Tue, 10 Nov 2026 11:48:39 -0800 Subject: [PATCH] 3D: the group refusal lists groups and clipping groups among what it builds from The message for a group member that can't become a solid now names groups and clipping groups too. docs/three-d.md states that an image left out of a clipping group also needs no visible fills or strokes of its own. --- crates/effects/src/solids.rs | 2 +- crates/effects/src/solids/tests.rs | 1 + docs/three-d.md | 4 ++-- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/crates/effects/src/solids.rs b/crates/effects/src/solids.rs index 05d2da4e7..4ac4628b1 100644 --- a/crates/effects/src/solids.rs +++ b/crates/effects/src/solids.rs @@ -318,7 +318,7 @@ pub(crate) fn members(n: &Node, label: &str) -> Result, String> { _ => "other objects", }; return Err(format!( - "{label} on a group needs paths, compound paths, type, blends and symbol instances: release or expand its {what} first." + "{label} on a group needs paths, compound paths, type, groups, clipping groups, blends and symbol instances: release or expand its {what} first." )); }; if w.out.len() >= MAX_MEMBERS { diff --git a/crates/effects/src/solids/tests.rs b/crates/effects/src/solids/tests.rs index 5d1227789..d4539e7c2 100644 --- a/crates/effects/src/solids/tests.rs +++ b/crates/effects/src/solids/tests.rs @@ -598,6 +598,7 @@ fn a_3d_effect_on_a_group_turns_every_member_about_one_shared_axis() { } let err = validate_solid(&g, EXTRUDE, &json!({})).unwrap_err(); assert!(err.contains("release or expand its other objects"), "{err}"); + assert!(err.contains("type, groups, clipping groups, blends and symbol instances"), "{err}"); assert!(solid_art(&g).is_none(), "drawn as the group it is"); } diff --git a/docs/three-d.md b/docs/three-d.md index b07aabb3a..9cb82b0c7 100644 --- a/docs/three-d.md +++ b/docs/three-d.md @@ -153,8 +153,8 @@ solids are ([Groups](#groups)), turned about one shared axis. - An image is refused, alone or in a group: trace it first with Object › Image Trace › Make. The help page routes images to 3D through Image Trace ([Create 3D vector artwork](https://helpx.adobe.com/illustrator/desktop/special-effects-styles/create-3d-graphics/create-3d-vector-artwork.html)). A hidden image in a group is left out like any hidden member, and so is an image in a clipping group whose bounds - lie wholly outside the clipping path's bounds, when neither the image nor a group holding it inside the clipping - group has effects. + lie wholly outside the clipping path's bounds, when the image has no visible fills or strokes of its own and + neither the image nor a group holding it inside the clipping group has effects. ## Rotate