Elastica Spherical script, Sabban frame

Next
 From:  bemfarmer
7104.1 
This script for the CAD program Moment of Inspiration, (Moi), creates Elastica curves on the surface of a unit sphere. The curves look very similar to the planar elastica curves, but wrap around the sphere. It is possible for the curves to be closed, under certain circumstances. A regular sphere in 3 dimension R3 space, is referred to as S2. The sphere is 3 dimensional, but in some respects, the surface of the sphere seems to have 2 dimensions. The Gaussian curvature of the unit sphere is +1.
The primary reference paper for this script is: "Lectures on Elastic Curves and Rods," by Dr. David A Singer: http:www.case.edu/artsci/math/singer/publish/elaslecs.pdf
A Sabban frame was used.

See the pdf for more information.

I've written about 5 versions, but finally got this faster version to work.

I would recommend 1000 to 3000 points, which takes a few seconds to draw. And a rebuild with tolerance .001.






Reference paper #3, by J. Langer & D. Singer, is: "The total squared curvature of closed curves": http:projecteuclid.org/euclid.jdg/1214438990
Only the first 5 of 22 pages could be downloaded. The rest of the paper could not be read because Euclid has access restricted to institutional subscribers of that journal.
If someone has access, I would like to read the paper.

- Brian

Edit 12/19/14 Version3 posted. It includes "figure8" curve, looping waves, and incorporates Join and Rail and Orbit option boxes, and is relatively fast)
Uploaded new draft .pdf
Edit 12/20/14, Version3b posted. Corrected case of wavelike and pSquared = .5, which caused crashes.

EDITED: 20 Dec 2014 by BEMFARMER


  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
7104.2 In reply to 7104.1 
When adjusting pSquared decimals, to avoid tiny closure loops when dropping below closed curve tolerance, it seems to be better to close a gap, rather than spread crossed curve ends. Two mirrored curves, unjoined may be better, which would require slight modification to the script. Maybe an unjoined checkbox?

Made a "pringle" and half Sphere solid with loft.

- Brian

ps, Keyshot has Windows explorer thumbnails of .bip files. Didn't someone request .3dm thumbnails?

  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
7104.3 
Replaced F version with ElasticaSphericalJ version, with slight modifications to the end of the script.
The F version did an automatic Join of "righthand" curve with its mirror, at the startpoint (0,0,1).
If the ends of the two curves occur very close together, within some tolerance, Moi will close the ends of the curves, even though there was a slight gap,
or a slight crossover. This could even cause a tiny loop to form.

With the Join Halves checkbox unchecked, the two halves of the curve remain unjoined.
The ends of the two curves maintain their gap or crossed configuration, to aid in fine-tuning closure.
The user can then join any tiny gap remaining. (Best not to close a tiny crossover of the ends.)

- Brian

ps. For the "pringle" curve, the pSquared was 0.013+, not 0.13

EDITED: 7 Dec 2014 by BEMFARMER

  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
7104.4 
Here is version JR of the script.
A Rail is added, for creating a Ribbon.
One rail is added, without mirror. Mirror can be done manually after the script closes.
A second "outer" rail can be done by re-running the script, with a negative width. Delete the extra copy of the main curve.

Rebuild is good after mirror and/or closure of the curves.

The ribbon can be done by loft, with loft options, or sweep of a line segment, which causes some cross bowing curving or arching.
The solid was generated with a loft, small 3d scale from origin, and two more lofts.

Cross tangent line segments could be done, but loft gets the "same" result.

- Brian

Edit 12/19/2014 Version 3 in post #1 incorporates Join and Ribbon Rail.

EDITED: 19 Dec 2014 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
7104.5 
A few species of Elastica seem to be missing from/with this script.

- 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
7104.6 
Flow onto an egg, using the egg script and 360 degree revolve. The base circle was a unit sphere. The equator of the original is at an angle to the frame.

Sweep of a line from the origin. Had to do it in 4 sections.

- Brian
Image Attachments:
Size: 87.6 KB, Downloaded: 25 times, Dimensions: 283x393px
Size: 44.7 KB, Downloaded: 6 times, Dimensions: 240x236px
  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
7104.7 In reply to 7104.5 
There is a "small" division error in the orbitlike curves equation.

The "missing" wavelike elastica are due to a major misunderstanding on my part of the Singer lecture equations about pSqr < 1/2.
Half of the wavelike curves are missing.
So, after re-arranging some of the logic flow of some of the inequalities in the script, I will be posting version 3,
which will include the Mirror, Join and Rail improvements.

All of the curves and pictures posted above are correct.

- Brian

ps, I ran Microsoft Fixit program to improve computer performance, mostly by not loading so many programs on startup.
  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
7104.8 In reply to 7104.7 
The missing elastica have been found!
I still need to polish up the script before posting it.
I'm getting low on remaining upload space, time to go delete some old files.

- 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
7104.9 
The latest version 3 is posted in post #1. The .js and .htm files are named _ElasticaSpherical, without the 3.

This version is fast, but 3000 points takes a few seconds to form the curve.
The "missing" elastica cases are included, which include "figure8" and some "wavelike" curves which loop back on themselves. "Pleats" can be more curvy.
Corrected an error in the orbitlike formula.
The borderline case can also be formed, but cycles should be made fractional. It is sort of a circle with a "90 degree" loop on one side.
No crashes have been encountered, so the script should cover all of the cases.
Negative lambda can occur in some cases, which tends to make the curves smaller in size.

Curves with lambda less than 8/7 may be made to close.
Curves with lambda greater than 8/7 are not supposed to close with "perfection", but they can be made to close, and be very nearly uniformly symmetrical.
The last loop, with the join does not quite equal the first curve, as may be seen by increasing the cycle number, or doing rotation, and seeing slight displacement.

I've rewritten, and am still rewriting the .pdf documentation, including the curve Cases, and more sample closed curves.
Edit: uploaded Dec. 19 draft of .pdf, as the old one was so out of date. Has parameters for a "figure8" and a "looping wave."

- Brian

EDITED: 19 Dec 2014 by BEMFARMER

  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
7104.10 In reply to 7104.9 
There was a case problem when pSquared = 0.5 and orbit curve checkbox is unchecked. :-(
No curve was formed, and Moi would soon crash. No fault of Moi, it was a script fault.
Added a third range check, correcting the problem, Version3b uploaded to post #1.

- 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
7104.11 
Here is a spherical Smarandache curve, grafted on to the ElasticaSpherical script.
It is the vector sum P + T version. T+N and P + T + N version also work.
It is an experimental script at present.

Starting with a closed 4 cycle Spherical Elastica, the Smarandache curve does not quite close, even with 5000 points.
The two ends are like two cars going in opposite directions, about to pass each other.
So a small area was trimmed with a sphere, and a blend done.

- Brian

EDITED: 23 Dec 2014 by BEMFARMER


  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
 From:  bemfarmer
7104.12 In reply to 7104.11 
It is possible to adjust the pSquared decimal values for the SmarandachePT curves so that they have a very small lapover, very nearly in
the same lane of traffic. Then do a small sphere trim and blend.

A 2 cycle baseball curve turned into another curve, that looks a lot like a baseball curve.

- 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
 

Reply to All Reply to All