Braids  1-20  21-22

Next
 From:  bemfarmer
7405.1 
After reading the post MoI -> Physical, by libelle, a great deal of searching finally found some parametric equations for a simple braid at renderosity.
http://www.renderosity.com/mod/forumpro/?thread_id=2751275

After getting re-familiarized with FxGraph3D script, a simple 3 filament braid may be created with FxGraph3D.
Centerlines of the filament are parameterized by placing each of the following 3 commands in the command window, sequentially.

_FxGraph3D 25*u;5*sin(u*PI);2*sin(u*2*PI);0;6;0;1;200;0;;;;UV

_FxGraph3D 25*u;5*sin((u+4/3)*PI);2*sin((u+4/3)*2*PI);0;6;0;1;200;0;;;;UV

_FxGraph3D 25*u;5*sin((u+2/3)*PI);2*sin((u+2/3)*2*PI);0;6;0;1;200;0;;;;UV

A simple sweep was made with a circle. The values are not optimized to fill the space, without overlap.

- Brian

The three equations could be turned into a script, with some sliders.

There are also "lissajous braids," and lots of paracord bracelet weaving.
Reeper is a German C4D Plugin which does some braids, but the source code is not provided.


EDITED: 19 May 2015 by BEMFARMER

Attachments:

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
7405.2 In reply to 7405.1 
A curve viewed end-on, in the Right view in this case, appears to be exactly a lissajous curve.
The view can be matched to one of the lissajous curves generated by the lissajous01 script.
The x axis does not have a sin or cos, so the lissajous curve is stretched out, rather than being closed.
The second and third curve are "shifted over" 4/3 and 2/3 of half a wavelength respectively.
So other stretched out lissajous curves can be braids with slightly different shapes and different strand numbers.

See page 10:
http://pages.cpsc.ucalgary.ca/~jungle/555/notes/gencyl.pdf

- Brian
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  libelle
7405.3 In reply to 7405.2 
Very nice!

My script just used offset sine waves along the X-axis, with a higher frequency sine wave for the Z elevation. It's not perfect, but it's close enough for the resolution I was working in.

I've been tempted to go back and play with n-strand braids, but work has been keeping me too busy. Maybe over the long weekend I'll get a chance...
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
7405.4 
6-Strand tubular braid, in Moi, using Moi Commands that reproduce the instructions of kevinjohn.

http://kevinjohn3d.blogspot.com/2011/06/modeling-tubular-braid-braided-rope-in.html

In Top View, create two 3-sided polygons of radius 25 and 100.
Connect vertices to make the star shape.

Join star shape, Show pts, and offset the vertices in front view, in the z direction,
by 50, 100, 150,...300 units. This can be done by progressively selecting the proper
points and line segments, starting at the leftmost and going counter clockwise.
Some practice was necessary to get the selections right. Join line segments to form
a spline. Do a linear Array of say 3 copies to lengthen the braid, and join
the resulting spline. Note that the points lie on either an inner or larger outer
helix.

A sweep circle, of radius 20, can be aligned with the cplane command.
A Fillet of the spline was done with radius 20. Sweep the circle.

In Top View, Circular Array 3, the swept spline Strand. (Equals two revolve copies
of 120 degrees.) Mirror the 3 strands in Top View. A point at 30 degrees helps.
Move the 3 Mirrored strands up in Front View by 50 units.
Colors may be changed.

The braid was Boolean difference trimmed with two planes, and the center section
moved back to the origin, after deleting the first and third sections of the braid.

Another paper talks of using a "bspline" instead of a sine or cosine lissajous curve,
because it can have a more uniform curvature.

Question for Michael: Is it possible to "disconnect" one vertex of a closed polygon?
(Selecting just one of the adjoining line segments of the joined polygon allowed moving the line with other control point.)

- Brian

ps Have to try the other tutorial, which does flat braids...


EDITED: 24 Oct 2015 by BEMFARMER

