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 FeatureScript: Crush Ribs — Parametric Press-Fit Ribs for Cylindrical Holes

mikey_straussmikey_strauss Member Posts: 7
edited November 25 in FeatureScript

Hi everyone,

I’ve been taking my first real steps in proper 3D modeling (I came from Tinkercad, so this was a big jump for me 😅), and I wanted to share something useful that came out of that learning process.

I wrote a FeatureScript called Crush Ribs — a fully parametric tool for generating wedge-shaped crush ribs inside cylindrical holes. This is especially handy for 3D-printed press fits, friction-fit inserts, and parts that need just a little extra grip without modifying the hole diameter.

👉 Document link: Crush Ribs FeatureScript

The feature creates wedge-shaped ribs arranged radially inside a hole.
Ribs are automatically aligned to the cylindrical axis and can be trimmed, filleted, and merged cleanly into the surrounding geometry.

crush_ribs.gif

Key capabilities

Geometry Controls

  • Number of ribs (1–100)
  • Rib width (tangential/chord)
  • Rib height (radial intrusion)
  • Rib length (axial depth)
  • Optional axial offset (start ribs deeper inside hole)

Fillets

  • Rib tip fillet — rounds the inner rib edges at the deepest point
  • Head fillet — softens the ring where ribs meet the entry surface

Trimming

  • Optional Trim face selection:
    • planar
    • angled
    • curved
    • counterbore floors
      Ribs extend past the trim face and are cut cleanly.

Comments

  • martin_kopplowmartin_kopplow Member Posts: 1,051 PRO
    edited November 25

    That is certainly useful. Are you aware of the published FS called "Tapless 3D-printed thread" by kenn_sebesta167? It appears pretty similar in what it does. There is one thing I miss in both: A simple way to define standard setups. Like, I usually use a certain series of inserts and don't want to enter the same numbers time and again.

  • mikey_straussmikey_strauss Member Posts: 7

    @martin_kopplow Thanks! I actually wasn’t aware of the “Tapless 3D-printed thread” FeatureScript — just checked it out now. It’s a cool approach, and for some usecases create very similar results, but it’s aimed more at creating a dense toothy pseudo-thread, while mine focuses on traditional crush ribs: simple wedge ribs with custom length and angled hole.

    As for state-full presets: Onshape doesn’t give a custom FeatureScript its own built-in preset storage. The configuration panel can hold multiple presets, but they only apply to features whose parameters are explicitly driven by configuration variables. A new feature instance won’t automatically pick up those presets.

    From FeatureScript you can only read individual config variables via getVariable(context, "Name"), so to pull in a full preset you still need one getVariable per value (rib width, height, length, etc.). There’s no way to grab a whole preset in one call.

    If you have a example or pattern you think can work, i be happy to try and tackle the issue.

    An admittedly non-trivial workaround is to treat a “preset” as a part: apply the feature once to a reference part, then reuse that part in multiple mate locations and combine it with the main geometry using booleans. In that approach, the part effectively stores the state/preset.

Sign In or Register to comment.