discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

BOSL Turtle3D

JB
Jon Bondy
Sat, Jun 7, 2025 4:49 PM

I tried this:

include <BOSL2/std.scad>
include <BOSL2/turtle3d.scad>

    ar = [50, -50, 50];

    naPath = turtle3d([
        "down",
        "untilz", -20,
        "xyzmove", ar
        ]);
    path_sweep(circle(r = 1), $fn = 6, naPath);

The result is a vertical bar and then a diagonal bar terminating at
"ar".  Good.

Why does the diagonal bar have a perfect hexagonal cross section, while
the vertical bar does not?  And why does the vertical bar's width vary?

Ignoring that for the moment, I would like to be able to create an
elbow/arc at the bottom of the vertical bar that smoothly and neatly
connects to the location "ar", or at least turns the corner to point at
"ar" so that I can then extend a bar in the direction of "ar".

There are a variety of "xrot", "rot", etc, so I can figure out how to
orient the mouse to point to "ar", but how do I get the arc transition
from the "down"  turtle direction to the pointing-at-"ar" direction?

Thanks

Jon

--
This email has been checked for viruses by AVG antivirus software.
www.avg.com

I tried this: include <BOSL2/std.scad> include <BOSL2/turtle3d.scad>     ar = [50, -50, 50];     naPath = turtle3d([         "down",         "untilz", -20,         "xyzmove", ar         ]);     path_sweep(circle(r = 1), $fn = 6, naPath); The result is a vertical bar and then a diagonal bar terminating at "ar".  Good. Why does the diagonal bar have a perfect hexagonal cross section, while the vertical bar does not?  And why does the vertical bar's width vary? Ignoring that for the moment, I would like to be able to create an elbow/arc at the bottom of the vertical bar that smoothly and neatly connects to the location "ar", or at least turns the corner to point at "ar" so that I can then extend a bar in the direction of "ar". There are a variety of "xrot", "rot", etc, so I can figure out how to orient the mouse to point to "ar", but how do I get the arc transition from the "down"  turtle direction to the pointing-at-"ar" direction? Thanks Jon -- This email has been checked for viruses by AVG antivirus software. www.avg.com
JJ
jon jonbondy.com
Sat, Jun 7, 2025 5:32 PM

I discovered "arctodir", which seems to work well.

But then "arcup" does not point up.  What am I missing?

include <BOSL2/std.scad>
include <BOSL2/turtle3d.scad>

    ar = [50, -50, 50];

    naPath = turtle3d([
        "down", "untilz", -20,
        "arctodir", 20, [ar[0], ar[1], 0],
        "move", 200,
        "arcup", 20
        ]);
    path_sweep(circle(r = 1), $fn = 6, naPath);

On 6/7/2025 12:49 PM, Jon Bondy via Discuss wrote:

I tried this:

include <BOSL2/std.scad>
include <BOSL2/turtle3d.scad>

    ar = [50, -50, 50];

    naPath = turtle3d([
        "down",
        "untilz", -20,
        "xyzmove", ar
        ]);
    path_sweep(circle(r = 1), $fn = 6, naPath);

The result is a vertical bar and then a diagonal bar terminating at
"ar".  Good.

Why does the diagonal bar have a perfect hexagonal cross section,
while the vertical bar does not?  And why does the vertical bar's
width vary?

Ignoring that for the moment, I would like to be able to create an
elbow/arc at the bottom of the vertical bar that smoothly and neatly
connects to the location "ar", or at least turns the corner to point
at "ar" so that I can then extend a bar in the direction of "ar".

There are a variety of "xrot", "rot", etc, so I can figure out how to
orient the mouse to point to "ar", but how do I get the arc transition
from the "down"  turtle direction to the pointing-at-"ar" direction?

Thanks

Jon

I discovered "arctodir", which seems to work well. But then "arcup" does not point up.  What am I missing? include <BOSL2/std.scad> include <BOSL2/turtle3d.scad>     ar = [50, -50, 50];     naPath = turtle3d([         "down", "untilz", -20,         "arctodir", 20, [ar[0], ar[1], 0],         "move", 200,         "arcup", 20         ]);     path_sweep(circle(r = 1), $fn = 6, naPath); On 6/7/2025 12:49 PM, Jon Bondy via Discuss wrote: > I tried this: > > > include <BOSL2/std.scad> > include <BOSL2/turtle3d.scad> > >     ar = [50, -50, 50]; > >     naPath = turtle3d([ >         "down", >         "untilz", -20, >         "xyzmove", ar >         ]); >     path_sweep(circle(r = 1), $fn = 6, naPath); > > > The result is a vertical bar and then a diagonal bar terminating at > "ar".  Good. > > Why does the diagonal bar have a perfect hexagonal cross section, > while the vertical bar does not?  And why does the vertical bar's > width vary? > > Ignoring that for the moment, I would like to be able to create an > elbow/arc at the bottom of the vertical bar that smoothly and neatly > connects to the location "ar", or at least turns the corner to point > at "ar" so that I can then extend a bar in the direction of "ar". > > There are a variety of "xrot", "rot", etc, so I can figure out how to > orient the mouse to point to "ar", but how do I get the arc transition > from the "down"  turtle direction to the pointing-at-"ar" direction? > > Thanks > > Jon > > >
JB
Jordan Brown
Sat, Jun 7, 2025 9:42 PM

