discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

Face spline

M
mikeonenine@web.de
Thu, Sep 19, 2024 10:37 PM

Something else with teeth that the world has been waiting for: a face spline coupling aka Hirth coupling. I created it some time ago as part of a design, but it had a glitch that turned out to be because the circumference of a small sector of a circle is slightly longer than the straight line across it. This left tiny but visible gaps between the splines.

I thought it would be difficult to parametrise but it was not.

But it still has some sharp edges that need rounding. Any volunteers?

$fn=100;

$vpr=[ 60, 0, 315 ];

$vpt=[ 0, 0, 0 ];

$vpd=80;

/*

*/

a=60; // Base angle

r=12; // Radius

n=24; // Number of splines

module facespline()

{

difference()

{

intersection()

{

for(i = [1 : n])

rotate(i * 360/n)

polyhedron(

points = [

// Point 0

[0, 0, PI*r/2/n*tan(a)],

// Point 1

[r, r*tan(360/2/n), 0],

// Point 2

[r, -r*tan(360/2/n), 0],

// Point 3

[r, 0, PI*r/n*tan(a)],

// Point 4

[0, 0, 0]

],

faces = [

[1,2,3],

//[0,2,1],

[3,2,0],

[3,0,1],

[0,2,4], //

[0,4,1], //

[1,4,2] //

]);

cylinder(r=r, h=PI*r/16*tan(a)+1);

}

// Hole

translate([0,0,-1])

cylinder(r=6, h=5);

}}

// Face spline coupling

rotate([0, 0, $t*360])

{

translate([0, 0, -3])

facespline();

translate([0, 0, 3])

rotate([0, 180, 360/2/n])

facespline();

}

Something else with teeth that the world has been waiting for: a face spline coupling aka Hirth coupling. I created it some time ago as part of a design, but it had a glitch that turned out to be because the circumference of a small sector of a circle is slightly longer than the straight line across it. This left tiny but visible gaps between the splines. I thought it would be difficult to parametrise but it was not. But it still has some sharp edges that need rounding. Any volunteers? `$fn=100;` `$vpr=[ 60, 0, 315 ];` `$vpt=[ 0, 0, 0 ];` `$vpd=80;` `/*` `*/` `a=60; // Base angle` `r=12; // Radius` `n=24; // Number of splines` `module facespline()` `{` `difference()` `{` `intersection()` `{` `for(i = [1 : n])` `rotate(i * 360/n)` `polyhedron( ` `points = [ ` `// Point 0` `[0, 0, PI*r/2/n*tan(a)],` `// Point 1` `[r, r*tan(360/2/n), 0], ` `// Point 2` `[r, -r*tan(360/2/n), 0], ` `// Point 3 ` `[r, 0, PI*r/n*tan(a)],` `// Point 4` `[0, 0, 0]` `], ` `faces = [ ` `[1,2,3],` `//[0,2,1], ` `[3,2,0],` `[3,0,1],` `[0,2,4], //` `[0,4,1], //` `[1,4,2] //` `]);` `cylinder(r=r, h=PI*r/16*tan(a)+1);` `}` `// Hole` `translate([0,0,-1])` `cylinder(r=6, h=5);` `}}` `// Face spline coupling` `rotate([0, 0, $t*360])` `{` `translate([0, 0, -3])` `facespline();` `translate([0, 0, 3])` `rotate([0, 180, 360/2/n])` `facespline();` `}`
BC
Bob Carlson
Thu, Sep 19, 2024 11:40 PM

I was curious what this looks like so I loaded it up and hit F6. I get No Geometry to Render.

-Bob

On Sep 19, 2024, at 15:37, Caddiy via Discuss discuss@lists.openscad.org wrote:

Something else with teeth that the world has been waiting for: a face spline coupling aka Hirth coupling. I created it some time ago as part of a design, but it had a glitch that turned out to be because the circumference of a small sector of a circle is slightly longer than the straight line across it. This left tiny but visible gaps between the splines.

I thought it would be difficult to parametrise but it was not.

But it still has some sharp edges that need rounding. Any volunteers?

$fn=100;

$vpr=[ 60, 0, 315 ];

$vpt=[ 0, 0, 0 ];

$vpd=80;

/*

*/

a=60; // Base angle

r=12; // Radius

n=24; // Number of splines

module facespline()

