DS
Dan Shriver
Mon, Dec 12, 2016 11:29 PM
I am trying to do something like this:
https://en.wikipedia.org/wiki/3-7_kisrhombille
but I haven't gotten very far. Basically I've got the design at the very
center and then am a bit perplexed about what to do next (to estimate where
things are, and cut wedges up nicely). One annoyance is that it is a two
colored checkerboard like tiling so every other part will need to be
reversed....
Any suggestions.
difference() {
sphere(25,$fn=100);
sphere(24,$fn=100);
translate([0,0,-25]) {
cube([50,50,50],center=true);
}
linear_extrude(height=25) {
pie_slice(25,0,angle,100);
}
linear_extrude(height=25) {
pie_slice(25,(angle2),(angle3),100);
}
linear_extrude(height=25) {
pie_slice(25,(angle4),(angle5),100);
}
linear_extrude(height=25) {
pie_slice(25,(angle6),(angle7),100);
}
linear_extrude(height=25) {
pie_slice(25,(angle8),(angle9),100);
}
linear_extrude(height=25) {
pie_slice(25,(angle10),(angle11),100);
}
linear_extrude(height=25) {
pie_slice(25,(angle12),(angle13),100);
}
}
module point(x,y) translate([x,y]) circle(0.01);
module pie_slice(r, a0, a1, fnNum) {
//$fa = 5;
R = r * sqrt(2) + 1;
intersection() {
circle(r, $fn=fnNum);
hull() {
point(0,0);
for(i = [0:4])
//a = (((4 - i) * a0 + i * a1) / 4);
point(R * cos((((4 - i) * a0 + i * a1) / 4)), R *
sin((((4 - i) * a0 + i * a1) / 4)));
}
}
}
I am trying to do something like this:
https://en.wikipedia.org/wiki/3-7_kisrhombille
but I haven't gotten very far. Basically I've got the design at the very
center and then am a bit perplexed about what to do next (to estimate where
things are, and cut wedges up nicely). One annoyance is that it is a two
colored checkerboard like tiling so every other part will need to be
reversed....
Any suggestions.
----------
difference() {
sphere(25,$fn=100);
sphere(24,$fn=100);
translate([0,0,-25]) {
cube([50,50,50],center=true);
}
linear_extrude(height=25) {
pie_slice(25,0,angle,100);
}
linear_extrude(height=25) {
pie_slice(25,(angle*2),(angle*3),100);
}
linear_extrude(height=25) {
pie_slice(25,(angle*4),(angle*5),100);
}
linear_extrude(height=25) {
pie_slice(25,(angle*6),(angle*7),100);
}
linear_extrude(height=25) {
pie_slice(25,(angle*8),(angle*9),100);
}
linear_extrude(height=25) {
pie_slice(25,(angle*10),(angle*11),100);
}
linear_extrude(height=25) {
pie_slice(25,(angle*12),(angle*13),100);
}
}
module point(x,y) translate([x,y]) circle(0.01);
module pie_slice(r, a0, a1, fnNum) {
//$fa = 5;
R = r * sqrt(2) + 1;
intersection() {
circle(r, $fn=fnNum);
hull() {
point(0,0);
for(i = [0:4])
//a = (((4 - i) * a0 + i * a1) / 4);
point(R * cos((((4 - i) * a0 + i * a1) / 4)), R *
sin((((4 - i) * a0 + i * a1) / 4)));
}
}
}
MK
Marius Kintel
Tue, Dec 13, 2016 5:55 AM
> On Dec 12, 2016, at 18:29, Dan Shriver <tabbydan@gmail.com> wrote:
>
> I am trying to do something like this:
>
> https://en.wikipedia.org/wiki/3-7_kisrhombille
>
This is not totally trivial to do..
You may want to read up on analytic hyperbolic geometry and specifically Poincaré disks:
https://en.wikipedia.org/wiki/Poincar%C3%A9_disk_model
..and look at Escher while at it :)
Other subsets of this topic includes geometric inversion (https://en.wikipedia.org/wiki/Inversive_geometry) and möbius transformations (https://en.wikipedia.org/wiki/M%C3%B6bius_transformation).
Warning: This is a lot of fun and you’ll discover how much math you've forgotten..
-Marius
R
runsun
Tue, Dec 13, 2016 6:39 AM
A projection()
https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_OpenSCAD_Language#3D_to_2D_Projection
might do the trick ?
$ Runsun Pan, PhD $ libs: doctest , faces ( git ), offline doc ( git ), runscad.py ( 2 , git ), synwrite ( 2 ); $ tips: Bezier , hash ( 2 ), matrix ( 2 , 3 ), sweep ( 2 , 3 ), var ( 2 ), lerp , animation ( gif , prodVid , animlib ), precision ( 2 ), xl-control , type , rounded polygon , chfont , tailRecur ( 2, 3 ), isosphere ( 2 ), area , vol/center , RGB , CurvedImg , tests ( 2 ), text , triang , unit ; $ Apps: rollApp , blockscad , openjscad , on AWS ( pdf ), support_tools
View this message in context: http://forum.openscad.org/Tedious-work-tp19560p19562.html
Sent from the OpenSCAD mailing list archive at Nabble.com.
A projection()
<https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_OpenSCAD_Language#3D_to_2D_Projection>
might do the trick ?
-----
$ Runsun Pan, PhD $ libs: doctest , faces ( git ), offline doc ( git ), runscad.py ( 2 , git ), synwrite ( 2 ); $ tips: Bezier , hash ( 2 ), matrix ( 2 , 3 ), sweep ( 2 , 3 ), var ( 2 ), lerp , animation ( gif , prodVid , animlib ), precision ( 2 ), xl-control , type , rounded polygon , chfont , tailRecur ( 2, 3 ), isosphere ( 2 ), area , vol/center , RGB , CurvedImg , tests ( 2 ), text , triang , unit ; $ Apps: rollApp , blockscad , openjscad , on AWS ( pdf ), support_tools
--
View this message in context: http://forum.openscad.org/Tedious-work-tp19560p19562.html
Sent from the OpenSCAD mailing list archive at Nabble.com.
DS
Dan Shriver
Tue, Dec 13, 2016 3:44 PM
I think I have the exact center now (maybe not).
Not sure how to approach this, as the difference of differences..... I'm
confused how best to flip parts off and on in this tiling
Maybe I should be using affine transformations....
Thanks for the tip on the hyperbolic geometry. Right now I'm eyeballing it
(and probably way off).
//core to layer on top of
/*
difference() {
sphere(24,$fn=100);
sphere(23,$fn=100);
translate([0,0,-25]) {
cube([50,50,50],center=true);
}
}
*/
angle = 360/14;
//pie_slice(25,0,angle,100);
difference() {
sphere(25,$fn=100);
sphere(24,$fn=100);
translate([0,0,-25]) {
cube([50,50,50],center=true);
}
cnt(25);
}
module cnt(size) {
x = size + size/3;
difference() {
center(size);
linear_extrude(height=size) {
translate([(x*(sin(angle1.5))),(x(cos(angle1.5))),0]) {
circle(size);
}
translate([(x(sin(angle3.5))),(x(cos(angle3.5))),0]) {
circle(size);
}
translate([(x(sin(angle5.5))),(x(cos(angle5.5))),0]) {
circle(size);
}
translate([(x(sin(angle7.5))),(x(cos(angle7.5))),0]) {
circle(size);
}
translate([(x(sin(angle9.5))),(x(cos(angle9.5))),0]) {
circle(size);
}
translate([(x(sin(angle11.5))),(x(cos(angle11.5))),0]) {
circle(size);
}
translate([(x(sin(angle13.5))),(x(cos(angle*13.5))),0]) {
circle(size);
}
}
}
}
module center(size) {
linear_extrude(height=size) {
pie_slice(25,0,angle,100);
pie_slice(25,(angle2),(angle3),100);
pie_slice(25,(angle4),(angle5),100);
pie_slice(25,(angle6),(angle7),100);
pie_slice(25,(angle8),(angle9),100);
pie_slice(25,(angle10),(angle11),100);
pie_slice(25,(angle12),(angle13),100);
}
}
module point(x,y) translate([x,y]) circle(0.01);
module pie_slice(r, a0, a1, fnNum) {
//$fa = 5;
R = r * sqrt(2) + 1;
intersection() {
circle(r, $fn=fnNum);
hull() {
point(0,0);
for(i = [0:4])
//a = (((4 - i) * a0 + i * a1) / 4);
point(R * cos((((4 - i) * a0 + i * a1) / 4)), R *
sin((((4 - i) * a0 + i * a1) / 4)));
}
}
}
On Tue, Dec 13, 2016 at 1:39 AM, runsun runsun@gmail.com wrote:
A projection()
<https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_
OpenSCAD_Language#3D_to_2D_Projection>
might do the trick ?
$ Runsun Pan, PhD $ libs: doctest , faces ( git ), offline doc ( git ),
runscad.py ( 2 , git ), synwrite ( 2 ); $ tips: Bezier , hash ( 2 ),
matrix ( 2 , 3 ), sweep ( 2 , 3 ), var ( 2 ), lerp , animation ( gif ,
prodVid , animlib ), precision ( 2 ), xl-control , type , rounded polygon ,
chfont , tailRecur ( 2, 3 ), isosphere ( 2 ), area , vol/center , RGB ,
CurvedImg , tests ( 2 ), text , triang , unit ; $ Apps: rollApp , blockscad
, openjscad , on AWS ( pdf ), support_tools
View this message in context: http://forum.openscad.org/
Tedious-work-tp19560p19562.html
Sent from the OpenSCAD mailing list archive at Nabble.com.
OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
I think I have the exact center now (maybe not).
Not sure how to approach this, as the difference of differences..... I'm
confused how best to flip parts off and on in this tiling
Maybe I should be using affine transformations....
Thanks for the tip on the hyperbolic geometry. Right now I'm eyeballing it
(and probably way off).
------------------------------------------------------------
//core to layer on top of
/*
difference() {
sphere(24,$fn=100);
sphere(23,$fn=100);
translate([0,0,-25]) {
cube([50,50,50],center=true);
}
}
*/
angle = 360/14;
//pie_slice(25,0,angle,100);
difference() {
sphere(25,$fn=100);
sphere(24,$fn=100);
translate([0,0,-25]) {
cube([50,50,50],center=true);
}
cnt(25);
}
module cnt(size) {
x = size + size/3;
difference() {
center(size);
linear_extrude(height=size) {
translate([(x*(sin(angle*1.5))),(x*(cos(angle*1.5))),0]) {
circle(size);
}
translate([(x*(sin(angle*3.5))),(x*(cos(angle*3.5))),0]) {
circle(size);
}
translate([(x*(sin(angle*5.5))),(x*(cos(angle*5.5))),0]) {
circle(size);
}
translate([(x*(sin(angle*7.5))),(x*(cos(angle*7.5))),0]) {
circle(size);
}
translate([(x*(sin(angle*9.5))),(x*(cos(angle*9.5))),0]) {
circle(size);
}
translate([(x*(sin(angle*11.5))),(x*(cos(angle*11.5))),0]) {
circle(size);
}
translate([(x*(sin(angle*13.5))),(x*(cos(angle*13.5))),0]) {
circle(size);
}
}
}
}
module center(size) {
linear_extrude(height=size) {
pie_slice(25,0,angle,100);
pie_slice(25,(angle*2),(angle*3),100);
pie_slice(25,(angle*4),(angle*5),100);
pie_slice(25,(angle*6),(angle*7),100);
pie_slice(25,(angle*8),(angle*9),100);
pie_slice(25,(angle*10),(angle*11),100);
pie_slice(25,(angle*12),(angle*13),100);
}
}
module point(x,y) translate([x,y]) circle(0.01);
module pie_slice(r, a0, a1, fnNum) {
//$fa = 5;
R = r * sqrt(2) + 1;
intersection() {
circle(r, $fn=fnNum);
hull() {
point(0,0);
for(i = [0:4])
//a = (((4 - i) * a0 + i * a1) / 4);
point(R * cos((((4 - i) * a0 + i * a1) / 4)), R *
sin((((4 - i) * a0 + i * a1) / 4)));
}
}
}
On Tue, Dec 13, 2016 at 1:39 AM, runsun <runsun@gmail.com> wrote:
> A projection()
> <https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_
> OpenSCAD_Language#3D_to_2D_Projection>
> might do the trick ?
>
>
>
> -----
>
> $ Runsun Pan, PhD $ libs: doctest , faces ( git ), offline doc ( git ),
> runscad.py ( 2 , git ), synwrite ( 2 ); $ tips: Bezier , hash ( 2 ),
> matrix ( 2 , 3 ), sweep ( 2 , 3 ), var ( 2 ), lerp , animation ( gif ,
> prodVid , animlib ), precision ( 2 ), xl-control , type , rounded polygon ,
> chfont , tailRecur ( 2, 3 ), isosphere ( 2 ), area , vol/center , RGB ,
> CurvedImg , tests ( 2 ), text , triang , unit ; $ Apps: rollApp , blockscad
> , openjscad , on AWS ( pdf ), support_tools
> --
> View this message in context: http://forum.openscad.org/
> Tedious-work-tp19560p19562.html
> Sent from the OpenSCAD mailing list archive at Nabble.com.
>
> _______________________________________________
> OpenSCAD mailing list
> Discuss@lists.openscad.org
> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
>
DM
doug moen
Tue, Dec 13, 2016 4:18 PM
I don't understand the math (yet), it's something I'd like to learn
eventually.
However, there are a number of github repositories that might help:
https://www.google.ca/search?q=site%3Agithub.com+poincare+disk
On 13 December 2016 at 00:55, Marius Kintel <marius@kintel.net> wrote:
>
> > On Dec 12, 2016, at 18:29, Dan Shriver <tabbydan@gmail.com> wrote:
> >
> > I am trying to do something like this:
> >
> > https://en.wikipedia.org/wiki/3-7_kisrhombille
> >
> This is not totally trivial to do..
>
> You may want to read up on analytic hyperbolic geometry and specifically
> Poincaré disks:
> https://en.wikipedia.org/wiki/Poincar%C3%A9_disk_model
>
> ..and look at Escher while at it :)
>
> Other subsets of this topic includes geometric inversion (
> https://en.wikipedia.org/wiki/Inversive_geometry) and möbius
> transformations (https://en.wikipedia.org/wiki/M%C3%B6bius_transformation
> ).
>
> Warning: This is a lot of fun and you’ll discover how much math you've
> forgotten..
>
> -Marius
>
>
> _______________________________________________
> OpenSCAD mailing list
> Discuss@lists.openscad.org
> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
>
DM
doug moen
Tue, Dec 13, 2016 4:31 PM
Unlike Marius's references, here is the simplified guide for children,
which even I can understand (and there is some code at the end):
https://www.d.umn.edu/~ddunham/umdmath09.pdf
I'm specifically interested in replicating Escher's "circle limit"
drawings, and that's what the link covers. I haven't tried the code.
On 13 December 2016 at 00:55, Marius Kintel marius@kintel.net wrote:
Unlike Marius's references, here is the simplified guide for children,
which even I can understand (and there is some code at the end):
https://www.d.umn.edu/~ddunham/umdmath09.pdf
I'm specifically interested in replicating Escher's "circle limit"
drawings, and that's what the link covers. I haven't tried the code.
On 13 December 2016 at 00:55, Marius Kintel <marius@kintel.net> wrote:
>
> > On Dec 12, 2016, at 18:29, Dan Shriver <tabbydan@gmail.com> wrote:
> >
> > I am trying to do something like this:
> >
> > https://en.wikipedia.org/wiki/3-7_kisrhombille
> >
> This is not totally trivial to do..
>
> You may want to read up on analytic hyperbolic geometry and specifically
> Poincaré disks:
> https://en.wikipedia.org/wiki/Poincar%C3%A9_disk_model
>
> ..and look at Escher while at it :)
>
> Other subsets of this topic includes geometric inversion (
> https://en.wikipedia.org/wiki/Inversive_geometry) and möbius
> transformations (https://en.wikipedia.org/wiki/M%C3%B6bius_transformation
> ).
>
> Warning: This is a lot of fun and you’ll discover how much math you've
> forgotten..
>
> -Marius
>
>
> _______________________________________________
> OpenSCAD mailing list
> Discuss@lists.openscad.org
> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
>
DS
Dan Shriver
Tue, Dec 13, 2016 6:59 PM
Thanks Doug.
Trying to decipher the pseudocode it should be helpful.
On Tue, Dec 13, 2016 at 11:31 AM, doug moen doug@moens.org wrote:
Unlike Marius's references, here is the simplified guide for children,
which even I can understand (and there is some code at the end):
https://www.d.umn.edu/~ddunham/umdmath09.pdf
I'm specifically interested in replicating Escher's "circle limit"
drawings, and that's what the link covers. I haven't tried the code.
On 13 December 2016 at 00:55, Marius Kintel marius@kintel.net wrote:
Thanks Doug.
Trying to decipher the pseudocode it should be helpful.
On Tue, Dec 13, 2016 at 11:31 AM, doug moen <doug@moens.org> wrote:
> Unlike Marius's references, here is the simplified guide for children,
> which even I can understand (and there is some code at the end):
> https://www.d.umn.edu/~ddunham/umdmath09.pdf
>
> I'm specifically interested in replicating Escher's "circle limit"
> drawings, and that's what the link covers. I haven't tried the code.
>
> On 13 December 2016 at 00:55, Marius Kintel <marius@kintel.net> wrote:
>
>>
>> > On Dec 12, 2016, at 18:29, Dan Shriver <tabbydan@gmail.com> wrote:
>> >
>> > I am trying to do something like this:
>> >
>> > https://en.wikipedia.org/wiki/3-7_kisrhombille
>> >
>> This is not totally trivial to do..
>>
>> You may want to read up on analytic hyperbolic geometry and specifically
>> Poincaré disks:
>> https://en.wikipedia.org/wiki/Poincar%C3%A9_disk_model
>>
>> ..and look at Escher while at it :)
>>
>> Other subsets of this topic includes geometric inversion (
>> https://en.wikipedia.org/wiki/Inversive_geometry) and möbius
>> transformations (https://en.wikipedia.org/wiki/M%C3%B6bius_transformation
>> ).
>>
>> Warning: This is a lot of fun and you’ll discover how much math you've
>> forgotten..
>>
>> -Marius
>>
>>
>> _______________________________________________
>> OpenSCAD mailing list
>> Discuss@lists.openscad.org
>> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
>>
>
>
> _______________________________________________
> OpenSCAD mailing list
> Discuss@lists.openscad.org
> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
>
>
MK
Marius Kintel
Tue, Dec 13, 2016 7:03 PM
On Dec 13, 2016, at 13:59, Dan Shriver tabbydan@gmail.com wrote:
Trying to decipher the pseudocode it should be helpful.
..or google for papers with similar names. There are some variation of this summary, as well as a few master theses out there with more complete code.
-Marius
> On Dec 13, 2016, at 13:59, Dan Shriver <tabbydan@gmail.com> wrote:
>
> Trying to decipher the pseudocode it should be helpful.
>
..or google for papers with similar names. There are some variation of this summary, as well as a few master theses out there with more complete code.
-Marius
R
Ronaldo
Fri, Dec 16, 2016 7:07 PM
Dan,
Here you have a starting point:
http://forum.openscad.org/file/n19586/kisrhombille3_7.png
I leave to you the triangle fulfilling task.
The attached code contains some helpful hyperbolic functions but not all are
used or fully tested.
The main module calls seven times a highly recursive module and the process
is exponential in time. The attached image has a recursive depth of only two
and required 25sec in my rather old notebook.
Enjoy it as much as I have enjoyed studying the subject and writing the
code! Far from tedious...
kisrhombille3_7.scad
http://forum.openscad.org/file/n19586/kisrhombille3_7.scad
--
View this message in context: http://forum.openscad.org/Tedious-work-tp19560p19586.html
Sent from the OpenSCAD mailing list archive at Nabble.com.
Dan,
Here you have a starting point:
<http://forum.openscad.org/file/n19586/kisrhombille3_7.png>
I leave to you the triangle fulfilling task.
The attached code contains some helpful hyperbolic functions but not all are
used or fully tested.
The main module calls seven times a highly recursive module and the process
is exponential in time. The attached image has a recursive depth of only two
and required 25sec in my rather old notebook.
Enjoy it as much as I have enjoyed studying the subject and writing the
code! Far from tedious...
kisrhombille3_7.scad
<http://forum.openscad.org/file/n19586/kisrhombille3_7.scad>
--
View this message in context: http://forum.openscad.org/Tedious-work-tp19560p19586.html
Sent from the OpenSCAD mailing list archive at Nabble.com.
R
Ronaldo
Fri, Dec 16, 2016 7:18 PM
I have been always looking from above. For a better 3D view, substitute the
4-th code line by:
scale([size,size,1]) kisrhombille3_7(3);
--
View this message in context: http://forum.openscad.org/Tedious-work-tp19560p19587.html
Sent from the OpenSCAD mailing list archive at Nabble.com.
I have been always looking from above. For a better 3D view, substitute the
4-th code line by:
scale([size,size,1]) kisrhombille3_7(3);
--
View this message in context: http://forum.openscad.org/Tedious-work-tp19560p19587.html
Sent from the OpenSCAD mailing list archive at Nabble.com.