discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

question using anchors with BOSL2 and NopSCADlib extrusions, and calculating mount points

JD
John David
Sat, Mar 23, 2024 9:54 AM

Hello,

I got a few moments to play with OpenSCAD again, and decided to play with
BOSL2 anchors.  The simple part I wanted to model is a DIY track for a saw
and router.  The code is as follows (with inline questions in the comments):

// extrusion_track_jig.scad: a track saw/router jig.  Basically this is a
//    DIY track which can function as a straight edge for circular/plunge
//    saws, and routers.  The "guide" module allows for "extra" width to be
//    trimmed to final size.

include <NopSCADlib/lib.scad>
include <BOSL2/std.scad>

length = 1000;
type = E2040; // E2020, E2040

saw_blade_to_edge = 125; // distance from edge of saw plate to the blade
(saw dependent)
router_to_edge = 80; // distance from edge of router base-plate to the bit
(router dependent)
extra = 10; // cut an extra 10mm for something to cut off. (split between
sides)

thickness = 6.35; // thickness of the guide board. 6.35mm == 0.25"

guide (type,length,thickness,saw_blade_to_edge,router_to_edge, extra);

module guide (type,length,thickness,saw_blade_to_edge,router_to_edge,
extra) {
// the extrusion rail type.
// FIXME: is there a way to extract the actual dimenstions from the
extrusion.
rail = (E2040==type)?20:40; //

// FIXME: it would be nice to anchor points on the extrusion, but I was
//   not able to figure out how
translate([rail/2,0,0]) extrusion(type, length);

// the guide board
difference() {
    union() {
        // The saw side.
        cube([thickness,((E2040==type)?20:40)+saw_blade_to_edge+extra/2,
            length], anchor=RIGHT+FRONT);
        // the router side
        cube([thickness,((E2040==type)?20:40)+router_to_edge+extra/2,
            length], anchor=RIGHT+BACK);
    }

    // FIXME: how do I find the center of the extrusion rail to drill

and
//  countersink holes for the mounting hardware
}
}

I am not sure how if there is a trick to attach an anchor point to the
NopSCADlib extruded rails, nor what is the best method to find the center
of the rail channels for mounting hardware -- I would like to find the
distances so that I can pre-drill and countersink the guide board.

Also, if there are better ways to do all this, I would gladly accept the
criticism.

EBo --

Hello, I got a few moments to play with OpenSCAD again, and decided to play with BOSL2 anchors. The simple part I wanted to model is a DIY track for a saw and router. The code is as follows (with inline questions in the comments): // extrusion_track_jig.scad: a track saw/router jig. Basically this is a // DIY track which can function as a straight edge for circular/plunge // saws, and routers. The "guide" module allows for "extra" width to be // trimmed to final size. include <NopSCADlib/lib.scad> include <BOSL2/std.scad> length = 1000; type = E2040; // E2020, E2040 saw_blade_to_edge = 125; // distance from edge of saw plate to the blade (saw dependent) router_to_edge = 80; // distance from edge of router base-plate to the bit (router dependent) extra = 10; // cut an extra 10mm for something to cut off. (split between sides) thickness = 6.35; // thickness of the guide board. 6.35mm == 0.25" guide (type,length,thickness,saw_blade_to_edge,router_to_edge, extra); module guide (type,length,thickness,saw_blade_to_edge,router_to_edge, extra) { // the extrusion rail type. // FIXME: is there a way to extract the actual dimenstions from the extrusion. rail = (E2040==type)?20:40; // // FIXME: it would be nice to anchor points on the extrusion, but I was // not able to figure out how translate([rail/2,0,0]) extrusion(type, length); // the guide board difference() { union() { // The saw side. cube([thickness,((E2040==type)?20:40)+saw_blade_to_edge+extra/2, length], anchor=RIGHT+FRONT); // the router side cube([thickness,((E2040==type)?20:40)+router_to_edge+extra/2, length], anchor=RIGHT+BACK); } // FIXME: how do I find the center of the extrusion rail to drill and // countersink holes for the mounting hardware } } I am not sure how if there is a trick to attach an anchor point to the NopSCADlib extruded rails, nor what is the best method to find the center of the rail channels for mounting hardware -- I would like to find the distances so that I can pre-drill and countersink the guide board. Also, if there are better ways to do all this, I would gladly accept the criticism. EBo --
NH
nop head
Sat, Mar 23, 2024 12:38 PM

There is no concept of anchors in NopSCADlib. You can retrieve all the
properties of the extrusion using the functions documented here:
https://github.com/nophead/NopSCADlib/tree/master?tab=readme-ov-file#extrusions
.

extrusion_width(type) will return the width of the extrusion in this case
and there is also extrusion_height(type), which will be different if the
extrusion isn't square.

When you draw the extrusion with extrusion(type, length, center = true,
cornerHole = false)  you can choose its origin to be in the centre or the
lower end, like a cylinder.

On Sat, 23 Mar 2024 at 09:56, John David via Discuss <
discuss@lists.openscad.org> wrote:

Hello,

I got a few moments to play with OpenSCAD again, and decided to play with
BOSL2 anchors.  The simple part I wanted to model is a DIY track for a saw
and router.  The code is as follows (with inline questions in the comments):

// extrusion_track_jig.scad: a track saw/router jig.  Basically this is a
//    DIY track which can function as a straight edge for circular/plunge
//    saws, and routers.  The "guide" module allows for "extra" width to be
//    trimmed to final size.

include <NopSCADlib/lib.scad>
include <BOSL2/std.scad>

length = 1000;
type = E2040; // E2020, E2040

saw_blade_to_edge = 125; // distance from edge of saw plate to the blade
(saw dependent)
router_to_edge = 80; // distance from edge of router base-plate to the bit
(router dependent)
extra = 10; // cut an extra 10mm for something to cut off. (split between
sides)

thickness = 6.35; // thickness of the guide board. 6.35mm == 0.25"

guide (type,length,thickness,saw_blade_to_edge,router_to_edge, extra);

module guide (type,length,thickness,saw_blade_to_edge,router_to_edge,
extra) {
// the extrusion rail type.
// FIXME: is there a way to extract the actual dimenstions from the
extrusion.
rail = (E2040==type)?20:40; //

 // FIXME: it would be nice to anchor points on the extrusion, but I

was
//  not able to figure out how
translate([rail/2,0,0]) extrusion(type, length);

 // the guide board
 difference() {
     union() {
         // The saw side.

cube([thickness,((E2040==type)?20:40)+saw_blade_to_edge+extra/2,
length], anchor=RIGHT+FRONT);
// the router side
cube([thickness,((E2040==type)?20:40)+router_to_edge+extra/2,
length], anchor=RIGHT+BACK);
}

     // FIXME: how do I find the center of the extrusion rail to drill

and
//  countersink holes for the mounting hardware
}
}

I am not sure how if there is a trick to attach an anchor point to the
NopSCADlib extruded rails, nor what is the best method to find the center
of the rail channels for mounting hardware -- I would like to find the
distances so that I can pre-drill and countersink the guide board.

Also, if there are better ways to do all this, I would gladly accept the
criticism.

EBo --


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

There is no concept of anchors in NopSCADlib. You can retrieve all the properties of the extrusion using the functions documented here: https://github.com/nophead/NopSCADlib/tree/master?tab=readme-ov-file#extrusions . extrusion_width(type) will return the width of the extrusion in this case and there is also extrusion_height(type), which will be different if the extrusion isn't square. When you draw the extrusion with extrusion(type, length, center = true, cornerHole = false) you can choose its origin to be in the centre or the lower end, like a cylinder. On Sat, 23 Mar 2024 at 09:56, John David via Discuss < discuss@lists.openscad.org> wrote: > Hello, > > I got a few moments to play with OpenSCAD again, and decided to play with > BOSL2 anchors. The simple part I wanted to model is a DIY track for a saw > and router. The code is as follows (with inline questions in the comments): > > // extrusion_track_jig.scad: a track saw/router jig. Basically this is a > // DIY track which can function as a straight edge for circular/plunge > // saws, and routers. The "guide" module allows for "extra" width to be > // trimmed to final size. > > include <NopSCADlib/lib.scad> > include <BOSL2/std.scad> > > length = 1000; > type = E2040; // E2020, E2040 > > saw_blade_to_edge = 125; // distance from edge of saw plate to the blade > (saw dependent) > router_to_edge = 80; // distance from edge of router base-plate to the bit > (router dependent) > extra = 10; // cut an extra 10mm for something to cut off. (split between > sides) > > thickness = 6.35; // thickness of the guide board. 6.35mm == 0.25" > > guide (type,length,thickness,saw_blade_to_edge,router_to_edge, extra); > > > module guide (type,length,thickness,saw_blade_to_edge,router_to_edge, > extra) { > // the extrusion rail type. > // FIXME: is there a way to extract the actual dimenstions from the > extrusion. > rail = (E2040==type)?20:40; // > > // FIXME: it would be nice to anchor points on the extrusion, but I > was > // not able to figure out how > translate([rail/2,0,0]) extrusion(type, length); > > // the guide board > difference() { > union() { > // The saw side. > > cube([thickness,((E2040==type)?20:40)+saw_blade_to_edge+extra/2, > length], anchor=RIGHT+FRONT); > // the router side > cube([thickness,((E2040==type)?20:40)+router_to_edge+extra/2, > length], anchor=RIGHT+BACK); > } > > // FIXME: how do I find the center of the extrusion rail to drill > and > // countersink holes for the mounting hardware > } > } > > I am not sure how if there is a trick to attach an anchor point to the > NopSCADlib extruded rails, nor what is the best method to find the center > of the rail channels for mounting hardware -- I would like to find the > distances so that I can pre-drill and countersink the guide board. > > Also, if there are better ways to do all this, I would gladly accept the > criticism. > > EBo -- > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >
AM
Adrian Mariano
Sat, Mar 23, 2024 12:57 PM

NopSCADlib and BOSL2 are completely unrelated, and I think are built
according to different principles of operation.  Anchoring is a BOSL2
feature and is only available on the objects within BOSL2, which have
special code to support it. If you wanted to use BOSL2 anchoring for an
object from NopSCADlib you'd need to make a BOSL2 version of that object by
making a new module that wraps it with an attachable() call.  This would
definitely not be worth the trouble for a one-off application; it would
only maybe make sense if you wanted to use that object in many projects, I
think.

On Sat, Mar 23, 2024 at 8:39 AM nop head via Discuss <
discuss@lists.openscad.org> wrote:

There is no concept of anchors in NopSCADlib. You can retrieve all the
properties of the extrusion using the functions documented here:
https://github.com/nophead/NopSCADlib/tree/master?tab=readme-ov-file#extrusions
.

extrusion_width(type) will return the width of the extrusion in this case
and there is also extrusion_height(type), which will be different if the
extrusion isn't square.

When you draw the extrusion with extrusion(type, length, center = true,
cornerHole = false)  you can choose its origin to be in the centre or the
lower end, like a cylinder.

On Sat, 23 Mar 2024 at 09:56, John David via Discuss <
discuss@lists.openscad.org> wrote:

Hello,

I got a few moments to play with OpenSCAD again, and decided to play with
BOSL2 anchors.  The simple part I wanted to model is a DIY track for a saw
and router.  The code is as follows (with inline questions in the comments):

// extrusion_track_jig.scad: a track saw/router jig.  Basically this is a
//    DIY track which can function as a straight edge for circular/plunge
//    saws, and routers.  The "guide" module allows for "extra" width to
be
//    trimmed to final size.

include <NopSCADlib/lib.scad>
include <BOSL2/std.scad>

length = 1000;
type = E2040; // E2020, E2040

saw_blade_to_edge = 125; // distance from edge of saw plate to the blade
(saw dependent)
router_to_edge = 80; // distance from edge of router base-plate to the
bit (router dependent)
extra = 10; // cut an extra 10mm for something to cut off. (split between
sides)

thickness = 6.35; // thickness of the guide board. 6.35mm == 0.25"

guide (type,length,thickness,saw_blade_to_edge,router_to_edge, extra);

module guide (type,length,thickness,saw_blade_to_edge,router_to_edge,
extra) {
// the extrusion rail type.
// FIXME: is there a way to extract the actual dimenstions from the
extrusion.
rail = (E2040==type)?20:40; //

 // FIXME: it would be nice to anchor points on the extrusion, but I

was
//  not able to figure out how
translate([rail/2,0,0]) extrusion(type, length);

 // the guide board
 difference() {
     union() {
         // The saw side.

cube([thickness,((E2040==type)?20:40)+saw_blade_to_edge+extra/2,
length], anchor=RIGHT+FRONT);
// the router side
cube([thickness,((E2040==type)?20:40)+router_to_edge+extra/2,
length], anchor=RIGHT+BACK);
}

     // FIXME: how do I find the center of the extrusion rail to drill

and
//  countersink holes for the mounting hardware
}
}

I am not sure how if there is a trick to attach an anchor point to the
NopSCADlib extruded rails, nor what is the best method to find the center
of the rail channels for mounting hardware -- I would like to find the
distances so that I can pre-drill and countersink the guide board.

Also, if there are better ways to do all this, I would gladly accept the
criticism.

EBo --


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

NopSCADlib and BOSL2 are completely unrelated, and I think are built according to different principles of operation. Anchoring is a BOSL2 feature and is only available on the objects within BOSL2, which have special code to support it. If you wanted to use BOSL2 anchoring for an object from NopSCADlib you'd need to make a BOSL2 version of that object by making a new module that wraps it with an attachable() call. This would definitely not be worth the trouble for a one-off application; it would only maybe make sense if you wanted to use that object in many projects, I think. On Sat, Mar 23, 2024 at 8:39 AM nop head via Discuss < discuss@lists.openscad.org> wrote: > There is no concept of anchors in NopSCADlib. You can retrieve all the > properties of the extrusion using the functions documented here: > https://github.com/nophead/NopSCADlib/tree/master?tab=readme-ov-file#extrusions > . > > extrusion_width(type) will return the width of the extrusion in this case > and there is also extrusion_height(type), which will be different if the > extrusion isn't square. > > When you draw the extrusion with extrusion(type, length, center = true, > cornerHole = false) you can choose its origin to be in the centre or the > lower end, like a cylinder. > > > > > On Sat, 23 Mar 2024 at 09:56, John David via Discuss < > discuss@lists.openscad.org> wrote: > >> Hello, >> >> I got a few moments to play with OpenSCAD again, and decided to play with >> BOSL2 anchors. The simple part I wanted to model is a DIY track for a saw >> and router. The code is as follows (with inline questions in the comments): >> >> // extrusion_track_jig.scad: a track saw/router jig. Basically this is a >> // DIY track which can function as a straight edge for circular/plunge >> // saws, and routers. The "guide" module allows for "extra" width to >> be >> // trimmed to final size. >> >> include <NopSCADlib/lib.scad> >> include <BOSL2/std.scad> >> >> length = 1000; >> type = E2040; // E2020, E2040 >> >> saw_blade_to_edge = 125; // distance from edge of saw plate to the blade >> (saw dependent) >> router_to_edge = 80; // distance from edge of router base-plate to the >> bit (router dependent) >> extra = 10; // cut an extra 10mm for something to cut off. (split between >> sides) >> >> thickness = 6.35; // thickness of the guide board. 6.35mm == 0.25" >> >> guide (type,length,thickness,saw_blade_to_edge,router_to_edge, extra); >> >> >> module guide (type,length,thickness,saw_blade_to_edge,router_to_edge, >> extra) { >> // the extrusion rail type. >> // FIXME: is there a way to extract the actual dimenstions from the >> extrusion. >> rail = (E2040==type)?20:40; // >> >> // FIXME: it would be nice to anchor points on the extrusion, but I >> was >> // not able to figure out how >> translate([rail/2,0,0]) extrusion(type, length); >> >> // the guide board >> difference() { >> union() { >> // The saw side. >> >> cube([thickness,((E2040==type)?20:40)+saw_blade_to_edge+extra/2, >> length], anchor=RIGHT+FRONT); >> // the router side >> cube([thickness,((E2040==type)?20:40)+router_to_edge+extra/2, >> length], anchor=RIGHT+BACK); >> } >> >> // FIXME: how do I find the center of the extrusion rail to drill >> and >> // countersink holes for the mounting hardware >> } >> } >> >> I am not sure how if there is a trick to attach an anchor point to the >> NopSCADlib extruded rails, nor what is the best method to find the center >> of the rail channels for mounting hardware -- I would like to find the >> distances so that I can pre-drill and countersink the guide board. >> >> Also, if there are better ways to do all this, I would gladly accept the >> criticism. >> >> EBo -- >> _______________________________________________ >> 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 >
GH
gene heskett
Sat, Mar 23, 2024 2:32 PM

On 3/23/24 05:56, John David via Discuss wrote:

Hello,

I got a few moments to play with OpenSCAD again, and decided to play
with BOSL2 anchors.  The simple part I wanted to model is a DIY track
for a saw and router.  The code is as follows (with inline questions in
the comments):

// extrusion_track_jig.scad: a track saw/router jig.  Basically this is a
//    DIY track which can function as a straight edge for circular/plunge
//    saws, and routers.  The "guide" module allows for "extra" width to be
//    trimmed to final size.

include <NopSCADlib/lib.scad>
include <BOSL2/std.scad>

length = 1000;
type = E2040; // E2020, E2040

saw_blade_to_edge = 125; // distance from edge of saw plate to the blade
(saw dependent)
router_to_edge = 80; // distance from edge of router base-plate to the
bit (router dependent)
extra = 10; // cut an extra 10mm for something to cut off. (split
between sides)

thickness = 6.35; // thickness of the guide board. 6.35mm == 0.25"

guide (type,length,thickness,saw_blade_to_edge,router_to_edge, extra);

module guide (type,length,thickness,saw_blade_to_edge,router_to_edge,
extra) {
    // the extrusion rail type.
    // FIXME: is there a way to extract the actual dimenstions from the
extrusion.
    rail = (E2040==type)?20:40; //

    // FIXME: it would be nice to anchor points on the extrusion, but I
was
    //   not able to figure out how
    translate([rail/2,0,0]) extrusion(type, length);

    // the guide board
    difference() {
        union() {
            // The saw side.

cube([thickness,((E2040==type)?20:40)+saw_blade_to_edge+extra/2,
                length], anchor=RIGHT+FRONT);
            // the router side
            cube([thickness,((E2040==type)?20:40)+router_to_edge+extra/2,
                length], anchor=RIGHT+BACK);
        }

        // FIXME: how do I find the center of the extrusion rail to
drill and
        //   countersink holes for the mounting hardware
    }
}

I am not sure how if there is a trick to attach an anchor point to the
NopSCADlib extruded rails, nor what is the best method to find the
center of the rail channels for mounting hardware -- I would like to
find the distances so that I can pre-drill and countersink the guide board.

Also, if there are better ways to do all this, I would gladly accept the
criticism.

This is where OpenSCAD's basic lack of a unit stick's out like a sore
thumb.  It is handy as sliced bread to feed a printer in mm. Doing this
at a usable size must translate into common wood measurements which
needs a library of canned solutions, as it is much too big for a
printer. I've wondered how one could develop a system to use for
furniture or other structural things. Generally for furniture I have
just broken it down into pieces that I can fit of my machinery, and just
written the gcode by hand. The huge advantage there is the ability to
roll it up into loops, compacting the final code by 98%. The big finger
joints of the Green & Green furniture is a prime example. Computers have
not yet learned how to look at a shape and carve it directly.  The best
they can do in rasterize it, like slicers for printers do now.

So I haven't contributed to a solution. I'm easily ignored.

Cheers, Gene Heskett, CET.

"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author, 1940)
If we desire respect for the law, we must first make the law respectable.

  • Louis D. Brandeis
On 3/23/24 05:56, John David via Discuss wrote: > Hello, > > I got a few moments to play with OpenSCAD again, and decided to play > with BOSL2 anchors.  The simple part I wanted to model is a DIY track > for a saw and router.  The code is as follows (with inline questions in > the comments): > > // extrusion_track_jig.scad: a track saw/router jig.  Basically this is a > //    DIY track which can function as a straight edge for circular/plunge > //    saws, and routers.  The "guide" module allows for "extra" width to be > //    trimmed to final size. > > include <NopSCADlib/lib.scad> > include <BOSL2/std.scad> > > length = 1000; > type = E2040; // E2020, E2040 > > saw_blade_to_edge = 125; // distance from edge of saw plate to the blade > (saw dependent) > router_to_edge = 80; // distance from edge of router base-plate to the > bit (router dependent) > extra = 10; // cut an extra 10mm for something to cut off. (split > between sides) > > thickness = 6.35; // thickness of the guide board. 6.35mm == 0.25" > > guide (type,length,thickness,saw_blade_to_edge,router_to_edge, extra); > > > module guide (type,length,thickness,saw_blade_to_edge,router_to_edge, > extra) { >     // the extrusion rail type. >     // FIXME: is there a way to extract the actual dimenstions from the > extrusion. >     rail = (E2040==type)?20:40; // > >     // FIXME: it would be nice to anchor points on the extrusion, but I > was >     //   not able to figure out how >     translate([rail/2,0,0]) extrusion(type, length); > >     // the guide board >     difference() { >         union() { >             // The saw side. > > cube([thickness,((E2040==type)?20:40)+saw_blade_to_edge+extra/2, >                 length], anchor=RIGHT+FRONT); >             // the router side >             cube([thickness,((E2040==type)?20:40)+router_to_edge+extra/2, >                 length], anchor=RIGHT+BACK); >         } > >         // FIXME: how do I find the center of the extrusion rail to > drill and >         //   countersink holes for the mounting hardware >     } > } > > I am not sure how if there is a trick to attach an anchor point to the > NopSCADlib extruded rails, nor what is the best method to find the > center of the rail channels for mounting hardware -- I would like to > find the distances so that I can pre-drill and countersink the guide board. > > Also, if there are better ways to do all this, I would gladly accept the > criticism. > This is where OpenSCAD's basic lack of a unit stick's out like a sore thumb. It is handy as sliced bread to feed a printer in mm. Doing this at a usable size must translate into common wood measurements which needs a library of canned solutions, as it is much too big for a printer. I've wondered how one could develop a system to use for furniture or other structural things. Generally for furniture I have just broken it down into pieces that I can fit of my machinery, and just written the gcode by hand. The huge advantage there is the ability to roll it up into loops, compacting the final code by 98%. The big finger joints of the Green & Green furniture is a prime example. Computers have not yet learned how to look at a shape and carve it directly. The best they can do in rasterize it, like slicers for printers do now. So I haven't contributed to a solution. I'm easily ignored. Cheers, Gene Heskett, CET. -- "There are four boxes to be used in defense of liberty: soap, ballot, jury, and ammo. Please use in that order." -Ed Howdershelt (Author, 1940) If we desire respect for the law, we must first make the law respectable. - Louis D. Brandeis
JD
John David
Sat, Mar 23, 2024 6:48 PM

Nop Head,

re: no concept of attach/anchor in NopSCADlib...
OK.  I wounded if there was some trick to possibly write a function which
uses your objects (I think you call them vitamins).  I see from Adrian's
comments that I would have to write a wrapper or migrate things into BOSL2.

re: hardware placement locations...
I had looked at the documentation and saw the extrusion_corner_hole,
extrusion_center_hole, but not something that returns the center of the
channel to calculate fastener placement.  Maybe it is
extrusion_channel_recess or extrusion_channel_width?  While writing this
email, I played around a little and got something to work.  I'll look at
that more, and maybe write a function given the properties to give the
locations for holes at some distance along the extrusion length.

Adrian,

Thank you for the reality check.  Yea, I see that it would not be worth the
time for a one-off.  I'll think if I have enough work to do that it would
be worth it.  I might do it anyway as a learning exercise.

Gene,

Yea, it would be nice to set something up where you could specify units.  I
bet there is a workaround, but I doubt that people would care for it much.
But for now I will do everything in mm or in depending on what the part
naturally wants to be given its purpose and what it is made from.

Thanks all,

EBo --

On Sat, Mar 23, 2024 at 10:32 AM gene heskett via Discuss <
discuss@lists.openscad.org> wrote:

On 3/23/24 05:56, John David via Discuss wrote:

Hello,

I got a few moments to play with OpenSCAD again, and decided to play
with BOSL2 anchors.  The simple part I wanted to model is a DIY track
for a saw and router.  The code is as follows (with inline questions in
the comments):

// extrusion_track_jig.scad: a track saw/router jig.  Basically this is a
//    DIY track which can function as a straight edge for circular/plunge
//    saws, and routers.  The "guide" module allows for "extra" width to

be

//    trimmed to final size.

include <NopSCADlib/lib.scad>
include <BOSL2/std.scad>

length = 1000;
type = E2040; // E2020, E2040

saw_blade_to_edge = 125; // distance from edge of saw plate to the blade
(saw dependent)
router_to_edge = 80; // distance from edge of router base-plate to the
bit (router dependent)
extra = 10; // cut an extra 10mm for something to cut off. (split
between sides)

thickness = 6.35; // thickness of the guide board. 6.35mm == 0.25"

guide (type,length,thickness,saw_blade_to_edge,router_to_edge, extra);

module guide (type,length,thickness,saw_blade_to_edge,router_to_edge,
extra) {
// the extrusion rail type.
// FIXME: is there a way to extract the actual dimenstions from the
extrusion.
rail = (E2040==type)?20:40; //

  // FIXME: it would be nice to anchor points on the extrusion, but I

was
//  not able to figure out how
translate([rail/2,0,0]) extrusion(type, length);

  // the guide board
  difference() {
      union() {
          // The saw side.

cube([thickness,((E2040==type)?20:40)+saw_blade_to_edge+extra/2,
length], anchor=RIGHT+FRONT);
// the router side

cube([thickness,((E2040==type)?20:40)+router_to_edge+extra/2,

              length], anchor=RIGHT+BACK);
      }

      // FIXME: how do I find the center of the extrusion rail to

drill and
//  countersink holes for the mounting hardware
}
}

I am not sure how if there is a trick to attach an anchor point to the
NopSCADlib extruded rails, nor what is the best method to find the
center of the rail channels for mounting hardware -- I would like to
find the distances so that I can pre-drill and countersink the guide

board.

Also, if there are better ways to do all this, I would gladly accept the
criticism.

This is where OpenSCAD's basic lack of a unit stick's out like a sore
thumb.  It is handy as sliced bread to feed a printer in mm. Doing this
at a usable size must translate into common wood measurements which
needs a library of canned solutions, as it is much too big for a
printer. I've wondered how one could develop a system to use for
furniture or other structural things. Generally for furniture I have
just broken it down into pieces that I can fit of my machinery, and just
written the gcode by hand. The huge advantage there is the ability to
roll it up into loops, compacting the final code by 98%. The big finger
joints of the Green & Green furniture is a prime example. Computers have
not yet learned how to look at a shape and carve it directly.  The best
they can do in rasterize it, like slicers for printers do now.

