How to create geometry with large number of holes?

I find difficult to create solids like perforated metal sheets.
E.g. hole grid with 5mm diametr and spacing 20mm center to center (100x100 holes).
If you try to create solid with lots of holes, rhino get stuck for very long time or freeze.

Is there a way how to speed it up or what is correct technique?
Or is there a limit for complexity of polysurfaces which does not allow it?

Thenks for your thoughts.

If you don’t need the actual geometry (you plan on growing it or getting it cut), then create a material that uses a transparency map and assign it to your perforated sheet.

Thanks for your tip.
Unfortunately it is planned to be cutted. For visualization purposes I of course use materials with transparency.
I am just wondering if someone knows some useful method making this type of solids.
If there is no way, so i will use curves as usual.

PiT_79
If I understand you correctly you want a flat screen with 5mm holes spaced 20mm center to center. Attached is a file that I cut so the upload was not too large.

I first made a 5mm cylinder 8mm tall. Then used array liner on the x axis telling rhino I wanted 100 copies. I arrayed them at 20mm centers and made this a group.

Then in the Y axis I used array liner doing the same 100 copies at 20mm centers. This gave me the 5 mm cylinders 100 in both directions. I then grouped all cylinders.

I then made a 2mm sheet a bit larger that the array and raised it to the middle of the cylinders.

Using BooleanDifference I selected the sheet and then the group of cylinders thus giving the sheet with one thousand holes.

I hope this helps you out.

All my best … Danny

screen2.3dm (2.4 MB)

Hi lopacki
This is exactely same way i went over, but the boolean difference runs too long with no visible progress so i killed the rhino process in windows.
How long does it take you to calculate it and what is your PC configuration?

I wouldn’t use Boolean Difference for this, I would make all the circles plus the outer border as curves, then Extrude all at once, solid option.

However, no matter what you do, Rhino will have a tough time creating/managing a solid object with 10,006 surfaces and more than 20,000 trim loops. Meshing and display will also be difficult.

–Mitch

I run into the same problem here. Thanks to somebody here, I found that if you made a slab slightly larger than the array of holes and BooleanUnion them to the cylinders, or whatever the shapes are, and then use this big polysurface to BooleanDifference the holes, it will cut the time considerably. Somehow, Rhino can deal with a single, really complex polysurface faster than a zillion simple ones. I feel your pain…

Jim

Well James, that’s sure interesting. Have you applied this same concept to other operations that you use? Or do you do a similar thing for large amounts of splits?

Also, to everyone testing did you useextrusions set to simple extrusions? I’m curious who and which methods the user was sure they used simple extrusions vs ones that were unsure?

Sometimes the computer speed stuff is interesting. Like doesn’t you computer speed up when you are extremely active sometimes, vs crashing because of the way the drives cycle memory or something? I know jack about computers though or various factors that affect cpu speed.

According to my chart, slab can use lightweight extrusion when possible. In the case of it being a simple shape, and having only 1 distance, and no taper it would meet these requirements of a scenario where lightweight extrusion could be used. Just curious if you could look at the properties of the slabs, and see.

I think I might gather other info from threads relating to this which I have seen similar ones, and gather another mindmap on this topic since it seems kinda quick and easy and useful. Those ultimate ones like everything relating to text, extruding text, projecting text and their applications in 3d printing, 3 axis cnc mills, 4 axis, 5 axis take a little time.

No, I’ve only used this for large perforated panels. They can take a long time. I’ve tried extruding the entire panel as well but it seem like there was some problem. I can’t remember what it was now…

I’m not sure if these were lightweight extrusions or not. I’m guessing that they were. I really don’t use the lightweight extrusions that much. When I realized they were what prevented most of my object snaps from working, I was horrified!

You know, I did not ever know that James. Thanks for sharing it with me, and giving me the opportunity to bring my teddy bear with just in case. There’s a lotta stuff I don’t know, and I’m gonna have to investigate and update a chart I put up on lightweight extrusions. That would be like the number 1 most important item in the thing!

Hi James, i am not sure if i understand well your method. Can you please show me some few steps with pictures?
Slab larger in which directions and what i BooleanDifference from the big polysurface? I got lost in words.

Thanks

Hi thinslicevolta, what you mean by simple extrusions vs. unsure?

I am asking if you were using simple extrusions, or if your extrusions were polysurfaces.

Heres a link to a thread on the command _UseExtrusions

If you use this command, it simplifies the geometry of the extrusion and use less memory/faster speeds.

Also, note that this would be useful for some things, and somethings not useful at all. For 3d animation or something with a bunch of cylinders, like 10000 cylinders!

But as James pointed out, the geometry is too simple for most OSNAPS to work on, which outweighs the lightness of it in most scenerios. It is still accurate, and too tolerance. But, if profile is simplified too much, the OSNAPS wont work I guess.

LightweightExtrusions Thread

But

I tried various ways of doing this as I was curious myself, but didn’t get too far after rhino crashed. Then I had too many applications open, and stuff, and my computer was freaking out on 95% or above memory usage, which I gotta still figure out.

I was gonna test with lightweight extrusions vs. polysurfaces using a a mix of lopacki’s and mitch’s tidbit, but didn’t get far and had to do some other stuff.

I really should research a lot of things. The right computer, graphics cars, etc…Tolerances I am working on. I may have a 50 page tutorial or so someday here. I got 30 topics to cover, and a turial with a lot of tests that give you some hands on experience and able to interactively tell what rhino stores, operates, and displays.

Obvious or not if you set your tolerances lower, this operation with the 10,000 holes would be faster.

Why make a solid at all? If this is to be cut then vectors should suffice. In fact many CAM products allow instancing a toolpath, so that all you need is one circle. Talk to your vendor, it may be simpler than you think.

Frank C.

I was just curious if Rhino can somehow handle such type of geometry and how to easily make it.

With only 400 holes there is no need to do all that IMO, just draw a circle, array it 20 x 20, put a rectangle around it and extrude all the curves solid=yes. It’s virtually instantaneous here.

However, the same is not true for 10K holes (100 x 100). 1000 is already way slower than 500, and the progression is more like exponential than linear, to the point where with 10K holes it just can’t complete in a reasonable time.

–Mitch

If this is a planar panel, I think it will be faster to make a Plane and an Array of Circles, then use Split to make holes in the plane, delete the little disks, and if you really need a thickened panel, use ExtrudeSrf to thicken it.
If you do it in smaller pieces, like 25 - 20 x 20 hole planes instead of 1 - 100 x 100 hole plane and join them together it will also be faster.

If making such a sheet becomes a huge issue, perhaps you can create a small piece of the mesh, create a block from it, and create an array of instances. Basically, you will be making a 3D repeating texture.

It may look ugly in wireframe, but you can change the hole spacing or size on a single piece, and the whole sheet will change : )

[Though Rhino should be fixed to have the capability to do this, given memory constraints.]

Hi lowell,

thank you for this tip. I like it.
It sounds it should work, i have to try it :wink: