Settings

Choose language

Questions and Answers 157 posts, 7 writers, 79 readers, started 85 months ago

This post is reply to #43
posted 68 months ago (Monday, October 1) by Sewist
#51
After playing around and checking for accuracies I found the third way to do this, which resulted in making live math functions asin(x), acos(x) and atan(x). These will go live tomorrow. Just in case, the script worked out as

p3=apply(p1,d,[p1:p2].a1-acos(d/[p1:p2].l))

and provided the same accuracy as compass method, which is also based on trigonometrical functions.

I am thinking we will add function adjacent:

p3=adjacent(p1,p2,length,side)

Side works as above - 1 for left, 2 for right, and is 1 by default.

While choosing the names, I worked through leg (conflicting), cathetus (not practical), hypothenuse (same thing) and subtense - nice as a name, but not intuitive, as we are actually drafting the leg, not the subtense.

I believe it will be live by Wednesday. 
This post has replies: ( #53 #55 )

This post is reply to #44
posted 68 months ago (Monday, October 1) by jne4sl
#52
It's not the most common construction, but I've now run across it in more than one book.  Most recently using a sleeve cap depth to set a point on on a bicep line when looking at a sleeve in profile (for a raglan where the sleeve angle was already decided).  It took me a while to realize it's different from the existing functions.  It's an easy paper construction, because having a square is a way of avoiding the pythagorean theorem.  I don't mind the calculation, but the time spent deciding this is a case that requires a calculation and definitely can't be solved with 'intercept' or 'compass' is worth avoiding.  Also, just like using a square on paper, I'd think people turn to plotting on a computer as a way of avoiding calculations, so a canned solution would be preferred, especially for anyone already familiar with the hand drafting method.

What to call it is an issue, as too many functions with non-intuitive names might be just as unwieldy.  I give it some thought.

I'm not surprised 'tangent' is a little inaccurate for a circle, maybe it can be tightened up.   But given tangent works for any path, while the tangent to a circle has an exact solution, it makes sense to use the direct approach when dealing with a circle.  Anyway, it's a case, like using 'compass' where it's unlikely the circle(s) are part of the construction, they're just a way of constructing a point, so tangent was a bit of a work around.

Good to know about 'normal'.

This post is reply to #51
posted 68 months ago (Monday, October 1) by jne4sl
#53
Yes, I came close to needing inverse trig once, and almost asked about it.  Probably went down the same path as this and realized compass and a square root had me covered.  Thanks.

This post is reply to #49
posted 68 months ago (Monday, October 1) by jne4sl
#54
I agree, it's just these instructions are ubiquitous in drafting books  My preference is to use angles, but following instructions, the first step is figuring out what was being specified.  So I find myself plotting these points.  Sometimes they're exactly the point needed to determine the angle, sometimes not.
This post has replies: ( #58 )

This post is reply to #51
posted 68 months ago (Monday, October 1) by jne4sl
#55
One other name idea would be 'ortho' for orthogonal.  The point constructed defines a pair of orthogonal lines through the original points, a fixed distance from the first.  Which is what I was ultimately doing, I wanted to plot bicep_width orthogonally to cap_depth and my two points were the shoulder point and the underarm point.

posted 68 months ago (Tuesday, October 2) by Sewist
#56
I believe we shall go ahead with 'adjacent' as it is more exact in terms of geometry.

As for 'raise', we still have doubts whether this function may be abundant. We have initiated a ticket and will reconsider again in a week. :)
This post has replies: ( #57 )

This post is reply to #56
posted 68 months ago (Tuesday, October 2) by jne4sl
#57
Sounds good, thanks for the consideration.  I'm just trying to let you know things I notice while working, of course I have no idea if anyone else is doing similar things, or would have the same needs.  I'm more just suggesting little things, that if I could write function for my own use, I would have.  Sometimes, just for clarity.

'Adjacent' is a good name, as it's plotting the point that determines the adjacent edge of a right triangle.  The reason I suggested 'orhto' is bigger picture.  The draft, like most, was set up with center body and level heights as the x, y coordinate frame.  But because the raglan sleeve is designed cut-on, when it comes time to work over there, a new reference frame is needed.  This construction is a change of basis, exactly what is wanted to determine the new orthogonal vectors appropriate to the sleeve.  Anyway, I think it's a cool construction, and good to add to the bag of tricks, even if it only happens once per drawing, if that. :)

'Raise' isn't fundamental, it's just a short hand, for something I've typed a lot.  
This post has replies: ( #59 )

This post is reply to #54
posted 68 months ago (Wednesday, October 3) by Sewist
#58
asin(x), acos(x) and atan(x) are live :)

This post is reply to #57
posted 68 months ago (Wednesday, October 3), edited 68 months ago by Sewist
#59
Adjacent is live ))

