discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

Text on a dodecahedron

U
unkerjay
Fri, Jan 1, 2016 9:41 PM

Tried using Blender.

It's been a REAL challenge as there doesn't seem to be much
on the subject of text on polyhedra other than by texture,
which, 3D Printed, leaves only the option of sandstone printing.
Not very durable.

Not to mention that it's LARGE and hasn't passed ANY printability
OR repair tests yet.

As you can see from the image below, it's not that complex.

Tried this:

http://blender.stackexchange.com/questions/28829/set-edge-as-axis-for-surface-rotation

as a starting point.  Thickened the edges.  Added the text.  Put it all
together, and voila!  Mush!

Looks nice.  Won't print.

There's this by the GREAT, and I use that word deliberately,
Kit Wallace:

http://kitwallace.tumblr.com/post/84238290024/adding-text

but, for me, it's just not clear.

What I don't know about Openscad is a far greater chasm
than what I know.  So, please, bear that in mind.

I'm guessing, if it's to be done at all, in a remotely printable
format, my best option might be through Openscad.  But, I
have no idea how to begin.

Anyone?

Thanx

12_Days_Dodec_JPG.jpg
http://forum.openscad.org/file/n15409/12_Days_Dodec_JPG.jpg

--
View this message in context: http://forum.openscad.org/Text-on-a-dodecahedron-tp15409.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

Tried using Blender. It's been a REAL challenge as there doesn't seem to be much on the subject of text on polyhedra other than by texture, which, 3D Printed, leaves only the option of sandstone printing. Not very durable. Not to mention that it's LARGE and hasn't passed ANY printability OR repair tests yet. As you can see from the image below, it's not that complex. Tried this: http://blender.stackexchange.com/questions/28829/set-edge-as-axis-for-surface-rotation as a starting point. Thickened the edges. Added the text. Put it all together, and voila! Mush! Looks nice. Won't print. There's this by the GREAT, and I use that word deliberately, Kit Wallace: http://kitwallace.tumblr.com/post/84238290024/adding-text but, for me, it's just not clear. What I don't know about Openscad is a far greater chasm than what I know. So, please, bear that in mind. I'm guessing, if it's to be done at all, in a remotely printable format, my best option might be through Openscad. But, I have no idea how to begin. Anyone? Thanx 12_Days_Dodec_JPG.jpg <http://forum.openscad.org/file/n15409/12_Days_Dodec_JPG.jpg> -- View this message in context: http://forum.openscad.org/Text-on-a-dodecahedron-tp15409.html Sent from the OpenSCAD mailing list archive at Nabble.com.
F
fred
Fri, Jan 1, 2016 10:04 PM

I can't tell you this is the specific answer, but it might be of use. I'm a simpleton when it comes to OpenSCAD, but this set of modules perhaps might be helpful?
https://github.com/brodykenrick/text_on_OpenSCAD

On Friday, January 1, 2016 4:42 PM, unkerjay <unkerjay@centurylink.net> wrote:

Tried using Blender.

It's been a REAL challenge as there doesn't seem to be much
on the subject of text on polyhedra other than by texture,
which, 3D Printed, leaves only the option of sandstone printing.
Not very durable.

Not to mention that it's LARGE and hasn't passed ANY printability
OR repair tests yet. 

As you can see from the image below, it's not that complex.

Tried this:

http://blender.stackexchange.com/questions/28829/set-edge-as-axis-for-surface-rotation

as a starting point.  Thickened the edges.  Added the text.  Put it all
together, and voila!  Mush!

Looks nice.  Won't print.

There's this by the GREAT, and I use that word deliberately,
Kit Wallace:

http://kitwallace.tumblr.com/post/84238290024/adding-text

but, for me, it's just not clear. 

What I don't know about Openscad is a far greater chasm
than what I know.  So, please, bear that in mind.

I'm guessing, if it's to be done at all, in a remotely printable
format, my best option might be through Openscad.  But, I
have no idea how to begin.

Anyone?

Thanx