So I haven't contributed to a solution. I'm easily ignored.

Cheers, Gene Heskett, CET.

"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author, 1940)
If we desire respect for the law, we must first make the law respectable.

  • Louis D. Brandeis

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

Nop Head, re: no concept of attach/anchor in NopSCADlib... OK. I wounded if there was some trick to possibly write a function which uses your objects (I think you call them vitamins). I see from Adrian's comments that I would have to write a wrapper or migrate things into BOSL2. re: hardware placement locations... I had looked at the documentation and saw the extrusion_corner_hole, extrusion_center_hole, but not something that returns the center of the channel to calculate fastener placement. Maybe it is extrusion_channel_recess or extrusion_channel_width? While writing this email, I played around a little and got something to work. I'll look at that more, and maybe write a function given the properties to give the locations for holes at some distance along the extrusion length. Adrian, Thank you for the reality check. Yea, I see that it would not be worth the time for a one-off. I'll think if I have enough work to do that it would be worth it. I might do it anyway as a learning exercise. Gene, Yea, it would be nice to set something up where you could specify units. I bet there is a workaround, but I doubt that people would care for it much. But for now I will do everything in mm or in depending on what the part naturally wants to be given its purpose and what it is made from. Thanks all, EBo -- On Sat, Mar 23, 2024 at 10:32 AM gene heskett via Discuss < discuss@lists.openscad.org> wrote: > On 3/23/24 05:56, John David via Discuss wrote: > > Hello, > > > > I got a few moments to play with OpenSCAD again, and decided to play > > with BOSL2 anchors. The simple part I wanted to model is a DIY track > > for a saw and router. The code is as follows (with inline questions in > > the comments): > > > > // extrusion_track_jig.scad: a track saw/router jig. Basically this is a > > // DIY track which can function as a straight edge for circular/plunge > > // saws, and routers. The "guide" module allows for "extra" width to > be > > // trimmed to final size. > > > > include <NopSCADlib/lib.scad> > > include <BOSL2/std.scad> > > > > length = 1000; > > type = E2040; // E2020, E2040 > > > > saw_blade_to_edge = 125; // distance from edge of saw plate to the blade > > (saw dependent) > > router_to_edge = 80; // distance from edge of router base-plate to the > > bit (router dependent) > > extra = 10; // cut an extra 10mm for something to cut off. (split > > between sides) > > > > thickness = 6.35; // thickness of the guide board. 6.35mm == 0.25" > > > > guide (type,length,thickness,saw_blade_to_edge,router_to_edge, extra); > > > > > > module guide (type,length,thickness,saw_blade_to_edge,router_to_edge, > > extra) { > > // the extrusion rail type. > > // FIXME: is there a way to extract the actual dimenstions from the > > extrusion. > > rail = (E2040==type)?20:40; // > > > > // FIXME: it would be nice to anchor points on the extrusion, but I > > was > > // not able to figure out how > > translate([rail/2,0,0]) extrusion(type, length); > > > > // the guide board > > difference() { > > union() { > > // The saw side. > > > > cube([thickness,((E2040==type)?20:40)+saw_blade_to_edge+extra/2, > > length], anchor=RIGHT+FRONT); > > // the router side > > > cube([thickness,((E2040==type)?20:40)+router_to_edge+extra/2, > > length], anchor=RIGHT+BACK); > > } > > > > // FIXME: how do I find the center of the extrusion rail to > > drill and > > // countersink holes for the mounting hardware > > } > > } > > > > I am not sure how if there is a trick to attach an anchor point to the > > NopSCADlib extruded rails, nor what is the best method to find the > > center of the rail channels for mounting hardware -- I would like to > > find the distances so that I can pre-drill and countersink the guide > board. > > > > Also, if there are better ways to do all this, I would gladly accept the > > criticism. > > > This is where OpenSCAD's basic lack of a unit stick's out like a sore > thumb. It is handy as sliced bread to feed a printer in mm. Doing this > at a usable size must translate into common wood measurements which > needs a library of canned solutions, as it is much too big for a > printer. I've wondered how one could develop a system to use for > furniture or other structural things. Generally for furniture I have > just broken it down into pieces that I can fit of my machinery, and just > written the gcode by hand. The huge advantage there is the ability to > roll it up into loops, compacting the final code by 98%. The big finger > joints of the Green & Green furniture is a prime example. Computers have > not yet learned how to look at a shape and carve it directly. The best > they can do in rasterize it, like slicers for printers do now. > > So I haven't contributed to a solution. I'm easily ignored. > > Cheers, Gene Heskett, CET. > -- > "There are four boxes to be used in defense of liberty: > soap, ballot, jury, and ammo. Please use in that order." > -Ed Howdershelt (Author, 1940) > If we desire respect for the law, we must first make the law respectable. > - Louis D. Brandeis > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >
NH
nop head
Sat, Mar 23, 2024 7:36 PM

On Sat, 23 Mar 2024 at 18:48, John David via Discuss <
discuss@lists.openscad.org> wrote:

Nop Head,

re: no concept of attach/anchor in NopSCADlib...
OK.  I wounded if there was some trick to possibly write a function which
uses your objects (I think you call them vitamins).  I see from Adrian's
comments that I would have to write a wrapper or migrate things into BOSL2.

There are always functions  or modules to get enough information from my
vitamins to be able to place them in a design. They wouldn't be useful
otherwise.

[image: image.png]

For example, these extrusion brackets are placed relative to extrusions and
the code for all the examples is linked to in the documentation.
https://github.com/nophead/NopSCADlib/tree/master?tab=readme-ov-file#extrusion_brackets

re: hardware placement locations...
I had looked at the documentation and saw the extrusion_corner_hole,
extrusion_center_hole, but not something that returns the center of the
channel to calculate fastener placement.  Maybe it is
extrusion_channel_recess or extrusion_channel_width?  While writing this
email, I played around a little and got something to work.  I'll look at
that more, and maybe write a function given the properties to give the
locations for holes at some distance along the extrusion length.

Adrian,

Thank you for the reality check.  Yea, I see that it would not be worth
the time for a one-off.  I'll think if I have enough work to do that it
would be worth it.  I might do it anyway as a learning exercise.

Gene,

Yea, it would be nice to set something up where you could specify units.
I bet there is a workaround, but I doubt that people would care for it
much.  But for now I will do everything in mm or in depending on what the
part naturally wants to be given its purpose and what it is made from.

Thanks all,

EBo --

On Sat, Mar 23, 2024 at 10:32 AM gene heskett via Discuss <
discuss@lists.openscad.org> wrote:

On 3/23/24 05:56, John David via Discuss wrote:

Hello,

I got a few moments to play with OpenSCAD again, and decided to play
with BOSL2 anchors.  The simple part I wanted to model is a DIY track
for a saw and router.  The code is as follows (with inline questions in
the comments):

// extrusion_track_jig.scad: a track saw/router jig.  Basically this is

a

//    DIY track which can function as a straight edge for

circular/plunge

//    saws, and routers.  The "guide" module allows for "extra" width

to be

//    trimmed to final size.

include <NopSCADlib/lib.scad>
include <BOSL2/std.scad>

length = 1000;
type = E2040; // E2020, E2040

saw_blade_to_edge = 125; // distance from edge of saw plate to the

blade

(saw dependent)
router_to_edge = 80; // distance from edge of router base-plate to the
bit (router dependent)
extra = 10; // cut an extra 10mm for something to cut off. (split
between sides)

thickness = 6.35; // thickness of the guide board. 6.35mm == 0.25"

guide (type,length,thickness,saw_blade_to_edge,router_to_edge, extra);

module guide (type,length,thickness,saw_blade_to_edge,router_to_edge,
extra) {
// the extrusion rail type.
// FIXME: is there a way to extract the actual dimenstions from

the

extrusion.
rail = (E2040==type)?20:40; //

  // FIXME: it would be nice to anchor points on the extrusion, but

I

was
//  not able to figure out how
translate([rail/2,0,0]) extrusion(type, length);

  // the guide board
  difference() {
      union() {
          // The saw side.

cube([thickness,((E2040==type)?20:40)+saw_blade_to_edge+extra/2,
length], anchor=RIGHT+FRONT);
// the router side

cube([thickness,((E2040==type)?20:40)+router_to_edge+extra/2,

              length], anchor=RIGHT+BACK);
      }

      // FIXME: how do I find the center of the extrusion rail to

drill and
//  countersink holes for the mounting hardware
}
}

I am not sure how if there is a trick to attach an anchor point to the
NopSCADlib extruded rails, nor what is the best method to find the
center of the rail channels for mounting hardware -- I would like to
find the distances so that I can pre-drill and countersink the guide

board.

Also, if there are better ways to do all this, I would gladly accept

the

criticism.

