

Nice work Peter!
Based on this, quick and dirty (probably this can be
done in a more intelligent way, but i lack the time
at the moment)
$fn=30;
sa=0; se=200; s0=20; sn=3; w=sesa; ay=2; az=1;
function p(s) = [sn*s/w*s0,ay*sin(360*s/w*sn),az*sin(2*360*s/w*sn)];
module loopStrand(n)
{ translate([n*s0/3,0,0])
loop_extrude(
points=
[p(00),p(01),p(02),p(03),p(04),p(05),p(06),p(07),p(08),p(09),
p(10),p(11),p(12),p(13),p(14),p(15),p(16),p(17),p(18),p(19),
p(20),p(21),p(22),p(23),p(24),p(25),p(26),p(27),p(28),p(29),
p(30),p(31),p(32),p(33),p(34),p(35),p(36),p(37),p(38),p(39),
p(40),p(41),p(42),p(43),p(44),p(45),p(46),p(47),p(48),p(49),
p(50),p(51),p(52),p(53),p(54),p(55),p(56),p(57),p(58),p(59),
p(60),p(61),p(62),p(63),p(64),p(65),p(66),p(67),p(68),p(69),
p(70),p(71),p(72),p(73),p(74),p(75),p(76),p(77),p(78),p(79),
p(80),p(81),p(82),p(83),p(84),p(85),p(86),p(87),p(88),p(89),
p(90),p(91),p(92),p(93),p(94),p(95),p(96),p(97),p(98),p(99)],
segments=[1,2,199,200,201,["hide"]]
) circle(0.8); }
loopStrand(0);
loopStrand(1);
loopStrand(2);
See image.
Ruud
On 171013 16:59, Peter Falke wrote:
> Here is a quick and dirty plait
>
> Sincerely,
>
> TakeItAndRun
>
> $fn=16;
>
>
> sa=0;
>
> se=200;
>
> s0=20;
>
>
> sn=3;
>
>
> w=sesa;
>
>
> ay=2;
>
> az=1;
>
>
>
> module strand(){
>
> for (s=[sa:se]){
>
> translate([sn*s/w*s0,ay*sin(360*s/w*sn),az*sin(2*360*s/w*sn)])sphere();
>
> }
>
> }
>
>
> strand();
>
> translate([s0/3,0,])strand();
>
> translate([2*s0/3,0,])strand();
>
>
> [image: InlineBild 1]
>
>
>
> 2013/10/17 Ruud Vlaming < [hidden email]>
>
>> On 151013 23:05, Peter Falke wrote:
>>> Is it possible to write down the mathematical formula for the path of one
>>> strung?
>>> (... eh possible it should be, have you done it?)
>> I have not done it, and a quick look with google does
>> not revealed anything useful to me. I have tried the trefoil,
>> see http://en.wikipedia.org/wiki/Trefoil_knot>> and the generated image is on top of my documentation.
>>
>> Ruud
>>
>> _______________________________________________
>> OpenSCAD mailing list
>> [hidden email]
>> http://rocklinux.net/mailman/listinfo/openscad>> http://openscad.org  https://flattr.com/thing/121566>>
>
>
>
>
>
> _______________________________________________
> OpenSCAD mailing list
> [hidden email]
> http://rocklinux.net/mailman/listinfo/openscad> http://openscad.org  https://flattr.com/thing/121566>
_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscadhttp://openscad.org  https://flattr.com/thing/121566


Heh, looks like a braid of paracord! Chain_hull should smooth that out nicely.
On Thursday, October 17, 2013 at 7:59 AM, Peter Falke wrote:
Here is a quick and dirty plait
Sincerely, TakeItAndRun $fn=16;
sa=0;
se=200;
s0=20;
sn=3;
w=sesa;
ay=2;
az=1;
module strand(){
for (s=[sa:se]){
translate([sn*s/w*s0,ay*sin(360*s/w*sn),az*sin(2*360*s/w*sn)])sphere();
}
}
strand();
translate([s0/3,0,])strand();
translate([2*s0/3,0,])strand();
2013/10/17 Ruud Vlaming <[hidden email]>
On 151013 23:05, Peter Falke wrote:
> Is it possible to write down the mathematical formula for the path of one
> strung?
> (... eh possible it should be, have you done it?)
I have not done it, and a quick look with google does
not revealed anything useful to me. I have tried the trefoil,
see http://en.wikipedia.org/wiki/Trefoil_knot
and the generated image is on top of my documentation.
Ruud
 [hidden email]
