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.

Options

Massively recursive feature patterns: cool, a bit unwieldy, and some tips

brooks_talleybrooks_talley Member Posts: 27
Based on Ilya's response to a question I had about workarounds for configuration-like workflows, I got a little carried away with recursion in feature patterns.

This document builds a set of interlocking parts cabinets and drawers based on an initial cabinet size and cabinet count; if you set it to 4 cabinets starting at 50mm/side, you'll get a 1x1, 2x2, 3x3, and 5x5, all of which interlock and with each drawer's geometry unique to the cabinet it's in and its position in the stack; a total of 18 parts, each of which is unique. Change that to 5 cabinets and you get the same first 18 parts, and also an 8x8 with 6 drawers.

Probably some obvious stuff for long-time CAD folks, but like many others, I'm more of a software + 3D printing guy. Here are some things I learned in the process:
  • When feature patterns are nested, each feature on the inside pattern also has to be included in the outside pattern or else oddness occurs. Forgetting to do so leads to things like "why does that chamfer not appear on the first drawer of every cabinet after the first?" 
  • Sketches are useless in recursive patterns because "use" doesn't resolve references.
  • However, you can do almost anything you'd do with a sketch by creating planes, splitting and offsetting faces, and basically using 3d tools as if they were 2d.
  • If you split parts/faces to construct geometry in a pattern, it's usually best to recombine them after the operation. Otherwise later features that rely on an edge or face will break when you change earlier geometry.
  • If a common part is going to be shared across pattern instances, it's better to construct it once outside of the pattern and copy it in rather than including its construction inside the pattern. For instance, the side rails & grooves in this document are all generated inside the cabinet pattern despite being the same dimensions on every cabinet. Life will get better when I move to just making one set and copying them around.
  • This doc stresses Chrome and/or Onshape; adding new features to the outside pattern often hangs the browser window. Fortunately, the change gets saved, so reload-and-do-one-more works.
Pretty sure this would have been way easier in Featurescript, where I could have just build the geometry, but it started as a small test and got a little out of hand.

Comments

  • Options
    owen_sparksowen_sparks Member, Developers Posts: 2,660 PRO
    Yikes. 

    "Carried away"?  I stopped counting at 60 variables! 

    Very impressive work, and crying out for a FS front end.  As a 3D printing nerd I love this.  I want a wall of those in my workshop...

    Owen S.
    Business Systems and Configuration Controller
    HWM-Water Ltd
  • Options
    brooks_talleybrooks_talley Member Posts: 27
    Thanks... it was a bit of a project, but now I have a bunch printing. The vast majority of variables are calculated; anywhere I'm going to reuse a value or calculation, I stuff it into a variable. Only the first 18 variables actually control what is constructed :)

    One downside is that it's making me want either a larger print bed (current is 8"x10", just enough for a 5x5 cube), or to make larger cabinets themselves modular. But that sounds like a lot of work. Maybe in a future FS version.

    I did convert all of the re-used parts to first create the part, then use mate connectors and copy/transforms, and it got much simpler. Well, simpler.
  • Options
    owen_sparksowen_sparks Member, Developers Posts: 2,660 PRO
    edited May 2017
    Nice.

    Just out of interest what printer and material are you using?  We're using ABS in UPBOX machines at the moment but are looking to upgrade soon.  The Markforged stuff looks really well made but the media prices are daft.  The leapfrog Bolt looks like a nice machine but don't know much about the company.  I'd love to hear any recommendations.

    In theory we can put a print head on our Stepcraft CNC and have a 800mm bed but I'm not convinced!

    Owen S.
    Business Systems and Configuration Controller
    HWM-Water Ltd
  • Options
    brooks_talleybrooks_talley Member Posts: 27
    I'm using a MakerGear M2, and also looking to upgrade soon. The M2 has been a great first printer, but I find it to be fussy about calibration (I have yet to be able to print all the way to the edge on all four corners without at least one peeling / lifting / crushing). 

    Strongly considering the Leapfrog Bolt, but it's at the edge of my price range, and I just haven't seen enough reviews from owners/users. Given my M2 experience, the lack of auto-leveling is also a drawback. The big additive manufacturing trade show is at the end of June, and I'm hoping we see next-gen products and one of them hits the right price / bed size / ease for me.

    I've had the same thought about our putting a print head on our Flow waterjet (4' x 8'). But I suspect that would be a long and expensive endeavor that would end in tears.

Sign In or Register to comment.