The only way to know is to simulate, honestly.
As Tony explains (I've upvoted his answer), holes need to be small to look like solid conductor. Even then, it's a slot antenna, and can be an emitter for frequencies much lower (wavelengths much larger) than the hole size would suggest.
It's really not sufficient to consider a mesh just an array of holes that "are opaque to larger wavelengths". As numerical analysis shows, the conductor distance plays, at least in a circular 2D scenario, which is the classic thing to "project" down to a 1D problem, less of a role than conductor diameter:
Figures 3.1 and 3.2 from Chapman, Hewett, Trefethen: Mathematics of the Faraday Cage, 2015
So, there you go, conductor properties play a role that at the very least rivals the importance of the size of holes. Which is counter-intuitive for many of us engineers (including me).
What that means: Unless you know what you're doing whilst simplifying the geometry to come to a conclusion on the effectiveness of shielding, don't do that simplification.
Since simulation isn't hard, do it. If you got access to CST studio, great, then you can import CAD drawings, fully simulate, etc (there's certainly other commercial EM simulation software, too); if you don't, try OpenEMS, which is especially nice if you have easy-to-define geometry like a box with a hole.
Of course, you can also solve things by foot in Matlab or octave, as the authors of the paper cited above did:
% Solve the problem:
n = 12; r = 0.1;
c = exp(2i*pi*(1:n)/n);
rr = r*ones(size(c));
N = max(0,round(4+.5*log10(r)));
npts = 3*N+2;
circ = exp((1:npts)’*2i*pi/npts);
z = [];
for j = 1:n
z = [z; c(j)+rr(j)*circ];
end
A = [0; -ones(size(z))];
zs = 2;
rhs = [0; -log(abs(z-zs))];
for j = 1:n
A = [A [1; log(abs(z-c(j)))]];
for k = 1:N
zck = (z-c(j)).^(-k);
A = [A [0;real(zck)] [0;imag(zck)]];
end
end
X = A\rhs;
e = X(1); X(1) =[];
d = X(1:2*N+1:end); X(1:2*N+1:end) = [];
a = X(1:2:end); b = X(2:2:end);
% Plot the solution:
x = linspace(-1.4,2.2,120);
y = linspace(-1.8,1.8,120);
[xx,yy] = meshgrid(x,y);
zz = xx+1i*yy;
uu = log(abs(zz-zs));
for j = 1:n
uu = uu+d(j)*log(abs(zz-c(j)));
for k = 1:N, zck = (zz-c(j)).^(-k); kk = k+(j-1)*N;
uu = uu+a(kk)*real(zck)+b(kk)*imag(zck); end
end
for j = 1:n, uu(abs(zz-c(j))<rr(j)) = NaN; end
z = exp(pi*1i*(-50:50)’/50);
for j = 1:n, disk = c(j)+rr(j)*z; fill(real(disk),imag(disk),[1 .7 .7])
hold on, plot(disk,’-r’), end
contour(xx,yy,uu,-2:.1:1.2), colormap([0 0 0]), axis([-1.4 2.2 -1.8 1.8])
axis square, plot(real(zs),imag(zs),’.r’)
(code reportedly needs < 1s to produce leftmost picture in Fig. 3.1; I fully believe that. I pasted it here just to demonstrate there's no good reason not to simulate.)