Attachments:

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
7405.5 In reply to 7405.4 
Hi Brian, cool braiding!

re:
> Question for Michael: Is it possible to "disconnect" one vertex of a closed polygon?

Not while it is still joined together, you will need to use Edit > Separate on it to break each segment into its own separate piece, then if you turn on control points for one piece you can move its end independently.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
7405.6 In reply to 7405.5 
Thank you Michael.
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
7405.7 
5-Stranded "Flat" braid:
I am having trouble with step 17, smoothing the polyline with Autodest 3DS Max smooth command.
http://kevinjohn3d.blogspot.com/2007/12/creating-braid-in-3ds-max-method-2.html

What is the appropriate Moi command to do this smoothing?
I tried Fillet, which reduces amplitude in Top View, and the outer lobes are different radii.
I tried through point curve, which also does not give the same result.

Will try again tonight.
Also, learned a new way to tie shoelaces :-)

- Brian

EDITED: 26 May 2015 by BEMFARMER

Attachments:

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Frenchy Pilou (PILOU)
7405.8 In reply to 7405.7 
Excellent the video! (youtube is more speedy than Krosoft one! ;)

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
7405.9 
Here is a draft of a Braid script.

BraidLF is a script which creates “flat” Braids in the Computer Aided Design program Moment of Inspiration.
The script is based upon periodic sinusoidal Lissajous curves, used as a racetrack, to model the centerlines of the strands.
A Sweep of the strands may be done with a circle, or other curve.

I'm working on a pdf file with further information and research papers utilized.

Replacing the Lissajous curve with a similar Nurbs curve could improve the braid.
Only 1 by n Lissajous curves are used at this time.

- Brian
Attachments:

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
7405.10 
A draft pdf on the Braids is attached, with references.
Draft 02 of the script enables display of the racetrack.
Sweep is not done in the script. The Moi Sweep command works well.

- Brian

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
7405.11 
Hi Michael

While trying to duplicate a Bezier curve, for use in a Braid, a strange result happened.
Zooming in at or near the origin causes the two Blue Blend curves to straighten on the screen view.

A PNG of the Bezier "figure8" is the image to reproduce in Moi.
The two outer arcs were duplicated with an arc, and two control points moved slightly.
(One of the moved locations on the upper left is in purple.
The ends of the modified arcs were G1 blended, to match the center Red X-shaped curves.
Zooming in causes the "error."
Question 1: Why?

Question 2: Do you have any tips, or references, to how to convert the Bezier curve into Nurbs?
I'm guessing that there is no way for a Moi user to plot a Nurbs equation without delving into the .3dm file format and C++ code.
(I recall seeing some very basic .3dm file C++ code on the Rhino site a while back.)

3dm file attached. There is an image file inside the .3dm.

Edit: Rebuild corrects the "Display Anomaly."

- Brian

EDITED: 6 Jun 2015 by BEMFARMER

Attachments:

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
7405.12 In reply to 7405.11 
Hi Brian,

> Question 1: Why?

It's a display glitch that can happen with Beziers that have a particular "S" type shape with the start and end tangents going in the same direction. It's unfortunately not easy to fix since the fix involves more thorough tolerance testing of the polyline approximation of the curve, and more testing is not good for performance.

So basically fixing this bug would cause some slow down for drawing all curves. Since it happens rarely and will incur a performance penalty to fix I have not tried to fix it so far.

There's a more detailed explanation here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=4101.2


> Question 2: Do you have any tips, or references, to how to convert the Bezier curve into Nurbs?

NURBS are basically a generalization of Beziers, if you have a NURBS curve with only one span in it (meaning the number of NURBS control points = curve degree + 1 like 4 control points for cubic), that NURBS curve will be a Bezier.

So to convert from a Bezier to NURBS it's pretty simple, you just make a NURBS curve that has the same degree as the bezier and has the same control points in it, and just give it a single span unit length knot vector.



> I'm guessing that there is no way for a Moi user to plot a Nurbs equation without delving
> into the .3dm file format and C++ code.
> (I recall seeing some very basic .3dm file C++ code on the Rhino site a while back.)

That's correct, currently all the detailed low level NURBS information like curve degree, control point weights, and knot vector are not set up to be accessed by a script as of yet. But yes if you are writing C++ code you can use the OpenNURBS library to open a 3DM file and get at that information.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
7405.13 In reply to 7405.12 
:-)
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
7405.14 
Should this script be called _RaceTrack or _BraidTrack?
Edit: The script will be called _BraidTrack, and is in the zip _BraidTrack.