12_Days_Dodec_JPG.jpg
http://forum.openscad.org/file/n15409/12_Days_Dodec_JPG.jpg 

--
View this message in context: http://forum.openscad.org/Text-on-a-dodecahedron-tp15409.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 can't tell you this is the specific answer, but it might be of use. I'm a simpleton when it comes to OpenSCAD, but this set of modules perhaps might be helpful? https://github.com/brodykenrick/text_on_OpenSCAD On Friday, January 1, 2016 4:42 PM, unkerjay <unkerjay@centurylink.net> wrote: Tried using Blender. It's been a REAL challenge as there doesn't seem to be much on the subject of text on polyhedra other than by texture, which, 3D Printed, leaves only the option of sandstone printing. Not very durable. Not to mention that it's LARGE and hasn't passed ANY printability OR repair tests yet.  As you can see from the image below, it's not that complex. Tried this: http://blender.stackexchange.com/questions/28829/set-edge-as-axis-for-surface-rotation as a starting point.  Thickened the edges.  Added the text.  Put it all together, and voila!  Mush! Looks nice.  Won't print. There's this by the GREAT, and I use that word deliberately, Kit Wallace: http://kitwallace.tumblr.com/post/84238290024/adding-text but, for me, it's just not clear.  What I don't know about Openscad is a far greater chasm than what I know.  So, please, bear that in mind. I'm guessing, if it's to be done at all, in a remotely printable format, my best option might be through Openscad.  But, I have no idea how to begin. Anyone? Thanx 12_Days_Dodec_JPG.jpg <http://forum.openscad.org/file/n15409/12_Days_Dodec_JPG.jpg>  -- View this message in context: http://forum.openscad.org/Text-on-a-dodecahedron-tp15409.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
N
Neon22
Fri, Jan 1, 2016 11:24 PM

I recently "fixed" the "deprecated use of assign statement" in that lib and
my pull request got accepted but I broke the TTB, BTT options he had added.

It works pretty well though and uses the new text() statement.
I need to try to fix that. its all in those nested if conditionals I think.

--
View this message in context: http://forum.openscad.org/Text-on-a-dodecahedron-tp15409p15413.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

I recently "fixed" the "deprecated use of assign statement" in that lib and my pull request got accepted but I broke the TTB, BTT options he had added. It works pretty well though and uses the new text() statement. I need to try to fix that. its all in those nested if conditionals I think. -- View this message in context: http://forum.openscad.org/Text-on-a-dodecahedron-tp15409p15413.html Sent from the OpenSCAD mailing list archive at Nabble.com.
P
Parkinbot
Fri, Jan 1, 2016 11:50 PM

There is a very elegant approach to construct a dodekaeder in OpenSCAD and it
goes hand in hand with putting some text on the sides as well.

http://forum.openscad.org/file/n15414/showcase15.png

Try this code (CGAL rendering works quite well).

strings = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"];

dodekaeder(10);

module dodekaeder(r = 10)
{
w = acos(1/sqrt(5));
rotate([0, 0, 180])
twosides(r, 0);
for(i=[0:4])
rotate([0, -w, i*72])  // tricky!
twosides(r, i+1);
}

module twosides(r=1, i=1)
{
h = r*2.618;
linear_extrude(height = h, twist = 36, center = true) // tricky twist
circle(r, $fn=5);

// text for upper and lower surface
translate([0, 0, h/2])
linear_extrude(height = 1)
text(strings[i],halign = "center", valign = "center");
rotate([0, 180, 0])
translate([0, 0, h/2])
linear_extrude(height = 1)
text(strings[i+6],halign = "center", valign = "center");
}

unkerjay wrote

I'm guessing, if it's to be done at all, in a remotely printable
format, my best option might be through Openscad.  But, I
have no idea how to begin.

Anyone?

  • Rudolf

--
View this message in context: http://forum.openscad.org/Text-on-a-dodecahedron-tp15409p15414.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

