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 Custom Feature: Wire

EvanReeseEvanReese Member, Mentor Posts: 2,136 ✭✭✭✭✭
edited February 2022 in General
Hi all, I've been sitting on this one for a bit, but decided to go ahead and make it public today. The feature takes a chain of curves and sweeps a round profile on them. You can size the wires based on the American Wire Gauge or a custom value. You can set the wire color in the feature. It also creates a custom table of all wire lengths, which could be helpful as a cut-list. Let me know if you end up using it!

Here's a link to the feature: https://cad.onshape.com/documents/d7646aa1f428392f60bfd0f0/v/0a9cf8917ac1dd5cbab9520b/e/570256b830ffc6c8d2f48aa7
Here's a video tour of the feature:
https://youtu.be/FjAdlQN9ymA
Evan Reese

Comments

  • EvanReeseEvanReese Member, Mentor Posts: 2,136 ✭✭✭✭✭
    @Theo_R This is the one we talked about a while back. Hope you find it helpful.
    Evan Reese
  • eric_pestyeric_pesty Member Posts: 1,885 PRO
    edited February 2022
    That looks really neat! I like the ability to specify the color and the stripped ends.
    My first thought would be that it would make more sense for the OD to override the insulation thickness than the conductor diameter.
    From a usability perspective, I would typically have a spline for a wire path but have the stripped ends be straight sections sticking out from the end so that would make more sense (if the stripped wire was added at the end) but maybe that's just me, maybe an option to do it either way? Might start getting cluttered but there are often cases where you would only want the strip on one end...

    At the very least it gives me some ideas for a custom feature I'm working on!
  • EvanReeseEvanReese Member, Mentor Posts: 2,136 ✭✭✭✭✭
    edited February 2022
    Good thought on the override priority. I got to what I have because I wanted a feature that would also be easy to use for quick round-profiled sweeps and didn't want to have to handle a case where the OD would be smaller than the wire core. When I get time I'll update it, because you're right, though.

    My philosophy toward custom features has changed a bit since I wrote this one. The temptation can be to make a single feature handle too many things, when they should be designed to fit into a workflow of features. I also think the best features are either very generally useful (like extrude), or very niche (like making a certain wood joint, or making sacrificial layers for 3D printing). This one was trying to be both, which is usually bad. I now try to think of whether anyone would ever edit a feature to convert it to some other mode. For example if this feature had "Wire mode" and "Hose mode" would anyone every convert a wire to a hose? Probably not, so I'd probably prefer them to be separate features, which share a lot of code via a library of functions. In my case, I should just make a second feature to sweep a few pre-set profiles with boolean options. That may be more than you wanted to know, haha.
    Evan Reese
  • eric_pestyeric_pesty Member Posts: 1,885 PRO
    I'm also struggling with what to include in one feature vs splitting into multiple so I see what you mean!

    I currently have a feature that creates just the stripped ends of wires using a drop down for gauge and a length and lets you pick a bunch of points to create all the ends you need in one go.
    I then have a separate feature to create a simple "jumper" wire by defining just the OD and two end points (like the end face of the bits of stripped wire). In simple case you don't need anything else as it will attempt to auto pick the tangent directions. But it does allow tweaking tangency amount, (by default just one value used at both ends with a boolean to allow independent control).
    We use this to create representation of a wire going into a screw terminal block. It saves quite a bit of time compared to creating splines.

    I'm pretty sure I'm going to steal the color picker idea as it's an integral part of our workflow to set the colors anyway!
    I'm wondering about adding the stripped wire option as well to that same feature... This might be ok as it's a very specialized feature and we often do this, but then again, maybe keeping these as separate features is more flexible!



    One way to deal with the diameter override would be to only have a "gauge" picked if you are going to use the strip option, otherwise all you need is the OD of the insulation and gauge isn't really relevant. Otherwise I guess you'd need to have to check for valid entry for the OD.

    Do you allow "zero insulation thickness"? It would still make sense to use this feature for non-insulated wires where the gauge picker is the key.

    It seems not that useful to use this feature to generate "random" sweeps as there are other options.

    One could also argue that the default "sweep" should include the option to create a circular profile (as an alternate to picking one) as that is a very common workflow (but I can also see why they aren't doing it)...
  • chadstoltzfuschadstoltzfus Member, Developers, csevp Posts: 142 PRO
    Good thought on the override priority. I got to what I have because I wanted a feature that would also be easy to use for quick round-profiled sweeps and didn't want to have to handle a case where the OD would be smaller than the wire core. When I get time I'll update it, because you're right, though.

    My philosophy toward custom features has changed a bit since I wrote this one. The temptation can be to make a single feature handle too many things, when they should be designed to fit into a workflow of features. I also think the best features are either very generally useful (like extrude), or very niche (like making a certain wood joint, or making sacrificial layers for 3D printing). This one was trying to be both, which is usually bad. I now try to think of whether anyone would ever edit a feature to convert it to some other mode. For example if this feature had "Wire mode" and "Hose mode" would anyone every convert a wire to a hose? Probably not, so I'd probably prefer them to be separate features, which share a lot of code via a library of functions. In my case, I should just make a second feature to sweep a few pre-set profiles with boolean options. That may be more than you wanted to know, haha.
    I really want to echo what you said here Evan. Our philosophy at my work has also undergone a similar shift over the past few years. We initially wanted to create real powerhouse features, ones that were like a Swiss Army Knife and could find a spot in everyone's feature tree. But we discovered that scope can get out of hand very quickly and because we are creating custom tools for a three dimensional space, with infinite use cases, we turned to focus on more malleable and "generic" features than a "one stop shop." What we have encountered with this paradigm shift is that sometimes, two features that were created separately ended up being compatible and allowed us to be more creative in some of our design approaches instead of having to remember which feature or options to use for x number of use cases. 
    Applications Developer at Premier Custom Built
    chadstoltzfus@premiercb.com
  • EvanReeseEvanReese Member, Mentor Posts: 2,136 ✭✭✭✭✭
    @eric_pesty
    I thought your point about the UI was spot on, so I've updated the feature to make more sense, and am working on a separate feature to quickly sweep profiles on a curve, which is the other use-case I was trying to shoehorn into this feature. Thanks for the feedback! If you set the insulation to 0 the insulation options go away and the whole wire turns a copper color. Here's what the new interaction looks like. Update to V22 if you prefer it.


    Evan Reese
  • EvanReeseEvanReese Member, Mentor Posts: 2,136 ✭✭✭✭✭
    I also realized that it's still important to be able to manually enter a wire diameter, so I've added that back into V23.
    Evan Reese
  • eric_pestyeric_pesty Member Posts: 1,885 PRO
    That looks neat, I'll have to give it a try!
Sign In or Register to comment.