This is where OpenSCAD's basic lack of a unit stick's out like a sore
thumb.  It is handy as sliced bread to feed a printer in mm. Doing this
at a usable size must translate into common wood measurements which
needs a library of canned solutions, as it is much too big for a
printer. I've wondered how one could develop a system to use for
furniture or other structural things. Generally for furniture I have
just broken it down into pieces that I can fit of my machinery, and just
written the gcode by hand. The huge advantage there is the ability to
roll it up into loops, compacting the final code by 98%. The big finger
joints of the Green & Green furniture is a prime example. Computers have
not yet learned how to look at a shape and carve it directly.  The best
they can do in rasterize it, like slicers for printers do now.

So I haven't contributed to a solution. I'm easily ignored.

Cheers, Gene Heskett, CET.

"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author, 1940)
If we desire respect for the law, we must first make the law respectable.

  • Louis D. Brandeis

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

On Sat, 23 Mar 2024 at 18:48, John David via Discuss < discuss@lists.openscad.org> wrote: > Nop Head, > > re: no concept of attach/anchor in NopSCADlib... > OK. I wounded if there was some trick to possibly write a function which > uses your objects (I think you call them vitamins). I see from Adrian's > comments that I would have to write a wrapper or migrate things into BOSL2. > There are always functions or modules to get enough information from my vitamins to be able to place them in a design. They wouldn't be useful otherwise. [image: image.png] For example, these extrusion brackets are placed relative to extrusions and the code for all the examples is linked to in the documentation. https://github.com/nophead/NopSCADlib/tree/master?tab=readme-ov-file#extrusion_brackets > > re: hardware placement locations... > I had looked at the documentation and saw the extrusion_corner_hole, > extrusion_center_hole, but not something that returns the center of the > channel to calculate fastener placement. Maybe it is > extrusion_channel_recess or extrusion_channel_width? While writing this > email, I played around a little and got something to work. I'll look at > that more, and maybe write a function given the properties to give the > locations for holes at some distance along the extrusion length. > > Adrian, > > Thank you for the reality check. Yea, I see that it would not be worth > the time for a one-off. I'll think if I have enough work to do that it > would be worth it. I might do it anyway as a learning exercise. > > Gene, > > Yea, it would be nice to set something up where you could specify units. > I bet there is a workaround, but I doubt that people would care for it > much. But for now I will do everything in mm or in depending on what the > part naturally wants to be given its purpose and what it is made from. > > Thanks all, > > EBo -- > > On Sat, Mar 23, 2024 at 10:32 AM gene heskett via Discuss < > discuss@lists.openscad.org> wrote: > >> On 3/23/24 05:56, John David via Discuss wrote: >> > Hello, >> > >> > I got a few moments to play with OpenSCAD again, and decided to play >> > with BOSL2 anchors. The simple part I wanted to model is a DIY track >> > for a saw and router. The code is as follows (with inline questions in >> > the comments): >> > >> > // extrusion_track_jig.scad: a track saw/router jig. Basically this is >> a >> > // DIY track which can function as a straight edge for >> circular/plunge >> > // saws, and routers. The "guide" module allows for "extra" width >> to be >> > // trimmed to final size. >> > >> > include <NopSCADlib/lib.scad> >> > include <BOSL2/std.scad> >> > >> > length = 1000; >> > type = E2040; // E2020, E2040 >> > >> > saw_blade_to_edge = 125; // distance from edge of saw plate to the >> blade >> > (saw dependent) >> > router_to_edge = 80; // distance from edge of router base-plate to the >> > bit (router dependent) >> > extra = 10; // cut an extra 10mm for something to cut off. (split >> > between sides) >> > >> > thickness = 6.35; // thickness of the guide board. 6.35mm == 0.25" >> > >> > guide (type,length,thickness,saw_blade_to_edge,router_to_edge, extra); >> > >> > >> > module guide (type,length,thickness,saw_blade_to_edge,router_to_edge, >> > extra) { >> > // the extrusion rail type. >> > // FIXME: is there a way to extract the actual dimenstions from >> the >> > extrusion. >> > rail = (E2040==type)?20:40; // >> > >> > // FIXME: it would be nice to anchor points on the extrusion, but >> I >> > was >> > // not able to figure out how >> > translate([rail/2,0,0]) extrusion(type, length); >> > >> > // the guide board >> > difference() { >> > union() { >> > // The saw side. >> > >> > cube([thickness,((E2040==type)?20:40)+saw_blade_to_edge+extra/2, >> > length], anchor=RIGHT+FRONT); >> > // the router side >> > >> cube([thickness,((E2040==type)?20:40)+router_to_edge+extra/2, >> > length], anchor=RIGHT+BACK); >> > } >> > >> > // FIXME: how do I find the center of the extrusion rail to >> > drill and >> > // countersink holes for the mounting hardware >> > } >> > } >> > >> > I am not sure how if there is a trick to attach an anchor point to the >> > NopSCADlib extruded rails, nor what is the best method to find the >> > center of the rail channels for mounting hardware -- I would like to >> > find the distances so that I can pre-drill and countersink the guide >> board. >> > >> > Also, if there are better ways to do all this, I would gladly accept >> the >> > criticism. >> > >> This is where OpenSCAD's basic lack of a unit stick's out like a sore >> thumb. It is handy as sliced bread to feed a printer in mm. Doing this >> at a usable size must translate into common wood measurements which >> needs a library of canned solutions, as it is much too big for a >> printer. I've wondered how one could develop a system to use for >> furniture or other structural things. Generally for furniture I have >> just broken it down into pieces that I can fit of my machinery, and just >> written the gcode by hand. The huge advantage there is the ability to >> roll it up into loops, compacting the final code by 98%. The big finger >> joints of the Green & Green furniture is a prime example. Computers have >> not yet learned how to look at a shape and carve it directly. The best >> they can do in rasterize it, like slicers for printers do now. >> >> So I haven't contributed to a solution. I'm easily ignored. >> >> Cheers, Gene Heskett, CET. >> -- >> "There are four boxes to be used in defense of liberty: >> soap, ballot, jury, and ammo. Please use in that order." >> -Ed Howdershelt (Author, 1940) >> If we desire respect for the law, we must first make the law respectable. >> - Louis D. Brandeis >> _______________________________________________ >> 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
Sat, Mar 23, 2024 10:01 PM

I'm not sure what the issue with units is.  You can work in inches or feet
or miles or whatever units you want to in OpenSCAD.  If you need a model in
mm to keep your slicer happy or something you can define inch=25.4 and do
6*inch and so on.  (Or BOSL2 actually defines INCH already.)

On Sat, Mar 23, 2024 at 3:37 PM nop head via Discuss <
discuss@lists.openscad.org> wrote:

On Sat, 23 Mar 2024 at 18:48, John David via Discuss <
discuss@lists.openscad.org> wrote:

Nop Head,

re: no concept of attach/anchor in NopSCADlib...
OK.  I wounded if there was some trick to possibly write a function which
uses your objects (I think you call them vitamins).  I see from Adrian's
comments that I would have to write a wrapper or migrate things into BOSL2.

There are always functions  or modules to get enough information from my
vitamins to be able to place them in a design. They wouldn't be useful
otherwise.

[image: image.png]

For example, these extrusion brackets are placed relative to extrusions
and the code for all the examples is linked to in the documentation.
https://github.com/nophead/NopSCADlib/tree/master?tab=readme-ov-file#extrusion_brackets

re: hardware placement locations...
I had looked at the documentation and saw the extrusion_corner_hole,
extrusion_center_hole, but not something that returns the center of the
channel to calculate fastener placement.  Maybe it is
extrusion_channel_recess or extrusion_channel_width?  While writing this
email, I played around a little and got something to work.  I'll look at
that more, and maybe write a function given the properties to give the
locations for holes at some distance along the extrusion length.

Adrian,

Thank you for the reality check.  Yea, I see that it would not be worth
the time for a one-off.  I'll think if I have enough work to do that it
would be worth it.  I might do it anyway as a learning exercise.

Gene,

Yea, it would be nice to set something up where you could specify units.
I bet there is a workaround, but I doubt that people would care for it
much.  But for now I will do everything in mm or in depending on what the
part naturally wants to be given its purpose and what it is made from.

Thanks all,

EBo --

On Sat, Mar 23, 2024 at 10:32 AM gene heskett via Discuss <
discuss@lists.openscad.org> wrote:

On 3/23/24 05:56, John David via Discuss wrote:

Hello,

I got a few moments to play with OpenSCAD again, and decided to play
with BOSL2 anchors.  The simple part I wanted to model is a DIY track
for a saw and router.  The code is as follows (with inline questions

in

the comments):

// extrusion_track_jig.scad: a track saw/router jig.  Basically this

is a

//    DIY track which can function as a straight edge for

circular/plunge

//    saws, and routers.  The "guide" module allows for "extra" width

to be

//    trimmed to final size.

include <NopSCADlib/lib.scad>
include <BOSL2/std.scad>

length = 1000;
type = E2040; // E2020, E2040

saw_blade_to_edge = 125; // distance from edge of saw plate to the

blade

