Curves with Formulas

@KeithFromCanada - I’ve copied your post here:

Okay. I looked over your work, and I’ve found some issues (mostly to do with your curves) that I also ran into. Based on my (somewhat limited) experience with V, here is what you need to watch out for:

Always do curves last. They depend on control/reference points and lines that must be in place before you place your curves. It’s an issue with V itself, which needs to be dealt with at some point. Never do freehand curves. Use formulas for setting the position of control/reference points. If you don’t, they won’t be nearly as easy to make work, and won’t work at all with different measurements. Unless you are doing something fancy, all curve ends must be at ninety degrees to the lines that they attach to. This is to ensure that when you sew the other half of the garment together, where the two curves meet forms a smooth line. (i.e. 90° + 90° = 180° - a straight line.) Setting up a curve using reference points like I do in the example isn’t hard. (I used X as a prefix for control/reference points to keep my main numbering simple. You’ll also notice that I drag the point labels around to make things neater.)

Use the ‘Point from X and Y of two other points’ tool based on adjoining points on the curve (X2-X7). Create lines between the reference points and the curve points (light-blue, dashed lines). Use the ‘Curved path’ tool to lay your curve. (Don’t worry if it looks like crap, to begin with.) Right-click the curve and select ‘Options’. For each curve point, make sure that the control point angles are at right angles to whatever lines they are attached to. (If a line isn’t attached to a point, see if it makes sense to be oriented horizontal or vertical, like A16 in my example.) For the length of the first control point of each curve point, use the line length from the previous reference point (X3 in the example) to the previous curve point (A16 in the example) and multiply by .55. (The proper value is 0.551915, but that much precision isn’t needed; just remember `.55’. This value makes bezier curves come closest to approximating the curve of a circle, which makes for the smoothest curves.) For the length of the second control point, do the same thing, but with the next reference and curve points. (X4 and A32 in the example). As you can see by my example, even odd armhole curves can turn out very smoothly, and changing any measurement won’t bother their result in the slightest.

Hope this helps!


@y.k - I’ve copied your questions here:

Hi @KeithFromCanada, thank you very much! I am looking all day at your tutorial, and try to follow what you did. Unfortunately I don’t understand. What I do understand is that that curves in order to be automatically adjustable for different sizes need to curved paths with formulas. You use construction points for the curved path like A11, A16, A32, A31, and A30, although I don’t see construction lines for A16. You also constructed X35 and X36? From a point from the middle of the curve and an angle? You then constructed some reference points, and did some Bezier magic and got a beautiful curve. When I look at the formula I see that I don’t understand the basics of how such a curve is calculated, or drawn. All constructed points on the curve has two control points. What is this control point, what does the length refer to, how is it dependent on the length between the construction point and the new reference point, in what way is the angle from outside the curve relevant, (I thought the 90 degrees are only important at the end of a curve) and why has the second angle just a number, which angle is it actually. It’s a lot of questions, but maybe you could explain it a bit, that would be really great. Or maybe it is already explained somewhere, and someone knows where?

@KeithFromCanada, I’m also having problems with the instructions. My armhole is quite wobbly, although I managed to make the blue squares that you advise. I’m obviously doing something very wrong :frowning:

I’d be glad to help. Can you post a screenshot of your pattern in V. with the curve(s) highlighted, so I can see what you mean?

I would be happy to add my curve method as a tutorial in the wiki if at least three of the more experienced users can testify that it is a good method. While it works for me, I only want to use (and promote) the most mathematically rigorous, absolute best method. The idea I’m going for is to have each segment of a curve have the smallest possible angles, the same as driving a car into a turn; when going around a corner, you want to turn the steering wheel as little as possible for the smoothest cornering. Ideally, how much you turn it at the start should get you exactly into the lane you want to be in as you exit the turn without having to adjust the wheel left and right. (Imagine going straight until halfway through the turn, then suddenly cranking the wheel completely over to aim it at the end of the turn, then haul the steering wheel all the way back again. I can guarantee that your coffee will be all over you and the car, and your passengers will be screaming and swearing at you!)

1 Like

Hi, @KeithFromCanada. Thanks for replying so quickly.

Here are my ‘play’ files it’s my 1st bodice block so please excuse it :slight_smile: : Close Fitting Bodice Block.val (25.7 KB) Women 12 measurements.vit (1.1 KB)

And here’s a pic:


As you can see, the 90 degree at the top seam aren’t quite working out at 90 and down at the bottom seam neither. And the curves are a bit square.

One of the first issues is that you have two overlapping curves and have mixed up the points between them. Not a huge issue, but one that will throw you off. SplPath_B11_B30 should only reference AngleLine_A11_B11 (which isn’t available, probably because you made the curve before the line.) & AngleLine_A16_B30 to set your beginning angles, B11, B16, X2, B32, X1, B31, & B30 as curve points, and X3, X4, X6, X7, X8, & X9 as construction points. The biggest problem seems to be a misunderstanding (probably because I didn’t make it clear enough) of how to set the length relationships. (I’ve, for example, realized that what I call reference points should really be called construction points, to make things clearer.)

For each curve point, the first control point length should reference the line between the previous construction and curve points, and the second control point should reference the next construction and curve points. For example, in my screenshot, the X35 point references A16 & X3 for the first length, and A32 & X4 for the second. When I went through your B11_B30 curve, and set just the lengths properly, it went from this:

2017-09-08 (56)

to this:

My advice is to redo your pattern from scratch, as it has a LOT of extraneous points that confuse things. Once you have all of your lines set up, then do your curves. You’ve got the gist of how I make smooth curves; you just need a little more practice to get it down pat. Bravo!

1 Like

Keith… can you post your example val file… would help to actually see and play with the pattern.

Haha, yes. When I was starting out, I created this one and didn’t realise I could use a point over and over so each time, I created a new point on top of the previous point :frowning: really dumb but I use this to test things on.

Thank you very much. I’m going to try what you said now :slight_smile:

1 Like

I found the Valentina tool and forum at an earlier date than you did, however I am not convinced that qualifies my as a “more experienced user” Grace and slpencer have showed me a lot about how to shape a curve and I think you approach the issue in a thoughtful and precise manner. What you would put in the wiki on the subject of curves is an improvement over what is there now, which is nothing. It is a WIKI, I say go for it.


We need such tutorials on the wiki. The more, the merrier. Each person can choose which one works best for them and… as @kmf said, at the moment, there’s nothing.

The only thing stopping me (besides finding the time) is that there is no way to bulk-upload images, and I am NOT uploading 40 images one at a time. Someone said that they were going to add in a wikia plugin to do so, but it hasn’t happened yet.

Here you go: AldrichBodiceBlock01.val (15.3 KB) AldrichSize26.vit (1.6 KB)

1 Like

it was probably me who talked of adding a plugin, but i am not able to do that unless I hear from @slpencer that the wiki provider is not about to change soon. The plugin I looked at is UploadWizard - MediaWiki. On another thread I asked your opinion about whether you think it will do what you want done. Once I know it is not a total waste of time, I am willing to figure out how to add it. Don’t shoot the messager @KeithFromCanada, I only got on this train one stop previous to yours :wink:

1 Like

Thanks Keith… Looks good to me - makes sense now. :slight_smile:

I assume the neck line from A1-A9 should use the lengths of Line_A1_X9 * #bez_approx and Line_A9_X9 * #bez_approx otherwise it doesn’t scale right. For an example though I’d leave it so a user can see the difference what happens if you don’t vary the control point lengths.

Unfortunately at this time it’s not easy to modify an existing pattern to add points to base control points on using this method, without a lot adding/deleting curves. :frowning:

Yeaaahhh… That’s totally why I did it that way, as an object lesson. No way I just threw the curve in and forgot to fix it. Nawwwww… :roll_eyes:

Yup. Plus, as I found out after bashing my head against the wall, any detail that contains the curve has to be deleted, as well.

1 Like

Ok, here’s my new effort. It’s working much better now :slight_smile:

Close Fitting Bodice Block2.val (26.5 KB)

Women 12 measurements.vit (1.1 KB)

Now to figure out how to do the sleeves :hushed:

1 Like

Yes… as well as a layout if you have one open. It sucks if you have any dependencies on a curve… like notches (passmarks) added as points along a curve, darts, etc - you have to delete all that too before you can delete the curve and add a new one. I don’t now if there will ever be a solution to referencing objects created later. You really have to think the whole pattern out ahead of time before you even start lest you get trapped not being able to easily modify the pattern. To me it remains to be seen how useful Valentina will be to take an existing pattern and make style changes without deleting half the pattern.

Here’s a post that I helped someone adding points ‘back in time’ that I think will help you:

I use it quite a lot when I find that I’ve missed something. And one can use the “Insert Node Tool” to add new nodes to the detail:


1 Like

To me it remains to be seen how useful Valentina will be to take an existing pattern and make style changes without deleting half the pattern. I have not had time to prove this one way or another, but I have high hopes that at the very least I can take a basic bodice block and add new points without deleting the old ones. This would be useful because I would be easily able to see the fitting bodice (zero ease -in a distinct color) superimposed on the new (different design) drawing in a different color.

I also expect to find some uses for having a basic drawing and creating multiple “details” from it.

It took me a while to grasp this concept because of the semantics (the term detail does not really invoke in me what I think the code designer meant).

1 Like

Grace… Yes this is very useful to add/delete points / lines/ splines in a detail, but I’m referring to when working in draw mode where say you add a curve… then later want to add points to use for the control points or reference a line angle to start the curve perpendicular to a seam. Can’t do it. You have to delete the curve (and any subsequent dependencies), then add the curve back in AFTER any other objects you want to reference. It can be a PITA. You have to have an idea ahead of time what steps to take to create a pattern… which again makes it hard to try and fix or modify a pattern.

No, you can add points at a point back in history and use them in the curve. At most, you may have to delete the actual curve and remake it, but even this is mostly not necessary.