How to fix the relative shape of a spline

How to fix the relative shape of a spline

edgemarston
Advocate Advocate
4,051 Views
14 Replies
Message 1 of 15

How to fix the relative shape of a spline

edgemarston
Advocate
Advocate

Question about splines. Let's say I've got this project (I've also attached it):

 

1.png

There are two sketches. Sketch #1 is the vertical line (height 20) and the diagonal line. Sketch #2 is a spline, with the start and end points projected from sketch #1.

 

I want to be able to adjust the height and have the spline keep its shape and move up or down. For example, here's height = 40:

2.png

The problem is, if I use coincident constraints on the ends of the spline, I get a stretched out shape like this when I change the height:

3.png

And if I don't use coincident constraints, I get this:

 

4.png

...which could then be fixed with a point-to-point move, but that's a pain in the ass if I'm changing the height frequently.

 

You might say, why not fully constrain the spline like this:

 

5.png

 

The answer is, that would be fine for this (simplified for demo purposes) project, but what I'm actually working on is a complicated spline with many points. I'd really rather not have to fully constrain each point manually.

 

Is there a solution? If there isn't, I think this would be a really useful option in a lot of situations.

 

Thanks!

Accepted solutions (3)
4,052 Views
14 Replies
Replies (14)
Message 2 of 15

jeff_strater
Community Manager
Community Manager
Accepted solution

@edgemarston - this is a good question, and well-described.  The short answer is no, unfortunately.  You describe the options pretty well as they exist today.  You can either fully constrain the spline within itself, with lots of dimensions, or you can use the Move command, and select the spline and anything connected to it.

 

The idea of a "rigid spline" is an interesting one.  "Fixed" doesn't work, because that fixes it in space, so we'd need to add a new concept.  Splines are the only curves with this problem, really, because everything else can be easily made "rigid" (circle with a diameter dimension, ellipse with major and minor dimensions, etc).

 

I'll run it by the team.  It's not a request we've heard all that often, to be honest.  If one were really ambitious, they could write an API script to self-dimension a spline so that it is effectively rigid, I suppose.  Though, once you have tangent handles visible, that task becomes harder.

 

 


Jeff Strater
Engineering Director
Message 3 of 15

edgemarston
Advocate
Advocate


Thanks Jeff! You're exactly right that what I'm looking for is a rigid spline option. The idea is that a model will often have one area that's more mechanical/parametric, and one area that's more artistic/organic. The endpoints of the spline are the transition between those two areas. The rest of the spline will then be used for a loft or extrude or whatever, to create a more organic shape. I'll want to keep messing with the parametric side (changing dimensions, etc.), but without having it affect the organic side.

 

Anyway, I'd be curious to hear what the team thinks. Thanks again.

 

In the meantime, maybe this is a good excuse for me to start learning API scripting...

Message 4 of 15

chrisplyler
Mentor
Mentor

@edgemarston wrote:

 

The answer is, that would be fine for this (simplified for demo purposes) project, but what I'm actually working on is a complicated spline with many points. I'd really rather not have to fully constrain each point manually.


 

I'd be careful about that. A lot of people come to this forum with splines having fifty points, when five would do. Certainly there are situations where a lot of points are needed, but people often seem to think they have one of those situations when they really don't.

 

 

0 Likes
Message 5 of 15

jeff_strater
Community Manager
Community Manager

I just realized that there is another approach here.  If you can separate out the "rigid" parts into another sketch, then you can put that sketch into its own component, and use Joints to position the entire component.  I have heard of folks using that method to rigidly transform sketches.  If you need to have it all combined into one sketch, then it's a bit more messy, because you would have to segregate the spline into its own sketch and owning component, then Project the spline into another sketch, to which you could add the other elements.  It all should hold together pretty well, but is a bit of a pain to set up.

 


Jeff Strater
Engineering Director
0 Likes
Message 6 of 15

edgemarston
Advocate
Advocate

@jeff_strater wrote:

I just realized that there is another approach here.  If you can separate out the "rigid" parts into another sketch, then you can put that sketch into its own component, and use Joints to position the entire component.  I have heard of folks using that method to rigidly transform sketches.  If you need to have it all combined into one sketch, then it's a bit more messy, because you would have to segregate the spline into its own sketch and owning component, then Project the spline into another sketch, to which you could add the other elements.  It all should hold together pretty well, but is a bit of a pain to set up.

 


Thanks, that's a clever idea. I messed around with it last night and got a joint working. It adds a lot of cruft to the timeline in terms of creating the right face/profile in the dummy component to match up the joint, so not sure if I'll end up going with it, but it's good to know that's an option.

0 Likes
Message 7 of 15

TrippyLighting
Consultant
Consultant

Instead of scaling a spline, extrude a surface from it and then scale that surface.


EESignature

Message 8 of 15

edgemarston
Advocate
Advocate

@jeff_strater I played around more with your joint idea, and it actually led me to one that works even better. I was able to get the desired outcome by:

 

1) creating an extra sketch (a "floating" copy of the existing sketch that had been anchoring the spline with projections)