There is a very elegant approach to construct a dodekaeder in OpenSCAD and it goes hand in hand with putting some text on the sides as well. <http://forum.openscad.org/file/n15414/showcase15.png> Try this code (CGAL rendering works quite well). > strings = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"]; > > dodekaeder(10); > > module dodekaeder(r = 10) > { > w = acos(1/sqrt(5)); > rotate([0, 0, 180]) > twosides(r, 0); > for(i=[0:4]) > rotate([0, -w, i*72]) // tricky! > twosides(r, i+1); > } > > module twosides(r=1, i=1) > { > h = r*2.618; > linear_extrude(height = h, twist = 36, center = true) // tricky twist > circle(r, $fn=5); > > // text for upper and lower surface > translate([0, 0, h/2]) > linear_extrude(height = 1) > text(strings[i],halign = "center", valign = "center"); > rotate([0, 180, 0]) > translate([0, 0, h/2]) > linear_extrude(height = 1) > text(strings[i+6],halign = "center", valign = "center"); > } unkerjay wrote > I'm guessing, if it's to be done at all, in a remotely printable > format, my best option might be through Openscad. But, I > have no idea how to begin. > > Anyone? - Rudolf -- View this message in context: http://forum.openscad.org/Text-on-a-dodecahedron-tp15409p15414.html Sent from the OpenSCAD mailing list archive at Nabble.com.
N
Neon22
Sat, Jan 2, 2016 2:03 AM

submitted new pull req - rotate on circle and cylinder cases fixed.

--
View this message in context: http://forum.openscad.org/Text-on-a-dodecahedron-tp15409p15416.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

submitted new pull req - rotate on circle and cylinder cases fixed. -- View this message in context: http://forum.openscad.org/Text-on-a-dodecahedron-tp15409p15416.html Sent from the OpenSCAD mailing list archive at Nabble.com.
N
Neon22
Sat, Jan 2, 2016 2:12 AM

To use as a dice and have the numbers opposite each other sum to 13 you'll
need to change to:
strings = ["1", "2", "3", "4", "5", "6.", "12", "11", "10", "9.", "8", "7"];

To make the text a little smaller (default size=10). use the size parameter
(or make the dodec bigger).
E.g.
text(strings[i+6],halign = "center", valign = "center", size=8)

--
View this message in context: http://forum.openscad.org/Text-on-a-dodecahedron-tp15409p15417.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

To use as a dice and have the numbers opposite each other sum to 13 you'll need to change to: strings = ["1", "2", "3", "4", "5", "6.", "12", "11", "10", "9.", "8", "7"]; To make the text a little smaller (default size=10). use the size parameter (or make the dodec bigger). E.g. text(strings[i+6],halign = "center", valign = "center", size=8) -- View this message in context: http://forum.openscad.org/Text-on-a-dodecahedron-tp15409p15417.html Sent from the OpenSCAD mailing list archive at Nabble.com.
U
unkerjay
Sun, Jan 3, 2016 4:36 AM

Here's what worked (sort of).

Thank you SO MUCH for this!

Haven't tried decreasing the text size.

First thing I tried, even before seeing
your reply, was to increase the dodec
size.

How would I do multiple lines of text.

