Hi,

Guest

M

mikeonenine@web.de

Fri, Oct 4, 2024 12:00 AM

Here is cobbled together a curve just to show what I am looking for. It is derived from a teardrop shape that I picked up in this forum a while back.

`m=5;`

`for (t=[0:5:180])`

`translate([50+50*cos(t), 30*sin(t)*pow(sin(t/2), m)])`

`sphere(1);`

`for (t=[0:5:180])`

`translate([-50-50*cos(t), -30*sin(t)*pow(sin(t/2), m)])`

`sphere(1);`

The curve is intended to represent a rod (or the centre-line thereof) that is held straight at both ends and has a twist in the middle. But here the twist is an an eye-watering 90°, which in the real world would result in permanent damage, and it doesn’t seem possible to change it (I want about 10° or less). In mathematical terms, the curve I want has a finite length, the twist in the middle is variable and “y” flattens out to zero at the ends.

Wikipedia contains some stuff on the subject and gives some interesing leads, but not quite what I am looking for. Does anyone recognise such a curve as a standard mathematical curve or know of a similar curve? If so, information please!

Here is cobbled together a curve just to show what I am looking for. It is derived from a teardrop shape that I picked up in this forum a while back.
`m=5;`
`for (t=[0:5:180])`
`translate([50+50*cos(t), 30*sin(t)*pow(sin(t/2), m)])`
`sphere(1);`
`for (t=[0:5:180])`
`translate([-50-50*cos(t), -30*sin(t)*pow(sin(t/2), m)])`
`sphere(1);`
The curve is intended to represent a rod (or the centre-line thereof) that is held straight at both ends and has a twist in the middle. But here the twist is an an eye-watering 90°, which in the real world would result in permanent damage, and it doesn’t seem possible to change it (I want about 10° or less). In mathematical terms, the curve I want has a finite length, the twist in the middle is variable and “y” flattens out to zero at the ends.
Wikipedia contains some stuff on the subject and gives some interesing leads, but not quite what I am looking for. Does anyone recognise such a curve as a standard mathematical curve or know of a similar curve? If so, information please!

MK

Marko Kleine Berkenbusch

Fri, Oct 4, 2024 1:16 AM

I am not near a computer, but it looks to me like the maximum amount of

twist is determined by the upper boundary of the 'for' loop, i.e. 180. Try

lowering that.

On Thu, Oct 3, 2024, 20:00 Caddiy via Discuss discuss@lists.openscad.org

wrote:

Here is cobbled together a curve just to show what I am looking for. It is

derived from a teardrop shape that I picked up in this forum a while back.

m=5;

for (t=[0:5:180])

translate([50+50*cos(t), 30*sin(t)*pow(sin(t/2), m)])

sphere(1);

for (t=[0:5:180])

translate([-50-50*cos(t), -30*sin(t)*pow(sin(t/2), m)])

sphere(1);

The curve is intended to represent a rod (or the centre-line thereof) that

is held straight at both ends and has a twist in the middle. But here the

twist is an an eye-watering 90°, which in the real world would result in

permanent damage, and it doesn’t seem possible to change it (I want about

10° or less). In mathematical terms, the curve I want has a finite length,

the twist in the middle is variable and “y” flattens out to zero at the

ends.

Wikipedia contains some stuff on the subject and gives some interesing

leads, but not quite what I am looking for. Does anyone recognise such a

curve as a standard mathematical curve or know of a similar curve? If so,

information please!

OpenSCAD mailing list

To unsubscribe send an email to discuss-leave@lists.openscad.org

I am not near a computer, but it looks to me like the maximum amount of
twist is determined by the upper boundary of the 'for' loop, i.e. 180. Try
lowering that.
On Thu, Oct 3, 2024, 20:00 Caddiy via Discuss <discuss@lists.openscad.org>
wrote:
> Here is cobbled together a curve just to show what I am looking for. It is
> derived from a teardrop shape that I picked up in this forum a while back.
>
> m=5;
>
> for (t=[0:5:180])
>
> translate([50+50*cos(t), 30*sin(t)*pow(sin(t/2), m)])
>
> sphere(1);
>
> for (t=[0:5:180])
>
> translate([-50-50*cos(t), -30*sin(t)*pow(sin(t/2), m)])
>
> sphere(1);
>
> The curve is intended to represent a rod (or the centre-line thereof) that
> is held straight at both ends and has a twist in the middle. But here the
> twist is an an eye-watering 90°, which in the real world would result in
> permanent damage, and it doesn’t seem possible to change it (I want about
> 10° or less). In mathematical terms, the curve I want has a finite length,
> the twist in the middle is variable and “y” flattens out to zero at the
> ends.
>
> Wikipedia contains some stuff on the subject and gives some interesing
> leads, but not quite what I am looking for. Does anyone recognise such a
> curve as a standard mathematical curve or know of a similar curve? If so,
> information please!
> _______________________________________________
> OpenSCAD mailing list
> To unsubscribe send an email to discuss-leave@lists.openscad.org
>

M

mikeonenine@web.de

Fri, Oct 4, 2024 2:09 AM

Marko Kleine Berkenbusch

Thu, Oct 3, 2024 9:16 PM

I am not near a computer, but it looks to me like the maximum amount of

twist is determined by the upper boundary of the 'for' loop, i.e. 180. Try

lowering that.

Well, sort of. But reducing the upper boundary of the 'for' loop just makes the same curve start at a different point - away from the origin.

I don’t think the curve I want can be obtained by modifying the script I gave, I think it needs a completely different approach.

Marko Kleine Berkenbusch
Thu, Oct 3, 2024 9:16 PM
I am not near a computer, but it looks to me like the maximum amount of \
twist is determined by the upper boundary of the 'for' loop, i.e. 180. Try \
lowering that.
Well, sort of. But reducing the upper boundary of the 'for' loop just makes the same curve start at a different point - away from the origin.
I don’t think the curve I want can be obtained by modifying the script I gave, I think it needs a completely different approach.

SP

Sanjeev Prabhakar

Fri, Oct 4, 2024 2:35 AM

twist on a rod has to be in 3d and not only in 2d.

if you are only talking about twist then the openscad code is very simple:

linear_extrude(200 ,twist=90)

circle(5,$fn=4);

but if you need buckle and twist, probably it is a helix with a very long

pitch

dia=5;

pitch=100;

turns=1;

p0=[for(i=[0:5:360*turns])[dia/2*cos(i),dia/2*sin(i),i/360*pitch]];

translate([0,0,-50])

for(i=p0) translate(i) sphere(1);

On Fri, 4 Oct 2024 at 05:30, Caddiy via Discuss discuss@lists.openscad.org

wrote:

Here is cobbled together a curve just to show what I am looking for. It is

derived from a teardrop shape that I picked up in this forum a while back.

m=5;

for (t=[0:5:180])

translate([50+50*cos(t), 30*sin(t)*pow(sin(t/2), m)])

sphere(1);

for (t=[0:5:180])

translate([-50-50*cos(t), -30*sin(t)*pow(sin(t/2), m)])

sphere(1);

The curve is intended to represent a rod (or the centre-line thereof) that

is held straight at both ends and has a twist in the middle. But here the

twist is an an eye-watering 90°, which in the real world would result in

permanent damage, and it doesn’t seem possible to change it (I want about

10° or less). In mathematical terms, the curve I want has a finite length,

the twist in the middle is variable and “y” flattens out to zero at the

ends.

Wikipedia contains some stuff on the subject and gives some interesing

leads, but not quite what I am looking for. Does anyone recognise such a

curve as a standard mathematical curve or know of a similar curve? If so,

information please!

OpenSCAD mailing list

To unsubscribe send an email to discuss-leave@lists.openscad.org

twist on a rod has to be in 3d and not only in 2d.
if you are only talking about twist then the openscad code is very simple:
linear_extrude(200 ,twist=90)
circle(5,$fn=4);
but if you need buckle and twist, probably it is a helix with a very long
pitch
dia=5;
pitch=100;
turns=1;
p0=[for(i=[0:5:360*turns])[dia/2*cos(i),dia/2*sin(i),i/360*pitch]];
translate([0,0,-50])
for(i=p0) translate(i) sphere(1);
On Fri, 4 Oct 2024 at 05:30, Caddiy via Discuss <discuss@lists.openscad.org>
wrote:
> Here is cobbled together a curve just to show what I am looking for. It is
> derived from a teardrop shape that I picked up in this forum a while back.
>
> m=5;
>
> for (t=[0:5:180])
>
> translate([50+50*cos(t), 30*sin(t)*pow(sin(t/2), m)])
>
> sphere(1);
>
> for (t=[0:5:180])
>
> translate([-50-50*cos(t), -30*sin(t)*pow(sin(t/2), m)])
>
> sphere(1);
>
> The curve is intended to represent a rod (or the centre-line thereof) that
> is held straight at both ends and has a twist in the middle. But here the
> twist is an an eye-watering 90°, which in the real world would result in
> permanent damage, and it doesn’t seem possible to change it (I want about
> 10° or less). In mathematical terms, the curve I want has a finite length,
> the twist in the middle is variable and “y” flattens out to zero at the
> ends.
>
> Wikipedia contains some stuff on the subject and gives some interesing
> leads, but not quite what I am looking for. Does anyone recognise such a
> curve as a standard mathematical curve or know of a similar curve? If so,
> information please!
> _______________________________________________
> OpenSCAD mailing list
> To unsubscribe send an email to discuss-leave@lists.openscad.org
>

