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.

New Feature: Speaker Pattern

EvanReeseEvanReese Member, Mentor Posts: 2,516 ✭✭✭✭✭
Speaker Pattern takes a vertex or mate connector as input then patterns cylinders and performs a boolean operation to add or remove them from parts. See the example below:


I just got it to a usable state so I'm sharing here for people to use and so I can get feedback, and there is a lot of room to improve if/when I make the time:
  1. add more pattern types (any suggestions?)
  2. add end conditions like the extrude feature
  3. make default size values more practical
  4. find a way to visually clean up the middle of the Fibonacci pattern (even though it's mathematically "right")
  5. add an option to select a custom modeled shape to pattern instead of the default cylinder
  6. any other ideas?
I've been working on learning Featurescript, which is my first dive into programming in any language, and I couldn't have done this without lots of help from the forum. Special thanks to @NeilCooke @MBartlett21 @ilya_baran
 and @konstantin_shiriazdanov
Evan Reese
The Onsherpa | Reach peak Onshape productivity
www.theonsherpa.com

Comments

  • S1monS1mon Member Posts: 3,460 PRO

    @EvanReese
    As it happens, I'm working on a something which needs a pattern of holes for a speaker, and I remembered this feature. It's working well, but it would be really nice to do something like Fill Pattern where you could choose a boundary and optionally a margin. It's not hard to tweak the dimensions to get there, but I suspect that since this was one of your oldest efforts, you might be able to tune this up a lot more easily now.

    I'd also love to see some more pattern options. I'm not sure where you'd stop, since there are zillions of them out there, but a few more would be nice.

    Simon Gatrall | Staff Mechanical Engineer | Carbon, Inc.

  • EvanReeseEvanReese Member, Mentor Posts: 2,516 ✭✭✭✭✭

    Glad someone is using it! I've considered re-writing this one because, as you say, it's one of my oldest ones and I'd do it differently now. I'm not sure if/when I'd get to that, but would love to see some examples of other things you'd hope to accomplish with it. I've considered blending it with something like Attractor Pattern to accomplish things like this (though this has a bit more going on with the point placement).

    image.png
    Evan Reese
    The Onsherpa | Reach peak Onshape productivity
    www.theonsherpa.com
  • S1monS1mon Member Posts: 3,460 PRO

    Again, I'm not sure where you'd stop - it's an infinite space, but here are some basic selection of ideas which I could see being incorporated:

    https://www.speaker-grill.com

    https://www.shutterstock.com/search/similar/428647408

    You can quickly go off the deep end with patterns on Pinterest, etc:
    https://www.pinterest.com/pin/439171401140112138/

    Simon Gatrall | Staff Mechanical Engineer | Carbon, Inc.

  • EvanReeseEvanReese Member, Mentor Posts: 2,516 ✭✭✭✭✭

    Yeah I get the gist, I love that kind of stuff, but it's hard to generalize to a single feature. For many of these I think you'd have to write a custom specifically to achieve that look, which is pretty much what the Grasshopper users of the world are doing, and could be done with FeatureScript too. This one was just meant to automate creating that classic look from Deitur Rams https://www.midcenturyhome.com/dieter-rams-music-player-tp1/

    Evan Reese
    The Onsherpa | Reach peak Onshape productivity
    www.theonsherpa.com
  • Derek_Van_Allen_BDDerek_Van_Allen_BD Member Posts: 179 PRO

    @EvanReese I keep trying to get the Rhino jockeys in our office to learn featurescript to do the stuff they're doing in Grasshopper but they tend to be more visual thinkers for coding and don't mind writing a script that takes 20 minutes to run one-shot. They also like to abuse graphmapper inputs for everything and I haven't seen someone implement that yet in featurescript. The animate feature has something sorta like that going on but not for driving surface geometry or patterns. Might be another rainy day project to tackle some time if someone bugs me enough.

  • EvanReeseEvanReese Member, Mentor Posts: 2,516 ✭✭✭✭✭
    edited August 7

    I started but didn't yet finish a tool to use a sketch as a graph mapper. Definitely doable. This one remaps the numbers too so the min/max sizes stay the same and the graph controls how it transitions between them.

    graph mapper.gif
    Evan Reese
    The Onsherpa | Reach peak Onshape productivity
    www.theonsherpa.com
  • Derek_Van_Allen_BDDerek_Van_Allen_BD Member Posts: 179 PRO

    Hey that's exactly what I was hoping that would look like when I was gonna get into it. Do you have support for piecewise paths for more complex forms?

  • EvanReeseEvanReese Member, Mentor Posts: 2,516 ✭✭✭✭✭

    nice! what do you mean "piecewise paths for more complex forms"? like chains of curves?

    Evan Reese
    The Onsherpa | Reach peak Onshape productivity
    www.theonsherpa.com
  • Derek_Van_Allen_BDDerek_Van_Allen_BD Member Posts: 179 PRO

    Yeah like say I want to start out and end with linear behavior but smooth between the two with some cubic Bezier curve or spline. Or if I wanted to draw the top half of the batman logo and use it to drive some geometry.

  • EvanReeseEvanReese Member, Mentor Posts: 2,516 ✭✭✭✭✭

    Yeah that's totally possible but I didn't get there. Yet. This was more of a proof of concept. In the end it just spits out an array of values as a variable so I can get at them in any kind of pattern feature later with an iterator variable #i.

    Evan Reese
    The Onsherpa | Reach peak Onshape productivity
    www.theonsherpa.com
Sign In or Register to comment.