(saw dependent)
router_to_edge = 80; // distance from edge of router base-plate to the
bit (router dependent)
extra = 10; // cut an extra 10mm for something to cut off. (split
between sides)

thickness = 6.35; // thickness of the guide board. 6.35mm == 0.25"

guide (type,length,thickness,saw_blade_to_edge,router_to_edge, extra);

module guide (type,length,thickness,saw_blade_to_edge,router_to_edge,
extra) {
// the extrusion rail type.
// FIXME: is there a way to extract the actual dimenstions from

the

extrusion.
rail = (E2040==type)?20:40; //

  // FIXME: it would be nice to anchor points on the extrusion, but

I

was
//  not able to figure out how
translate([rail/2,0,0]) extrusion(type, length);

  // the guide board
  difference() {
      union() {
          // The saw side.

cube([thickness,((E2040==type)?20:40)+saw_blade_to_edge+extra/2,
length], anchor=RIGHT+FRONT);
// the router side

cube([thickness,((E2040==type)?20:40)+router_to_edge+extra/2,

              length], anchor=RIGHT+BACK);
      }

      // FIXME: how do I find the center of the extrusion rail to

drill and
//  countersink holes for the mounting hardware
}
}

I am not sure how if there is a trick to attach an anchor point to the
NopSCADlib extruded rails, nor what is the best method to find the
center of the rail channels for mounting hardware -- I would like to
find the distances so that I can pre-drill and countersink the guide

board.

Also, if there are better ways to do all this, I would gladly accept

the

criticism.

This is where OpenSCAD's basic lack of a unit stick's out like a sore
thumb.  It is handy as sliced bread to feed a printer in mm. Doing this
at a usable size must translate into common wood measurements which
needs a library of canned solutions, as it is much too big for a
printer. I've wondered how one could develop a system to use for
furniture or other structural things. Generally for furniture I have
just broken it down into pieces that I can fit of my machinery, and just
written the gcode by hand. The huge advantage there is the ability to
roll it up into loops, compacting the final code by 98%. The big finger
joints of the Green & Green furniture is a prime example. Computers have
not yet learned how to look at a shape and carve it directly.  The best
they can do in rasterize it, like slicers for printers do now.

So I haven't contributed to a solution. I'm easily ignored.

Cheers, Gene Heskett, CET.

"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author, 1940)
If we desire respect for the law, we must first make the law respectable.

  • Louis D. Brandeis

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

I'm not sure what the issue with units is. You can work in inches or feet or miles or whatever units you want to in OpenSCAD. If you need a model in mm to keep your slicer happy or something you can define inch=25.4 and do 6*inch and so on. (Or BOSL2 actually defines INCH already.) On Sat, Mar 23, 2024 at 3:37 PM nop head via Discuss < discuss@lists.openscad.org> wrote: > > > On Sat, 23 Mar 2024 at 18:48, John David via Discuss < > discuss@lists.openscad.org> wrote: > >> Nop Head, >> >> re: no concept of attach/anchor in NopSCADlib... >> OK. I wounded if there was some trick to possibly write a function which >> uses your objects (I think you call them vitamins). I see from Adrian's >> comments that I would have to write a wrapper or migrate things into BOSL2. >> > > There are always functions or modules to get enough information from my > vitamins to be able to place them in a design. They wouldn't be useful > otherwise. > > [image: image.png] > > For example, these extrusion brackets are placed relative to extrusions > and the code for all the examples is linked to in the documentation. > https://github.com/nophead/NopSCADlib/tree/master?tab=readme-ov-file#extrusion_brackets > > > > >> >> re: hardware placement locations... >> I had looked at the documentation and saw the extrusion_corner_hole, >> extrusion_center_hole, but not something that returns the center of the >> channel to calculate fastener placement. Maybe it is >> extrusion_channel_recess or extrusion_channel_width? While writing this >> email, I played around a little and got something to work. I'll look at >> that more, and maybe write a function given the properties to give the >> locations for holes at some distance along the extrusion length. >> >> Adrian, >> >> Thank you for the reality check. Yea, I see that it would not be worth >> the time for a one-off. I'll think if I have enough work to do that it >> would be worth it. I might do it anyway as a learning exercise. >> >> Gene, >> >> Yea, it would be nice to set something up where you could specify units. >> I bet there is a workaround, but I doubt that people would care for it >> much. But for now I will do everything in mm or in depending on what the >> part naturally wants to be given its purpose and what it is made from. >> >> Thanks all, >> >> EBo -- >> >> On Sat, Mar 23, 2024 at 10:32 AM gene heskett via Discuss < >> discuss@lists.openscad.org> wrote: >> >>> On 3/23/24 05:56, John David via Discuss wrote: >>> > Hello, >>> > >>> > I got a few moments to play with OpenSCAD again, and decided to play >>> > with BOSL2 anchors. The simple part I wanted to model is a DIY track >>> > for a saw and router. The code is as follows (with inline questions >>> in >>> > the comments): >>> > >>> > // extrusion_track_jig.scad: a track saw/router jig. Basically this >>> is a >>> > // DIY track which can function as a straight edge for >>> circular/plunge >>> > // saws, and routers. The "guide" module allows for "extra" width >>> to be >>> > // trimmed to final size. >>> > >>> > include <NopSCADlib/lib.scad> >>> > include <BOSL2/std.scad> >>> > >>> > length = 1000; >>> > type = E2040; // E2020, E2040 >>> > >>> > saw_blade_to_edge = 125; // distance from edge of saw plate to the >>> blade >>> > (saw dependent) >>> > router_to_edge = 80; // distance from edge of router base-plate to the >>> > bit (router dependent) >>> > extra = 10; // cut an extra 10mm for something to cut off. (split >>> > between sides) >>> > >>> > thickness = 6.35; // thickness of the guide board. 6.35mm == 0.25" >>> > >>> > guide (type,length,thickness,saw_blade_to_edge,router_to_edge, extra); >>> > >>> > >>> > module guide (type,length,thickness,saw_blade_to_edge,router_to_edge, >>> > extra) { >>> > // the extrusion rail type. >>> > // FIXME: is there a way to extract the actual dimenstions from >>> the >>> > extrusion. >>> > rail = (E2040==type)?20:40; // >>> > >>> > // FIXME: it would be nice to anchor points on the extrusion, but >>> I >>> > was >>> > // not able to figure out how >>> > translate([rail/2,0,0]) extrusion(type, length); >>> > >>> > // the guide board >>> > difference() { >>> > union() { >>> > // The saw side. >>> > >>> > cube([thickness,((E2040==type)?20:40)+saw_blade_to_edge+extra/2, >>> > length], anchor=RIGHT+FRONT); >>> > // the router side >>> > >>> cube([thickness,((E2040==type)?20:40)+router_to_edge+extra/2, >>> > length], anchor=RIGHT+BACK); >>> > } >>> > >>> > // FIXME: how do I find the center of the extrusion rail to >>> > drill and >>> > // countersink holes for the mounting hardware >>> > } >>> > } >>> > >>> > I am not sure how if there is a trick to attach an anchor point to the >>> > NopSCADlib extruded rails, nor what is the best method to find the >>> > center of the rail channels for mounting hardware -- I would like to >>> > find the distances so that I can pre-drill and countersink the guide >>> board. >>> > >>> > Also, if there are better ways to do all this, I would gladly accept >>> the >>> > criticism. >>> > >>> This is where OpenSCAD's basic lack of a unit stick's out like a sore >>> thumb. It is handy as sliced bread to feed a printer in mm. Doing this >>> at a usable size must translate into common wood measurements which >>> needs a library of canned solutions, as it is much too big for a >>> printer. I've wondered how one could develop a system to use for >>> furniture or other structural things. Generally for furniture I have >>> just broken it down into pieces that I can fit of my machinery, and just >>> written the gcode by hand. The huge advantage there is the ability to >>> roll it up into loops, compacting the final code by 98%. The big finger >>> joints of the Green & Green furniture is a prime example. Computers have >>> not yet learned how to look at a shape and carve it directly. The best >>> they can do in rasterize it, like slicers for printers do now. >>> >>> So I haven't contributed to a solution. I'm easily ignored. >>> >>> Cheers, Gene Heskett, CET. >>> -- >>> "There are four boxes to be used in defense of liberty: >>> soap, ballot, jury, and ammo. Please use in that order." >>> -Ed Howdershelt (Author, 1940) >>> If we desire respect for the law, we must first make the law respectable. >>> - Louis D. Brandeis >>> _______________________________________________ >>> 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 >
JD
John David
Sat, Mar 23, 2024 11:36 PM

Sorry.  It is not clear to me what some of the documentation meant/means.
Looking at the code in
https://github.com/nophead/NopSCADlib/blob/master/vitamins/extrusion_bracket.scad
it looks like what I may need is
extrusion_inner_corner_bracket_screw_offsets(type) (which for
'E20_inner_corner_bracket' returns [7, 6] and is later used with
screw_offsets.y and x to find the placement of the sliding nut).  As a
note, when I read through the extrusion code I thought there would be some
function there, but see that you have functions and modules for the
brackets which I can extract some of the meaning from.  I had just wondered
if there was a convenience function to provide it at the extrusion level.
Thank you for pointing me to the brackets.

