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.

How to create this 3D sketch in Onshape?

mike_hölschermike_hölscher Member Posts: 105 PRO

We have got this 3D bent spring wire in our product. In SW this already was some hassle to set up using 3D Sketch because it would suddenly give an overdefined sketch for no reason when adding tangent relations between multple arcs in a 3D sketch. However, it was fixed by adding small straight pieces (0,01mm, as you will see in the pictures) in between the arcs and it all worked fine.

That is all history. Now I would like to remodel this wire in Onshape. There is no 3D sketch, and a spline is not what we want. When trying to make multiple planes to create this shape, the problem arises that the location and orientation of the planes depend on dimensions cannot be defined yet. In the right picture below, the orange start and end lines (40 and 120mm) can be defined using 2 planes. The 3 arcs in between can be placed on 2 other planes (the R30 on one plane, and the two large radii on another plane), but where these planes should be in space totally depends on all of the chosen dimensions of the arcs.

Does someone know how to create this shape in Onshape right now?


  • NeilCookeNeilCooke Moderator, Onshape Employees Posts: 5,234
    Difficult to tell from the image - could you use "projected curve"?
    Senior Director, Technical Services, EMEAI
  • mahirmahir Member, Developers Posts: 1,291 ✭✭✭✭✭
    edited August 2018
    To build on what @NeilCooke said, Projected Curve will let you lay out and dimension this curve on two non-parallel planes. Once the two sketches are complete, you can project them onto each other to create a composite 3D curve. It looks like your dimension are already on orthogonal planes anyway, so creating the two sketches should be relatively simple. Check out my example below.


  • Don_Van_ZileDon_Van_Zile Member Posts: 195 PRO
    edited August 2018
    I hope to have some kind of teaser here... Would there be any chance 3D sketches (or similar paradigm)  are on the "In Development" queue?  :) Any tease/hint would be great!

    @mike_hölscher shows an example where he may not have or know the dimensions of what would be the Projected Sketches to produce that result.
  • mike_hölschermike_hölscher Member Posts: 105 PRO
    edited August 2018
    Thanks @NeilCooke and @mahir !
    I understand the 3D wire shape is hard to judge from two pictures, but mahir actually came pretty close in his example. Thanks for that!

    I did not think of the projected curve method yet, so thanks! Unfortunately is does not do what I want exactly. I will try to explain using the pictures below where I added 4 planes on top of the SW 3D Sketch to clarify:

    Actually, the shape could be on two planes, Plane1 and Plane2. Note that Plane2 is not parallel to Plane4, is has a slight angle. As you can see in the first post, no plane angles are defined by me. The plane angles depend on all of the dimensions in the 3D Sketch, so dimensions on multiple planes together. In the 3D Sketch, Plane1 and Plane2 are the planes where the radii are defined. However, the endpoint distances are all dimensioned from the orthogonal planes, Plane3 and Plane4. This is because of the application and production method. Dimensioning the radii from the Plane3 and Plane4 (like in mahir's example) gives a different radius on Plane1, not giving the wanted result. Actually, projecting two circular radii using Projected Curve gives an ellipse, right?

    I guess I have to do some trial and error work to get as close to the original curve as possible, until Onshape 3D Sketch comes out.
  • philip_thomasphilip_thomas Member, Moderator, Onshape Employees, Developers Posts: 1,381
    @mike_hölscher - yes, 3D sketch is something we are 'noodling' on :)
    That said, the advice here is sound and you absolutely will be able to make this part using the functionality available today :)
    Philip Thomas - Onshape
  • mahirmahir Member, Developers Posts: 1,291 ✭✭✭✭✭
    For now, if you need specific (and different) radii, you'll need to piecemeal the different sections together, putting the radii on their own planes/sketches. You can combine the sketch segments after the fact using the Composite Curve function.
  • mike_hölschermike_hölscher Member Posts: 105 PRO
    edited August 2018
    @philip_thomas , cannot wait :smile:

    You are saying I should be able to this using Projected Curve? I do not think it is possible to get a projected curve with a specific radius based on two sketches with other radii. Please prove me wrong.

    As I expected, two radii make an ellipse:

    Thanks @mahir
    I had to lookup 'piecemeal' :smile: . I do not see how to break it down into steps on different planes if the position of the planes is so dependent on the dimensions. For now, I just took over some resulting dimension values from the SW Sketch so I have the part in Onshape, but for changes I have to go back to SW and replace some values. Seems fastest for now. 

  • philip_thomasphilip_thomas Member, Moderator, Onshape Employees, Developers Posts: 1,381
    Mike - no, as you said, the projection of two arcs result in an ellipse.
    To do this today manually, requires multiple planes and sketches.

    Here is a plan;

    1) As a pro-user, please please please submit your desire for a 3D sketch
    2) I will look at better workflows - potentially automating aspects of this using custom features

    Philip Thomas - Onshape
  • konstantin_shiriazdanovkonstantin_shiriazdanov Member Posts: 1,221 ✭✭✭✭✭
    edited August 2018
    Also you can assemble this path from straight lines and arcs in the assembly, then make in context part studio, add briging curve there and unite it all with composite curve
  • mahirmahir Member, Developers Posts: 1,291 ✭✭✭✭✭
    edited August 2018
    It took some doing, but I think I made a parametric version of your curve using the dimensions you provided. I made what I believe are a couple safe geometric assumptions.

    1. The 30mm radius "points" to the endpoint of the 120mm line segment. This is assumed to be true based on the planar and tangent nature of the curve segments.
    2. The 50mm dimension where the two large radii meet is not super important. This instead ends up being about 38mm and is driven by other geometry. I can place the point at exactly 50mm, but then you'll have to give up on some other constraint elsewhere in order to avoid being over constrained.



    Front                                   Right
  • mike_hölschermike_hölscher Member Posts: 105 PRO
    edited August 2018
    @philip_thomas .
    1. Voting up the 3D Sketching in Improvement Requests was like the first thing I did when first visiting this forum :smile:
    2. Looking forward to your workflow and possible FeatureScript!

    Wow! Thanks @mahir for putting in so much time and effort in this challange!
    Unfortunately, your assumptions are not valid. These assumptions do make it easier to draw the shape in Onshape which is very close to what we have in SW, like you have done. The 50mm IS important and changes the angle of Plane2, and with it, it slightly changes the angle of Plane3, and together also change where the R30 is pointing. I will be looking closely at a copy of your part to see what I can do with it. Thanks!

    @konstantin_shiriazdanov . I am not completely following you. Make separate sketches of the curves and bring them together in an assembly? This does sound interesting... EDIT: Just tried inserting sketches into an assembly. Did not know this is possible! Might just be a solution because using the mates you can allow the sketches some freedom to move and possible also have these two curves tangentially connect. Not sure yet, but very interesting...

    How easy would a 3D sketcher in Onshape be in this case :wink:

  • mahirmahir Member, Developers Posts: 1,291 ✭✭✭✭✭
    edited August 2018
    @mike_hölscher, aside from recreating the dimensioning scheme used in SW, what exactly is the desired outcome for this part? My gut tells me that in the end, you're just routing between two points, and that the location for the inflection/blend points are in practice arbitrary - that they are only dimensioned like that because it was convenient to do so in an effort to create a fully constrained sketch in SW using round numbers (e.g. 50mm).

    I'm all for having 3D sketching capabilities built into OS, but perhaps this is a case of misplaced design priorities? Case in point, is the form/fit/function of this spring really driven in any appreciable capacity by the locations of these inflection points? If so, I stand corrected, but my engineer senses are leaning the other way.
  • jon_sorrellsjon_sorrells Onshape Employees Posts: 51

    I drew a projected view of the curve, using ellipses.  Then I drew another projected view, but in the same sketch as the first, so I could constrain them together.

  • billy2billy2 Member, OS Professional, Mentor, Developers, User Group Leader Posts: 2,005 PRO
    My favorite feature script is Fit Spline written Ilya a long time ago. It allows 3D curve generation. You'll still have to control vertices using 2D sketch constructs but the final curve, will be a 3D curve. Lines can be 2 point curve definitions. Arcs are out as they require planes.  3D Splines are a natural to fit spline.

    Keep in mind, I'd rather have a 3D sketch.

  • mike_hölschermike_hölscher Member Posts: 105 PRO
    edited August 2018
    @mahir Sorry if I frustrated you a bit. I really appreciate your help. Truth is, from a product standpoint, you are absolutely right: This 50mm dimension was originally placed there to fully constrain the sketch with a rounded number. But why it is important is that the original SW shape has been the base for a mold in which these spring wires have been fitted for some time now. There is a high chance that the shape is required to change at certain moment based on user feedback. Preferably, I would like not go back to SW to change this part, but keep everything in Onshape, including an exact replica of this part and not a slightly different one, so I can create the correct change the user requested. Also, the wire shown is part a family of shapes, where dimensions are varied to create different configurations. The mold has 5 different shapes, where primarily the R30 value is changed, and all of the planes and sketches automatically move along. I would also like to keep the 'moving along' the same to that the family changes in the same way as previously in SW.

    @jon_sorrells Wow, really creative! Smart to put everything in one sketch to put in relations and transform and project. Too bad it looks like the result of projecting ellipses are no arcs/radii.

    @billy2 Yeah, I also like this spline. But I really need to dimension arcs for the required result.

  • mahirmahir Member, Developers Posts: 1,291 ✭✭✭✭✭
    @mike_hölscher I feel you. The pain of legacy data...
    I always appreciate a puzzle. If I think of something I'll let you know. I have a feeling it will require some trig and variables.
  • mahirmahir Member, Developers Posts: 1,291 ✭✭✭✭✭
    @mike_hölscher what if you split the problem - recreate existing configurations vs generating new configurations with feasible parameterization?

    One way I can think of to recreate springs generated by the SW 3D sketch is to increment the angle for the plane containing the 30mm radius until the lower inflection point is actually at 50mm. You'd have to do this for each existing configuration. But once it's done, it's done. After that, any future new configurations can either ignore that 50mm dimension, or you can run the iteration process again. It's not a pretty solution, but it's feasible. In my example below I'm using a distance measurement as a sensor to see if the prescribed angle (~19.96deg) gives the desired 50mm dimension.

  • mike_hölschermike_hölscher Member Posts: 105 PRO
    edited August 2018
    Yes @mahir , I was thinking about the same: To just create some close-as-possible configurations for now. And use some alternative way of creating new configurations for a new version.

    But lets be honest, 3D Sketching should really be in a CAD program calling itself 'Modern'. This is not something like Feature Tree Folders that you can have different opinions and views on. 3D Sketching is just something designing needs. So @NeilCooke , tell @philip_thomas, to get his noodles on :wink:

  • mahirmahir Member, Developers Posts: 1,291 ✭✭✭✭✭
    I'm not disagreeing with you. Just trying to make due what the tools currently on hand ¯\_(ツ)_/¯ 
  • philip_thomasphilip_thomas Member, Moderator, Onshape Employees, Developers Posts: 1,381
    Ok - i am back :)

    Here is my contribution.

    Perhaps not so much in this particular case, but in general, there are some common challenges.
    Yes we know that users want 3D sketching and it's coming.
    In the meantime, there are some basic things that would help.
    A typical use case is a 'space frame' - lots of straight lines in different sketches and no way to fillet between the two sketches . . . 

    UNTIL NOW! :)

    This custom feature takes any two lines (from different sketches) and will make the fillet between them.
    It will optionally also recreate the (shortened) lines and optionally the plane used (may be useful later).

    I hope this helps :)


    Philip Thomas - Onshape
  • mike_hölschermike_hölscher Member Posts: 105 PRO
    Thanks @philip_thomas !
    I will play around with it.
  • MBartlett21MBartlett21 Member, OS Professional, Developers Posts: 2,031 EDU

    I have added this to my FS website ( http://featurescripts.bubbleapps.io )
    Is that ok?
    mb - draughtsman - also FS author: View FeatureScripts
    IR for AS/NZS 1100
  • philip_thomasphilip_thomas Member, Moderator, Onshape Employees, Developers Posts: 1,381
    @mbartlett21 - Fine by me - that's quite a nice collection you have.
    My favorites (just in case they are not in your list) are;
    Enhanced Planes
    Ray Tracing
    Extend surface
    Extend Point
    Enhanced Measure
    3D xyz
    Sketch wrapper
    Thread Creator
    Fix PCB
    Philip Thomas - Onshape
  • MBartlett21MBartlett21 Member, OS Professional, Developers Posts: 2,031 EDU

    Here is a feature (that uses yours) that lets you use lines as input, and select more than two lines: https://cad.onshape.com/documents/5d235ff0a55e76d384b9e1a4
    mb - draughtsman - also FS author: View FeatureScripts
    IR for AS/NZS 1100
Sign In or Register to comment.