SP

Sanjeev Prabhakar

Fri, Oct 4, 2024 3:02 AM

or :

dia=[for(i=[0:2.5:180]) 5*sin(i)];

pitch=100;

turns=1;

p0=[for(i=[0:5:360*turns])[dia[i/5]/2*cos(i),dia[i/5]/2*sin(i),i/360*pitch]];

translate([0,0,-50])

for(i=p0) translate(i) sphere(1);

On Fri, 4 Oct 2024 at 08:05, Sanjeev Prabhakar sprabhakar2006@gmail.com

wrote:

twist on a rod has to be in 3d and not only in 2d.

if you are only talking about twist then the openscad code is very simple:

linear_extrude(200 ,twist=90)

circle(5,$fn=4);

but if you need buckle and twist, probably it is a helix with a very long

pitch

dia=5;

pitch=100;

turns=1;

p0=[for(i=[0:5:360*turns])[dia/2*cos(i),dia/2*sin(i),i/360*pitch]];

translate([0,0,-50])

for(i=p0) translate(i) sphere(1);

On Fri, 4 Oct 2024 at 05:30, Caddiy via Discuss <

discuss@lists.openscad.org> wrote:

is derived from a teardrop shape that I picked up in this forum a while

back.

m=5;

for (t=[0:5:180])

translate([50+50*cos(t), 30*sin(t)*pow(sin(t/2), m)])

sphere(1);

for (t=[0:5:180])

translate([-50-50*cos(t), -30*sin(t)*pow(sin(t/2), m)])

sphere(1);

that is held straight at both ends and has a twist in the middle. But here

the twist is an an eye-watering 90°, which in the real world would result

in permanent damage, and it doesn’t seem possible to change it (I want

about 10° or less). In mathematical terms, the curve I want has a finite

length, the twist in the middle is variable and “y” flattens out to zero at

the ends.

leads, but not quite what I am looking for. Does anyone recognise such a

curve as a standard mathematical curve or know of a similar curve? If so,

information please!

OpenSCAD mailing list

To unsubscribe send an email to discuss-leave@lists.openscad.org

or :
dia=[for(i=[0:2.5:180]) 5*sin(i)];
pitch=100;
turns=1;
p0=[for(i=[0:5:360*turns])[dia[i/5]/2*cos(i),dia[i/5]/2*sin(i),i/360*pitch]];
translate([0,0,-50])
for(i=p0) translate(i) sphere(1);
On Fri, 4 Oct 2024 at 08:05, Sanjeev Prabhakar <sprabhakar2006@gmail.com>
wrote:
> twist on a rod has to be in 3d and not only in 2d.
> if you are only talking about twist then the openscad code is very simple:
>
> linear_extrude(200 ,twist=90)
> circle(5,$fn=4);
>
> but if you need buckle and twist, probably it is a helix with a very long
> pitch
>
> dia=5;
> pitch=100;
> turns=1;
> p0=[for(i=[0:5:360*turns])[dia/2*cos(i),dia/2*sin(i),i/360*pitch]];
> translate([0,0,-50])
> for(i=p0) translate(i) sphere(1);
>
> On Fri, 4 Oct 2024 at 05:30, Caddiy via Discuss <
> discuss@lists.openscad.org> wrote:
>
>> Here is cobbled together a curve just to show what I am looking for. It
>> is derived from a teardrop shape that I picked up in this forum a while
>> back.
>>
>> m=5;
>>
>> for (t=[0:5:180])
>>
>> translate([50+50*cos(t), 30*sin(t)*pow(sin(t/2), m)])
>>
>> sphere(1);
>>
>> for (t=[0:5:180])
>>
>> translate([-50-50*cos(t), -30*sin(t)*pow(sin(t/2), m)])
>>
>> sphere(1);
>>
>> The curve is intended to represent a rod (or the centre-line thereof)
>> that is held straight at both ends and has a twist in the middle. But here
>> the twist is an an eye-watering 90°, which in the real world would result
>> in permanent damage, and it doesn’t seem possible to change it (I want
>> about 10° or less). In mathematical terms, the curve I want has a finite
>> length, the twist in the middle is variable and “y” flattens out to zero at
>> the ends.
>>
>> Wikipedia contains some stuff on the subject and gives some interesing
>> leads, but not quite what I am looking for. Does anyone recognise such a
>> curve as a standard mathematical curve or know of a similar curve? If so,
>> information please!
>> _______________________________________________
>> OpenSCAD mailing list
>> To unsubscribe send an email to discuss-leave@lists.openscad.org
>>
>

M

mikeonenine@web.de

Fri, Oct 4, 2024 3:09 AM

Sanjeev Prabhakar

Thu, Oct 3, 2024 10:35 PM

twist on a rod has to be in 3d and not only in 2d.

if you are only talking about twist then the openscad code is very simple:

linear_extrude(200 ,twist=90)

circle(5,$fn=4);

but if you need buckle and twist, probably it is a helix with a very long

pitch

dia=5;

pitch=100;

turns=1;

p0=[for(i=[0:5:360*turns])[dia/2*cos(i),dia/2*sin(i),i/360*pitch]];

translate([0,0,-50])

for(i=p0) translate(i) sphere(1);

After sprinkling a few *’s over the code, it worked. But it gives twist about the axis of the rod. I need twist perpendicular to the axis - check my code. You might also call it a double bend, like what you find on country roads.

> Sanjeev Prabhakar
>
> Thu, Oct 3, 2024 10:35 PM
>
> twist on a rod has to be in 3d and not only in 2d. \
> if you are only talking about twist then the openscad code is very simple:
>
> linear_extrude(200 ,twist=90) \
> circle(5,$fn=4);
>
> but if you need buckle and twist, probably it is a helix with a very long \
> pitch
>
> dia=5; \
> pitch=100; \
> turns=1; \
> p0=\[for(i=\[0:5:360*turns\])\[dia/2*cos(i),dia/2*sin(i),i/360*pitch\]\]; \
> translate(\[0,0,-50\]) \
> for(i=p0) translate(i) sphere(1);
After sprinkling a few \*’s over the code, it worked. But it gives twist about the axis of the rod. I need twist perpendicular to the axis - check my code. You might also call it a double bend, like what you find on country roads.

SP

Sanjeev Prabhakar

Fri, Oct 4, 2024 4:20 AM

dia=[for(i=[-2:4/73/2:2]) 10*2.718^-(i)^2];

pitch=100;

turns=2;

p0=[for(i=[0:5:360*turns])[dia[i/5]/2*cos(i),dia[i/5]/2*sin(i),i/360*pitch]];

// in 2d use this

rotate([0,90,0])

translate([0,0,-pitch*turns/2])

for(i=p0) translate([0,i[1],i[2]]) sphere(1);

//in 3d use this

//

//rotate([0,90,0])

//translate([0,0,-pitch*turns/2])

//for(i=p0) translate(i) sphere(1);

On Fri, 4 Oct 2024 at 08:40, Caddiy via Discuss discuss@lists.openscad.org

wrote:

Sanjeev Prabhakar

Thu, Oct 3, 2024 10:35 PM

if you are only talking about twist then the openscad code is very simple:

linear_extrude(200 ,twist=90)

circle(5,$fn=4);

but if you need buckle and twist, probably it is a helix with a very long

pitch

pitch=100;

turns=1;

p0=[for(i=[0:5:360*turns])[dia/2*cos(i),dia/2*sin(i),i/360*pitch]];

translate([0,0,-50])

for(i=p0) translate(i) sphere(1);

After sprinkling a few *’s over the code, it worked. But it gives twist

about the axis of the rod. I need twist perpendicular to the axis - check

my code. You might also call it a double bend, like what you find on

country roads.

OpenSCAD mailing list

To unsubscribe send an email to discuss-leave@lists.openscad.org

dia=[for(i=[-2:4/73/2:2]) 10*2.718^-(i)^2];
pitch=100;
turns=2;
p0=[for(i=[0:5:360*turns])[dia[i/5]/2*cos(i),dia[i/5]/2*sin(i),i/360*pitch]];
// in 2d use this
rotate([0,90,0])
translate([0,0,-pitch*turns/2])
for(i=p0) translate([0,i[1],i[2]]) sphere(1);
//in 3d use this
//
//rotate([0,90,0])
//translate([0,0,-pitch*turns/2])
//for(i=p0) translate(i) sphere(1);
On Fri, 4 Oct 2024 at 08:40, Caddiy via Discuss <discuss@lists.openscad.org>
wrote:
> Sanjeev Prabhakar
>
> Thu, Oct 3, 2024 10:35 PM
>
> twist on a rod has to be in 3d and not only in 2d.
> if you are only talking about twist then the openscad code is very simple:
>
> linear_extrude(200 ,twist=90)
> circle(5,$fn=4);
>
> but if you need buckle and twist, probably it is a helix with a very long
> pitch
>
> dia=5;
> pitch=100;
> turns=1;
> p0=[for(i=[0:5:360*turns])[dia/2*cos(i),dia/2*sin(i),i/360*pitch]];
> translate([0,0,-50])
> for(i=p0) translate(i) sphere(1);
>
> After sprinkling a few *’s over the code, it worked. But it gives twist
> about the axis of the rod. I need twist perpendicular to the axis - check
> my code. You might also call it a double bend, like what you find on
> country roads.
> _______________________________________________
> OpenSCAD mailing list
> To unsubscribe send an email to discuss-leave@lists.openscad.org
>

M

mikeonenine@web.de

Fri, Oct 4, 2024 4:57 AM

Sanjeev Prabhakar wrote:

dia=[for(i=[-2:4/73/2:2]) 10*2.718^-(i)^2];

pitch=100;

turns=2;

p0=[for(i=[0:5:360*turns])[dia[i/5]/2*cos(i),dia[i/5]/2*sin(i),i/360*pitch]];

// in 2d use this

rotate([0,90,0])

translate([0,0,-pitch*turns/2])

for(i=p0) translate([0,i[1],i[2]]) sphere(1);

//in 3d use this

//

//rotate([0,90,0])

//translate([0,0,-pitch*turns/2])

//for(i=p0) translate(i) sphere(1);

On Fri, 4 Oct 2024 at 08:40, Caddiy via Discuss discuss@lists.openscad.org

wrote:

Sanjeev Prabhakar

Thu, Oct 3, 2024 10:35 PM

if you are only talking about twist then the openscad code is very simple:

linear_extrude(200 ,twist=90)

circle(5,$fn=4);

but if you need buckle and twist, probably it is a helix with a very long

pitch

pitch=100;

turns=1;

p0=[for(i=[0:5:360*turns])[dia/2*cos(i),dia/2*sin(i),i/360*pitch]];

translate([0,0,-50])

for(i=p0) translate(i) sphere(1);

After sprinkling a few *’s over the code, it worked. But it gives twist

about the axis of the rod. I need twist perpendicular to the axis - check

my code. You might also call it a double bend, like what you find on

country roads.

OpenSCAD mailing list

To unsubscribe send an email to discuss-leave@lists.openscad.org

Replacing the ^s with *s gives a fantastical moustache! Is that what is intended?

I have been using this so far, but using BOSL2 slows things down horribly:

H = 2.5; // Rod slice length

a = -17; // Wiggle factor, vertical

include <BOSL2/std.scad>

module rod()

{

sweep(circle(26, $fn=50),

[for (i=[-180:1:180])

up(H*i) // Length

* back(a*cos($t*360-ph) * sin(i) * pow((pow(180, 2)-pow(i, 2)), 1)/15000 )]);

}

rotate([90, 0, 0])

rod(ph=0);

Basically, it’s a sine function that is attenuated towards both ends, so that they come out straight. But 1 it’s a fudge, 2 the actual twist/bend angle is unknown, and 3 to me it still doesn’t look quite right. I can’t help thinking the proper formula/equation is out there somewhere.

Sanjeev Prabhakar wrote:
> dia=\[for(i=\[-2:4/73/2:2\]) 10\*2.718^-(i)^2\];
> pitch=100;
> turns=2;
>
> p0=\[for(i=\[0:5:360*turns\])\[dia\[i/5\]/2*cos(i),dia\[i/5\]/2*sin(i),i/360*pitch\]\];
>
> // in 2d use this
> rotate(\[0,90,0\])
> translate(\[0,0,-pitch\*turns/2\])
> for(i=p0) translate(\[0,i\[1\],i\[2\]\]) sphere(1);
>
> //in 3d use this
> //
> //rotate(\[0,90,0\])
> //translate(\[0,0,-pitch\*turns/2\])
> //for(i=p0) translate(i) sphere(1);
>
> On Fri, 4 Oct 2024 at 08:40, Caddiy via Discuss [discuss@lists.openscad.org](mailto:discuss@lists.openscad.org)
> wrote:
>
> > Sanjeev Prabhakar
> >
> > Thu, Oct 3, 2024 10:35 PM
> >
> > twist on a rod has to be in 3d and not only in 2d.
> > if you are only talking about twist then the openscad code is very simple:
> >
> > linear_extrude(200 ,twist=90)
> > circle(5,$fn=4);
> >
> > but if you need buckle and twist, probably it is a helix with a very long
> > pitch
> >
> > dia=5;
> > pitch=100;
> > turns=1;
> > p0=\[for(i=\[0:5:360*turns\])\[dia/2*cos(i),dia/2*sin(i),i/360*pitch\]\];
> > translate(\[0,0,-50\])
> > for(i=p0) translate(i) sphere(1);
> >
> > After sprinkling a few \*’s over the code, it worked. But it gives twist
> > about the axis of the rod. I need twist perpendicular to the axis - check
> > my code. You might also call it a double bend, like what you find on
> > country roads.
> >
> > ---
> >
> > OpenSCAD mailing list
> > To unsubscribe send an email to discuss-leave@lists.openscad.org
Replacing the ^s with \*s gives a fantastical moustache! Is that what is intended?
I have been using this so far, but using BOSL2 slows things down horribly:
H = 2.5; // Rod slice length
a = -17; // Wiggle factor, vertical
include <BOSL2/std.scad>
module rod()
{
sweep(circle(26, $fn=50),
\[for (i=\[-180:1:180\])
up(H\*i) // Length
\* back(a\*cos($t\*360-ph) \* sin(i) \* pow((pow(180, 2)-pow(i, 2)), 1)/15000 )\]);
}
rotate(\[90, 0, 0\])
rod(ph=0);
Basically, it’s a sine function that is attenuated towards both ends, so that they come out straight. But 1 it’s a fudge, 2 the actual twist/bend angle is unknown, and 3 to me it still doesn’t look quite right. I can’t help thinking the proper formula/equation is out there somewhere.

JB

Jordan Brown

Fri, Oct 4, 2024 5:10 AM

I would think in terms of Bézier curves, something like...

include <BOSL2/std.scad>

include <BOSL2/beziers.scad>

bezpath = flatten([

bez_begin([-100, 0], 0,20),

bez_tang ([ 0, 0], 20,30),

bez_end ([ 100, 0], 180,20),

]);

path_sweep(circle(d=20), bezpath_curve(bezpath));

... but I suspect that you'd have to get exactly the right parameters to

simulate a bending rod.

I would think in terms of Bézier curves, something like...
include <BOSL2/std.scad>
include <BOSL2/beziers.scad>
bezpath = flatten([
bez_begin([-100, 0], 0,20),
bez_tang ([ 0, 0], 20,30),
bez_end ([ 100, 0], 180,20),
]);
path_sweep(circle(d=20), bezpath_curve(bezpath));
... but I suspect that you'd have to get exactly the right parameters to
simulate a bending rod.

M

mikeonenine@web.de

Fri, Oct 4, 2024 5:26 AM

Jordan Brown wrote:

I would think in terms of Bézier curves, something like...

include <BOSL2/std.scad>

include <BOSL2/beziers.scad>

bezpath = flatten([

bez_begin([-100, 0], 0,20),

bez_tang ([ 0, 0], 20,30),

bez_end ([ 100, 0], 180,20),

]);

path_sweep(circle(d=20), bezpath_curve(bezpath));

... but I suspect that you'd have to get exactly the right parameters to

simulate a bending rod.

Ah, that looks interesting! I will need to play around with it a bit to see if I can get it to do what I want.

Jordan Brown wrote:
> I would think in terms of Bézier curves, something like...
>
> include <BOSL2/std.scad>
> include <BOSL2/beziers.scad>
>
> bezpath = flatten(\[
> bez_begin(\[-100, 0\], 0,20),
> bez_tang (\[ 0, 0\], 20,30),
> bez_end (\[ 100, 0\], 180,20),
> \]);
>
> path_sweep(circle(d=20), bezpath_curve(bezpath));
>
> ... but I suspect that you'd have to get exactly the right parameters to
> simulate a bending rod.
Ah, that looks interesting! I will need to play around with it a bit to see if I can get it to do what I want.

Replying to:

Empathy v1.0
2024 ©Harmonylists.com