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.
U
unkerjay
Wed, Jan 6, 2016 2:11 PM

Just curious.

Reading up, a little, and wondering.

Would it be possible to embed cr/lf (carriage return / line feed)
or "Enter" in the text (would Unicodes work for this)?

Something like:

"A-U000D-Partridge-U000D-in a-U000D-Pear Tree"

Probably got the syntax off.

Would something like that work?

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

Just curious. Reading up, a little, and wondering. Would it be possible to embed cr/lf (carriage return / line feed) or "Enter" in the text (would Unicodes work for this)? Something like: "A-U000D-Partridge-U000D-in a-U000D-Pear Tree" Probably got the syntax off. Would something like that work? -- View this message in context: http://forum.openscad.org/Text-on-a-dodecahedron-tp15409p15514.html Sent from the OpenSCAD mailing list archive at Nabble.com.
TP
Torsten Paul
Wed, Jan 6, 2016 2:34 PM

On 01/06/2016 03:11 PM, unkerjay wrote:

Would it be possible to embed cr/lf (carriage return / line feed)
or "Enter" in the text (would Unicodes work for this)?

No, right now only the text shaping level is supported (using
the harfbuzz library). This means support for ligatures, script
languages and combining characters but no layouting.

Adding a newline to the text is no problem (e.g. using chr(13))
but it will just render the glyph that's defined in the selected
font, not produce an actual line break. In most cases that will
just be a dummy rectangle, some fonts may have a special glyph.

ciao,
Torsten.

On 01/06/2016 03:11 PM, unkerjay wrote: > Would it be possible to embed cr/lf (carriage return / line feed) > or "Enter" in the text (would Unicodes work for this)? > No, right now only the text shaping level is supported (using the harfbuzz library). This means support for ligatures, script languages and combining characters but no layouting. Adding a newline to the text is no problem (e.g. using chr(13)) but it will just render the glyph that's defined in the selected font, not produce an actual line break. In most cases that will just be a dummy rectangle, some fonts may have a special glyph. ciao, Torsten.
U
unkerjay
Wed, Jan 6, 2016 3:19 PM

In for a penny, in for a pound.

Here's what I'm shooting for.

It sort of works.  Sort of.

Not getting the third line.


strings = [["A Partridge","in a","Pear Tree"], ["2"," Turtle Doves"],
["3","French Hens"], ["4","Calling Birds"],
["5","Golden", "Rings"], ["6","Geese", "a-laying"],
["12","Drummers", "drumming"],["7","Swans", "a-swimming"],
["8","Maids", "a-milking"], ["9","Ladies",
"Dancing"],["10","Lords", "a-leaping"],["11","Pipers Piping"] ];

t_height = 7;

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);
translate([1, -t_height, h/2])
linear_extrude(height = 1)
text(strings[i][2],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);
translate([0, -t_height, h/2])
linear_extrude(height = 1)
text(strings[i+6][2],halign = "center", valign = "center",
size=t_height);
}
}

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

In for a penny, in for a pound. Here's what I'm shooting for. It sort of works. Sort of. Not getting the third line. --- strings = [["A Partridge","in a","Pear Tree"], ["2"," Turtle Doves"], ["3","French Hens"], ["4","Calling Birds"], ["5","Golden", "Rings"], ["6","Geese", "a-laying"], ["12","Drummers", "drumming"],["7","Swans", "a-swimming"], ["8","Maids", "a-milking"], ["9","Ladies", "Dancing"],["10","Lords", "a-leaping"],["11","Pipers Piping"] ]; t_height = 7; 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); translate([1, -t_height, h/2]) linear_extrude(height = 1) text(strings[i][2],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); translate([0, -t_height, h/2]) linear_extrude(height = 1) text(strings[i+6][2],halign = "center", valign = "center", size=t_height); } } -- View this message in context: http://forum.openscad.org/Text-on-a-dodecahedron-tp15409p15516.html Sent from the OpenSCAD mailing list archive at Nabble.com.
DB
David Boyd
Wed, Jan 6, 2016 3:41 PM

Lines 37 and 51 should be -t_height*2.  The 2nd and 3rd lines are
overwriting each other.

On 1/6/16 10:19 AM, unkerjay wrote:

strings = [["A Partridge","in a","Pear Tree"], ["2"," Turtle Doves"],
["3","French Hens"], ["4","Calling Birds"],
["5","Golden", "Rings"], ["6","Geese", "a-laying"],
["12","Drummers", "drumming"],["7","Swans", "a-swimming"],
["8","Maids", "a-milking"], ["9","Ladies",
"Dancing"],["10","Lords", "a-leaping"],["11","Pipers Piping"] ];

t_height = 7;

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);
translate([1, -t_height, h/2])
linear_extrude(height = 1)
text(strings[i][2],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);
translate([0, -t_height, h/2])
linear_extrude(height = 1)
text(strings[i+6][2],halign = "center", valign = "center",
size=t_height);
}
}

--
========= mailto:david.boyd@usstem.org ============
David W. Boyd
7371 Atlas Walk Way, #242
Gainesville, Va 20155
fax:    +1-703-656-4829
cell:    +1-703-402-7908
============== http://usstem.org/ ============
First Robotic Mentor - FRC, FTC - www.iliterobotics.org
Board Member- USSTEM Foundation - www.usstem.org
Program Assistant - USFIRST - www.usfirst.org

The information contained in this message may be privileged
and/or confidential and protected from disclosure.
If the reader of this message is not the intended recipient
or an employee or agent responsible for delivering this message
to the intended recipient, you are hereby notified that any
dissemination, distribution or copying of this communication
is strictly prohibited.  If you have received this communication
in error, please notify the sender immediately by replying to
this message and deleting the material from any computer.