On 6/7/2025 9:49 AM, Jon Bondy via Discuss wrote:

...
    path_sweep(circle(r = 1), $fn = 6, naPath);
...
Why does the diagonal bar have a perfect hexagonal cross section,
while the vertical bar does not?

I get a pentagon for both, which is what I would expect since you didn't
specify a $fn for the circle.  Add $fn=6 as an argument to circle().

And why does the vertical bar's width vary?

That vertical bar looks unhealthy.  It looks like it got connected to
the other bar badly, and so it's inside out for much of its length.
(View/Thrown Together; purple is bad.)A less abrupt turn might help.

On 6/7/2025 9:49 AM, Jon Bondy via Discuss wrote: > ... >     path_sweep(circle(r = 1), $fn = 6, naPath); > ... > Why does the diagonal bar have a perfect hexagonal cross section, > while the vertical bar does not? I get a pentagon for both, which is what I would expect since you didn't specify a $fn for the circle.  Add $fn=6 as an argument to circle(). > And why does the vertical bar's width vary? That vertical bar looks unhealthy.  It looks like it got connected to the other bar badly, and so it's inside out for much of its length. (View/Thrown Together; purple is bad.)A less abrupt turn might help.
JJ
jon jonbondy.com
Sat, Jun 7, 2025 10:22 PM

Yeah.  I intended that the $fn = 6 exist inside the circle(), but
screwed that up.  In later versions, I had other paren problems. Time to
take a nap.

:)

On 6/7/2025 5:42 PM, Jordan Brown wrote:

On 6/7/2025 9:49 AM, Jon Bondy via Discuss wrote:

...
    path_sweep(circle(r = 1), $fn = 6, naPath);
...
Why does the diagonal bar have a perfect hexagonal cross section,
while the vertical bar does not?

I get a pentagon for both, which is what I would expect since you
didn't specify a $fn for the circle.  Add $fn=6 as an argument to
circle().

And why does the vertical bar's width vary?

That vertical bar looks unhealthy.  It looks like it got connected to
the other bar badly, and so it's inside out for much of its length.
(View/Thrown Together; purple is bad.)A less abrupt turn might help.

Yeah.  I intended that the $fn = 6 exist inside the circle(), but screwed that up.  In later versions, I had other paren problems. Time to take a nap. :) On 6/7/2025 5:42 PM, Jordan Brown wrote: > On 6/7/2025 9:49 AM, Jon Bondy via Discuss wrote: >> ... >>     path_sweep(circle(r = 1), $fn = 6, naPath); >> ... >> Why does the diagonal bar have a perfect hexagonal cross section, >> while the vertical bar does not? > > I get a pentagon for both, which is what I would expect since you > didn't specify a $fn for the circle.  Add $fn=6 as an argument to > circle(). > >> And why does the vertical bar's width vary? > > That vertical bar looks unhealthy.  It looks like it got connected to > the other bar badly, and so it's inside out for much of its length. > (View/Thrown Together; purple is bad.)A less abrupt turn might help.
JD
John David
Sat, Jun 7, 2025 11:30 PM

Amazing what a little nap will accomplish. ;-)

On Sat, Jun 7, 2025 at 6:23 PM jon jonbondy.com via Discuss <
discuss@lists.openscad.org> wrote:

Yeah.  I intended that the $fn = 6 exist inside the circle(), but
screwed that up.  In later versions, I had other paren problems. Time to
take a nap.

:)

On 6/7/2025 5:42 PM, Jordan Brown wrote:

On 6/7/2025 9:49 AM, Jon Bondy via Discuss wrote:

...
path_sweep(circle(r = 1), $fn = 6, naPath);
...
Why does the diagonal bar have a perfect hexagonal cross section,
while the vertical bar does not?

I get a pentagon for both, which is what I would expect since you
didn't specify a $fn for the circle.  Add $fn=6 as an argument to
circle().

And why does the vertical bar's width vary?

That vertical bar looks unhealthy.  It looks like it got connected to
the other bar badly, and so it's inside out for much of its length.
(View/Thrown Together; purple is bad.)A less abrupt turn might help.


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

Amazing what a little nap will accomplish. ;-) On Sat, Jun 7, 2025 at 6:23 PM jon jonbondy.com via Discuss < discuss@lists.openscad.org> wrote: > Yeah. I intended that the $fn = 6 exist inside the circle(), but > screwed that up. In later versions, I had other paren problems. Time to > take a nap. > > :) > > On 6/7/2025 5:42 PM, Jordan Brown wrote: > > On 6/7/2025 9:49 AM, Jon Bondy via Discuss wrote: > >> ... > >> path_sweep(circle(r = 1), $fn = 6, naPath); > >> ... > >> Why does the diagonal bar have a perfect hexagonal cross section, > >> while the vertical bar does not? > > > > I get a pentagon for both, which is what I would expect since you > > didn't specify a $fn for the circle. Add $fn=6 as an argument to > > circle(). > > > >> And why does the vertical bar's width vary? > > > > That vertical bar looks unhealthy. It looks like it got connected to > > the other bar badly, and so it's inside out for much of its length. > > (View/Thrown Together; purple is bad.)A less abrupt turn might help. > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >