This drives me crazy. One would expect that IsTrack OR IsVia OR IsPolygon would be sufficient to select all of the copper objects in a PCB, but because the PCB Filter does not distinguish between (copper) tracks and (non copper) lines, you also get all of the lines on every layer. Okay, so let's add AND OnSignal, surely that will filter out all of the stuff not on signal layers, right? Nope, OnSignal doesn't do shit. OnCopper? Also does fuck-all. Even free 3D Bodies on mechanical layers get included! Maybe OnTop? Nope, still get all of the lines in any topside components, even though component primitives are locked. There's also OnTopLayer for some reason, maybe that will work? Nope, same as OnTop.
Okay, different tack. (IsTrack OR IsVia OR IsPolygon) AND (Not InAnyComponent). Hey, that works! But what I actually want is free copper not attached to a net, so let's add AND (Not InAnyNet), and. . . now I get polygons that are DEFINITELY in nets! WTF? Okay, strike OR IsPolygon, and okay, that does exactly what I want, except I also wanted polygons, but oh well.
I don't often try to do compound filters like this--has the PCB filter always been this bad, or is this new in AD18? Am I just doing something wrong?