Welcome to the Onshape forum! Ask questions and join in the discussions about everything Onshape.

First time visiting? Here are some places to start:
  1. Looking for a certain topic? Check out the categories filter or use Search (upper right).
  2. Need support? Ask a question to our Community Support category.
  3. Please submit support tickets for bugs but you can request improvements in the Product Feedback category.
  4. Be respectful, on topic and if you see a problem, Flag it.

If you would like to contact our Community Manager personally, feel free to send a private message or an email.

Trying to create a mesh of holes across my entire spherical surface

brian_vander_meybrian_vander_mey Member Posts: 6

Hi all,

I've created a half hemisphere with a wall thickness of 0.5mm and I'm trying to perforate it with 0.5mm holes all over.

So far I have used a circular pattern to get a ring around the top, but I can't figure out how to propagate that pattern across the rest of the surface without recreating the approach I used for the first one one-by-one. Where you see "Circular Pattern 2" was my attempt to pattern the previous pattern at a different axis, but I seem to have broken onshape. It "thought" for a very long time until I ultimately deleted that pattern (but it took a long time to delete which is why you still see it).

Thank you in advance for any help.

Screenshot 2025-04-07 at 2.50.54 PM.png Screenshot 2025-04-07 at 2.51.14 PM.png

Answers

  • S1monS1mon Member Posts: 3,295 PRO

    One question would be why? Is this something that will be formed out of pre-perforated metal? Is this just for rendering purposes? Are you hoping to 3D print it (with which technology?)?

    If you absolutely need to model it, what sort of pattern are you imagining? Will it be rows and rows of evenly spaced holes, so that each row has fewer and fewer holes until you end up with a single hole at the apex? Are all the holes supposed to be normal to the surface?

  • jelte_steur814jelte_steur814 Member Posts: 426 PRO

    with so many booleans, expect your part to be rather slow to regenerate. that's why S1mons question is relevant: why would you want to make this? can it be done with a render texture or otherwise?

  • brian_vander_meybrian_vander_mey Member Posts: 6

    Hi @jelte_steur814 and @S1mon thanks for the responses.

    This is sort of a prototype for something I want to do in the future in different shapes. I'm essentially trying to create my own pond baskets, but mine will have more design to them than just rectangular baskets.

    So I'll be 3D printing them. Right now, my numbers of 0.5mm are too small, but I am trying to find a way to work out the process without having to place each hole myself. I've even been badly trying to create a FeatureScript which isn't working yet.

    image.png
  • S1monS1mon Member Posts: 3,295 PRO
    edited April 8

    Maybe try out @EvanReese 's Attractor Pattern? With a spherical shape, I would use a sector (maybe 1/4?), and then pattern that body.

    I'd have to test it out, but I think it can handle removing a shape (say a cylinder) from another solid.

    I would experiment with low density, low count patterns to get started, and up those once you have something working.

  • S1monS1mon Member Posts: 3,295 PRO
    edited April 8

    You may also find this tech tip helpful, since with a sphere, you might be able to come up with a good equation to control the number of instances per row based on the angle.

    https://www.onshape.com/en/resource-center/tech-tips/tech-tip-how-to-use-variables-in-patterns-to-vary-features

    https://learn.onshape.com/learn/course/variables-and-expressions/expressions/expressions-in-variables?page=1

  • brian_vander_meybrian_vander_mey Member Posts: 6

    I modified @Jake_Rosenfeld's Circle Cuts script by writing another script generate a bunch of uniform-ish holes which I plot.

    The method is still flawed and doesn't work on all shapes yet. Here's a few shapes I made and tried it on:

    image.png
    1. Worked really well because Jake's original code as based on a sphere. However, it has a "rim" around the top because my python for generating a csv of hole positions doesn't currently allow for pointing upward, which is now a problem because my code for projecting the holes assumes finding the center of the bounding box.
    2. Looks funky because my code assumes a certain orientation of the piece. I need to update the code to allow choosing a plane. But it worked nicely on that conical shape
    3. This one is somewhat arbitrary, with a cutout in a ranom place of the shape. Here you can sort of see the flaws in the result. the holes aren't spaced nicely apart like they are on the bowl.
    4. This one actually fails with an error BOOLEAN_NON_MANIFOLD_RESULT, I think probably because it would end up having a projection through multiple walls.

    I also want to get away from the CSV and have the hole generation parameters defined in the tool. Currently my python allows for inputting hole size and minimum hole distance and then it calculates a sphere of holes. The idea behind this whole approach is that you could broadcast a sphere of "spikes" at any shape all around from the center and you'd get a lot of holes… but it still isn't really what I want.

    What I want is all walls/surfaces to be evenly perforated with holes.

    Anyway, the hunt continues. I'll keep iterating.

    I started learning CAD like 2 days ago, so I spend a lot of my time fumbling around in the dark, so to speak. Pretty slow progress when I don't know how to do almost anything and I have to stop to watch a video every 5 minutes.

    @jelte_steur814 for awareness

    Here's the link to my code if you're curious. I hope the link works properly, I haven't tried to share this before.

    https://cad.onshape.com/documents/f966c7abbef6def8c41b75f2/w/48eeea9989bb0ada76306045/e/04367928eae6c175cc9be729

  • brian_vander_meybrian_vander_mey Member Posts: 6

    @S1mon and @jelte_steur814 I want to clarify my intent a little more, my ultimate goal.

    I am big into creating bonsai trees, and lately people have started making bonsai pots in interesting shapes using 3D printing. However, pond baskets (see above) are a much better way to grow young bonsai early on; you should wait a while before putting them in a cool bonsai pot for best results. But pond baskets look stupid, and bonsai pots look cool, so I'm trying to find a repeatable method to turn a bonsai pot model into a pond basket hybrid.

    I had Sora generate a couple examples of the idea I have for reference purposes.

    20250408_1756_Avant-Garde Bonsai Pot_remix_01jrbpfy79f62vhah88jes8mch.png 20250408_1753_Modern Perforated Bonsai Pot_remix_01jrbp903yfw8bdkrgta2k31ck.png
  • jelte_steur814jelte_steur814 Member Posts: 426 PRO
    edited April 9

    The challenge for a sphere is quite different than these a little more box or spherical type shapes.

    https://extremelearning.com.au/how-to-evenly-distribute-points-on-a-sphere-more-effectively-than-the-canonical-fibonacci-lattice/

    there's some math underlying distributing point on a sphere.

    I had some time to play around with this challenge though and figured one way of doing it would be to leverage another featurescript called "Geodesic dome" along with some custom FS.

    the geodesic dome is quite heavy on the part studio in terms of regeneration time, so I decided to cut the cylinders from another similar sphere that you can edit more easily to create a rim, flat bottom etc.

    see this example here:

    image.png
  • jelte_steur814jelte_steur814 Member Posts: 426 PRO

    as @S1mon indicated: making only a part of the bowl and patterning it will make the model a lot faster and lighter, but you'll have to make the part of the bowl obviously correspond to a repeat in the cylinder cut pattern…

  • _anton_anton Member, Onshape Employees Posts: 432

    You would presumably need a regular-ish sampling of points on the surface. Manually modeling it without custom features would be challenging. With custom features, I can see a few approaches.

    For spheres, the geodesic polyhedron approach seems like the most practical. Alternately, use FS to generate points on a Fibonacci spiral (I wrote https://cad.onshape.com/documents/94e43c923c184dc3f4ad7901/v/50c4f9ff33b304c8f61e8f06/e/b1e488dbe0cf1e181062f88b a long time ago, seems to work).

    You could also write a custom feature that samples a uniform grid of UV coordinates on a face, using https://cad.onshape.com/FsDoc/library.html#evFaceTangentPlanes-Context-map . Then, if the point is actually on the face, extrude a hole.

Sign In or Register to comment.