On Sat, Mar 23, 2024 at 3:37 PM nop head via Discuss <
discuss@lists.openscad.org> wrote:

On Sat, 23 Mar 2024 at 18:48, John David via Discuss <
discuss@lists.openscad.org> wrote:

Nop Head,

re: no concept of attach/anchor in NopSCADlib...
OK.  I wounded if there was some trick to possibly write a function which
uses your objects (I think you call them vitamins).  I see from Adrian's
comments that I would have to write a wrapper or migrate things into BOSL2.

There are always functions  or modules to get enough information from my
vitamins to be able to place them in a design. They wouldn't be useful
otherwise.

[image: image.png]

For example, these extrusion brackets are placed relative to extrusions
and the code for all the examples is linked to in the documentation.
https://github.com/nophead/NopSCADlib/tree/master?tab=readme-ov-file#extrusion_brackets

re: hardware placement locations...
I had looked at the documentation and saw the extrusion_corner_hole,
extrusion_center_hole, but not something that returns the center of the
channel to calculate fastener placement.  Maybe it is
extrusion_channel_recess or extrusion_channel_width?  While writing this
email, I played around a little and got something to work.  I'll look at
that more, and maybe write a function given the properties to give the
locations for holes at some distance along the extrusion length.

Adrian,

Thank you for the reality check.  Yea, I see that it would not be worth
the time for a one-off.  I'll think if I have enough work to do that it
would be worth it.  I might do it anyway as a learning exercise.

Gene,

Yea, it would be nice to set something up where you could specify units.
I bet there is a workaround, but I doubt that people would care for it
much.  But for now I will do everything in mm or in depending on what the
part naturally wants to be given its purpose and what it is made from.

Thanks all,

EBo --

On Sat, Mar 23, 2024 at 10:32 AM gene heskett via Discuss <
discuss@lists.openscad.org> wrote:

On 3/23/24 05:56, John David via Discuss wrote:

Hello,

I got a few moments to play with OpenSCAD again, and decided to play
with BOSL2 anchors.  The simple part I wanted to model is a DIY track
for a saw and router.  The code is as follows (with inline questions

in

the comments):

// extrusion_track_jig.scad: a track saw/router jig.  Basically this

is a

//    DIY track which can function as a straight edge for

circular/plunge

//    saws, and routers.  The "guide" module allows for "extra" width

to be

//    trimmed to final size.

include <NopSCADlib/lib.scad>
include <BOSL2/std.scad>

length = 1000;
type = E2040; // E2020, E2040

saw_blade_to_edge = 125; // distance from edge of saw plate to the

blade

(saw dependent)
router_to_edge = 80; // distance from edge of router base-plate to the
bit (router dependent)
extra = 10; // cut an extra 10mm for something to cut off. (split
between sides)

thickness = 6.35; // thickness of the guide board. 6.35mm == 0.25"

guide (type,length,thickness,saw_blade_to_edge,router_to_edge, extra);

module guide (type,length,thickness,saw_blade_to_edge,router_to_edge,
extra) {
// the extrusion rail type.
// FIXME: is there a way to extract the actual dimenstions from

the

extrusion.
rail = (E2040==type)?20:40; //

  // FIXME: it would be nice to anchor points on the extrusion, but

I

was
//  not able to figure out how
translate([rail/2,0,0]) extrusion(type, length);

  // the guide board
  difference() {
      union() {
          // The saw side.

cube([thickness,((E2040==type)?20:40)+saw_blade_to_edge+extra/2,
length], anchor=RIGHT+FRONT);
// the router side

cube([thickness,((E2040==type)?20:40)+router_to_edge+extra/2,

              length], anchor=RIGHT+BACK);
      }

      // FIXME: how do I find the center of the extrusion rail to

drill and
//  countersink holes for the mounting hardware
}
}

I am not sure how if there is a trick to attach an anchor point to the
NopSCADlib extruded rails, nor what is the best method to find the
center of the rail channels for mounting hardware -- I would like to
find the distances so that I can pre-drill and countersink the guide

board.

Also, if there are better ways to do all this, I would gladly accept

the

criticism.

This is where OpenSCAD's basic lack of a unit stick's out like a sore
thumb.  It is handy as sliced bread to feed a printer in mm. Doing this
at a usable size must translate into common wood measurements which
needs a library of canned solutions, as it is much too big for a
printer. I've wondered how one could develop a system to use for
furniture or other structural things. Generally for furniture I have
just broken it down into pieces that I can fit of my machinery, and just
written the gcode by hand. The huge advantage there is the ability to
roll it up into loops, compacting the final code by 98%. The big finger
joints of the Green & Green furniture is a prime example. Computers have
not yet learned how to look at a shape and carve it directly.  The best
they can do in rasterize it, like slicers for printers do now.

So I haven't contributed to a solution. I'm easily ignored.

Cheers, Gene Heskett, CET.

"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author, 1940)
If we desire respect for the law, we must first make the law respectable.

  • Louis D. Brandeis

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

Sorry. It is not clear to me what some of the documentation meant/means. Looking at the code in https://github.com/nophead/NopSCADlib/blob/master/vitamins/extrusion_bracket.scad it looks like what I may need is extrusion_inner_corner_bracket_screw_offsets(type) (which for 'E20_inner_corner_bracket' returns [7, 6] and is later used with screw_offsets.y and x to find the placement of the sliding nut). As a note, when I read through the extrusion code I thought there would be some function there, but see that you have functions and modules for the brackets which I can extract some of the meaning from. I had just wondered if there was a convenience function to provide it at the extrusion level. Thank you for pointing me to the brackets. On Sat, Mar 23, 2024 at 3:37 PM nop head via Discuss < discuss@lists.openscad.org> wrote: > > > On Sat, 23 Mar 2024 at 18:48, John David via Discuss < > discuss@lists.openscad.org> wrote: > >> Nop Head, >> >> re: no concept of attach/anchor in NopSCADlib... >> OK. I wounded if there was some trick to possibly write a function which >> uses your objects (I think you call them vitamins). I see from Adrian's >> comments that I would have to write a wrapper or migrate things into BOSL2. >> > > There are always functions or modules to get enough information from my > vitamins to be able to place them in a design. They wouldn't be useful > otherwise. > > [image: image.png] > > For example, these extrusion brackets are placed relative to extrusions > and the code for all the examples is linked to in the documentation. > https://github.com/nophead/NopSCADlib/tree/master?tab=readme-ov-file#extrusion_brackets > > > > >> >> re: hardware placement locations... >> I had looked at the documentation and saw the extrusion_corner_hole, >> extrusion_center_hole, but not something that returns the center of the >> channel to calculate fastener placement. Maybe it is >> extrusion_channel_recess or extrusion_channel_width? While writing this >> email, I played around a little and got something to work. I'll look at >> that more, and maybe write a function given the properties to give the >> locations for holes at some distance along the extrusion length. >> >> Adrian, >> >> Thank you for the reality check. Yea, I see that it would not be worth >> the time for a one-off. I'll think if I have enough work to do that it >> would be worth it. I might do it anyway as a learning exercise. >> >> Gene, >> >> Yea, it would be nice to set something up where you could specify units. >> I bet there is a workaround, but I doubt that people would care for it >> much. But for now I will do everything in mm or in depending on what the >> part naturally wants to be given its purpose and what it is made from. >> >> Thanks all, >> >> EBo -- >> >> On Sat, Mar 23, 2024 at 10:32 AM gene heskett via Discuss < >> discuss@lists.openscad.org> wrote: >> >>> On 3/23/24 05:56, John David via Discuss wrote: >>> > Hello, >>> > >>> > I got a few moments to play with OpenSCAD again, and decided to play >>> > with BOSL2 anchors. The simple part I wanted to model is a DIY track >>> > for a saw and router. The code is as follows (with inline questions >>> in >>> > the comments): >>> > >>> > // extrusion_track_jig.scad: a track saw/router jig. Basically this >>> is a >>> > // DIY track which can function as a straight edge for >>> circular/plunge >>> > // saws, and routers. The "guide" module allows for "extra" width >>> to be >>> > // trimmed to final size. >>> > >>> > include <NopSCADlib/lib.scad> >>> > include <BOSL2/std.scad> >>> > >>> > length = 1000; >>> > type = E2040; // E2020, E2040 >>> > >>> > saw_blade_to_edge = 125; // distance from edge of saw plate to the >>> blade >>> > (saw dependent) >>> > router_to_edge = 80; // distance from edge of router base-plate to the >>> > bit (router dependent) >>> > extra = 10; // cut an extra 10mm for something to cut off. (split >>> > between sides) >>> > >>> > thickness = 6.35; // thickness of the guide board. 6.35mm == 0.25" >>> > >>> > guide (type,length,thickness,saw_blade_to_edge,router_to_edge, extra); >>> > >>> > >>> > module guide (type,length,thickness,saw_blade_to_edge,router_to_edge, >>> > extra) { >>> > // the extrusion rail type. >>> > // FIXME: is there a way to extract the actual dimenstions from >>> the >>> > extrusion. >>> > rail = (E2040==type)?20:40; // >>> > >>> > // FIXME: it would be nice to anchor points on the extrusion, but >>> I >>> > was >>> > // not able to figure out how >>> > translate([rail/2,0,0]) extrusion(type, length); >>> > >>> > // the guide board >>> > difference() { >>> > union() { >>> > // The saw side. >>> > >>> > cube([thickness,((E2040==type)?20:40)+saw_blade_to_edge+extra/2, >>> > length], anchor=RIGHT+FRONT); >>> > // the router side >>> > >>> cube([thickness,((E2040==type)?20:40)+router_to_edge+extra/2, >>> > length], anchor=RIGHT+BACK); >>> > } >>> > >>> > // FIXME: how do I find the center of the extrusion rail to >>> > drill and >>> > // countersink holes for the mounting hardware >>> > } >>> > } >>> > >>> > I am not sure how if there is a trick to attach an anchor point to the >>> > NopSCADlib extruded rails, nor what is the best method to find the >>> > center of the rail channels for mounting hardware -- I would like to >>> > find the distances so that I can pre-drill and countersink the guide >>> board. >>> > >>> > Also, if there are better ways to do all this, I would gladly accept >>> the >>> > criticism. >>> > >>> This is where OpenSCAD's basic lack of a unit stick's out like a sore >>> thumb. It is handy as sliced bread to feed a printer in mm. Doing this >>> at a usable size must translate into common wood measurements which >>> needs a library of canned solutions, as it is much too big for a >>> printer. I've wondered how one could develop a system to use for >>> furniture or other structural things. Generally for furniture I have >>> just broken it down into pieces that I can fit of my machinery, and just >>> written the gcode by hand. The huge advantage there is the ability to >>> roll it up into loops, compacting the final code by 98%. The big finger >>> joints of the Green & Green furniture is a prime example. Computers have >>> not yet learned how to look at a shape and carve it directly. The best >>> they can do in rasterize it, like slicers for printers do now. >>> >>> So I haven't contributed to a solution. I'm easily ignored. >>> >>> Cheers, Gene Heskett, CET. >>> -- >>> "There are four boxes to be used in defense of liberty: >>> soap, ballot, jury, and ammo. Please use in that order." >>> -Ed Howdershelt (Author, 1940) >>> If we desire respect for the law, we must first make the law respectable. >>> - Louis D. Brandeis >>> _______________________________________________ >>> 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 >
RD
Revar Desmera
Sun, Mar 24, 2024 2:37 AM