P.S. Falls meine EMail kürzer ausfällt als Dir angenehm ist:
Ich probiere gerade aus kurze Antworten statt gar keine Antworten zu schreiben.
Wenn Du gerne mehr lesen möchtest, dann lass es mich bitte wissen.
P.S. In case my email is shorter than you enjoy:
I am currently trying short replies instead of no replies at all.
Please let me know, if you like to read more. Enjoy!
_______________________________________________ OpenSCAD mailing list
_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscadhttp://openscad.org  https://flattr.com/thing/121566


This is very encouraging. I'm still a bit skeptical of how far I am comfortable with complex computation in OpenSCAD  but it's getting very close to what I need.
What I do now is produce these twisted parts in Java and then import as STL to OpenSCAD. The issue is maintaining a local coordinate system at every point along the curve. Of course, if you use a spherical blob (or a circular cross section) then orientation of the local coordinate system is irrelevant.
Below is an example of what I have in mind (here, the wide sides of the rectangular crosssections all point directly towards/away from the center of curvature  imagine riding a motorcycle at high speed on the inner "roadway".
Input is a discrete space curve plus a polygonal crosssection (here, a rectangle); output is the STL. I suppose I could arrange to output a series of coordinate frames, and then automatically write OpenSCAD code to position and orient and then call "crosssection()" to do the work. These happen to be Frenet frames  but they are sometimes very slightly tweaked, to avoid nasty behavior at singularities (think about flying a figure 8). Oh…there's also the small matter of triangulating (I'm sure someone will show me how to do this in OpenSCAD…).
What's my point? That it may be better to "leave unto OpenSCAD what belongs to OpenSCAD" and use other tools when appropriate. I'm not entirely sure I would LIKE an OpenSCAD that had been extended to do this! (but….you never can tell). And…if it were extended to do *this*, I would probably think of something ELSE that I wanted to do.
I want an OpenSCAD that "plays nicely with friends"  and am suspicious of trying to "be all and end all".
But, I suppose I would be interested in "import sequence of reference frames" and "applyReferenceFrame(rf)"  to be used just like any of the existing transforms (rotate, scale, translate). I suppose we need both an absolute AND an incremental version.
But first, I would prefer to see all the cgal bugs fixed… For me, right now, robustness is FAR more important than features. The most frustrating thing for me is when a design goes through all the right steps, checks out perfectly, and crashed cgal with an inscrutable error message. This is when I say "can I have the last hour of my life back, please?"
_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscadhttp://openscad.org  https://flattr.com/thing/121566


On 171013 22:17, Kenneth Sloan wrote:
> Below is an example of what I have in mind (here, the wide sides of the
> rectangular crosssections all point directly towards/away from the center of
> curvature  imagine riding a motorcycle at high speed on the inner "roadway".
Piece of cake in openScad :) ... see attached image.
btw: When riding the motorbike you will find yourself
on the inside of one curve but then on the outside
of the next curve. In order to make this a 'safe'
ride, i need to introduce more torsion, but this
cannot be linear along the trajectory, otherwise
the outside curve becomes 'unsafe'. This is possible
but more work. I checked your design, its a little hard
to see, but at least one curve has the same problem.
have fun
Ruud
_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscadhttp://openscad.org  https://flattr.com/thing/121566