Syntax is as we discussed - 

p3=adjacent(p1,p2,length)

or

p3=adjacent(p1,p2,length,2) if you need the other side.

In visual tools the button is under points, 


Enjoy! ))

posted 68 months ago (Wednesday, October 10) by jne4sl
#60
I couldn't find an easy answer in the size charts, is there an estimate of about how far the shoulder joint, Point J, is from the shoulder tip, Point S?  Maybe as a percentage of the shoulder length, sz31.  I see that most the measurements are to point S, I'm just interested in placing a seam as P.

Also, is there any rule of thumb for where waist level is at center front or at the sides. I know sz7 is waist height at back, while sz25 and sz26 are measured against the curve of the body, but is the horizontal height the same on all sides of the body or is it slightly askew?  Of course, it is what is on a given individual, and I could measure that, just wondering if there's a general tendency reflected in the size charts.
This post has replies: ( #61 )

This post is reply to #60
posted 68 months ago (Wednesday, October 17) by Sewist
#61
There's no ease answer for point J, unfortunately. 

The waist is implied to be measured horizontally per the size charts manuals. 

Hope this helps!
This post has replies: ( #62 )

This post is reply to #61
posted 68 months ago (Friday, October 19) by jne4sl
#62
Thanks.  I figured the waist was a level, but I ran across another size chart based on the waist on a dummy being taped 1 cm lower at center back, so I thought I better ask instead of assuming.

The shoulder is giving me some trouble, but I can come up with an estimate.  I do find a lot of drafts are placing the sleeve at the joint. When I didn't consider this, sleeve lengths and shoulder seams were looking wildly off.  There's never going to be agreement with different charts but at least I know a correction is called for.  I am interested in placing a sleeve seam at the joint, no the shoulder point, so that's why I was looking.

Is there any reason sz37, armhole slant height, isn't a provided measurement?  It could be useful.

posted 67 months ago (Wednesday, October 24) by Casper60
#63
I'm new to drafting patterns with this software and to be honest I don't know where to start. I'm bamboozled and could do with instructions on how to start/use it. Any tips or information you experts can give me would be much appreciated. I'm keen on making my own patterns to fit me as I'm not the the typical size. A step by step instructions for a dummy like myself would be good.
This post has replies: ( #64 )

This post is reply to #63
posted 67 months ago (Friday, October 26) by jne4sl
#64
Have you drafted patterns by hand or do you have drafting instructions you've been wanting to tackle?  That's the direction I was coming from.  I found looking at sample patterns that have public code was the quickest way to get started.  E.g. this skirt: http://www.sewist.com/spl/#run/124  It's possible to walk through a construction by inserting the command 'end' at a given point,

The basic concept is plot out points (and contours) based on measurements and then create a pattern object.

posted 66 months ago (Sunday, November 25) by jne4sl
#65
I'm in the habit of using the length, .l,  or angle, .a1 and .a2, properties of an un-named line in formulas.  I just came across an error when I tried to do this using the property .dx (or .dy, .x1, .y1, etc).  I can reference the value but unless I give the value a name, I can't use it in a formula.  

E.g. this:
n = [p1:p2].dx/2
gives me an error:
Wrong argument type(expression)
but this:
n = [p1:p2].dx
n = n/2
is fine.
And this:
n = [p1:p2].l/2
is fine.


This post has replies: ( #66 )

This post is reply to #65
posted 66 months ago (Tuesday, November 27) by Sewist
#66
Thanks, we shall look into this and make properties work for unnamed lines as well. :)

posted 66 months ago (Monday, December 3) by jne4sl
#67
Various questions about dealing with patterns. 

 First is there anyway to change aspects of a pattern once it's been created, other than using the functions which act on a pattern (like simple the simple transformations or pleat, etc).  E.g. could I somehow change the fabric without redrawing  a new pattern.   If it's not possible to change attributes, is it at least possible to look up attributes of a named pattern so that they could be copied into a new pattern.  E.g. I might have a skirt pattern, that is called as a template and used as a lining for a second skirt.  So, I might want to change some small things about the cutting instructions, e.g. rename the pattern, specify a different fabric, maybe even a different grain or seam allowance.  So, yes, basically a new pattern, but the trace and included items have already been worked out for the first pattern, so if those could be looked up or somehow copied, it could be useful.  Or I might somehow be able to set these as options in the template, but since templates can only be called once, I still might have a situation where I wan't two closely related patterns and don't want to restate from scratch.

I've also noticed that if a pattern name is reused, the new pattern doesn't replace the old pattern, instead a union of the two patterns is created.  This is unexpected, but possibly useful.  Certainly deleting the old pattern first would allow the pattern to be replaced if this were the intention.   Is this a feature I should make use of?  No other objects work in this way.  E.g. if I reuse a point name, both versions remain visible, but only the most recent will be usable.

I haven't used the function "pleat" much, but it doesn't seem to work well with a flipped pattern.  If  the pattern has a fold line, I get expected results, but when the fold line is changed to a flip, for a full width pattern, pleat draws too many contours (seems to have something to do with whether or not the pleat moves the fold line).  I assume if I drew the full width pattern explicitly and then pleated, it would work, but I would then have to execute twice as many pleats (to create symmetry about what was the fold).  Instead, I created a half pattern, pleated it, and then mirrored the pleated pattern, explicitly giving it the same name.  This seems like an abuse, but it gives me the final pattern I wanted.

Finally, line styles aren't handled consistently when patterns are acted on.  Even when specifying a flipped pattern, some of the lines of the markings of the original pattern are degraded.  It seems like dashed straight lines produce dashed lines when flipped, but dashed curves, become solid when flipped.  All dotted paths become solid when flipped, even straight lines.  However mirroring a pleated pattern does maintain the special dot-dash pleat line style. 

I imagine these are known issues.  Acting on patterns instead of creating a pattern as a final step, is clearly more efficient, but I need the pattern markings to be legible.  So, as things are, I mostly avoid acting on patterns.
This post has replies: ( #68 )

This post is reply to #67
posted 66 months ago (Wednesday, December 5) by Sewist
#68
In general, a pattern is exported once the software comes across this command in code. E.g. you can create a point P1, use it for drafting (it will be valid at that moment), and then create a new point P1 for further use and that one will stay, while the first one will become obsolete.

The thing with patterns is that it is exported once created, it is sort of a command like "export pattern block", and the nature of point command is just placing it on the screen, not exporting to the blocks, hence the confusion.

Patterns can be pleated, deleted, mirrored, shifted, moved, scaled, rotated. The latter is handy when you deal with long belts and it is better to have them rotated at 90 degrees to save on paper. Scaling a pattern comes handy when dealing with stretchy fabrics (scale by 0.95 for example) or - on the contrary - lining, when you can scale it to some 1.03 to give more ease to that layer in garment. Mirror is handy when you design something from a sketch where the right side of the style is on your left, and it is easier to work that way. In this case you simply mirror the resulting pattern against a line or a set of points after its created. Move and shift are rather for arranging things on the working screen, this doesn't affect the layout on paper.

Changing its features was not previewed, as calling the pattern command is the same as exporting a set of objects. However we might be able to work through properties, I'll have to discuss that. I can see how we could call the trace path of an existing pattern, may be the included objects, will have to see about the extra seam allowances settings.

Pleat function - will look into the flipped situation, same as for styled lines. I am pretty sure we have fixed dashed curves at least once, and we do have an open ticket for behaviour of dotted objects.
This post has replies: ( #69 )

This post is reply to #68
posted 66 months ago (Wednesday, December 5) by jne4sl
#69
Thanks for the details about how patterns are handled.

I think dashed paths are now working correctly for flipped patterns.  However if the pattern is then shifted or rotated (probably other transforms, too) the dashed lines become solid.   I would like the ability to transform the pattern, like rotating a waistband, but if all the markings become solid, it becomes too difficult to read.  So I have mostly been avoiding using this feature.

I can understand why it's too late to change a pattern once it's been created, given the way they're implemented (and given that they need to be a snapshot of the objects at the time of creation).  I'm just trying to figure out the best ways to deal with templates and patterns, and probably it's just necessary to go back and redraw a pattern when a new variant is needed.  But I can work out methods.  Since I'm mostly working with templates I've written, I can go back in and add an option to the template or copy the pattern construction from the first time round into the pattern file that's now calling the template.  But if there were some simple functions that act on patterns, like one that changes a pattern between folded, flipped, or single, or one that simply rotates the grain line but doesn't rotate the pattern., that could be useful.

Definitely do, look at pleat and flipped patterns, I didn't play with it much,  but I was seeing some problems.

posted 66 months ago (Wednesday, December 5) by jne4sl
#70
One more  issue.

The custom files, like the spec sheet, the small scale pattern printout, and the current size chart, are causing error messages.  Things like: "Undefined offset: -1" and "Undefined variable: _lang"  Seems to be happening with patterns where these files used to generate without issue.
This post has replies: ( #71 )

This post is reply to #70
posted 66 months ago (Friday, December 7) by Sewist
#71
Fixed, and the instructions as well. We had to update the library exporting to PDF and test it from scratch, so my apologies for it taking some time.

posted 66 months ago (Thursday, December 13) by jne4sl
#72
Is it impossible to call a template from within an if statement?
I wanted to make a flag for one-piece or two-piece sleeve and then call a different template accordingly.  But, this causes a system error: 

Unrecognized node 'Template' by parser
I thought maybe I could just set the template string an if statement and then make a call after the loop, but also not possible.
I guess, I can instead put both sleeve constructions in the same template with a flag for the choice.
This post has replies: ( #73 )

This post is reply to #72
posted 66 months ago (Friday, December 14) by Sewist
#73
Never tried using templates within an if loop, will have to check with the IT :)
This post has replies: ( #74 )

This post is reply to #73
posted 66 months ago (Monday, December 17), edited 66 months ago by jne4sl
#74
Thanks, I'm curious.  Also, any guidance on how templates are best used, would be helpful.  

My goal is to write things in a way that will be as useful as possible later, even though typically I might only use a given design once.  Right now, I mostly just start a new design by calling an old template and reusing those points/paths.  But whenever I try to be more clever than that, I seem to run into a limitation.  E.g. I thought I might put a couple of definitions in a template to use as a header.  But since templates can only be called once, I have to make sure only one template I'm using calls the header template.  Which defeats the purpose, because I'd rather every template call the header if it's definitions I always use, and I don't want to check whether some nested template has already called the header.  So, I'm back to just pasting the code I want into each template, at least that doesn't cause an error.  

Similarly, I can write a template to generate a waistband, and it's good to collect that code in one place, but if I write a template for a patch pocket, it's not as useful, because I can only call the template once, and, unlike a waistband, I might want two different patch pockets in the same design.  Templates don't preserve variables, so there would need to be some preparation to call a pocket template a second time--renaming the first pocket/points--so that it doesn't get destroyed.  But two calls aren't allowed, so I either make as many pocket templates as pockets I might want, or take the simpler approach and just paste the code into the garment template multiple times.

I'm sure the limitations exist for a reason, and maybe it can't be otherwise, but it would be good if this was explained in the documentation.  Trial and error becomes frustrating.
This post has replies: ( #75 )

This post is reply to #74
posted 66 months ago (Tuesday, December 18) by Sewist
#75
I guess what you are actually looking for is a method that you could write yourself and store it. I shall talk to the IT, they once had the same idea but then we figured this will be too complicated for most users and dropped it. We will still need to figure out how to store the code for 'methods' or 'functions'

E.g. if we talk about a patch pocket, we may describe it as a private function 

function patchpocket(point1,point2,depth,convex_radius)
{
point1=point(0,0)
point2=point(20,2)
depth=20
convex_radius=3
point3=apply(point1,[point1:point2].l/2,[point1:point2].a1)
point3=apply(point3,depth,[point1:point2].a1+90)

corner1 = convex(point3, [point2:point1].a1,point1, [point1:point2].a1+90,  convex_radius)
corner2 = convex(point2, [point1:point2].a1+90, point3, [point2:point1].a2, convex_radius)

patch_pocket_pattern=pattern(
    name("Patch Pocket"),
    trace(POINT1,POINT2,CORNER2,CORNER1),
    qty(1, 0),
    fabric("Self"),
    seam(1),
    grain(90),
    color("cyan")
)

return(patch_pocket_pattern)

}

This post has replies: ( #76 )