Lines 37 and 51 should be -t_height*2. The 2nd and 3rd lines are overwriting each other. On 1/6/16 10:19 AM, unkerjay wrote: > strings = [["A Partridge","in a","Pear Tree"], ["2"," Turtle Doves"], > ["3","French Hens"], ["4","Calling Birds"], > ["5","Golden", "Rings"], ["6","Geese", "a-laying"], > ["12","Drummers", "drumming"],["7","Swans", "a-swimming"], > ["8","Maids", "a-milking"], ["9","Ladies", > "Dancing"],["10","Lords", "a-leaping"],["11","Pipers Piping"] ]; > > t_height = 7; > > 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); > translate([1, -t_height, h/2]) > linear_extrude(height = 1) > text(strings[i][2],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); > translate([0, -t_height, h/2]) > linear_extrude(height = 1) > text(strings[i+6][2],halign = "center", valign = "center", > size=t_height); > } > } > -- ========= mailto:david.boyd@usstem.org ============ David W. Boyd 7371 Atlas Walk Way, #242 Gainesville, Va 20155 fax: +1-703-656-4829 cell: +1-703-402-7908 ============== http://usstem.org/ ============ First Robotic Mentor - FRC, FTC - www.iliterobotics.org Board Member- USSTEM Foundation - www.usstem.org Program Assistant - USFIRST - www.usfirst.org The information contained in this message may be privileged and/or confidential and protected from disclosure. If the reader of this message is not the intended recipient or an employee or agent responsible for delivering this message to the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please notify the sender immediately by replying to this message and deleting the material from any computer.
P
Parkinbot
Wed, Jan 6, 2016 4:04 PM

It is always better to do a bit more structured programming to get more of
it. This code allowes for any number of centered lines ...

strings = [["A Partridge","in a","Pear Tree", "and a", "Unicorn"], ["2","
Turtle Doves"],
["3","French Hens"], ["4","Calling Birds"],
["5","Golden", "Rings"], ["6","Geese", "a-laying"],
["12","Drummers", "drumming"],["7","Swans", "a-swimming"],
["8","Maids", "a-milking"], ["9","Ladies",
"Dancing"],["10","Lords", "a-leaping"],["11","Pipers Piping"] ];

t_height = 7;

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+1])
multilinetext(strings[i]);
rotate([0, 180, 0])
translate([0, 0, h/2])
multilinetext(strings[i+6]);
}

module multilinetext(t)
for(i=[0:len(t)-1])
translate([0, (len(t)/2-i)*t_height, 0])
linear_extrude(height = 1)
text(t[i],halign = "center", valign = "center", size=t_height);

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

It is always better to do a bit more structured programming to get more of it. This code allowes for any number of centered lines ... > strings = [["A Partridge","in a","Pear Tree", "and a", "Unicorn"], ["2"," > Turtle Doves"], > ["3","French Hens"], ["4","Calling Birds"], > ["5","Golden", "Rings"], ["6","Geese", "a-laying"], > ["12","Drummers", "drumming"],["7","Swans", "a-swimming"], > ["8","Maids", "a-milking"], ["9","Ladies", > "Dancing"],["10","Lords", "a-leaping"],["11","Pipers Piping"] ]; > > t_height = 7; > > 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+1]) > multilinetext(strings[i]); > rotate([0, 180, 0]) > translate([0, 0, h/2]) > multilinetext(strings[i+6]); > } > > module multilinetext(t) > for(i=[0:len(t)-1]) > translate([0, (len(t)/2-i)*t_height, 0]) > linear_extrude(height = 1) > text(t[i],halign = "center", valign = "center", size=t_height); -- View this message in context: http://forum.openscad.org/Text-on-a-dodecahedron-tp15409p15518.html Sent from the OpenSCAD mailing list archive at Nabble.com.
U
unkerjay
Wed, Jan 6, 2016 4:39 PM

When I look at the code in my console, it ends at line 47.

So, not sure which lines you're referring to.

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

When I look at the code in my console, it ends at line 47. So, not sure which lines you're referring to. -- View this message in context: http://forum.openscad.org/Text-on-a-dodecahedron-tp15409p15519.html Sent from the OpenSCAD mailing list archive at Nabble.com.
U
unkerjay
Wed, Jan 6, 2016 4:40 PM

Code works.

How to adjust the line spacing?

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

Code works. How to adjust the line spacing? -- View this message in context: http://forum.openscad.org/Text-on-a-dodecahedron-tp15409p15520.html Sent from the OpenSCAD mailing list archive at Nabble.com.
U
unkerjay
Wed, Jan 6, 2016 4:46 PM

If THIS:

      translate([0, -t_height, h/2]) 

is the line you're referring to,

I changed that.

Lines 2 and 3 aren't overwriting each other anymore.

But, I now get no line 3.

So, one problem solved, I think.

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

If THIS: translate([0, -t_height, h/2]) is the line you're referring to, I changed that. Lines 2 and 3 aren't overwriting each other anymore. But, I now get no line 3. So, one problem solved, I think. -- View this message in context: http://forum.openscad.org/Text-on-a-dodecahedron-tp15409p15521.html Sent from the OpenSCAD mailing list archive at Nabble.com.
U
unkerjay
Wed, Jan 6, 2016 5:02 PM

Figured it out.

  translate([0, (len(t)/2-i)*t_height*1.5, 0]) 

Thanks.

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