The script creates curves from points on a racetrack curve.

The racetrack curve could be 3D and closed or unclosed, but for this description, the racetrack is considered to be a 2D curve in the Front view.
The racetrack could be a circle, ellipse, polygon, "figure 8," multilobed figure 8, or Lissajous curve for a Braid.
The starting points of the curves are positioned as points on the racetrack curve.
Each point may represent the start point of the centerline of a Braid strand.
The points are imagined to be travelling along the curve in time, at constant speed.
The points are arrayed along the racetrack with perhaps 200 copies, each position a different Time.
The y-coordinates of the arrayed points are modified by adding fractions of Time, ( fractions of y distance.)
The 3D positions of the centerline points are plotted with their y-coordinates as Time.
Each point has two possible directions of travel. Array seems to work well in selecting the direction.
Running FLIP changes the direction of travel, with the same result as a mirror. (More remarks are in .js file.)
- Brian
Edit: The last image is of a pentagon racetrack, with loft of the curves.








EDITED: 15 Jun 2015 by BEMFARMER


Image Attachments:
Size: 57.9 KB, Downloaded: 30 times, Dimensions: 91x264px
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Colin
7405.15 In reply to 7405.14 
Hi Brian,

Nice work on this, as well as all your other scripts.
For want of a better name, I'm guessing that "BraidTrack" is more descriptive...

HTH, Colin
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
7405.16 In reply to 7405.15 
Thanks Colin.
_BraidTrack it is.
The topic could use some more study. Right now the racetracks are just guesses.
- Brian
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
7405.17 
The racetrack has to be a closed curve, for the points to Array Curve properly,
because for an open curve, the only points that ArrayCurve on the curve are Start and End points.

I Flowed a sine wave onto a circle, but did not quite get it closed. (It looked closed from a distance)
Array Curve of points at miscellaneous points on the curve gave weird (but correct) results.

- Brian
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  libelle
7405.18 In reply to 7405.14 
Very cool. Good work!
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
7405.19 
BraidTrack does helices also. Moi already has a Helix command.
A swept double Moi helix, (not shown,) looked very similar to the left pair.
The colors are Pantone colors of the year.
- Brian



  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
7405.20 
Regarding Rope Mats and Rosettes:
https://www.ntnu.no/documents/2004699/12108297/Booklet+3.3.pdf

Here is a 7 bight Turk's Head knot template:

_FxGraph3D a*cos(-3*v)+b*cos(4*v)+c*cos(11*v);a*sin(-3*v)+b*sin(4*v)+c*sin(11*v);0;0;6.283185307179586;0;6.283185307179586;0;500;1.6;5.4;1.2;UV

The 2D curve was swept with a line segment to get 2 more curves from edges.
The over/under crossing remains to be done, perhaps with blend. A script or process to do the crossing would be helpful.

I did write a preliminary .js .htm script, but the formula is presented here in _FxGraph format.
To cover the lissajous rope mats, Turk's Head mats, twisted rosettes, rattan rosettes, and higher orders,
would involve several scripts, or a bunch of submenus. Doing several _FxGraph formulas could also be done.

- Brian

EDITED: 24 Jun 2016 by BEMFARMER

Image Attachments:
Size: 109.7 KB, Downloaded: 4 times, Dimensions: 160x158px
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged
 

Reply to All Reply to All

 

 
Show messages:  1-20  21-22