I think the interop any with pattern will be problematic, no matter whether an "outside wire" is somehow generated and used with "cut" or if "common" is used. The only difference is how "outside" is defined: Only in the profile's H/V-plane, or along the normal, too (assuming you have a profile. For subtractive primitives there is no ambiguity and "common" results in the desired effect).TheMarkster wrote: ↑Wed Jan 05, 2022 6:05 pm Using common could work with the pocket itself in some cases, as you've mentioned, such as through all, but the problem with that will be if the user decides to use the pocket in a pattern feature. For example, a polar pattern would use the pocket's AddSubShape (what you would get extruding the sketch basically) as a cutting tool when making the copies. This is because the polar pattern code assumes a cut was used for the original pocket. Maybe the pattern tools could be modified to work with such pockets, but even at best it would be adding much complexity to the source code. Better, I think, to expand the profile so that nothing needs to be done with pattern tools. Such a thing would also make it clearer to the user exactly what is happening.
In any case, you as a user explicitly stated: Remove everything outside, i.e. keep only what's inside my profile or primitive. However, linear/polar/array patterns or mirroring are made for applying some feature somewhere else, usually beyond the original profile. And by definition, there is nothing left outside of your initial profile/primitive where you could apply an additional removal.
So I think we should just disallow any pattern/mirroring on subtractive features when the "remove outside" option is used.
There may be some corner cases when you define "outside" in the H/V-plane, which makes sense for pockets, and then pattern this outside-pocket on an axis outside of this plane. Or if you pattern with a distance smaller then the profile's extend, resulting in self-intersection. But for those cases, you can still do what's already possible Today: Draw the "outside-wire" yourself, the way you need it for your pattern, and don't use the "remove outside" option. Or use go for options such as the "beastly" PDWrapper macro, if the additional complexity if justified. In all other cases, "remove outside" could/should help to reduce complexity for the user.