Hi,
A friend asked me why his openscad project wouldn't slice properly.
Turns out Openscad is generating way bad STLs.
The two spikes in each of the sharp corners are due to the way
he makes them. That's his fault. Don't worry about those.
He first sent me the non-mirrored letter. I then mirrored it and
got... no errors. Then I looked back at the original and did see
errors. Then when I show them both as attached, I get both letters
with see-through in Slic3r. One seems to print ok, the other vanishes
completely.
Note that "autorepaired xx errors" in slic3r is not considered an
error by me: In this case, it simply forgets to print one of the
letters completely!
Just move the viewpoint around in slic3r and watch for "see through".
Double check with the "layers" view.
Why is openscad generating bad STLs for some simple intersections ?
I tried reducing it to the squares at the bottom, but although
"weirdness" can be seen in openscad, the auto-correct of slic3r makes
the problem go away when trying to slice it.
Roger.
// Attept to create filleted letters that can be engraved in vertically printed surfaces
size=25;
letterdepth=1.2;
module glyph(letter, size)
{
text(letter, size = size * 0.8, font = "Arial bold", halign = "center", valign = "center", $fn=16);
}
module fillet(size, depth)
{
union()
{
linear_extrude(0.5)
{
children(0);
}
intersection()
{
translate([0, 0, -size/2]) linear_extrude(height=size)
{
children(0);
}
rotate([-45,0,0])translate([0, 0, -size/2])
linear_extrude(height=size)rotate([45,0,0])
{
children(0);
}
rotate([45,0,0])translate([0, 0, -size/2])
linear_extrude(height=size)rotate([-45,0,0])
{
children(0);
}
rotate([0,45,0])translate([0, 0, -size/2])
linear_extrude(height=size)rotate([0,-45,0])
{
children(0);
}
rotate([0,-45,0])translate([0, 0, -size/2])
linear_extrude(height=size)rotate([0,45,0])
{
children(0);
}
rotate([0,45,-45])translate([0, 0, -size])
linear_extrude(height=2size)rotate([0,-45,0])rotate([0,0,45])
{
children(0);
}
rotate([0,45,45])translate([0, 0, -size])
linear_extrude(height=2size)rotate([0,-45,0])rotate([0,0,-45])
{
children(0);
}
rotate([0,45,-135])translate([0, 0, -size])
linear_extrude(height=2size)rotate([0,-45,0])rotate([0,0,135])
{
children(0);
}
rotate([0,45,135])translate([0, 0, -size])
linear_extrude(height=2size)rotate([0,-45,0])rotate([0,0,-135])
{
children(0);
}
translate([0,0,-depth/2])
cube([size, size, depth], center=true);
}
}
}
translate ([0,0,.5])
mirror ([0,0,1]) fillet(size, letterdepth) glyph("M", size);
translate ([22,0,1]) fillet(size, letterdepth) glyph("M", size);
*fillet(size, letterdepth) union () {
square ([2,12]);
translate ([2,0,0]) rotate (45) square ([6,2]);
}
//translate([0,0,5])linear_extrude(1)glyph("A", size);
--
** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/ ** +31-15-2049110 **
** Delftechpark 11 2628 XJ Delft, The Netherlands. KVK: 27239233 **
f equals m times a. When your f is steady, and your m is going down
your a is going up. -- Chris Hadfield about flying up the space shuttle.
It might be related to this bug with mirror and linear_extrude()
https://github.com/openscad/openscad/issues/3415
On Wed, 17 Aug 2022 at 17:28, Rogier Wolff R.E.Wolff@bitwizard.nl wrote:
Hi,
A friend asked me why his openscad project wouldn't slice properly.
Turns out Openscad is generating way bad STLs.
The two spikes in each of the sharp corners are due to the way
he makes them. That's his fault. Don't worry about those.
He first sent me the non-mirrored letter. I then mirrored it and
got... no errors. Then I looked back at the original and did see
errors. Then when I show them both as attached, I get both letters
with see-through in Slic3r. One seems to print ok, the other vanishes
completely.
Note that "autorepaired xx errors" in slic3r is not considered an
error by me: In this case, it simply forgets to print one of the
letters completely!
Just move the viewpoint around in slic3r and watch for "see through".
Double check with the "layers" view.
Why is openscad generating bad STLs for some simple intersections ?
I tried reducing it to the squares at the bottom, but although
"weirdness" can be seen in openscad, the auto-correct of slic3r makes
the problem go away when trying to slice it.
Roger.
// Attept to create filleted letters that can be engraved in vertically
printed surfaces
size=25;
letterdepth=1.2;
module glyph(letter, size)
{
text(letter, size = size * 0.8, font = "Arial bold", halign =
"center", valign = "center", $fn=16);
}
module fillet(size, depth)
{
union()
{
linear_extrude(0.5)
{
children(0);
}
intersection()
{
translate([0, 0, -size/2]) linear_extrude(height=size)
{
children(0);
}
rotate([-45,0,0])translate([0, 0, -size/2])
linear_extrude(height=size)rotate([45,0,0])
{
children(0);
}
rotate([45,0,0])translate([0, 0, -size/2])
linear_extrude(height=size)rotate([-45,0,0])
{
children(0);
}
rotate([0,45,0])translate([0, 0, -size/2])
linear_extrude(height=size)rotate([0,-45,0])
{
children(0);
}
rotate([0,-45,0])translate([0, 0, -size/2])
linear_extrude(height=size)rotate([0,45,0])
{
children(0);
}
rotate([0,45,-45])translate([0, 0, -size])
linear_extrude(height=2*size)rotate([0,-45,0])rotate([0,0,45])
{
children(0);
}
rotate([0,45,45])translate([0, 0, -size])
linear_extrude(height=2*size)rotate([0,-45,0])rotate([0,0,-45])
{
children(0);
}
rotate([0,45,-135])translate([0, 0, -size])
linear_extrude(height=2*size)rotate([0,-45,0])rotate([0,0,135])
{
children(0);
}
rotate([0,45,135])translate([0, 0, -size])
linear_extrude(height=2*size)rotate([0,-45,0])rotate([0,0,-135])
{
children(0);
}
translate([0,0,-depth/2])
cube([size, size, depth], center=true);
}
}
}
translate ([0,0,.5])
mirror ([0,0,1]) fillet(size, letterdepth) glyph("M", size);
translate ([22,0,1]) fillet(size, letterdepth) glyph("M", size);
*fillet(size, letterdepth) union () {
square ([2,12]);
translate ([2,0,0]) rotate (45) square ([6,2]);
}
//translate([0,0,5])linear_extrude(1)glyph("A", size);
--
** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/ ** +31-15-2049110
**
** Delftechpark 11 2628 XJ Delft, The Netherlands. KVK: 27239233 **
f equals m times a. When your f is steady, and your m is going down
your a is going up. -- Chris Hadfield about flying up the space shuttle.
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org
Firstly, it is rotating a 2D object in X & Y prior to doing a linear_extrude().
That is probably undefined behaviour.
Secondly you are not meant to share a face.
With all that contortion
(thrown-together)
I'm not digging into where the problem is.
Probably a singularity down the centre.
-----Original Message-----
From: Rogier Wolff [mailto:R.E.Wolff@BitWizard.nl]
Sent: Thu, 18 Aug 2022 02:27
Subject: [OpenSCAD] Nonconforming STLs generated by openscad.
Hi,
A friend asked me why his openscad project wouldn't slice properly.
Turns out Openscad is generating way bad STLs.
The two spikes in each of the sharp corners are due to the way
he makes them. That's his fault. Don't worry about those.
He first sent me the non-mirrored letter. I then mirrored it and
got... no errors. Then I looked back at the original and did see
errors. Then when I show them both as attached, I get both letters
with see-through in Slic3r. One seems to print ok, the other vanishes
completely.
Note that "autorepaired xx errors" in slic3r is not considered an
error by me: In this case, it simply forgets to print one of the
letters completely!
Just move the viewpoint around in slic3r and watch for "see through".
Double check with the "layers" view.
Why is openscad generating bad STLs for some simple intersections ?
I tried reducing it to the squares at the bottom, but although
"weirdness" can be seen in openscad, the auto-correct of slic3r makes
the problem go away when trying to slice it.
Roger.
// Attept to create filleted letters that can be engraved in vertically printed surfaces
size=25;
letterdepth=1.2;
module glyph(letter, size)
{
text(letter, size = size * 0.8, font = "Arial bold", halign = "center", valign =
"center", $fn=16);
}
module fillet(size, depth)
{
union()
{
linear_extrude(0.5)
{
children(0);
}
intersection()
{
translate([0, 0, -size/2]) linear_extrude(height=size)
{
children(0);
}
rotate([-45,0,0])translate([0, 0, -size/2])
linear_extrude(height=size)rotate([45,0,0])
{
children(0);
}
rotate([45,0,0])translate([0, 0, -size/2])
linear_extrude(height=size)rotate([-45,0,0])
{
children(0);
}
rotate([0,45,0])translate([0, 0, -size/2])
linear_extrude(height=size)rotate([0,-45,0])
{
children(0);
}
rotate([0,-45,0])translate([0, 0, -size/2])
linear_extrude(height=size)rotate([0,45,0])
{
children(0);
}
rotate([0,45,-45])translate([0, 0, -size])
linear_extrude(height=2*size)rotate([0,-45,0])rotate([0,0,45])
{
children(0);
}
rotate([0,45,45])translate([0, 0, -size])
linear_extrude(height=2*size)rotate([0,-45,0])rotate([0,0,-45])
{
children(0);
}
rotate([0,45,-135])translate([0, 0, -size])
linear_extrude(height=2*size)rotate([0,-45,0])rotate([0,0,135])
{
children(0);
}
rotate([0,45,135])translate([0, 0, -size])
linear_extrude(height=2*size)rotate([0,-45,0])rotate([0,0,-135])
{
children(0);
}
translate([0,0,-depth/2])
cube([size, size, depth], center=true);
}
}
}
translate ([0,0,.5])
mirror ([0,0,1]) fillet(size, letterdepth) glyph("M", size);
translate ([22,0,1]) fillet(size, letterdepth) glyph("M", size);
*fillet(size, letterdepth) union () {
square ([2,12]);
translate ([2,0,0]) rotate (45) square ([6,2]);
}
//translate([0,0,5])linear_extrude(1)glyph("A", size);
--
** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/ ** +31-15-2049110 **
** Delftechpark 11 2628 XJ Delft, The Netherlands. KVK: 27239233 **
f equals m times a. When your f is steady, and your m is going down
your a is going up. -- Chris Hadfield about flying up the space shuttle.
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org
--
This email has been checked for viruses by AVG.
https://www.avg.com
I suspect
\
module fillet(size, depth)
{
union()
{
#linear_extrude(0.5,convexity=10)
{
children(0);
}
intersection()
{
translate([0, 0, -size/2]) linear_extrude(height=size,convexity=10)
{
children(0);
}
Those two children have coincident faces.
-----Original Message-----
From: Rogier Wolff [mailto:R.E.Wolff@BitWizard.nl]
Sent: Thu, 18 Aug 2022 02:27
Subject: [OpenSCAD] Nonconforming STLs generated by openscad.
Hi,
A friend asked me why his openscad project wouldn't slice properly.
Turns out Openscad is generating way bad STLs.
The two spikes in each of the sharp corners are due to the way
he makes them. That's his fault. Don't worry about those.
He first sent me the non-mirrored letter. I then mirrored it and
got... no errors. Then I looked back at the original and did see
errors. Then when I show them both as attached, I get both letters
with see-through in Slic3r. One seems to print ok, the other vanishes
completely.
Note that "autorepaired xx errors" in slic3r is not considered an
error by me: In this case, it simply forgets to print one of the
letters completely!
Just move the viewpoint around in slic3r and watch for "see through".
Double check with the "layers" view.
Why is openscad generating bad STLs for some simple intersections ?
I tried reducing it to the squares at the bottom, but although
"weirdness" can be seen in openscad, the auto-correct of slic3r makes
the problem go away when trying to slice it.
Roger.
// Attept to create filleted letters that can be engraved in vertically printed surfaces
size=25;
letterdepth=1.2;
module glyph(letter, size)
{
text(letter, size = size * 0.8, font = "Arial bold", halign = "center", valign =
"center", $fn=16);
}
module fillet(size, depth)
{
union()
{
linear_extrude(0.5)
{
children(0);
}
intersection()
{
translate([0, 0, -size/2]) linear_extrude(height=size)
{
children(0);
}
rotate([-45,0,0])translate([0, 0, -size/2])
linear_extrude(height=size)rotate([45,0,0])
{
children(0);
}
rotate([45,0,0])translate([0, 0, -size/2])
linear_extrude(height=size)rotate([-45,0,0])
{
children(0);
}
rotate([0,45,0])translate([0, 0, -size/2])
linear_extrude(height=size)rotate([0,-45,0])
{
children(0);
}
rotate([0,-45,0])translate([0, 0, -size/2])
linear_extrude(height=size)rotate([0,45,0])
{
children(0);
}
rotate([0,45,-45])translate([0, 0, -size])
linear_extrude(height=2*size)rotate([0,-45,0])rotate([0,0,45])
{
children(0);
}
rotate([0,45,45])translate([0, 0, -size])
linear_extrude(height=2*size)rotate([0,-45,0])rotate([0,0,-45])
{
children(0);
}
rotate([0,45,-135])translate([0, 0, -size])
linear_extrude(height=2*size)rotate([0,-45,0])rotate([0,0,135])
{
children(0);
}
rotate([0,45,135])translate([0, 0, -size])
linear_extrude(height=2*size)rotate([0,-45,0])rotate([0,0,-135])
{
children(0);
}
translate([0,0,-depth/2])
cube([size, size, depth], center=true);
}
}
}
translate ([0,0,.5])
mirror ([0,0,1]) fillet(size, letterdepth) glyph("M", size);
translate ([22,0,1]) fillet(size, letterdepth) glyph("M", size);
*fillet(size, letterdepth) union () {
square ([2,12]);
translate ([2,0,0]) rotate (45) square ([6,2]);
}
//translate([0,0,5])linear_extrude(1)glyph("A", size);
--
** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/ ** +31-15-2049110 **
** Delftechpark 11 2628 XJ Delft, The Netherlands. KVK: 27239233 **
f equals m times a. When your f is steady, and your m is going down
your a is going up. -- Chris Hadfield about flying up the space shuttle.
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org
--
This email has been checked for viruses by AVG.
https://www.avg.com