discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

Beam deflection with a twist?

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+50cos(t), 30sin(t)*pow(sin(t/2), m)])

sphere(1);

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

translate([-50-50cos(t), -30sin(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:360turns])[dia/2cos(i),dia/2sin(i),i/360pitch]];
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+50cos(t), 30sin(t)*pow(sin(t/2), m)])

sphere(1);

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

translate([-50-50cos(t), -30sin(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:360turns])[dia[i/5]/2cos(i),dia[i/5]/2sin(i),i/360pitch]];
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:360turns])[dia/2cos(i),dia/2sin(i),i/360pitch]];
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+50cos(t), 30sin(t)*pow(sin(t/2), m)])

sphere(1);

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

translate([-50-50cos(t), -30sin(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

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:360turns])[dia/2cos(i),dia/2sin(i),i/360pitch]];
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:360turns])[dia[i/5]/2cos(i),dia[i/5]/2sin(i),i/360pitch]];

// 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:360turns])[dia/2cos(i),dia/2sin(i),i/360pitch]];
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:360turns])[dia[i/5]/2cos(i),dia[i/5]/2sin(i),i/360pitch]];

// 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:360turns])[dia/2cos(i),dia/2sin(i),i/360pitch]];
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.