I cannot confirm whether NopSCADlib and BOSL2 can work together, as they are both large libraries that likely have namespace collisions that could cause issues.

Having said that, BOSL2 does have a way to provide attachment capabilities to non-BOSL2 shapes, using the attachable() {...} module.
https://github.com/BelfrySCAD/BOSL2/wiki/attachments.scad#module-attachable

In general this will take the form:

attachable(anchor,spin,orient, [GEOMETRY_SPEC_HERE]) {
YOUR_CENTERED_SHAPE_HERE();
children();
}

The geometry spec can be something like size=[30,40], for a cuboid, or r=30, h=50 for a cylinder.  There's a number more available specs, most of which are discusses in the attachables tutorial:
https://github.com/BelfrySCAD/BOSL2/wiki/Tutorial-Attachments#making-attachables

You can also make custom string named anchors, using the anchors= argument:
https://github.com/BelfrySCAD/BOSL2/wiki/Tutorial-Attachments#making-named-anchors

  • Revar

On Mar 23, 2024, at 2:54 AM, John David via Discuss discuss@lists.openscad.org wrote:

Hello,

I got a few moments to play with OpenSCAD again, and decided to play with BOSL2 anchors.  The simple part I wanted to model is a DIY track for a saw and router.  The code is as follows (with inline questions in the comments):

// extrusion_track_jig.scad: a track saw/router jig.  Basically this is a
//    DIY track which can function as a straight edge for circular/plunge
//    saws, and routers.  The "guide" module allows for "extra" width to be
//    trimmed to final size.

include <NopSCADlib/lib.scad>
include <BOSL2/std.scad>

length = 1000;
type = E2040; // E2020, E2040

saw_blade_to_edge = 125; // distance from edge of saw plate to the blade (saw dependent)
router_to_edge = 80; // distance from edge of router base-plate to the bit (router dependent)
extra = 10; // cut an extra 10mm for something to cut off. (split between sides)

thickness = 6.35; // thickness of the guide board. 6.35mm == 0.25"

guide (type,length,thickness,saw_blade_to_edge,router_to_edge, extra);

module guide (type,length,thickness,saw_blade_to_edge,router_to_edge, extra) {
// the extrusion rail type.
// FIXME: is there a way to extract the actual dimenstions from the extrusion.
rail = (E2040==type)?20:40; //

 // FIXME: it would be nice to anchor points on the extrusion, but I was 
 //   not able to figure out how
 translate([rail/2,0,0]) extrusion(type, length);
 
 // the guide board
 difference() {
     union() {
         // The saw side.
         cube([thickness,((E2040==type)?20:40)+saw_blade_to_edge+extra/2,
             length], anchor=RIGHT+FRONT);
         // the router side
         cube([thickness,((E2040==type)?20:40)+router_to_edge+extra/2,
             length], anchor=RIGHT+BACK);
     }
 
     // FIXME: how do I find the center of the extrusion rail to drill and
     //   countersink holes for the mounting hardware
 }

}

I am not sure how if there is a trick to attach an anchor point to the NopSCADlib extruded rails, nor what is the best method to find the center of the rail channels for mounting hardware -- I would like to find the distances so that I can pre-drill and countersink the guide board.

Also, if there are better ways to do all this, I would gladly accept the criticism.

EBo --


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

I cannot confirm whether NopSCADlib and BOSL2 can work together, as they are both large libraries that likely have namespace collisions that could cause issues. Having said that, BOSL2 does have a way to provide attachment capabilities to non-BOSL2 shapes, using the `attachable() {...}` module. https://github.com/BelfrySCAD/BOSL2/wiki/attachments.scad#module-attachable In general this will take the form: attachable(anchor,spin,orient, [GEOMETRY_SPEC_HERE]) { YOUR_CENTERED_SHAPE_HERE(); children(); } The geometry spec can be something like `size=[30,40]`, for a cuboid, or `r=30, h=50` for a cylinder. There's a number more available specs, most of which are discusses in the attachables tutorial: https://github.com/BelfrySCAD/BOSL2/wiki/Tutorial-Attachments#making-attachables You can also make custom string named anchors, using the anchors= argument: https://github.com/BelfrySCAD/BOSL2/wiki/Tutorial-Attachments#making-named-anchors - Revar > On Mar 23, 2024, at 2:54 AM, John David via Discuss <discuss@lists.openscad.org> wrote: > > Hello, > > I got a few moments to play with OpenSCAD again, and decided to play with BOSL2 anchors. The simple part I wanted to model is a DIY track for a saw and router. The code is as follows (with inline questions in the comments): > > // extrusion_track_jig.scad: a track saw/router jig. Basically this is a > // DIY track which can function as a straight edge for circular/plunge > // saws, and routers. The "guide" module allows for "extra" width to be > // trimmed to final size. > > include <NopSCADlib/lib.scad> > include <BOSL2/std.scad> > > length = 1000; > type = E2040; // E2020, E2040 > > saw_blade_to_edge = 125; // distance from edge of saw plate to the blade (saw dependent) > router_to_edge = 80; // distance from edge of router base-plate to the bit (router dependent) > extra = 10; // cut an extra 10mm for something to cut off. (split between sides) > > thickness = 6.35; // thickness of the guide board. 6.35mm == 0.25" > > guide (type,length,thickness,saw_blade_to_edge,router_to_edge, extra); > > > module guide (type,length,thickness,saw_blade_to_edge,router_to_edge, extra) { > // the extrusion rail type. > // FIXME: is there a way to extract the actual dimenstions from the extrusion. > rail = (E2040==type)?20:40; // > > // FIXME: it would be nice to anchor points on the extrusion, but I was > // not able to figure out how > translate([rail/2,0,0]) extrusion(type, length); > > // the guide board > difference() { > union() { > // The saw side. > cube([thickness,((E2040==type)?20:40)+saw_blade_to_edge+extra/2, > length], anchor=RIGHT+FRONT); > // the router side > cube([thickness,((E2040==type)?20:40)+router_to_edge+extra/2, > length], anchor=RIGHT+BACK); > } > > // FIXME: how do I find the center of the extrusion rail to drill and > // countersink holes for the mounting hardware > } > } > > I am not sure how if there is a trick to attach an anchor point to the NopSCADlib extruded rails, nor what is the best method to find the center of the rail channels for mounting hardware -- I would like to find the distances so that I can pre-drill and countersink the guide board. > > Also, if there are better ways to do all this, I would gladly accept the criticism. > > EBo -- > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org