FH
Father Horton
Sun, Feb 13, 2022 1:51 AM
OpenSCAD 2021.01
The following code previews fine but fails in rendering. When I comment out
the one_node() line, it works. I have no idea how to fix this.
Console log:
Parsing design (AST generation)...
Compiling design (CSG Tree generation)...
Rendering Polygon Mesh using CGAL...
ERROR: CGAL error in CGALUtils::applyUnion3D: CGAL ERROR: assertion
violation! Expr: itl != it->second.end() File:
/mxe/usr/x86_64-w64-mingw32.static.posix/include/CGAL/Nef_3/SNC_external_structure.h
Line: 1152
Geometries in cache: 8
Geometry cache size in bytes: 6137040
CGAL Polyhedrons in cache: 0
CGAL cache size in bytes: 0
Total rendering time: 0:00:37.313
WARNING: No top level geometry to render
Code:
include <BOSL2/std.scad>
include <BOSL2/rounding.scad>
outer = 40;
inner = 30;
hght = 5;
bead = 8;
// Frop NopSCADLib
function after(path1, path2) = //! Translate path2
so its start meets
the end of path1
and then concatenate
let(end1 = len(path1) - 1, end2 = len(path2) - 1, offset = path1[end1]
- path2[0])
concat(path1, [for(i = [1 : end2]) path2[i] + offset]);
thick = outer - inner;
$fn = 60;
module bar_only() {
pieces = 40;
path = arc(pieces, outer, [-361 / 22, 361 / 22]);
profile = rect([thick, hght], rounding = 1, anchor = LEFT + FRONT);
path_sweep(profile, path);
};
module one_node() {
xi = (2outer^2-bead^2)/(2outer);
yi = sqrt(outer^2 - xi^2);
dist = 2yi; // difference of x coordinates is 0;
// first angle is of the large circle
angle1 = acos((2outer^2-dist^2)/(2outer^2));
// second angle is of the bead
angle2 = 360-acos((2bead^2 - dist^2)/(2*bead^2));
parm2 = 30;
piece1 = arc(parm2, outer,[-361 / 22, - angle1 / 2]);
piece2 = arc(parm2, bead, [-angle2 / 2, angle2 / 2]);
piece3 = arc(parm2, outer, [angle1 / 2, 361 / 22]);
path = path_join([piece1, piece2, piece3], 1.5);
profile = rect([thick, hght], rounding = 1, anchor = LEFT + FRONT);
path_sweep(profile, path);
};
one_node();
bar_only();
OpenSCAD 2021.01
The following code previews fine but fails in rendering. When I comment out
the one_node() line, it works. I have no idea how to fix this.
Console log:
Parsing design (AST generation)...
Compiling design (CSG Tree generation)...
Rendering Polygon Mesh using CGAL...
ERROR: CGAL error in CGALUtils::applyUnion3D: CGAL ERROR: assertion
violation! Expr: itl != it->second.end() File:
/mxe/usr/x86_64-w64-mingw32.static.posix/include/CGAL/Nef_3/SNC_external_structure.h
Line: 1152
Geometries in cache: 8
Geometry cache size in bytes: 6137040
CGAL Polyhedrons in cache: 0
CGAL cache size in bytes: 0
Total rendering time: 0:00:37.313
WARNING: No top level geometry to render
Code:
include <BOSL2/std.scad>
include <BOSL2/rounding.scad>
outer = 40;
inner = 30;
hght = 5;
bead = 8;
// Frop NopSCADLib
function after(path1, path2) = //! Translate `path2` so its start meets
the end of `path1` and then concatenate
let(end1 = len(path1) - 1, end2 = len(path2) - 1, offset = path1[end1]
- path2[0])
concat(path1, [for(i = [1 : end2]) path2[i] + offset]);
thick = outer - inner;
$fn = 60;
module bar_only() {
pieces = 40;
path = arc(pieces, outer, [-361 / 22, 361 / 22]);
profile = rect([thick, hght], rounding = 1, anchor = LEFT + FRONT);
path_sweep(profile, path);
};
module one_node() {
xi = (2*outer^2-bead^2)/(2*outer);
yi = sqrt(outer^2 - xi^2);
dist = 2*yi; // difference of x coordinates is 0;
// first angle is of the large circle
angle1 = acos((2*outer^2-dist^2)/(2*outer^2));
// second angle is of the bead
angle2 = 360-acos((2*bead^2 - dist^2)/(2*bead^2));
parm2 = 30;
piece1 = arc(parm2, outer,[-361 / 22, - angle1 / 2]);
piece2 = arc(parm2, bead, [-angle2 / 2, angle2 / 2]);
piece3 = arc(parm2, outer, [angle1 / 2, 361 / 22]);
path = path_join([piece1, piece2, piece3], 1.5);
profile = rect([thick, hght], rounding = 1, anchor = LEFT + FRONT);
path_sweep(profile, path);
};
one_node();
bar_only();
AM
Adrian Mariano
Sun, Feb 13, 2022 2:04 AM
When render fails like this it means you have an invalid polyhedron.
In this case it is the one_node path sweep, because your shape has too
small of a radius to accommodate the polygon width so the profiles
cross each other, leading to a bogus polyhedron. The simplest
solution is to change to path_sweep2d. But it is very much slower.
You could fiddle with quality to help. Decreasing point count on
your profile will help. There might be a faster solution of breaking
it up into three regular path_sweep calls. Not sure. Oh, and for
path_sweep2d you need deduplicate(path).
On Sat, Feb 12, 2022 at 8:52 PM Father Horton fatherhorton@gmail.com wrote:
OpenSCAD 2021.01
The following code previews fine but fails in rendering. When I comment out the one_node() line, it works. I have no idea how to fix this.
Console log:
Parsing design (AST generation)...
Compiling design (CSG Tree generation)...
Rendering Polygon Mesh using CGAL...
ERROR: CGAL error in CGALUtils::applyUnion3D: CGAL ERROR: assertion violation! Expr: itl != it->second.end() File: /mxe/usr/x86_64-w64-mingw32.static.posix/include/CGAL/Nef_3/SNC_external_structure.h Line: 1152
Geometries in cache: 8
Geometry cache size in bytes: 6137040
CGAL Polyhedrons in cache: 0
CGAL cache size in bytes: 0
Total rendering time: 0:00:37.313
WARNING: No top level geometry to render
Code:
include <BOSL2/std.scad>
include <BOSL2/rounding.scad>
outer = 40;
inner = 30;
hght = 5;
bead = 8;
// Frop NopSCADLib
function after(path1, path2) = //! Translate path2
so its start meets the end of path1
and then concatenate
let(end1 = len(path1) - 1, end2 = len(path2) - 1, offset = path1[end1] - path2[0])
concat(path1, [for(i = [1 : end2]) path2[i] + offset]);
thick = outer - inner;
$fn = 60;
module bar_only() {
pieces = 40;
path = arc(pieces, outer, [-361 / 22, 361 / 22]);
profile = rect([thick, hght], rounding = 1, anchor = LEFT + FRONT);
path_sweep(profile, path);
};
module one_node() {
xi = (2outer^2-bead^2)/(2outer);
yi = sqrt(outer^2 - xi^2);
dist = 2yi; // difference of x coordinates is 0;
// first angle is of the large circle
angle1 = acos((2outer^2-dist^2)/(2outer^2));
// second angle is of the bead
angle2 = 360-acos((2bead^2 - dist^2)/(2*bead^2));
parm2 = 30;
piece1 = arc(parm2, outer,[-361 / 22, - angle1 / 2]);
piece2 = arc(parm2, bead, [-angle2 / 2, angle2 / 2]);
piece3 = arc(parm2, outer, [angle1 / 2, 361 / 22]);
path = path_join([piece1, piece2, piece3], 1.5);
profile = rect([thick, hght], rounding = 1, anchor = LEFT + FRONT);
path_sweep(profile, path);
};
one_node();
bar_only();
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org
When render fails like this it means you have an invalid polyhedron.
In this case it is the one_node path sweep, because your shape has too
small of a radius to accommodate the polygon width so the profiles
cross each other, leading to a bogus polyhedron. The simplest
solution is to change to path_sweep2d. But it is very much slower.
You could fiddle with quality to help. Decreasing point count on
your profile will help. There might be a faster solution of breaking
it up into three regular path_sweep calls. Not sure. Oh, and for
path_sweep2d you need deduplicate(path).
On Sat, Feb 12, 2022 at 8:52 PM Father Horton <fatherhorton@gmail.com> wrote:
>
> OpenSCAD 2021.01
>
> The following code previews fine but fails in rendering. When I comment out the one_node() line, it works. I have no idea how to fix this.
>
> Console log:
>
> Parsing design (AST generation)...
> Compiling design (CSG Tree generation)...
> Rendering Polygon Mesh using CGAL...
> ERROR: CGAL error in CGALUtils::applyUnion3D: CGAL ERROR: assertion violation! Expr: itl != it->second.end() File: /mxe/usr/x86_64-w64-mingw32.static.posix/include/CGAL/Nef_3/SNC_external_structure.h Line: 1152
> Geometries in cache: 8
> Geometry cache size in bytes: 6137040
> CGAL Polyhedrons in cache: 0
> CGAL cache size in bytes: 0
> Total rendering time: 0:00:37.313
> WARNING: No top level geometry to render
>
> Code:
>
> include <BOSL2/std.scad>
> include <BOSL2/rounding.scad>
>
> outer = 40;
> inner = 30;
> hght = 5;
> bead = 8;
>
> // Frop NopSCADLib
> function after(path1, path2) = //! Translate `path2` so its start meets the end of `path1` and then concatenate
> let(end1 = len(path1) - 1, end2 = len(path2) - 1, offset = path1[end1] - path2[0])
> concat(path1, [for(i = [1 : end2]) path2[i] + offset]);
>
>
>
> thick = outer - inner;
> $fn = 60;
>
> module bar_only() {
> pieces = 40;
> path = arc(pieces, outer, [-361 / 22, 361 / 22]);
> profile = rect([thick, hght], rounding = 1, anchor = LEFT + FRONT);
> path_sweep(profile, path);
> };
>
> module one_node() {
> xi = (2*outer^2-bead^2)/(2*outer);
> yi = sqrt(outer^2 - xi^2);
> dist = 2*yi; // difference of x coordinates is 0;
> // first angle is of the large circle
> angle1 = acos((2*outer^2-dist^2)/(2*outer^2));
> // second angle is of the bead
> angle2 = 360-acos((2*bead^2 - dist^2)/(2*bead^2));
>
> parm2 = 30;
> piece1 = arc(parm2, outer,[-361 / 22, - angle1 / 2]);
> piece2 = arc(parm2, bead, [-angle2 / 2, angle2 / 2]);
> piece3 = arc(parm2, outer, [angle1 / 2, 361 / 22]);
> path = path_join([piece1, piece2, piece3], 1.5);
> profile = rect([thick, hght], rounding = 1, anchor = LEFT + FRONT);
> path_sweep(profile, path);
> };
>
> one_node();
> bar_only();
>
> _______________________________________________
> OpenSCAD mailing list
> To unsubscribe send an email to discuss-leave@lists.openscad.org
FH
Father Horton
Sun, Feb 13, 2022 2:15 AM
That's definitely slower, but it fixes it. I can fiddle with the point
counts and see if I still like the results. Thanks!
That's definitely slower, but it fixes it. I can fiddle with the point
counts and see if I still like the results. Thanks!
FH
Father Horton
Mon, Feb 14, 2022 11:20 PM
What worked even better was splitting the node in half. Each half renders
fine, so I just fuse a left half and a right half together, and I'm good to
go.
On Sat, Feb 12, 2022 at 8:15 PM Father Horton fatherhorton@gmail.com
wrote:
That's definitely slower, but it fixes it. I can fiddle with the point
counts and see if I still like the results. Thanks!
What worked even better was splitting the node in half. Each half renders
fine, so I just fuse a left half and a right half together, and I'm good to
go.
On Sat, Feb 12, 2022 at 8:15 PM Father Horton <fatherhorton@gmail.com>
wrote:
> That's definitely slower, but it fixes it. I can fiddle with the point
> counts and see if I still like the results. Thanks!
>
FH
Father Horton
Mon, Feb 14, 2022 11:34 PM
Or maybe not ... I think it worked when I didn't flush the cache, but now
it doesn't. Back to the drawing board.
On Mon, Feb 14, 2022 at 5:20 PM Father Horton fatherhorton@gmail.com
wrote:
What worked even better was splitting the node in half. Each half renders
fine, so I just fuse a left half and a right half together, and I'm good to
go.
On Sat, Feb 12, 2022 at 8:15 PM Father Horton fatherhorton@gmail.com
wrote:
That's definitely slower, but it fixes it. I can fiddle with the point
counts and see if I still like the results. Thanks!
Or maybe not ... I think it worked when I didn't flush the cache, but now
it doesn't. Back to the drawing board.
On Mon, Feb 14, 2022 at 5:20 PM Father Horton <fatherhorton@gmail.com>
wrote:
> What worked even better was splitting the node in half. Each half renders
> fine, so I just fuse a left half and a right half together, and I'm good to
> go.
>
> On Sat, Feb 12, 2022 at 8:15 PM Father Horton <fatherhorton@gmail.com>
> wrote:
>
>> That's definitely slower, but it fixes it. I can fiddle with the point
>> counts and see if I still like the results. Thanks!
>>
>
AM
Adrian Mariano
Tue, Feb 15, 2022 12:54 AM
I added a feature to the latest BOSL2, a profiles=true option and a
width option that will display the wireframe of all the profiles in
your path_sweep.
I've attached what your model looks like. For it to be valid you need
to avoid any intersection of those profiles. I think that the
semi-circular section might be crossing at the center, so to get it to
work as a union of parts you should probably make the circular part
with a cyl() command and then you can make the other part with a sweep
(and an xflip_copy() to get the other half). That is, I think you can
create this part efficiently somehow.
On Mon, Feb 14, 2022 at 6:35 PM Father Horton fatherhorton@gmail.com wrote:
Or maybe not ... I think it worked when I didn't flush the cache, but now it doesn't. Back to the drawing board.
On Mon, Feb 14, 2022 at 5:20 PM Father Horton fatherhorton@gmail.com wrote:
What worked even better was splitting the node in half. Each half renders fine, so I just fuse a left half and a right half together, and I'm good to go.
On Sat, Feb 12, 2022 at 8:15 PM Father Horton fatherhorton@gmail.com wrote:
That's definitely slower, but it fixes it. I can fiddle with the point counts and see if I still like the results. Thanks!
I added a feature to the latest BOSL2, a profiles=true option and a
width option that will display the wireframe of all the profiles in
your path_sweep.
I've attached what your model looks like. For it to be valid you need
to avoid any intersection of those profiles. I think that the
semi-circular section might be crossing at the center, so to get it to
work as a union of parts you should probably make the circular part
with a cyl() command and then you can make the other part with a sweep
(and an xflip_copy() to get the other half). That is, I think you can
create this part efficiently somehow.
On Mon, Feb 14, 2022 at 6:35 PM Father Horton <fatherhorton@gmail.com> wrote:
>
> Or maybe not ... I think it worked when I didn't flush the cache, but now it doesn't. Back to the drawing board.
>
> On Mon, Feb 14, 2022 at 5:20 PM Father Horton <fatherhorton@gmail.com> wrote:
>>
>> What worked even better was splitting the node in half. Each half renders fine, so I just fuse a left half and a right half together, and I'm good to go.
>>
>> On Sat, Feb 12, 2022 at 8:15 PM Father Horton <fatherhorton@gmail.com> wrote:
>>>
>>> That's definitely slower, but it fixes it. I can fiddle with the point counts and see if I still like the results. Thanks!
>
> _______________________________________________
> OpenSCAD mailing list
> To unsubscribe send an email to discuss-leave@lists.openscad.org
FH
Father Horton
Tue, Feb 15, 2022 12:59 AM
Cool feature. That should help a lot.
The key thing I’m looking for is fillets between the big arc and the little
one. This would be very easy without that.
On Mon, Feb 14, 2022 at 6:55 PM Adrian Mariano avm4@cornell.edu wrote:
I added a feature to the latest BOSL2, a profiles=true option and a
width option that will display the wireframe of all the profiles in
your path_sweep.
I've attached what your model looks like. For it to be valid you need
to avoid any intersection of those profiles. I think that the
semi-circular section might be crossing at the center, so to get it to
work as a union of parts you should probably make the circular part
with a cyl() command and then you can make the other part with a sweep
(and an xflip_copy() to get the other half). That is, I think you can
create this part efficiently somehow.
On Mon, Feb 14, 2022 at 6:35 PM Father Horton fatherhorton@gmail.com
wrote:
Or maybe not ... I think it worked when I didn't flush the cache, but
now it doesn't. Back to the drawing board.
What worked even better was splitting the node in half. Each half
renders fine, so I just fuse a left half and a right half together, and I'm
good to go.
That's definitely slower, but it fixes it. I can fiddle with the point
counts and see if I still like the results. Thanks!
Cool feature. That should help a lot.
The key thing I’m looking for is fillets between the big arc and the little
one. This would be very easy without that.
On Mon, Feb 14, 2022 at 6:55 PM Adrian Mariano <avm4@cornell.edu> wrote:
> I added a feature to the latest BOSL2, a profiles=true option and a
> width option that will display the wireframe of all the profiles in
> your path_sweep.
>
> I've attached what your model looks like. For it to be valid you need
> to avoid any intersection of those profiles. I think that the
> semi-circular section might be crossing at the center, so to get it to
> work as a union of parts you should probably make the circular part
> with a cyl() command and then you can make the other part with a sweep
> (and an xflip_copy() to get the other half). That is, I think you can
> create this part efficiently somehow.
>
> On Mon, Feb 14, 2022 at 6:35 PM Father Horton <fatherhorton@gmail.com>
> wrote:
> >
> > Or maybe not ... I think it worked when I didn't flush the cache, but
> now it doesn't. Back to the drawing board.
> >
> > On Mon, Feb 14, 2022 at 5:20 PM Father Horton <fatherhorton@gmail.com>
> wrote:
> >>
> >> What worked even better was splitting the node in half. Each half
> renders fine, so I just fuse a left half and a right half together, and I'm
> good to go.
> >>
> >> On Sat, Feb 12, 2022 at 8:15 PM Father Horton <fatherhorton@gmail.com>
> wrote:
> >>>
> >>> That's definitely slower, but it fixes it. I can fiddle with the point
> counts and see if I still like the results. Thanks!
> >
> > _______________________________________________
> > OpenSCAD mailing list
> > To unsubscribe send an email to discuss-leave@lists.openscad.org
> _______________________________________________
> OpenSCAD mailing list
> To unsubscribe send an email to discuss-leave@lists.openscad.org
>
AM
Adrian Mariano
Tue, Feb 15, 2022 3:20 AM
The really big problem with your existing design is that your
rectangle is too large so it crosses in the middle for the big
circular arc. See pic below showing the middle section. There's no
way to fix that by subsetting your curve. You have way more points
than you need in the flat section leading in. Maybe by cutting the
points there you could get path_sweep2d to be not so slow. But
otherwise, you have to replace that circular part with something else,
like perhaps you can use a smaller rectangle so it doesn't cross for
that middle section.
On Mon, Feb 14, 2022 at 8:00 PM Father Horton fatherhorton@gmail.com wrote:
Cool feature. That should help a lot.
The key thing I’m looking for is fillets between the big arc and the little one. This would be very easy without that.
On Mon, Feb 14, 2022 at 6:55 PM Adrian Mariano avm4@cornell.edu wrote:
I added a feature to the latest BOSL2, a profiles=true option and a
width option that will display the wireframe of all the profiles in
your path_sweep.
I've attached what your model looks like. For it to be valid you need
to avoid any intersection of those profiles. I think that the
semi-circular section might be crossing at the center, so to get it to
work as a union of parts you should probably make the circular part
with a cyl() command and then you can make the other part with a sweep
(and an xflip_copy() to get the other half). That is, I think you can
create this part efficiently somehow.
On Mon, Feb 14, 2022 at 6:35 PM Father Horton fatherhorton@gmail.com wrote:
Or maybe not ... I think it worked when I didn't flush the cache, but now it doesn't. Back to the drawing board.
On Mon, Feb 14, 2022 at 5:20 PM Father Horton fatherhorton@gmail.com wrote:
What worked even better was splitting the node in half. Each half renders fine, so I just fuse a left half and a right half together, and I'm good to go.
On Sat, Feb 12, 2022 at 8:15 PM Father Horton fatherhorton@gmail.com wrote:
That's definitely slower, but it fixes it. I can fiddle with the point counts and see if I still like the results. Thanks!
The really big problem with your existing design is that your
rectangle is too large so it crosses in the middle for the big
circular arc. See pic below showing the middle section. There's no
way to fix that by subsetting your curve. You have way more points
than you need in the flat section leading in. Maybe by cutting the
points there you could get path_sweep2d to be not so slow. But
otherwise, you have to replace that circular part with something else,
like perhaps you can use a smaller rectangle so it doesn't cross for
that middle section.
On Mon, Feb 14, 2022 at 8:00 PM Father Horton <fatherhorton@gmail.com> wrote:
>
> Cool feature. That should help a lot.
>
> The key thing I’m looking for is fillets between the big arc and the little one. This would be very easy without that.
>
> On Mon, Feb 14, 2022 at 6:55 PM Adrian Mariano <avm4@cornell.edu> wrote:
>>
>> I added a feature to the latest BOSL2, a profiles=true option and a
>> width option that will display the wireframe of all the profiles in
>> your path_sweep.
>>
>> I've attached what your model looks like. For it to be valid you need
>> to avoid any intersection of those profiles. I think that the
>> semi-circular section might be crossing at the center, so to get it to
>> work as a union of parts you should probably make the circular part
>> with a cyl() command and then you can make the other part with a sweep
>> (and an xflip_copy() to get the other half). That is, I think you can
>> create this part efficiently somehow.
>>
>> On Mon, Feb 14, 2022 at 6:35 PM Father Horton <fatherhorton@gmail.com> wrote:
>> >
>> > Or maybe not ... I think it worked when I didn't flush the cache, but now it doesn't. Back to the drawing board.
>> >
>> > On Mon, Feb 14, 2022 at 5:20 PM Father Horton <fatherhorton@gmail.com> wrote:
>> >>
>> >> What worked even better was splitting the node in half. Each half renders fine, so I just fuse a left half and a right half together, and I'm good to go.
>> >>
>> >> On Sat, Feb 12, 2022 at 8:15 PM Father Horton <fatherhorton@gmail.com> wrote:
>> >>>
>> >>> That's definitely slower, but it fixes it. I can fiddle with the point counts and see if I still like the results. Thanks!
>> >
>> > _______________________________________________
>> > OpenSCAD mailing list
>> > To unsubscribe send an email to discuss-leave@lists.openscad.org
>> _______________________________________________
>> OpenSCAD mailing list
>> To unsubscribe send an email to discuss-leave@lists.openscad.org
>
> _______________________________________________
> OpenSCAD mailing list
> To unsubscribe send an email to discuss-leave@lists.openscad.org
FH
Father Horton
Tue, Feb 15, 2022 5:56 PM
I ended up using a completely different approach. I made a polygon with the
path as the perimeter and then cut out the middle. Linear extruding the top
and bottom pieces with a scale < 1 got me my chamfer. It previews in
about 0.25 sec and renders in about 30, so this is a lot more efficient too.
But I've learned a lot in the process, so thank you.
On Mon, Feb 14, 2022 at 9:20 PM Adrian Mariano avm4@cornell.edu wrote:
The really big problem with your existing design is that your
rectangle is too large so it crosses in the middle for the big
circular arc. See pic below showing the middle section. There's no
way to fix that by subsetting your curve. You have way more points
than you need in the flat section leading in. Maybe by cutting the
points there you could get path_sweep2d to be not so slow. But
otherwise, you have to replace that circular part with something else,
like perhaps you can use a smaller rectangle so it doesn't cross for
that middle section.
On Mon, Feb 14, 2022 at 8:00 PM Father Horton fatherhorton@gmail.com
wrote:
Cool feature. That should help a lot.
The key thing I’m looking for is fillets between the big arc and the
little one. This would be very easy without that.
I added a feature to the latest BOSL2, a profiles=true option and a
width option that will display the wireframe of all the profiles in
your path_sweep.
I've attached what your model looks like. For it to be valid you need
to avoid any intersection of those profiles. I think that the
semi-circular section might be crossing at the center, so to get it to
work as a union of parts you should probably make the circular part
with a cyl() command and then you can make the other part with a sweep
(and an xflip_copy() to get the other half). That is, I think you can
create this part efficiently somehow.
On Mon, Feb 14, 2022 at 6:35 PM Father Horton fatherhorton@gmail.com
Or maybe not ... I think it worked when I didn't flush the cache, but
now it doesn't. Back to the drawing board.
What worked even better was splitting the node in half. Each half
renders fine, so I just fuse a left half and a right half together, and I'm
good to go.
On Sat, Feb 12, 2022 at 8:15 PM Father Horton <
That's definitely slower, but it fixes it. I can fiddle with the
point counts and see if I still like the results. Thanks!
I ended up using a completely different approach. I made a polygon with the
path as the perimeter and then cut out the middle. Linear extruding the top
and bottom pieces with a scale < 1 got me my chamfer. It previews in
about 0.25 sec and renders in about 30, so this is a lot more efficient too.
But I've learned a lot in the process, so thank you.
On Mon, Feb 14, 2022 at 9:20 PM Adrian Mariano <avm4@cornell.edu> wrote:
> The really big problem with your existing design is that your
> rectangle is too large so it crosses in the middle for the big
> circular arc. See pic below showing the middle section. There's no
> way to fix that by subsetting your curve. You have way more points
> than you need in the flat section leading in. Maybe by cutting the
> points there you could get path_sweep2d to be not so slow. But
> otherwise, you have to replace that circular part with something else,
> like perhaps you can use a smaller rectangle so it doesn't cross for
> that middle section.
>
> On Mon, Feb 14, 2022 at 8:00 PM Father Horton <fatherhorton@gmail.com>
> wrote:
> >
> > Cool feature. That should help a lot.
> >
> > The key thing I’m looking for is fillets between the big arc and the
> little one. This would be very easy without that.
> >
> > On Mon, Feb 14, 2022 at 6:55 PM Adrian Mariano <avm4@cornell.edu> wrote:
> >>
> >> I added a feature to the latest BOSL2, a profiles=true option and a
> >> width option that will display the wireframe of all the profiles in
> >> your path_sweep.
> >>
> >> I've attached what your model looks like. For it to be valid you need
> >> to avoid any intersection of those profiles. I think that the
> >> semi-circular section might be crossing at the center, so to get it to
> >> work as a union of parts you should probably make the circular part
> >> with a cyl() command and then you can make the other part with a sweep
> >> (and an xflip_copy() to get the other half). That is, I think you can
> >> create this part efficiently somehow.
> >>
> >> On Mon, Feb 14, 2022 at 6:35 PM Father Horton <fatherhorton@gmail.com>
> wrote:
> >> >
> >> > Or maybe not ... I think it worked when I didn't flush the cache, but
> now it doesn't. Back to the drawing board.
> >> >
> >> > On Mon, Feb 14, 2022 at 5:20 PM Father Horton <fatherhorton@gmail.com>
> wrote:
> >> >>
> >> >> What worked even better was splitting the node in half. Each half
> renders fine, so I just fuse a left half and a right half together, and I'm
> good to go.
> >> >>
> >> >> On Sat, Feb 12, 2022 at 8:15 PM Father Horton <
> fatherhorton@gmail.com> wrote:
> >> >>>
> >> >>> That's definitely slower, but it fixes it. I can fiddle with the
> point counts and see if I still like the results. Thanks!
> >> >
> >> > _______________________________________________
> >> > OpenSCAD mailing list
> >> > To unsubscribe send an email to discuss-leave@lists.openscad.org
> >> _______________________________________________
> >> OpenSCAD mailing list
> >> To unsubscribe send an email to discuss-leave@lists.openscad.org
> >
> > _______________________________________________
> > OpenSCAD mailing list
> > To unsubscribe send an email to discuss-leave@lists.openscad.org
> _______________________________________________
> OpenSCAD mailing list
> To unsubscribe send an email to discuss-leave@lists.openscad.org
>