Figured it out. translate([0, (len(t)/2-i)*t_height*1.5, 0]) Thanks. -- View this message in context: http://forum.openscad.org/Text-on-a-dodecahedron-tp15409p15522.html Sent from the OpenSCAD mailing list archive at Nabble.com.
U
unkerjay
Wed, Jan 6, 2016 5:03 PM

P.S.

Nice touch "Unicorn"

:)

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

P.S. Nice touch "Unicorn" :) -- View this message in context: http://forum.openscad.org/Text-on-a-dodecahedron-tp15409p15523.html Sent from the OpenSCAD mailing list archive at Nabble.com.
U
unkerjay
Wed, Jan 6, 2016 5:07 PM

Working code - so far:

strings = [["A Partridge","in a","Pear Tree"], ["2"," Turtle Doves"],
["3","French Hens"], ["4","Calling Birds"],
["5","Golden", "Rings"], ["6","Geese", "a-laying"],
["12","Drummers", "Drumming"],["7","Swans", "a-swimming"],
["8","Maids", "a-milking"], ["9","Ladies",
"Dancing"],["10","Lords", "a-leaping"],["11","Pipers","Piping"] ];

t_height = 7;

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+1])
multilinetext(strings[i]);
rotate([0, 180, 0])
translate([0, 0, h/2])
multilinetext(strings[i+6]);
}

module multilinetext(t)
for(i=[0:len(t)-1])
translate([0, (len(t)/2-i)t_height1.5, 0])  //Note the "1.5" = Line
Spacing
linear_extrude(height = 1.5)
text(t[i],halign = "center", valign = "center", size=t_height);

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

Working code - so far: strings = [["A Partridge","in a","Pear Tree"], ["2"," Turtle Doves"], ["3","French Hens"], ["4","Calling Birds"], ["5","Golden", "Rings"], ["6","Geese", "a-laying"], ["12","Drummers", "Drumming"],["7","Swans", "a-swimming"], ["8","Maids", "a-milking"], ["9","Ladies", "Dancing"],["10","Lords", "a-leaping"],["11","Pipers","Piping"] ]; t_height = 7; 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+1]) multilinetext(strings[i]); rotate([0, 180, 0]) translate([0, 0, h/2]) multilinetext(strings[i+6]); } module multilinetext(t) for(i=[0:len(t)-1]) translate([0, (len(t)/2-i)*t_height*1.5, 0]) //Note the "1.5" = Line Spacing linear_extrude(height = 1.5) text(t[i],halign = "center", valign = "center", size=t_height); -- View this message in context: http://forum.openscad.org/Text-on-a-dodecahedron-tp15409p15524.html Sent from the OpenSCAD mailing list archive at Nabble.com.
U
unkerjay
Wed, Jan 6, 2016 5:13 PM

And to be clear,  thank you ALL for your input.

MUCH appreciated.

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

And to be clear, thank you ALL for your input. MUCH appreciated. -- View this message in context: http://forum.openscad.org/Text-on-a-dodecahedron-tp15409p15525.html Sent from the OpenSCAD mailing list archive at Nabble.com.
U
unkerjay
Thu, Jan 7, 2016 2:48 AM

Followup:

I've spent the better part of my day trying to get this object up to
printability.

I've (in Openscad):

Adjusted the extrude to be sure it extends below as well as above
the surface.

rearranged the text so that it fits within the borders of its respective
face

adjusted the size for the same reason

(in Blender):

deleted, recreated, (and where necessary) merged faces for
a more unified model.

thickened the overall model

(in Netfabb Basic and Online):

attempted to repair it

Sculpteo:

90 objects!!!

Shapeways:

Errors:

Bounding Box
Wall Thickness
Loose Shells

It looks GREAT!

Doesn't print.

I think I could probably create
a dodec out of wood and burn
the text onto the surface sooner
than I'll get this up to printability.

The more this happens the less I
am persuaded that 3D printing is
yet a viable alternative for anything
but SMALL, SIMPLE models.

A Soma cube costs $ 35 to 3d print
the parts.

Out of wood?

$ 3

Check Amazon.

Check Shapeways.

Don't get me wrong.  A good amount
of what I try to create PRINTS.

Most of it TEXTLESS.  ALL of it
SMALL.  And at that, $ 5 - $ 10
a pop.  And that's from Shapeways.
Door to door.  3d hubs - pick it up
myself.  Last I checked (few months
ago) 4 - 6 times the cost of Shapeways
door to door.

Then, there's what's passed Printability
checks at Shapeways that people with
their own printers for various reasons
just have problems with.

Sure I could do it with a texture.  But
that really kind of defeats the point.  And
as I said, at the outset.  The only option then
is Sandstone which really isn't very durable.

Arrggggh!

Oh the time I've saved with technology.

Thanx again everyone for the help.

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