Not the same. In particular, my object does not flip the motorcyclist from inside to outside.
Of course, it's easier to check the physical model, which I have done.
I'm willing to believe that my object is a "piece of cake" in OpenSCAD, but I'm afraid your attempt doesn't demonstrate this.
The point is that the torsion in my object is NOT linear.
As originally stated, every Frenet frame (and in this model, they are all Frenet frames, so
we don't need my extension) has one axis pointing directly at the center of curvature. That's what
holds our motorcyclist ON the roadway. (a stunt pilot flying the same trajectory would appreciate this nicety, too  his drink won't spill).
It is precisely the problem of enforcing this constraint that makes this difficult to do
in OpenSCAD (and a "piece of cake" in Java).
Of course, if you don't care about this "nicety", then it's easy enough to produce something in OpenSCAD that "kindalookslike" the right object. I'm a bit more picky. No doubt a personal failing.
Tschüss!

Kenneth Sloan
[hidden email]
On Oct 18, 2013, at 04:11 , Ruud Vlaming < [hidden email]>
wrote:
> On 171013 22:17, Kenneth Sloan wrote:
>> Below is an example of what I have in mind (here, the wide sides of the
>> rectangular crosssections all point directly towards/away from the center of
>> curvature  imagine riding a motorcycle at high speed on the inner "roadway".
> Piece of cake in openScad :) ... see attached image.
>
> btw: When riding the motorbike you will find yourself
> on the inside of one curve but then on the outside
> of the next curve. In order to make this a 'safe'
> ride, i need to introduce more torsion, but this
> cannot be linear along the trajectory, otherwise
> the outside curve becomes 'unsafe'. This is possible
> but more work. I checked your design, its a little hard
> to see, but at least one curve has the same problem.
>
> have fun
> Ruud
>
> <twistedtorusknot.png>_______________________________________________
> OpenSCAD mailing list
> [hidden email]
> http://rocklinux.net/mailman/listinfo/openscad> http://openscad.org  https://flattr.com/thing/121566_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscadhttp://openscad.org  https://flattr.com/thing/121566


On 181013 12:37, Peter Falke wrote:
> Ruud,
> I have the intense desire to click on the image and rotate it.
> Would you please share your code for the twisted torus knot?
Of course, no prob, see below.
But, you need my latest(!) loop extension, so check it out!
This is because i added the possibility to generate
sequences of points using a 'for' inside a function.
Without this, generating sequences of points is possible
but very cumbersome!
Have Fun
Ruud
$fn=50;
r=163/150;
function p(t) = [3*(2+cos(7*(3*t)/3)),(3*t),3*sin(7*(3*t)/3)];
function q(t) = (t%2==0) ?
["lin","csl",[1,1,t/2*r],[1,1,t/2*r]] :
["lin","csl",[1,1,(t1)/2*r],[1,1,((t1)/2+1)*r]];
function pnts(t) = for(i=[0:t1],p(i));
function segs(t) = for(i=[0:t1],q(i));
loop_extrude(points="cylinder"+pnts(360),segments=segs(720))
square([0.8,1.6],center = true);
>
> Sincerely,
>
> TakeItAndRun
>
>
> 2013/10/18 Ruud Vlaming < [hidden email]>
>
>> On 171013 22:17, Kenneth Sloan wrote:
>>
>>> Below is an example of what I have in mind (here, the wide sides of the
>>> rectangular crosssections all point directly towards/away from the
>>> center of
>>> curvature  imagine riding a motorcycle at high speed on the inner
>>> "roadway".
>>>
>> Piece of cake in openScad :) ... see attached image.
>>
>> btw: When riding the motorbike you will find yourself
>> on the inside of one curve but then on the outside
>> of the next curve. In order to make this a 'safe'
>> ride, i need to introduce more torsion, but this
>> cannot be linear along the trajectory, otherwise
>> the outside curve becomes 'unsafe'. This is possible
>> but more work. I checked your design, its a little hard
>> to see, but at least one curve has the same problem.
>>
>> have fun
>> Ruud
>>
>>
>> _______________________________________________
>> OpenSCAD mailing list
>> [hidden email]
>> http://rocklinux.net/mailman/listinfo/openscad>> http://openscad.org  https://flattr.com/thing/121566>>
>
>
>
>
>
> _______________________________________________
> OpenSCAD mailing list
> [hidden email]
> http://rocklinux.net/mailman/listinfo/openscad> http://openscad.org  https://flattr.com/thing/121566>
_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscadhttp://openscad.org  https://flattr.com/thing/121566


Not relevant. Adding one extra twist per revolution
makes no significant difference. I have shown
that i can modify the rotation along the trajectory
at will. The rest is trivial mathematics.
Furthermore, Frenet frames are a pain in the ass,
therefore i did deliberate not use them in openSCAD.
The Frenet coordinate system is ill defined at inflection
points, can be discontinues and often introduces a lot of
extra torsion along the path that you have to unwind
somehow, or you get problems at closing the curves.
So, i do care about the details, and therefore i
did not solve it the way you propose.
Please post your Java code that produced the figure.
I am curious how easy it was, see mine somewhere
else in this thread.
Have Fun
Ruud.
On 181013 15:34, Kenneth R Sloan wrote:
>
> Not the same. In particular, my object does not flip the motorcyclist from inside to outside.
>
> Of course, it's easier to check the physical model, which I have done.
>
> I'm willing to believe that my object is a "piece of cake" in OpenSCAD, but I'm afraid your attempt doesn't demonstrate this.
>
> The point is that the torsion in my object is NOT linear.
>
> As originally stated, every Frenet frame (and in this model, they are all Frenet frames, so
> we don't need my extension) has one axis pointing directly at the center of curvature. That's what
> holds our motorcyclist ON the roadway. (a stunt pilot flying the same trajectory would appreciate this nicety, too  his drink won't spill).
>
> It is precisely the problem of enforcing this constraint that makes this difficult to do
> in OpenSCAD (and a "piece of cake" in Java).
>
> Of course, if you don't care about this "nicety", then it's easy enough to produce something in OpenSCAD that "kindalookslike" the right object. I'm a bit more picky. No doubt a personal failing.
>
> Tschüss!
>
> 
> Kenneth Sloan
> [hidden email]
>
>
> On Oct 18, 2013, at 04:11 , Ruud Vlaming < [hidden email]>
> wrote:
>
>> On 171013 22:17, Kenneth Sloan wrote:
>>> Below is an example of what I have in mind (here, the wide sides of the
>>> rectangular crosssections all point directly towards/away from the center of
>>> curvature  imagine riding a motorcycle at high speed on the inner "roadway".
>> Piece of cake in openScad :) ... see attached image.
>>
>> btw: When riding the motorbike you will find yourself
>> on the inside of one curve but then on the outside
>> of the next curve. In order to make this a 'safe'
>> ride, i need to introduce more torsion, but this
>> cannot be linear along the trajectory, otherwise
>> the outside curve becomes 'unsafe'. This is possible
>> but more work. I checked your design, its a little hard
>> to see, but at least one curve has the same problem.
>>
>> have fun
>> Ruud
>>
>> <twistedtorusknot.png>_______________________________________________
>> OpenSCAD mailing list
>> [hidden email]
>> http://rocklinux.net/mailman/listinfo/openscad>> http://openscad.org  https://flattr.com/thing/121566>
> _______________________________________________
> OpenSCAD mailing list
> [hidden email]
> http://rocklinux.net/mailman/listinfo/openscad> http://openscad.org  https://flattr.com/thing/121566>
_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscadhttp://openscad.org  https://flattr.com/thing/121566


Do you "solve" all problems by redefining them?
I remain interested in your demonstration that "When riding the motorbike you will find yourself on the inside of one curve but then on the outside of the next curve." That would be surprising to me, but I have been wrong before.
I *do* care about the details. The "flaws" you perceive in the Frenet frames are precisely what I want to illustrate.
It's not possible to do that if you simply wave your hand and say "not relevant". If it's not relevant to you…carry on. It *is* relevant to me.
"illdefined at inflection points" and "discontinuities" are handled by the "trivial mathematics" I have added to Frenet frames. "introduces a lot of extra torsion" is a consequence I wish to demonstrate. I do not usually want "to unwind somehow". "Problems at closing the curves" is, again, a natural consequence that may, or may not, require a solution. If closing the curve is your main criterion, then you may indeed not want to use Frenet frames.
When using a system to produce physical objects, my requirement is that it produce the physical objects that *I* want.
I am, sadly, not satisfied when it asks me to accept some other, somewhat similar, object as a substitute because doing what I want is "a pain in the ass".
But, I'm also willing to use multiple tools to achieve my goal. If OpenSCAD doesn't provide what I need, I'm perfectly happy "rolling my own" solutions to the really hard parts of the problem. It's a bit of "a pain in the ass", but I'm willing to do what's necessary.
Once again  what would be useful *to me* in OpenSCAD is a way to specify a sequence of reference frames.
As near as I can make out, your excellent extension provides for a sequence of points, and provides a default collection of frames (perhaps I misunderstand  if so, please educate me). What you have provided is very nice, and very useful  only please don't pretend that it does what I want  or that what I want is "not relevant".
As I said earlier, adding this to OpenSCAD is nowhere near the top of my wish list. Eliminating cgal bugs is
much more important to me.
…
I am reminded of the standard joke about theoretical physicists: they produce elegant solutions…which work
only for a sphere in a vacuum.

Kenneth Sloan
[hidden email]
On Oct 19, 2013, at 08:15 , Ruud Vlaming < [hidden email]> wrote:
> Not relevant. Adding one extra twist per revolution
> makes no significant difference. I have shown
> that i can modify the rotation along the trajectory
> at will. The rest is trivial mathematics.
>
> Furthermore, Frenet frames are a pain in the ass,
> therefore i did deliberate not use them in openSCAD.
> The Frenet coordinate system is ill defined at inflection
> points, can be discontinues and often introduces a lot of
> extra torsion along the path that you have to unwind
> somehow, or you get problems at closing the curves.
>
> So, i do care about the details, and therefore i
> did not solve it the way you propose.
>
> Please post your Java code that produced the figure.
> I am curious how easy it was, see mine somewhere
> else in this thread.
>
> Have Fun
> Ruud.
>
>
>
> On 181013 15:34, Kenneth R Sloan wrote:
>>
>> Not the same. In particular, my object does not flip the motorcyclist from inside to outside.
>>
>> Of course, it's easier to check the physical model, which I have done.
>>
>> I'm willing to believe that my object is a "piece of cake" in OpenSCAD, but I'm afraid your attempt doesn't demonstrate this.
>>
>> The point is that the torsion in my object is NOT linear.
>>
>> As originally stated, every Frenet frame (and in this model, they are all Frenet frames, so
>> we don't need my extension) has one axis pointing directly at the center of curvature. That's what
>> holds our motorcyclist ON the roadway. (a stunt pilot flying the same trajectory would appreciate this nicety, too  his drink won't spill).
>>
>> It is precisely the problem of enforcing this constraint that makes this difficult to do
>> in OpenSCAD (and a "piece of cake" in Java).
>>
>> Of course, if you don't care about this "nicety", then it's easy enough to produce something in OpenSCAD that "kindalookslike" the right object. I'm a bit more picky. No doubt a personal failing.
>>
>> Tschüss!
>>
>> 
>> Kenneth Sloan
>> [hidden email]
>>
>>
>> On Oct 18, 2013, at 04:11 , Ruud Vlaming < [hidden email]>
>> wrote:
>>
>>> On 171013 22:17, Kenneth Sloan wrote:
>>>> Below is an example of what I have in mind (here, the wide sides of the
>>>> rectangular crosssections all point directly towards/away from the center of
>>>> curvature  imagine riding a motorcycle at high speed on the inner "roadway".
>>> Piece of cake in openScad :) ... see attached image.
>>>
>>> btw: When riding the motorbike you will find yourself
>>> on the inside of one curve but then on the outside
>>> of the next curve. In order to make this a 'safe'
>>> ride, i need to introduce more torsion, but this
>>> cannot be linear along the trajectory, otherwise
>>> the outside curve becomes 'unsafe'. This is possible
>>> but more work. I checked your design, its a little hard
>>> to see, but at least one curve has the same problem.
>>>
>>> have fun
>>> Ruud
>>>
>>> <twistedtorusknot.png>_______________________________________________
>>> OpenSCAD mailing list
>>> [hidden email]
>>> http://rocklinux.net/mailman/listinfo/openscad>>> http://openscad.org  https://flattr.com/thing/121566>>
>> _______________________________________________
>> OpenSCAD mailing list
>> [hidden email]
>> http://rocklinux.net/mailman/listinfo/openscad>> http://openscad.org  https://flattr.com/thing/121566>>
>
> _______________________________________________
> OpenSCAD mailing list
> [hidden email]
> http://rocklinux.net/mailman/listinfo/openscad> http://openscad.org  https://flattr.com/thing/121566_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscadhttp://openscad.org  https://flattr.com/thing/121566