{

difference()

{

intersection()

{

for(i = [1 : n])

rotate(i * 360/n)

polyhedron(

points = [

// Point 0

[0, 0, PIr/2/ntan(a)],

// Point 1

[r, r*tan(360/2/n), 0],

// Point 2

[r, -r*tan(360/2/n), 0],

// Point 3

[r, 0, PIr/ntan(a)],

// Point 4

[0, 0, 0]

],

faces = [

[1,2,3],

//[0,2,1],

[3,2,0],

[3,0,1],

[0,2,4], //

[0,4,1], //

[1,4,2] //

]);

cylinder(r=r, h=PIr/16tan(a)+1);

}

// Hole

translate([0,0,-1])

cylinder(r=6, h=5);

}}

// Face spline coupling

rotate([0, 0, $t*360])

{

translate([0, 0, -3])

facespline();

translate([0, 0, 3])

rotate([0, 180, 360/2/n])

facespline();

}


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

I was curious what this looks like so I loaded it up and hit F6. I get No Geometry to Render. -Bob > On Sep 19, 2024, at 15:37, Caddiy via Discuss <discuss@lists.openscad.org> wrote: > > Something else with teeth that the world has been waiting for: a face spline coupling aka Hirth coupling. I created it some time ago as part of a design, but it had a glitch that turned out to be because the circumference of a small sector of a circle is slightly longer than the straight line across it. This left tiny but visible gaps between the splines. > > I thought it would be difficult to parametrise but it was not. > > But it still has some sharp edges that need rounding. Any volunteers? > > $fn=100; > > $vpr=[ 60, 0, 315 ]; > > $vpt=[ 0, 0, 0 ]; > > $vpd=80; > > /* > > */ > > a=60; // Base angle > > r=12; // Radius > > n=24; // Number of splines > > module facespline() > > { > > difference() > > { > > intersection() > > { > > for(i = [1 : n]) > > rotate(i * 360/n) > > polyhedron( > > points = [ > > // Point 0 > > [0, 0, PI*r/2/n*tan(a)], > > // Point 1 > > [r, r*tan(360/2/n), 0], > > // Point 2 > > [r, -r*tan(360/2/n), 0], > > // Point 3 > > [r, 0, PI*r/n*tan(a)], > > // Point 4 > > [0, 0, 0] > > ], > > faces = [ > > [1,2,3], > > //[0,2,1], > > [3,2,0], > > [3,0,1], > > [0,2,4], // > > [0,4,1], // > > [1,4,2] // > > ]); > > cylinder(r=r, h=PI*r/16*tan(a)+1); > > } > > // Hole > > translate([0,0,-1]) > > cylinder(r=6, h=5); > > }} > > // Face spline coupling > > rotate([0, 0, $t*360]) > > { > > translate([0, 0, -3]) > > facespline(); > > translate([0, 0, 3]) > > rotate([0, 180, 360/2/n]) > > facespline(); > > } > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org
DP
Dan Perry
Thu, Sep 19, 2024 11:51 PM

Me too.

On Thu, Sep 19, 2024 at 4:40 PM Bob Carlson via Discuss <
discuss@lists.openscad.org> wrote:

I was curious what this looks like so I loaded it up and hit F6. I get No
Geometry to Render.

-Bob

On Sep 19, 2024, at 15:37, Caddiy via Discuss discuss@lists.openscad.org
wrote:

Something else with teeth that the world has been waiting for: a face
spline coupling aka Hirth coupling. I created it some time ago as part of a
design, but it had a glitch that turned out to be because the circumference
of a small sector of a circle is slightly longer than the straight line
across it. This left tiny but visible gaps between the splines.

I thought it would be difficult to parametrise but it was not.

But it still has some sharp edges that need rounding. Any volunteers?

$fn=100;

$vpr=[ 60, 0, 315 ];

$vpt=[ 0, 0, 0 ];

$vpd=80;

/*

*/

a=60; // Base angle

r=12; // Radius

n=24; // Number of splines

module facespline()

{

difference()

{

intersection()

{

for(i = [1 : n])

rotate(i * 360/n)

polyhedron(

points = [

// Point 0

[0, 0, PIr/2/ntan(a)],

// Point 1

[r, r*tan(360/2/n), 0],

// Point 2

[r, -r*tan(360/2/n), 0],

// Point 3

[r, 0, PIr/ntan(a)],

// Point 4

[0, 0, 0]

],

faces = [

[1,2,3],

//[0,2,1],

[3,2,0],

[3,0,1],

[0,2,4], //

[0,4,1], //

[1,4,2] //

]);

cylinder(r=r, h=PIr/16tan(a)+1);

}

// Hole

translate([0,0,-1])

cylinder(r=6, h=5);

}}