2) pointing everything that had previously been built off the old sketch to the floating one instead

3) using the align function set to bodies

 

This way I avoided having to make a new subcomponent or a joint.

Message 9 of 15

TrippyLighting
Consultant
Consultant

@edgemarston feel free to mark one of the answers as the solution 😉


EESignature

0 Likes
Message 10 of 15

edgemarston
Advocate
Advocate

@TrippyLighting wrote:

@edgemarston feel free to mark one of the answers as the solution 😉


Haha sure, just marked one. I just wasn't sure of the forum etiquette about marking a thread as solved when the answer is basically, "This functionality doesn't exist yet." But I guess that is indeed an answer 🙂

0 Likes
Message 11 of 15

TrippyLighting
Consultant
Consultant
Accepted solution

@edgemarston wrote:

@TrippyLighting wrote:

@edgemarston feel free to mark one of the answers as the solution 😉


 "This functionality doesn't exist yet." But I guess that is indeed an answer 🙂


You can actually extrude the spline into a surface and then scale that surface, thus preserving  the proportions of the spline. You can reference the edge of that surface just as you can with a spline. This does not work with 3D spines however.


EESignature

Message 12 of 15

edgemarston
Advocate
Advocate
Accepted solution

@TrippyLighting wrote:

 "This functionality doesn't exist yet." But I guess that is indeed an answer 🙂

You can actually extrude the spline into a surface and then scale that surface, thus preserving  the proportions of the spline. You can reference the edge of that surface just as you can with a spline. This does not work with 3D spines however.


Okay I see what you mean now. That's a neat trick. I got it working by extruding all the sketch elements into surfaces, then doing a move/copy on the extruded surfaces (rather than a scale, since I'm trying to keep the shape the same as before). Then I created a new sketch and projected all the translated surfaces back to the sketch, and then cleaned up by getting rid of the surfaces and re-referencing everything later in the timeline to the new sketch -- which is essentially a translated copy of the old sketch. It works.

 

The reason I made a new sketch instead of just using the surface edges is because I was having trouble referencing certain important points, for example the center of the crosshairs of an extruded ellipse.

 

More effort than ideal, but maybe better than the align-bodies method. Definitely useful to know about. Thanks!

0 Likes
Message 13 of 15

jwiens-wrx
Observer
Observer

Just wanted to come and express my support for such a feature. As a specific use case, airfoil profiles come in as dxf and it is difficult to use the profile to do anything other than extrude/loft as is. It would be nice to be able to lock the geometry relative to itself so you can then constrain your own sketch elements to that locked profile without it messing up the airfoil profile. Dimensioning is really not feasible when a profile has several hundred control points.

Message 14 of 15

TrippyLighting
Consultant
Consultant

@jwiens-wrx wrote:

 

 Dimensioning is really not feasible when a profile has several hundred control points.


You should never use a spline with several hundred control points. This is a very common misconception.

That's just not how splines or surfacing works.


EESignature

Message 15 of 15

autodeskLL97B
Observer
Observer

I'd also like to request this capability.  Another possible approach to consider that might (or might not) simplify the problem: would it be possible to fix the relative position of a spline within a bounding box?  In other words, the box and its contents would act as a simple shape (in a sketch) and could be positioned normally to other features in the sketch while the "internals" would translate and rotate with the bounding box.  While this "patchwork" approach might be inelegant, it holds the possibility of satisfying this need without having to solve all the corner cases.

-DJ

0 Likes