Followup: I've spent the better part of my day trying to get this object up to printability. I've (in Openscad): Adjusted the extrude to be sure it extends below as well as above the surface. rearranged the text so that it fits within the borders of its respective face adjusted the size for the same reason (in Blender): deleted, recreated, (and where necessary) merged faces for a more unified model. thickened the overall model (in Netfabb Basic and Online): attempted to repair it Sculpteo: 90 objects!!! Shapeways: Errors: Bounding Box Wall Thickness Loose Shells It looks GREAT! Doesn't print. I think I could probably create a dodec out of wood and burn the text onto the surface sooner than I'll get this up to printability. The more this happens the less I am persuaded that 3D printing is yet a viable alternative for anything but SMALL, SIMPLE models. A Soma cube costs $ 35 to 3d print the parts. Out of wood? $ 3 Check Amazon. Check Shapeways. Don't get me wrong. A good amount of what I try to create PRINTS. Most of it TEXTLESS. ALL of it SMALL. And at that, $ 5 - $ 10 a pop. And that's from Shapeways. Door to door. 3d hubs - pick it up myself. Last I checked (few months ago) 4 - 6 times the cost of Shapeways door to door. Then, there's what's passed Printability checks at Shapeways that people with their own printers for various reasons just have problems with. Sure I could do it with a texture. But that really kind of defeats the point. And as I said, at the outset. The only option then is Sandstone which really isn't very durable. Arrggggh! Oh the time I've saved with technology. Thanx again everyone for the help. -- View this message in context: http://forum.openscad.org/Text-on-a-dodecahedron-tp15409p15530.html Sent from the OpenSCAD mailing list archive at Nabble.com.
N
Neon22
Thu, Jan 7, 2016 6:26 AM

looking along an edge I can see the text is off the surface.
http://forum.openscad.org/file/n15532/dodec-02_001304.png
I changed +1 to -Delta where Delta = 0.1

translate([0, 0, h/2-Delta])
multilinetext(strings[i]);
rotate([0, 180, 0])
translate([0, 0, h/2-Delta])
multilinetext(strings[i+6]);

Now the text sits just beow the surface and does not collide.

If you want the font to be bolder then choose a bold font
The cheatsheet is a fount of knowledge:

  • http://www.openscad.org/cheatsheet/
    Here under text you can see help which indicates you can find the fonts on
    your system by looking under Help/Font List on menu.
    On my machine I choose "Verdana:style=Bold" but you might have different
    fonts on yours and you'd need to check.
    I would probably use a bigger font size for the first lline (when its a
    number).

My code looks like:
strings = [["A Partridge","in a","Pear Tree"], ["2"," Turtle Doves"],
["3","French Hens"], ["4","Calling Birds"],
["5","Golden", "Rings"], ["6","Geese", "a-laying"],
["12","Drummers", "Drumming"],["7","Swans", "a-swimming"],
["8","Maids", "a-milking"], ["9","Ladies","Dancing"],
["10","Lords", "a-leaping"],["11","Pipers","Piping"]
];

t_size = 6;          // height of text
t_spacing = 1.5;  // spacing between lines
t_height = 1.5;    // extruded this tall
myfont = "Verdana:style=Bold";
Delta = 0.1;        // used to make sure interpenetrated

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-Delta])
multilinetext(strings[i]);
rotate([0, 180, 0])
translate([0, 0, h/2-Delta])
multilinetext(strings[i+6]);
}

module multilinetext(t, spacing=t_spacing)
for(i=[0:len(t)-1])
translate([0, (len(t)/2-i)t_sizespacing, 0])  //Note the "1.5" = Line
Spacing
linear_extrude(height = t_height)
text(t[i],halign = "center", valign = "center",
size=t_size,font=myfont);

The End result - when rendered looks like this (took quite a while to render
with all that text)
http://forum.openscad.org/file/n15532/dodec-02_001306.png

and when exported in an STL is a single object with no gaps or holes, ready
to print.
This object is about 100mm high, 7MB, 18000 faces.
http://forum.openscad.org/file/n15532/dodec_02_001305.png

Printing is tricky because one side has to face down and it has text on it
and will need supports.
To simplify this, consider splitting it into two halves (using difference
and a big cube) and then gluing the two prints together.

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

looking along an edge I can see the text is off the surface. <http://forum.openscad.org/file/n15532/dodec-02_001304.png> I changed +1 to -Delta where Delta = 0.1 translate([0, 0, h/2-Delta]) multilinetext(strings[i]); rotate([0, 180, 0]) translate([0, 0, h/2-Delta]) multilinetext(strings[i+6]); Now the text sits just beow the surface and does not collide. If you want the font to be bolder then choose a bold font The cheatsheet is a fount of knowledge: - http://www.openscad.org/cheatsheet/ Here under text you can see help which indicates you can find the fonts on your system by looking under Help/Font List on menu. On my machine I choose "Verdana:style=Bold" but you might have different fonts on yours and you'd need to check. I would probably use a bigger font size for the first lline (when its a number). My code looks like: strings = [["A Partridge","in a","Pear Tree"], ["2"," Turtle Doves"], ["3","French Hens"], ["4","Calling Birds"], ["5","Golden", "Rings"], ["6","Geese", "a-laying"], ["12","Drummers", "Drumming"],["7","Swans", "a-swimming"], ["8","Maids", "a-milking"], ["9","Ladies","Dancing"], ["10","Lords", "a-leaping"],["11","Pipers","Piping"] ]; t_size = 6; // height of text t_spacing = 1.5; // spacing between lines t_height = 1.5; // extruded this tall myfont = "Verdana:style=Bold"; Delta = 0.1; // used to make sure interpenetrated 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-Delta]) multilinetext(strings[i]); rotate([0, 180, 0]) translate([0, 0, h/2-Delta]) multilinetext(strings[i+6]); } module multilinetext(t, spacing=t_spacing) for(i=[0:len(t)-1]) translate([0, (len(t)/2-i)*t_size*spacing, 0]) //Note the "1.5" = Line Spacing linear_extrude(height = t_height) text(t[i],halign = "center", valign = "center", size=t_size,font=myfont); The End result - when rendered looks like this (took quite a while to render with all that text) <http://forum.openscad.org/file/n15532/dodec-02_001306.png> and when exported in an STL is a single object with no gaps or holes, ready to print. This object is about 100mm high, 7MB, 18000 faces. <http://forum.openscad.org/file/n15532/dodec_02_001305.png> Printing is tricky because one side has to face down and it has text on it and will need supports. To simplify this, consider splitting it into two halves (using difference and a big cube) and then gluing the two prints together. -- View this message in context: http://forum.openscad.org/Text-on-a-dodecahedron-tp15409p15532.html Sent from the OpenSCAD mailing list archive at Nabble.com.
U
unkerjay
Thu, Jan 7, 2016 10:21 AM