// Face spline coupling

rotate([0, 0, $t*360])

{

translate([0, 0, -3])

facespline();

translate([0, 0, 3])

rotate([0, 180, 360/2/n])

facespline();

}


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


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

Me too. On Thu, Sep 19, 2024 at 4:40 PM Bob Carlson via Discuss < discuss@lists.openscad.org> wrote: > I was curious what this looks like so I loaded it up and hit F6. I get No > Geometry to Render. > > -Bob > > On Sep 19, 2024, at 15:37, Caddiy via Discuss <discuss@lists.openscad.org> > wrote: > > Something else with teeth that the world has been waiting for: a face > spline coupling aka Hirth coupling. I created it some time ago as part of a > design, but it had a glitch that turned out to be because the circumference > of a small sector of a circle is slightly longer than the straight line > across it. This left tiny but visible gaps between the splines. > > I thought it would be difficult to parametrise but it was not. > > But it still has some sharp edges that need rounding. Any volunteers? > > $fn=100; > > $vpr=[ 60, 0, 315 ]; > > $vpt=[ 0, 0, 0 ]; > > $vpd=80; > > /* > > */ > > a=60; // Base angle > > r=12; // Radius > > n=24; // Number of splines > > module facespline() > > { > > difference() > > { > > intersection() > > { > > for(i = [1 : n]) > > rotate(i * 360/n) > > polyhedron( > > points = [ > > // Point 0 > > [0, 0, PI*r/2/n*tan(a)], > > // Point 1 > > [r, r*tan(360/2/n), 0], > > // Point 2 > > [r, -r*tan(360/2/n), 0], > > // Point 3 > > [r, 0, PI*r/n*tan(a)], > > // Point 4 > > [0, 0, 0] > > ], > > faces = [ > > [1,2,3], > > //[0,2,1], > > [3,2,0], > > [3,0,1], > > [0,2,4], // > > [0,4,1], // > > [1,4,2] // > > ]); > > cylinder(r=r, h=PI*r/16*tan(a)+1); > > } > > // Hole > > translate([0,0,-1]) > > cylinder(r=6, h=5); > > }} > > // Face spline coupling > > rotate([0, 0, $t*360]) > > { > > translate([0, 0, -3]) > > facespline(); > > translate([0, 0, 3]) > > rotate([0, 180, 360/2/n]) > > facespline(); > > } > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org > > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >
M
mikeonenine@web.de
Thu, Sep 19, 2024 11:55 PM

Works perfectly here.

Previews immediately with the cube-and-chevron icon, took a little longer with F6.

Works perfectly here. Previews immediately with the cube-and-chevron icon, took a little longer with F6.
BC
Bob Carlson
Fri, Sep 20, 2024 12:13 AM

I am on a relatively recent snapshot. Are you using the (ancient) “released” version? Or maybe a more recent snapshot?

On Sep 19, 2024, at 16:55, Caddiy via Discuss discuss@lists.openscad.org wrote:

Works perfectly here.

Previews immediately with the cube-and-chevron icon, took a little longer with F6.


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

I am on a relatively recent snapshot. Are you using the (ancient) “released” version? Or maybe a more recent snapshot? > On Sep 19, 2024, at 16:55, Caddiy via Discuss <discuss@lists.openscad.org> wrote: > > Works perfectly here. > > Previews immediately with the cube-and-chevron icon, took a little longer with F6. > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org
M
mikeonenine@web.de
Fri, Sep 20, 2024 12:15 AM

This is what you should see.

BTW I said sector above, but meant segment.

This is what you should see. BTW I said sector above, but meant segment.
M
mikeonenine@web.de
Fri, Sep 20, 2024 12:20 AM

I am on a relatively recent snapshot. Are you using the (ancient) “released” version? Or maybe a more recent snapshot?

On Sep 19, 2024, at 16:55, Caddiy via Discuss discuss@lists.openscad.org wrote:

Works perfectly here.

Previews immediately with the cube-and-chevron icon, took a little longer with F6.


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

i Am using Version 2021.01, but that shouldn’t make any difference?

