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.
Custom Feature: Cable/Wire Routing
NeilCooke
Moderator, Onshape Employees Posts: 5,714
Cable/Wire Routing: https://cad.onshape.com/documents/3599036701247d65f0106997
There have been many wiring custom features created over the years, each using a different approach and each having different strengths, but none focused on the end-to-end process. This new set of custom features takes the best ideas from those existing features and combines them into a process-driven cable and wiring suite that takes a CSV file input from a 2D electrical schematic package of your choice, manages the routing of the cables/wires and produces wire length tables. Please watch the videos below for instructions on how to set it up and how to use the new features.
Tutorial videos:
1. Creating a connector library (also see update 1.178)
2. Creating clips (also see updates 1.176.0, 1.176.1)
3. Importing a from-to wire list (optional - see update 1.179)
4. Setting up the cable/wire environment (also see updates 1.170, 1.179)
5. Inserting connectors and assigning references (also see update 1.179)
6. Cable/wire & harness routing (also see updates 1.170, 1.171, 1.179)
Further updates to these features can be found here:
1.170 https://forum.onshape.com/discussion/comment/95565/#Comment_95565
1.171 https://forum.onshape.com/discussion/comment/96725/#Comment_96725
1.173 https://forum.onshape.com/discussion/comment/97447/#Comment_97447
1.174 https://forum.onshape.com/discussion/comment/98412/#Comment_98412
1.176.0 https://forum.onshape.com/discussion/comment/99289/#Comment_99289
1.176.1 https://forum.onshape.com/discussion/comment/99800/#Comment_99800
1.178 https://forum.onshape.com/discussion/comment/101561/#Comment_101561
1.179 https://forum.onshape.com/discussion/comment/102158/#Comment_102158
There have been many wiring custom features created over the years, each using a different approach and each having different strengths, but none focused on the end-to-end process. This new set of custom features takes the best ideas from those existing features and combines them into a process-driven cable and wiring suite that takes a CSV file input from a 2D electrical schematic package of your choice, manages the routing of the cables/wires and produces wire length tables. Please watch the videos below for instructions on how to set it up and how to use the new features.
Tutorial videos:
1. Creating a connector library (also see update 1.178)
2. Creating clips (also see updates 1.176.0, 1.176.1)
3. Importing a from-to wire list (optional - see update 1.179)
4. Setting up the cable/wire environment (also see updates 1.170, 1.179)
5. Inserting connectors and assigning references (also see update 1.179)
6. Cable/wire & harness routing (also see updates 1.170, 1.171, 1.179)
Further updates to these features can be found here:
1.170 https://forum.onshape.com/discussion/comment/95565/#Comment_95565
1.171 https://forum.onshape.com/discussion/comment/96725/#Comment_96725
1.173 https://forum.onshape.com/discussion/comment/97447/#Comment_97447
1.174 https://forum.onshape.com/discussion/comment/98412/#Comment_98412
1.176.0 https://forum.onshape.com/discussion/comment/99289/#Comment_99289
1.176.1 https://forum.onshape.com/discussion/comment/99800/#Comment_99800
1.178 https://forum.onshape.com/discussion/comment/101561/#Comment_101561
1.179 https://forum.onshape.com/discussion/comment/102158/#Comment_102158
Senior Director, Technical Services, EMEAI
25
Comments
This is impressive. Just quickly skimming the FeatureScript, it's amazing how much functionality and power is contained in ~2.4k lines of code.
Is the plan for this to be a bit like the progression of the Beams custom feature into the Frames built-in features?
Some wish list items for the next updates:
This looks really impressive!
I haven't had a chance to play with it yet but here are a couple of things stand out at first glance:
- Strip length generally ends up being different at both ends of wires/cables. Maybe it should be set in the CSV per terminal instead of in the route interface?
- Some way to round the values for length, at least in the tables, would be nice (maybe that can already be done)
- "fixed length" option for the stripped section of cables.
- Obviously the ability to generate straight representations would be really helpful, that could be a separate feature that takes a single wire/cable and generates a straightened representation from the available data. Would be really simple for a wire, a bit more involved for cables although it could be "schematic" with just a straight distance between the end of jacket and the end of the cable (i.e. ignoring the length of the "bends" to show the ends spread out in one plane). This would require using rounded values so that wire ends all line up when they are within the rounding value. Less ideal but the rounding could be applied at that stage.
Some cosmetic improvements for wire within a cable and wires/cables in clips to not interfere with each other.
- Maybe some way to offset each cable from the clip axis manually would solve the second part?
- Maybe clips would have to be defined with an "area" for cables to go through (picking a reference "pierce" surface for example)? This could also serve as way to check the clip size is appropriate for what is going through it?
Learn more about the Gospel of Christ ( Here )
CADSharp - We make custom features and integrated Onshape apps! Learn How to FeatureScript Here 🔴
@S1mon - there will not be a built-in wiring feature in Onshape for some time, so I took the opportunity to create a prototype to get feedback/requirements and to provide something useful in the meantime. You can currently have more than one wire type per cable, but the cable diameter calc is based on all wires being the same diameter (otherwise it would be too compute intensive to pack dissimilar wire sizes). Ribbon cable and fixed length are hard to do.
@eric_pesty - I have just release V2 which includes different strip lengths at each end. The rounding of wire lengths follows the document unit settings. Offsetting the clip axis is hard because until a cable is regenerated the clips (or other cables) have no idea what exists. I'll have a think about that one.
I'll check out the different strip length options.
I see what you mean about clips and not knowing where things will end up... Of course it's possible to manually create multiple "clips" with offsets but it's a bit tedious. I understand the limitation of working with a context like this but it would be really nice if you could somehow define the clip at the part level rather than have to re-create it for every instance of the same clip in the assembly!
I guess the clip could include some reference surfaces that you could "zero offset" and then use with mate connectors to create clip features (I still don't understand why you can't use implicit mate connectors on context geometry, this would save so much time...) but it does seem like a bit of a convoluted workflow.
For the rounding I was asking about rounding the actual numbers to a user specified increment rather than just adjusting the precision shown in the table. That would become especially important when generating "straight" version as you wouldn't want the ends of a cable to be just slightly different (by a fraction of a mm) when you would make the actual thing by cutting them all to the same length.
We typically make sure our wire/harness drawings have nice "round" numbers (maybe in 5mm increments).
Here's an example I did when I was exploring workflow options for wiring. I automatically generate the length of a straight extrude to give me an even spacing between ring terminals in my "straight wire" assembly (used for the drawing) from the measured length of a freeform spline (it's "shared with support" so you should be able to see it?). In an ideal world we would be able to reproduce something like this...
https://cad.onshape.com/documents/cce8cbd2f7fc3932f9ed923e/w/e2f7142396922c9adbd1e95d/e/54f3ad06852be739839286dd
There's another feature I didn't mention last as I think it might be beyond the scope here... but re-using the same cable in a different assembly is something we do have to worry about, and we often end up making a harness a bit longer than "ideal" in one place so that we can use it somewhere else, but that is all about starting "from the other end" and dealing with "constant lengths".
In my example above I did experiment with inserting my harness in a separate assembly and generating a new 3D model, including using some "sensors" to check the length is within "useable" tolerance. It would be great if this tool could help with this workflow as well!
Maybe it's already doable to some extent (haven't tried)... Can you create new "wire ref" and "routes" that re-use the same "references" (and use a different context)? Then it's just a matter of manually adjusting the path to make sure you have the same lengths and then managing configurations/composite parts to create two representation of the same wire/cable. Side note (tangent warning): this is one very common use case where we would want to have multiple configurations of a "thing" treated as a single "item" in the release process (same part number and REV, listed on one line on a BOM, etc...)
I noticed that this will unfortunately not play well with configurations as it leverages arrays in features. This is probably ok, we have found in our workflows the simplest way to handle configurations of different wire shapes is configure the selection on the composite at the end.
I can hear your controlled exhilaration underneath that proper accent! This is absolutely incredible! Mind bottling as some may say that this has actually been realized!
You can currently do that jog using a sketch, then 3d fit spline/edges, then select the spline in the "clip" area of the route feature. I will add this as a native option in the clip feature. Thanks for your great UI!
let me know if support won't let you access this document!
We could use this for the first 1/2 of the workflow (creating the routes and "installed" models), and then create Straight models "manually" using our current workflow. One thing that would be useful would be if this generated variables with the lengths of each path, this way we could use that to create parametric straight versions. Although I'm not sure how to deal with the rounding issue. In the example above I'm adding the distance between the end of the wire and the center of the ring terminal before rounding so that would still have to be handled... It's just nice to end up with "irrational" numbers in the dimensions!
Currently we don't actually bother setting up the variables as shown in the example above as it's not really worth it for our typical harness/wires. We just manually set the straight length to be "close enough" to the real 3D route and give us nice round numbers on the drawing so we could do this with the current iteration of this feature.
I haven't had a chance to try it end to end yet (just made a copy of the doc and poked around a bit). @Evan_Reese, the "clips" add a straight sections and break up the splines so I think by defining 3 clips (per wire, so 6, which is a bit of work... probably using mate connectors with offsets on an offset surface from the context), you should actually be able to generate the wires going through a rib like this, would be fun to try.
I hadn't played with it yet so I wasn't sure if the "clip" curve had any special attributes assigned or if any curve would do it. If it's any curve, then the fit spline option works well enough for me.
I do think the most critical place for this would be when generating straight version of a jacketed cable were the wires are "close" to the same length and should really "snap" to be aligned on the drawing. Maybe I'm overthinking it and there should just be an option to "align to the longest" or something like this for the straight version and the rest can be handled with a couple of "manual" steps like a move face or whatever to align/offset things as required...
Didn't realize the "clip" could be more than just a line/reference point...
Maybe a good workflow would be to include a reference curve in the "clip" model and then "super derive" these into the wire part studio to create a bunch of identical clips (would still need to create some "zero offset" surfaces to be able to have MCs for the super derive) more quickly.
A context doesn't bring in curves, does it (because that could speed things up quiet a bit...)?
Axel Kollmenter
Axel Kollmenter
Axel Kollmenter
Still haven't had a chance to create something "from scratch" (starting from a CSV) but seeing the rounded values in the table is very "soothing"!
Axel Kollmenter
Axel Kollmenter
Axel Kollmenter
Axel Kollmenter
Thank you! Your file worked. Maybe you got magical hands ^^
Axel Kollmenter
Awesome! Thank you! This would be the so nice.
Axel Kollmenter