strings = ["Partridge", "2 T-Doves", "3 F-Hens", "4 C-Birds", "5 G-Rings",
"6 Geese", "7 Swans", "8 Maids", "9 Ladies", "10 Lords", "11 Pipers", "12
Drummers"];

dodekaeder(50);

module dodekaeder(r = 50)
{
w = acos(1/sqrt(5));
rotate([0, 0, 180])
twosides(r, 0);
for(i=[0:4])
rotate([0, -w, i*72])  // tricky!
twosides(r, i+1);
}

module twosides(r=1, i=1)
{
h = r*2.618;
linear_extrude(height = h, twist = 36, center = true) // tricky twist
circle(r, $fn=5);

// text for upper and lower surface
translate([0, 0, h/2])
linear_extrude(height = 1)
text(strings[i],halign = "center", valign = "center");
rotate([0, 180, 0])
translate([0, 0, h/2])
linear_extrude(height = 1)
text(strings[i+6],halign = "center", valign = "center");
}

--
View this message in context: http://forum.openscad.org/Text-on-a-dodecahedron-tp15409p15423.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

Here's what worked (sort of). Thank you SO MUCH for this! Haven't tried decreasing the text size. First thing I tried, even before seeing your reply, was to increase the dodec size. How would I do multiple lines of text. strings = ["Partridge", "2 T-Doves", "3 F-Hens", "4 C-Birds", "5 G-Rings", "6 Geese", "7 Swans", "8 Maids", "9 Ladies", "10 Lords", "11 Pipers", "12 Drummers"]; dodekaeder(50); module dodekaeder(r = 50) { w = acos(1/sqrt(5)); rotate([0, 0, 180]) twosides(r, 0); for(i=[0:4]) rotate([0, -w, i*72]) // tricky! twosides(r, i+1); } module twosides(r=1, i=1) { h = r*2.618; linear_extrude(height = h, twist = 36, center = true) // tricky twist circle(r, $fn=5); // text for upper and lower surface translate([0, 0, h/2]) linear_extrude(height = 1) text(strings[i],halign = "center", valign = "center"); rotate([0, 180, 0]) translate([0, 0, h/2]) linear_extrude(height = 1) text(strings[i+6],halign = "center", valign = "center"); } -- View this message in context: http://forum.openscad.org/Text-on-a-dodecahedron-tp15409p15423.html Sent from the OpenSCAD mailing list archive at Nabble.com.
U
unkerjay
Sun, Jan 3, 2016 6:29 AM

Final Version (including text resize):

A little tweaking in Netfabb Basic and
it's good to go!

Thank you!

strings = ["Partridge", "2 T-Doves", "3 F-Hens", "4 C-Birds", "5 G-Rings",
"6 Geese", "12 Drummers","7 Swans", "8 Maids", "9 Ladies", "10 Lords", "11
Pipers"];

dodekaeder(40);

module dodekaeder(r = 40)
{
w = acos(1/sqrt(5));
rotate([0, 0, 180])
twosides(r, 0);
for(i=[0:4])
rotate([0, -w, i*72])  // tricky!
twosides(r, i+1);
}

module twosides(r=1, i=1)
{
h = r*2.618;
linear_extrude(height = h, twist = 36, center = true) // tricky twist
circle(r, $fn=5);

// text for upper and lower surface
translate([0, 0, h/2])
linear_extrude(height = 1)
text(strings[i],halign = "center", valign = "center", size=6);
rotate([0, 180, 0])
translate([0, 0, h/2])
linear_extrude(height = 1)
text(strings[i+6],halign = "center", valign = "center", size=6);
}

--
View this message in context: http://forum.openscad.org/Text-on-a-dodecahedron-tp15409p15425.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

Final Version (including text resize): A little tweaking in Netfabb Basic and it's good to go! Thank you! strings = ["Partridge", "2 T-Doves", "3 F-Hens", "4 C-Birds", "5 G-Rings", "6 Geese", "12 Drummers","7 Swans", "8 Maids", "9 Ladies", "10 Lords", "11 Pipers"]; dodekaeder(40); module dodekaeder(r = 40) { w = acos(1/sqrt(5)); rotate([0, 0, 180]) twosides(r, 0); for(i=[0:4]) rotate([0, -w, i*72]) // tricky! twosides(r, i+1); } module twosides(r=1, i=1) { h = r*2.618; linear_extrude(height = h, twist = 36, center = true) // tricky twist circle(r, $fn=5); // text for upper and lower surface translate([0, 0, h/2]) linear_extrude(height = 1) text(strings[i],halign = "center", valign = "center", size=6); rotate([0, 180, 0]) translate([0, 0, h/2]) linear_extrude(height = 1) text(strings[i+6],halign = "center", valign = "center", size=6); } -- View this message in context: http://forum.openscad.org/Text-on-a-dodecahedron-tp15409p15425.html Sent from the OpenSCAD mailing list archive at Nabble.com.
N
Neon22
Sun, Jan 3, 2016 6:32 AM

You could make the text into lists of two strings, implying two lines.
Then print one under the other using two translate/text statements ?

Or use a more complex method where you parse the text, separating by spaces,
and then scale the whole thing to fit.
But I think you only need a special puropse one-off solution so I'd go with
my first suggestion.

--
View this message in context: http://forum.openscad.org/Text-on-a-dodecahedron-tp15409p15426.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

You could make the text into lists of two strings, implying two lines. Then print one under the other using two translate/text statements ? Or use a more complex method where you parse the text, separating by spaces, and then scale the whole thing to fit. But I think you only need a special puropse one-off solution so I'd go with my first suggestion. -- View this message in context: http://forum.openscad.org/Text-on-a-dodecahedron-tp15409p15426.html Sent from the OpenSCAD mailing list archive at Nabble.com.
N
Neon22
Sun, Jan 3, 2016 6:41 AM

strings = [["Partridge"], ["2","T-Doves"], ["3","F-Hens"], ["4","C-Birds"],
["5","G-Rings"], ["6","Geese"], ["12","Drummers"],["7","Swans"],
["8","Maids"], ["9","Ladies"], ["10","Lords"], ["11","Pipers"]  ];

t_height = 8;

dodekaeder(40);

module dodekaeder(r = 40)
{
w = acos(1/sqrt(5));
rotate([0, 0, 180])
twosides(r, 0);
for(i=[0:4])
rotate([0, -w, i*72])  // tricky!
twosides(r, i+1);
}

module twosides(r=1, i=1)
{
h = r*2.618;
linear_extrude(height = h, twist = 36, center = true) // tricky twist
circle(r, $fn=5);

// text for upper and lower surface
translate([0, t_height, h/2])
linear_extrude(height = 1)
text(strings[i][0],halign = "center", valign = "center", size=t_height);
translate([0, -t_height, h/2])
linear_extrude(height = 1)
text(strings[i][1],halign = "center", valign = "center", size=t_height);
//
rotate([0, 180, 0]) {
translate([0, t_height, h/2])
linear_extrude(height = 1)
text(strings[i+6][0],halign = "center", valign = "center", size=t_height);
translate([0, -t_height, h/2])
linear_extrude(height = 1)
text(strings[i+6][1],halign = "center", valign = "center", size=t_height);
}
}

--
View this message in context: http://forum.openscad.org/Text-on-a-dodecahedron-tp15409p15427.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

strings = [["Partridge"], ["2","T-Doves"], ["3","F-Hens"], ["4","C-Birds"], ["5","G-Rings"], ["6","Geese"], ["12","Drummers"],["7","Swans"], ["8","Maids"], ["9","Ladies"], ["10","Lords"], ["11","Pipers"] ]; t_height = 8; dodekaeder(40); module dodekaeder(r = 40) { w = acos(1/sqrt(5)); rotate([0, 0, 180]) twosides(r, 0); for(i=[0:4]) rotate([0, -w, i*72]) // tricky! twosides(r, i+1); } module twosides(r=1, i=1) { h = r*2.618; linear_extrude(height = h, twist = 36, center = true) // tricky twist circle(r, $fn=5); // text for upper and lower surface translate([0, t_height, h/2]) linear_extrude(height = 1) text(strings[i][0],halign = "center", valign = "center", size=t_height); translate([0, -t_height, h/2]) linear_extrude(height = 1) text(strings[i][1],halign = "center", valign = "center", size=t_height); // rotate([0, 180, 0]) { translate([0, t_height, h/2]) linear_extrude(height = 1) text(strings[i+6][0],halign = "center", valign = "center", size=t_height); translate([0, -t_height, h/2]) linear_extrude(height = 1) text(strings[i+6][1],halign = "center", valign = "center", size=t_height); } } -- View this message in context: http://forum.openscad.org/Text-on-a-dodecahedron-tp15409p15427.html Sent from the OpenSCAD mailing list archive at Nabble.com.