Everything you mention except the splitting it in two, I saw and attempted
to address.

I did everything I knew to do, which leaves room, since there's a BIG gap
in what I know.

It looked printable.  It looked like it was on AND below the surface -
connected to the base.

So much it seems depends on having the right font, used in the right
way.

Fonts, it seems, were initially designed for / optimized for print on
the page - PAPER.

Now there's the possibiility of 3D printing, different technology, different
methods and materials, and fonts (I've noticed) have to be retooled,
redesigned (and have been to a degree) for these new methods and
materials.

It explains the physical, visual histrionics (as you showed) of attaching
text to a model.

I'll take a look again.

I'm learning a whole new vocabulary around this:

Manifold
Watertight
Connected
Bounding Box
Wall Thickness
Loose Shells

All the different things that are either done right or that get in
the way of printing.

It suggests to me that 3D printing is still very much in its infancy.

There are still significant limitations and obstacles.

Just as an aside, I recently watched a tv news episode which showed
that the lion's share of glasses frames are coming out of Italy.  Which,
economics 101 means (monopoly (or thereabouts), control the supply,
you control the cost.  There's already a demand.

Now if there's a project SCREAMING for a 3D printing solution, it's
THAT one.  I think it'll happen, and, when it does, kiss monopoly
(or thereabouts) good-bye.

So, I'm not sunk on the promise of 3D printing.

BUT, I sure am frustrated.

Thanx

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

Everything you mention except the splitting it in two, I saw and attempted to address. I did everything I knew to do, which leaves room, since there's a BIG gap in what I know. It looked printable. It looked like it was on AND below the surface - connected to the base. So much it seems depends on having the right font, used in the right way. Fonts, it seems, were initially designed for / optimized for print on the page - PAPER. Now there's the possibiility of 3D printing, different technology, different methods and materials, and fonts (I've noticed) have to be retooled, redesigned (and have been to a degree) for these new methods and materials. It explains the physical, visual histrionics (as you showed) of attaching text to a model. I'll take a look again. I'm learning a whole new vocabulary around this: Manifold Watertight Connected Bounding Box Wall Thickness Loose Shells All the different things that are either done right or that get in the way of printing. It suggests to me that 3D printing is still very much in its infancy. There are still significant limitations and obstacles. Just as an aside, I recently watched a tv news episode which showed that the lion's share of glasses frames are coming out of Italy. Which, economics 101 means (monopoly (or thereabouts), control the supply, you control the cost. There's already a demand. Now if there's a project SCREAMING for a 3D printing solution, it's THAT one. I think it'll happen, and, when it does, kiss monopoly (or thereabouts) good-bye. So, I'm not sunk on the promise of 3D printing. BUT, I sure am frustrated. Thanx -- View this message in context: http://forum.openscad.org/Text-on-a-dodecahedron-tp15409p15535.html Sent from the OpenSCAD mailing list archive at Nabble.com.
U
unkerjay
Thu, Jan 7, 2016 10:30 AM

Also, thank you for listing code that works.

My first impulse is cut and paste.

So, if it's a snippet of code that requires
something not readily apparent or some
condition or know-how to work, I'm at
a loss.

I worked tech support for PCs.  I use Linux
at home (Linux Mint). I supported Windows
PCs.  The fact that I work with OpenSCAD,
Blender, Inkscape, and lately GIMP put me
further into the Geek category as well as
the disproportionate amount of time I spend
following the doings of Kit Wallace on Polyhedrons
(not exactly table talk at most tables).

I'm not a stranger to scripting, just to OpenSCAD.

Give me a working example and I can figure it
out.  I can learn from it.

It's not enough that it "works for you".

And I know I've got to bring SOMETHING to the
table.

I'm working on doing my part.

And I appreciate your assistance - VERY much.

Thank you - ALL.

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

Also, thank you for listing code that works. My first impulse is cut and paste. So, if it's a snippet of code that requires something not readily apparent or some condition or know-how to work, I'm at a loss. I worked tech support for PCs. I use Linux at home (Linux Mint). I supported Windows PCs. The fact that I work with OpenSCAD, Blender, Inkscape, and lately GIMP put me further into the Geek category as well as the disproportionate amount of time I spend following the doings of Kit Wallace on Polyhedrons (not exactly table talk at most tables). I'm not a stranger to scripting, just to OpenSCAD. Give me a working example and I can figure it out. I can learn from it. It's not enough that it "works for you". And I know I've got to bring SOMETHING to the table. I'm working on doing my part. And I appreciate your assistance - VERY much. Thank you - ALL. -- View this message in context: http://forum.openscad.org/Text-on-a-dodecahedron-tp15409p15536.html Sent from the OpenSCAD mailing list archive at Nabble.com.
U
unkerjay
Thu, Jan 7, 2016 3:03 PM

The fun I've been having:

Shapeways - "Fixed"
http://forum.openscad.org/file/n15538/Shapeways_FIXED_PNG.png

Solidify (or Alt-S - doesn't matter which) - Blender
http://forum.openscad.org/file/n15538/Solidify_or_Alt-S_Blender_FIXED_PNG.png

Alt-S - Blender
http://forum.openscad.org/file/n15538/Alt_S_Blender_FIXED_PNG.png

NetFabb Basic - FIXED - in Shapeways
http://forum.openscad.org/file/n15538/NetFabb_Basic_FIXED_PNG.png

NetFabb Online - FIXED (Looks Good)
http://forum.openscad.org/file/n15538/NetFabb_Online_FIXED_PNG.png

As I said (LOOKED Good) - Wall Thickness Issues
http://forum.openscad.org/file/n15538/Meshlab_FIXED2_PNG.png

Wall Thickness - How bad is it?
http://forum.openscad.org/file/n15538/Shapeways_Wall_Thickness_PNG.png

After the "Fix"
http://forum.openscad.org/file/n15538/Shapeways_Wall_Thickness_FIXED_PNG.png

Last try - Meshlab (From Openscad - User Manual):
https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/STL_Import_and_Export

"In order to clean the STL file, you have the following options:

  • use http://wiki.netfabb.com/Semi-Automatic_Repair_Options . This will
    repair the holes but not the self-intersections.

  • use netfabb basic. This free software doesnt have the option to close
    holes nor can it fix the self-intersections

  • use MeshLab, This free software can fix all the issues

Using MeshLab, you can do:

  • Render - Show non Manif Edges

  • Render - Show non Manif Vertices

  • if found, use Filters - Selection - Select non Manifold Edges or Select
    non Manifold Vertices - Apply - Close. Then click button 'Delete the current
    set of selected vertices...' or check
    http://www.youtube.com/watch?v=oDx0Tgy0UHo for an instruction video. The
    screen should show "0 non manifold edges", "0 non manifold vertices"

Next, you can click the icon 'Fill Hole', select all the holes and click
Fill and then Accept. You might have to redo this action a few times.

Use File - Export Mesh to save the STL."

Meshlab - "Fixed" All well and good
http://forum.openscad.org/file/n15538/Meshlab_FIXED_PNG.png

Meshlab - Not so good after all
http://forum.openscad.org/file/n15538/Meshlab_Shapeways_PNG.png

When Uploaded to Shapeways without any modifications whatsoever, it printed
fine
at 5.13 in.  Small detail: $ 405.57 (about 130 mm / 13 cm)

So, I figured I'd rescale it to about 55 mm (little less than half the
size).

That's when the problems started.

Price was right.

Printability wasn't.

So, there you have it.

Not working so far.

Valiant effort?

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

The fun I've been having: Shapeways - "Fixed" <http://forum.openscad.org/file/n15538/Shapeways_FIXED_PNG.png> Solidify (or Alt-S - doesn't matter which) - Blender <http://forum.openscad.org/file/n15538/Solidify_or_Alt-S_Blender_FIXED_PNG.png> Alt-S - Blender <http://forum.openscad.org/file/n15538/Alt_S_Blender_FIXED_PNG.png> NetFabb Basic - FIXED - in Shapeways <http://forum.openscad.org/file/n15538/NetFabb_Basic_FIXED_PNG.png> NetFabb Online - FIXED (Looks Good) <http://forum.openscad.org/file/n15538/NetFabb_Online_FIXED_PNG.png> As I said (LOOKED Good) - Wall Thickness Issues <http://forum.openscad.org/file/n15538/Meshlab_FIXED2_PNG.png> Wall Thickness - How bad is it? <http://forum.openscad.org/file/n15538/Shapeways_Wall_Thickness_PNG.png> After the "Fix" <http://forum.openscad.org/file/n15538/Shapeways_Wall_Thickness_FIXED_PNG.png> Last try - Meshlab (From Openscad - User Manual): https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/STL_Import_and_Export "In order to clean the STL file, you have the following options: - use http://wiki.netfabb.com/Semi-Automatic_Repair_Options . This will repair the holes but not the self-intersections. - use netfabb basic. This free software doesnt have the option to close holes nor can it fix the self-intersections - use MeshLab, This free software can fix all the issues Using MeshLab, you can do: - Render - Show non Manif Edges - Render - Show non Manif Vertices - if found, use Filters - Selection - Select non Manifold Edges or Select non Manifold Vertices - Apply - Close. Then click button 'Delete the current set of selected vertices...' or check http://www.youtube.com/watch?v=oDx0Tgy0UHo for an instruction video. The screen should show "0 non manifold edges", "0 non manifold vertices" Next, you can click the icon 'Fill Hole', select all the holes and click Fill and then Accept. You might have to redo this action a few times. Use File - Export Mesh to save the STL." Meshlab - "Fixed" All well and good <http://forum.openscad.org/file/n15538/Meshlab_FIXED_PNG.png> Meshlab - Not so good after all <http://forum.openscad.org/file/n15538/Meshlab_Shapeways_PNG.png> When Uploaded to Shapeways without any modifications whatsoever, it printed fine at 5.13 in. Small detail: $ 405.57 (about 130 mm / 13 cm) So, I figured I'd rescale it to about 55 mm (little less than half the size). That's when the problems started. Price was right. Printability wasn't. So, there you have it. Not working so far. Valiant effort? -- View this message in context: http://forum.openscad.org/Text-on-a-dodecahedron-tp15409p15538.html Sent from the OpenSCAD mailing list archive at Nabble.com.
N
Neon22
Thu, Jan 7, 2016 7:54 PM

@unkerjay you're doing yeoman's work there. wish it was easier :(

I tried to make as few changes as possible so as to illustrate what I did.
It is clear there are still some problems on your end.
Most critical one is the font seems to not be joining up properly - or at
least that's how I interpret what I'm seeing in your screenshots. I'm
checking that on my end to make sure that's what it is.

The other problem is the fine detail in the thickness of the lettering. When
the 3D print software slices the object into rings, it has a lower limit on
how small a movement it can make. This is related to the physical printer
limitations and to the layer height of each of these slices. If they are too
small then the printer can't resolve them as separate elements.

The green shapeways file looks like its rounded everything - this might be
because the detail is too fine for sharp edges - but I don't know what
they're really doing.

The Blender fix. Manual is best IMHO. some helpers here:

The shapeways thin wall highlighting seems to be indicating the feature is
too fine for the slicer to resolve and therefore print. At 55mm overall
size, the text lines are just too thin.
The only way to reasonably fix this is to use a thicker font (bold?) or
scale the object up.
This is why I parameterised the font, text height, and interline spacing at
the top of the file - for easy adjustment.

I suggest you first set the physical size you want to print the object for.
Then set the font as large and as thick(bold) as possible, possibly make
another matching array of font heights for each line (because partridge line
has no number) to make it easy to set the numeric text bigger.

Then export and check in Blender for non-manifioldness - which is easy to
see and very clearly illustrates if object is watertight.
Then - rather than fix the problem in Blender - go back and adjust the
openscad script until its manifold in Blender.
Then go onto Shapeways and see how much it costs. I think they use a powder
tub system(SLS?) so no support structure so you don't need to cut in half.
https://www.shapeways.com/tutorials/design_rules_for_3d_printing
But if you use a different filamant based service - I'd cut it into two
objects, print and glue.

Good luck

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

@unkerjay you're doing yeoman's work there. wish it was easier :( I tried to make as few changes as possible so as to illustrate what I did. It is clear there are still some problems on your end. Most critical one is the font seems to not be joining up properly - or at least that's how I interpret what I'm seeing in your screenshots. I'm checking that on my end to make sure that's what it is. The other problem is the fine detail in the thickness of the lettering. When the 3D print software slices the object into rings, it has a lower limit on how small a movement it can make. This is related to the physical printer limitations and to the layer height of each of these slices. If they are too small then the printer can't resolve them as separate elements. The green shapeways file looks like its rounded everything - this might be because the detail is too fine for sharp edges - but I don't know what they're really doing. The Blender fix. Manual is best IMHO. some helpers here: - "select non-manifold edges" in selection menu so you can see wher ethe cracks are. - https://www.youtube.com/watch?v=41SzwLJf-oc 4 mins - no sound - https://i.materialise.com/blog/3d-printing-with-blender 10 mins - pretty clear but does not fix non-manifold The shapeways thin wall highlighting seems to be indicating the feature is too fine for the slicer to resolve and therefore print. At 55mm overall size, the text lines are just too thin. The only way to reasonably fix this is to use a thicker font (bold?) or scale the object up. This is why I parameterised the font, text height, and interline spacing at the top of the file - for easy adjustment. I suggest you first set the physical size you want to print the object for. Then set the font as large and as thick(bold) as possible, possibly make another matching array of font heights for each line (because partridge line has no number) to make it easy to set the numeric text bigger. Then export and check in Blender for non-manifioldness - which is easy to see and very clearly illustrates if object is watertight. Then - rather than fix the problem in Blender - go back and adjust the openscad script until its manifold in Blender. Then go onto Shapeways and see how much it costs. I think they use a powder tub system(SLS?) so no support structure so you don't need to cut in half. https://www.shapeways.com/tutorials/design_rules_for_3d_printing But if you use a different filamant based service - I'd cut it into two objects, print and glue. Good luck -- View this message in context: http://forum.openscad.org/Text-on-a-dodecahedron-tp15409p15548.html Sent from the OpenSCAD mailing list archive at Nabble.com.
DM
doug moen
Thu, Jan 7, 2016 8:14 PM

So you've got a working printable model, but Shapeways wants $400? Maybe
you should find a cheaper service. I've looked around a bit, and Shapeways
can charge 10x what a Chinese service charges. Not tried any of them yet.
Or check out your local brick+mortar 3D printshop, or your local
makerspace/fablab.

On 7 January 2016 at 10:03, unkerjay unkerjay@centurylink.net wrote:

The fun I've been having:

Shapeways - "Fixed"
http://forum.openscad.org/file/n15538/Shapeways_FIXED_PNG.png

Solidify (or Alt-S - doesn't matter which) - Blender
<
http://forum.openscad.org/file/n15538/Solidify_or_Alt-S_Blender_FIXED_PNG.png

Last try - Meshlab (From Openscad - User Manual):
https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/STL_Import_and_Export

"In order to clean the STL file, you have the following options:

  • use http://wiki.netfabb.com/Semi-Automatic_Repair_Options . This will
    repair the holes but not the self-intersections.

  • use netfabb basic. This free software doesnt have the option to close
    holes nor can it fix the self-intersections

  • use MeshLab, This free software can fix all the issues

Using MeshLab, you can do:

  • Render - Show non Manif Edges

  • Render - Show non Manif Vertices

  • if found, use Filters - Selection - Select non Manifold Edges or Select
    non Manifold Vertices - Apply - Close. Then click button 'Delete the
    current
    set of selected vertices...' or check
    http://www.youtube.com/watch?v=oDx0Tgy0UHo for an instruction video. The
    screen should show "0 non manifold edges", "0 non manifold vertices"

Next, you can click the icon 'Fill Hole', select all the holes and click
Fill and then Accept. You might have to redo this action a few times.

Use File - Export Mesh to save the STL."

Meshlab - "Fixed" All well and good
http://forum.openscad.org/file/n15538/Meshlab_FIXED_PNG.png

Meshlab - Not so good after all
http://forum.openscad.org/file/n15538/Meshlab_Shapeways_PNG.png

When Uploaded to Shapeways without any modifications whatsoever, it printed
fine
at 5.13 in.  Small detail: $ 405.57 (about 130 mm / 13 cm)

So, I figured I'd rescale it to about 55 mm (little less than half the
size).

That's when the problems started.

Price was right.

Printability wasn't.

So, there you have it.

Not working so far.

Valiant effort?

--
View this message in context:
http://forum.openscad.org/Text-on-a-dodecahedron-tp15409p15538.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

So you've got a working printable model, but Shapeways wants $400? Maybe you should find a cheaper service. I've looked around a bit, and Shapeways can charge 10x what a Chinese service charges. Not tried any of them yet. Or check out your local brick+mortar 3D printshop, or your local makerspace/fablab. On 7 January 2016 at 10:03, unkerjay <unkerjay@centurylink.net> wrote: > The fun I've been having: > > Shapeways - "Fixed" > <http://forum.openscad.org/file/n15538/Shapeways_FIXED_PNG.png> > > Solidify (or Alt-S - doesn't matter which) - Blender > < > http://forum.openscad.org/file/n15538/Solidify_or_Alt-S_Blender_FIXED_PNG.png > > > > Alt-S - Blender > <http://forum.openscad.org/file/n15538/Alt_S_Blender_FIXED_PNG.png> > > NetFabb Basic - FIXED - in Shapeways > <http://forum.openscad.org/file/n15538/NetFabb_Basic_FIXED_PNG.png> > > NetFabb Online - FIXED (Looks Good) > <http://forum.openscad.org/file/n15538/NetFabb_Online_FIXED_PNG.png> > > As I said (LOOKED Good) - Wall Thickness Issues > <http://forum.openscad.org/file/n15538/Meshlab_FIXED2_PNG.png> > > Wall Thickness - How bad is it? > <http://forum.openscad.org/file/n15538/Shapeways_Wall_Thickness_PNG.png> > > After the "Fix" > < > http://forum.openscad.org/file/n15538/Shapeways_Wall_Thickness_FIXED_PNG.png > > > > Last try - Meshlab (From Openscad - User Manual): > https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/STL_Import_and_Export > > "In order to clean the STL file, you have the following options: > > - use http://wiki.netfabb.com/Semi-Automatic_Repair_Options . This will > repair the holes but not the self-intersections. > > - use netfabb basic. This free software doesnt have the option to close > holes nor can it fix the self-intersections > > - use MeshLab, This free software can fix all the issues > > > Using MeshLab, you can do: > > - Render - Show non Manif Edges > > - Render - Show non Manif Vertices > > - if found, use Filters - Selection - Select non Manifold Edges or Select > non Manifold Vertices - Apply - Close. Then click button 'Delete the > current > set of selected vertices...' or check > http://www.youtube.com/watch?v=oDx0Tgy0UHo for an instruction video. The > screen should show "0 non manifold edges", "0 non manifold vertices" > > > Next, you can click the icon 'Fill Hole', select all the holes and click > Fill and then Accept. You might have to redo this action a few times. > > Use File - Export Mesh to save the STL." > > Meshlab - "Fixed" All well and good > <http://forum.openscad.org/file/n15538/Meshlab_FIXED_PNG.png> > > Meshlab - Not so good after all > <http://forum.openscad.org/file/n15538/Meshlab_Shapeways_PNG.png> > > When Uploaded to Shapeways without any modifications whatsoever, it printed > fine > at 5.13 in. Small detail: $ 405.57 (about 130 mm / 13 cm) > > So, I figured I'd rescale it to about 55 mm (little less than half the > size). > > That's when the problems started. > > Price was right. > > Printability wasn't. > > So, there you have it. > > Not working so far. > > Valiant effort? > > > > -- > View this message in context: > http://forum.openscad.org/Text-on-a-dodecahedron-tp15409p15538.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 > > >
U
unkerjay
Fri, Jan 8, 2016 12:16 AM

ONE more idea on this.

One other little trick suggested is to put a hole
in a "discreet" location (not sure that's an option
with this since any side can be UP).

But, as I understand, it give the material an out,
thereby reducing the cost.

So, I understand THIS is what would do it:

difference[edit]
Subtracts the 2nd (and all further) child nodes from the first one (logical
and not).
May be used with either 2D or 3D objects, but don't mix them.

and this is WHERE I'd like to:

http://forum.openscad.org/file/n15554/dodec_hole_PNG.png

The example is of a cylinder through a cylinder.

Not a dodecahedron.

Anyone?

Thanx

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

ONE more idea on this. One other little trick suggested is to put a hole in a "discreet" location (not sure that's an option with this since any side can be UP). But, as I understand, it give the material an out, thereby reducing the cost. So, I understand THIS is what would do it: difference[edit] Subtracts the 2nd (and all further) child nodes from the first one (logical and not). May be used with either 2D or 3D objects, but don't mix them. and this is WHERE I'd like to: <http://forum.openscad.org/file/n15554/dodec_hole_PNG.png> The example is of a cylinder through a cylinder. Not a dodecahedron. Anyone? Thanx -- View this message in context: http://forum.openscad.org/Text-on-a-dodecahedron-tp15409p15554.html Sent from the OpenSCAD mailing list archive at Nabble.com.