> I am on a relatively recent snapshot. Are you using the (ancient) “released” version? Or maybe a more recent snapshot? > > On Sep 19, 2024, at 16:55, Caddiy via Discuss [discuss@lists.openscad.org](mailto:discuss@lists.openscad.org) wrote: > > Works perfectly here. > > Previews immediately with the cube-and-chevron icon, took a little longer with F6. > > --- > > > OpenSCAD mailing list \ > > To unsubscribe send an email to [discuss-leave@lists.openscad.org](mailto:discuss-leave@lists.openscad.org) i Am using Version 2021.01, but that shouldn’t make any difference?
M
mikeonenine@web.de
Fri, Sep 20, 2024 12:37 AM

Still no joy?

Try deleting all //, /* and */.

Still no joy? Try deleting all //, /\* and \*/.
K
Ken
Fri, Sep 20, 2024 12:50 AM

I tried that, still no joy. I'm running 2024.08.30
F5 says Compile & preview finished, total rendering time 0.064 seconds- but there's nothing there.

F6 says there is no top-level geometry to render.

On 2024-09-20 10:37, Caddiy via Discuss wrote:

Still no joy?

Try deleting all //, /* and */.


OpenSCAD mailing list
To unsubscribe send an email todiscuss-leave@lists.openscad.org

--
Cheers, Ken
bats059@gmail.com
https://vk7krj.com
https://vk7krj.com/running.html

A baby can be defined as an ego with a noise at one end and a smell at the other.
Your job as parents is to teach them to control all three.
My job as a grandad is to tell you how you are doing it all wrong!

I tried that, still no joy. I'm running 2024.08.30 F5 says Compile & preview finished, total rendering time 0.064 seconds- but there's nothing there. F6 says there is no top-level geometry to render. On 2024-09-20 10:37, Caddiy via Discuss wrote: > > Still no joy? > > Try deleting all //, /* and */. > > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email todiscuss-leave@lists.openscad.org -- Cheers, Ken bats059@gmail.com https://vk7krj.com https://vk7krj.com/running.html ---------------------------------------- A baby can be defined as an ego with a noise at one end and a smell at the other. Your job as parents is to teach them to control all three. My job as a grandad is to tell you how you are doing it all wrong!
M
mikeonenine@web.de
Fri, Sep 20, 2024 1:07 AM
Does this work for you?
$fn=100;

$vpr=[ 60, 0, 315 ];

$vpt=[ 0, 0, 0 ];

$vpd=80;

a=60; // Base angle

r=12; // Radius

n=16; // Number of splines

module facespline()

{

difference()

{

intersection()

{

for(i = [1 : n])

rotate(i * 360/n)

polyhedron(

points = [

[0, 0, PI*r/2/n*tan(a)],

[r, r*tan(360/2/n), 0],

[r, -r*tan(360/2/n), 0],

[r, 0, PI*r/n*tan(a)],

[0, 0, 0]

],

faces = [

[1,2,3],

[3,2,0],

[3,0,1],

[0,2,4],

[0,4,1],

[1,4,2]

]);

cylinder(r=r, h=PI*r/16*tan(a)+1);

}

// Hole

translate([0,0,-1])

cylinder(r=6, h=5);

}}

// Face spline coupling

{

translate([0, 0, -3])

facespline();

translate([0, 0, 3])

rotate([0, 180, 360/2/n])

facespline();

}

##### Does this work for you? ###### `$fn=100;` `$vpr=[ 60, 0, 315 ];` `$vpt=[ 0, 0, 0 ];` `$vpd=80;` `a=60; // Base angle` `r=12; // Radius` `n=16; // Number of splines` `module facespline()` `{` `difference()` `{` `intersection()` `{` `for(i = [1 : n])` `rotate(i * 360/n)` `polyhedron(` `points = [` `[0, 0, PI*r/2/n*tan(a)],` `[r, r*tan(360/2/n), 0],` `[r, -r*tan(360/2/n), 0],` `[r, 0, PI*r/n*tan(a)],` `[0, 0, 0]` `],` `faces = [` `[1,2,3],` `[3,2,0],` `[3,0,1],` `[0,2,4], ` `[0,4,1], ` `[1,4,2] ` `]);` `cylinder(r=r, h=PI*r/16*tan(a)+1);` `}` `// Hole` `translate([0,0,-1])` `cylinder(r=6, h=5);` `}}` `// Face spline coupling` `{` `translate([0, 0, -3])` `facespline();` `translate([0, 0, 3])` `rotate([0, 180, 360/2/n])` `facespline();` `}`