Custom Material

Hi All,
I’m looking atone of the examples to create a perforated mesh and I was curious if the preforate.cal function only handles regularly spaced circular apertures? I’m looking to test various shapes and sizes. The first idea that comes to mind is to simply model the vertical surface with the custom apatureres. Is there another method using custom materials? The perforations may be curved, rectilinear, evenly spaced, unevenly spaced, etc. I’m looking to do a matrix of studies.
Thanks