Welcome to the Onshape forum! Ask questions and join in the discussions about everything Onshape.
First time visiting? Here are some places to start:- Looking for a certain topic? Check out the categories filter or use Search (upper right).
- Need support? Ask a question to our Community Support category.
- Please submit support tickets for bugs but you can request improvements in the Product Feedback category.
- 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.
Variable number of revolved features on cone
thomas_aa
Member Posts: 19 ✭✭
I'm trying to create ribs on a tilted cone, to form a tube connector. I want to be able to change the number of ribs, so I have created #rib_count. My problem is that I cannot get the ribs to change in number correctly.
I tried with a linear pattern within a sketch, but such patterns cannot use variables (I have read that e.g. reducing the number would delete sketch geometry).
Then I tried using a feature pattern. It works well for doing #rib_count number of ribs. Now my next problem is that I want a revolve to revolve all the ribs, but I cannot get revolve to pick up ribs when I increase #rib_count.
I have tried revolving first and then doing a linear pattern of the revolve feature, but then the ribs do not expand in size as they follow the cone.
How do I solve this?
Example. Try increasing #rib_count:
Tagged:
0
Best Answer
-
EvanReese Member, Mentor Posts: 2,080 ✭✭✭✭✭@thomas_aa
I did it but had a heck of a time getting it to behave. For some reason, I'd set up the sketch and pattern it with "apply per instance" and it would look right for the rib count I was using, but when I would change it, the sketch seemed to somehow still remember the old position (or something) and not pattern to the right places. If I just delete a coincident constraint and remake it on the same exact vertex, it would calculate correctly for that rib count. I ended up finally working around it by sketching on a mate connector that moves and rotates in relation to the tip of "Suction Pipe Sketch". That way the rib profile is only related to that mate connector and moves around with it.
Check it out here: https://cad.onshape.com/documents/44771796cc4d0ddf64f56067/w/d723f1e212f3ad9fd39329d1/e/94e5c5bc60678006e9aaaddb
It's honestly not as good as your solution of just letting the ribs overlap. The per-instance pattern makes it heavier to compute than it needs to be. I did a speed comparison, and at 12 ribs, your way is about half the rebuild time. In my opinion, that's actually not such a hacky solution. I'd delete the body as soon as it's used, but otherwise, it seems like the way to go.Evan Reese5
Answers
Have a look at this document: https://cad.onshape.com/documents/794db4c5a5426e423c76daba/w/884b325aad2bfa0883d6ed0c/e/d1f7517bc1b8d8b05bce0e6c
I have set your #rib_count to be driven by the configurations (your document didn't have any configurations in it), so your pattern is different for each configuration.
See if that helps.
Don't forget you can also configure the selection of sketch faces (for instance, your "Suction Pipe Rib Sketch" could have all 5 ribs in it, but your selection could change with each configuration.
Hope that helps!
However, if you DO pattern the sketch, and set up the selection of the Revolve to select the highest possible number of barbs (as defined with a Configuration Variable), it seems to work well. You can enter any integer in the Configuration variable, and it will work. You can define the range of acceptable number of ribs in the Variable itself (I set it from 1 - 10, with 5 as the default).
Updated model: https://cad.onshape.com/documents/794db4c5a5426e423c76daba/w/884b325aad2bfa0883d6ed0c/e/d1f7517bc1b8d8b05bce0e6c
Is that more in line with what you need?
Yes, I thought the fact that it will revolve a smaller number of faces than are selected. However, if you select a smaller number of faces (say the Configuration is set to 5, and you select 5 faces) and then increase the variable - it will not increase the number of barbs (even though the sketch has more faces, they don't get automatically selected).
I'm sure with more playing around there is a configuration method for this that doesn't rely on the number of faces in the sketch. However, I haven't found it yet. I think it may have to do with patterning bodies (as you started to do).
I did it but had a heck of a time getting it to behave. For some reason, I'd set up the sketch and pattern it with "apply per instance" and it would look right for the rib count I was using, but when I would change it, the sketch seemed to somehow still remember the old position (or something) and not pattern to the right places. If I just delete a coincident constraint and remake it on the same exact vertex, it would calculate correctly for that rib count. I ended up finally working around it by sketching on a mate connector that moves and rotates in relation to the tip of "Suction Pipe Sketch". That way the rib profile is only related to that mate connector and moves around with it.
Check it out here: https://cad.onshape.com/documents/44771796cc4d0ddf64f56067/w/d723f1e212f3ad9fd39329d1/e/94e5c5bc60678006e9aaaddb
It's honestly not as good as your solution of just letting the ribs overlap. The per-instance pattern makes it heavier to compute than it needs to be. I did a speed comparison, and at 12 ribs, your way is about half the rebuild time. In my opinion, that's actually not such a hacky solution. I'd delete the body as soon as it's used, but otherwise, it seems like the way to go.
I love sketching on mate connectors. It's good for sketching on a face without "waking up" all of the edges if you don't want them. It's also handy for sketches at off angles since you can have a custom "horizontal" and "vertical". Sometimes if I have a known part stackup, I'll drive all of the thicknesses in a single sketch with just lines, and sketch on the implicit mate connectors at the ends of the lines instead of making a ton of planes. super handy in lots of ways.