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.
Feedback on design of a reusable frameless motor

Ive been trying to create a reusable frameless motor design, as a way of upgrading my onshape skills (ive only used very basic features so far)
So Im trying to do the right thing, in terms of making things reusable using configuration variables, so itd be convenient to drop this frameless motor into various actuators. However, it leaves me with a lot of questions about best practices.
For instance; if I pattern the magnets on the part studio level, I get a big blob of unnamed parts. If I subsequently want to fix these to the rotor to set up a single revolute joint… there does not appear to be a way to do so programmatically; itd be great if if the circular pattern feature could output bodies to a group; but as far as I can tell that is not possible.
So ok; I leave the patterning to the assembly-level then? That works, in the sense that now I have my bodies available in a way that allows me to group them. But I cant seem to reference the magnet count config variable defined in the part studio, from the assembly studio… so I still cant really have these things propagate parametrically?
Im seeing something about assembly config variables in the docs; but it does not appear available to me. Is that a limitation of the free account? Dont get me wrong I love the free access to basic features as a busines model; but as someone who is seriously considering switching over his busines to onshape itd be nice if these limits were explicit so id know what im missing out on; right now im genuinely confused if what I want is possible at all; but thats a sidenote I guess.
Here is the document if anyone has any tips
https://cad.onshape.com/documents/caa436edcb774387e2f94e9f/w/370d3daed4b7d3598de73cc2/e/44173e5b9223b5fb615b78be
I love the idea of these public document defaults by the way; but if the compositionality of components already runs into practical showstoppers for this very basic example, I dont really see it taking off as a feature.
Comments
I see a couple of options come to mind:
There are also some useful custom features that can help with managing things like this parametrically: https://cad.onshape.com/documents/8430fb350d753c30baca955d/v/5bc0f2a19e99306ee9eeb469/e/52f10ff9b8c867fd527f6483
Configurations can also help: you could use a configuration variable for pattern number and call up the correct configuration of the part studio with the right number of "slots" if you want your assembly to be configurable (as opposed to only changing the number of slots as part of the "design" in which case the variable studio is the best option)
Forgot to add: all the "core" functionality is available in the free plan, it seems like it's mostly the computationally intensive stuff that is only available to paying customer like FEA, Render, CAM, PCB import (not sure about the computational requirements of this last one…)
That custom feature indeed seems to be the most simple solution to this particular problem. A shame its not a first class supported feature though; there is already a slight annoyance here where the appearance and material properties are not propagated by this custom feature… but that seems managable.
One option to create a composite part of an "unknown" pattern number is to set it to the "largest" number of instances, box select all of them and it will still work fine if fewer items are generated in the configuration (with just a warning/notification on the feature). The custom feature listed above (there area actually a couple other ones that can do that) is a cleaner option.
I agree that it would be nice if Onshape had some of the more advanced functions "built-in", but most "popular" custom features are generally well designed and reliable, especially when it comes to ones created by Onshape employees like this one. There are also a lot of very specialized and specific features out there might be considered "bloat" if they were part of the base product. If you are using Onshape without leveraging custom features that benefit your workflows you really are missing out!
The variable studio is for "static" variables to be shared in the document but not intended for creating "variants" which is what configuration variables are. All you need to do is create configuration variables in both the assembly part studio and when you insert your part you can set the part studio config variable to use the value of the assembly config variable.
Yeah… I would really like to get a basic grasp on featurescript as well. Its a big motivator for me to try and get more fluent with onshape; I love how its trying to push the interface between UI and code based CAD there.
Like, in this case, it makes much more sense for me to have the original patterned part also included in the composite feature; and then copy over the material and appearance of the original to the composite; and have the composite also inherit from the name of the original. LLMs seems to have a reasonably solid grasp of featurescript, so thats nice. Despite primarily being a programmer myself I dont find featurescript to be particularly easy to write from scratch though… of course the devil is in the giant library of functionality and data structures…. and its not super duper well documented in my opinion.
Frankly im also not quite sure a composite is the right construct here; all of this only works assuming the original pattered parts have a single material and appearance. What I really want is just a logical grouping/folder structure in my part studio; just assign a label so I can refer to a set of parts as a single whole in downstream logic; I dont actually 'need it to become a single part with a single color'. But as far as I can tell it is indeed the 'best' construct… though frankly all of this seems like itd be much better solvable with deeper typescript integration. If I could just assign the set of parts resulting from the patterning to a persistent variable that can be referenced in the UI and subsequent typescript', thatd be 100x neater. It shouldnt be of any concern to the geometry engine at all.
Ive got to say coming from solidworks then fusion, onshape is quite different in how the basic structure of a complex model fits together. There are always so many gotchas and little know-hows… Like im trying to import the CAD of a piece of electronics; which is quite a complex piece of CAD. If I import that into a part studio and then insert it in my assembly, that seems like a nightmare, both organisationally and performance wise. But if I first wrap the imported part studio in its own assembly, things are suddenly a lot better.