discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

pattern for brass nameplate

RW
Raymond West
Thu, May 2, 2024 9:46 PM

I'm hoping to create a simple pattern for a casting a couple of brass
nameplates. I would like to produce it as an stl for fdm printing. There
are a few problems. 1) I've created a 3d design approximating to the
desired size, but when extruding, there needs to be a draft angle of
about 3 degrees for each letter and the frame. 2) there needs to be a
fillet at the base of each character for easy pattern removal. 3)
ideally, it would be nice to individually adjust the width of the
strokes  of the letters. The code, so far, is listed below.

As the lettering is simple, then I am wondering if it may be easier to
create a profile for a cross section, including the fillet, and extrude
a length, cut up and rotate and place accordingly. (it would be ten
pieces and the frame).  I think that I could create the fillets, if I
could get the draft angle on the eletter strokes, by differencing into a
cube, and applying Minkowski with a small sphere, and differencing back
again.

Machining from solid is simpler, I use a profiled round-ended cutter to
get the draft angle and fillet in one pass, I could almost write the
g-code by hand for that....

Any suggestions? (being a bit of a Luddite, I am not going to be using
bos2l 😳 )

Best wishes,

Ray

////////////////////////////////////////////////////////////////////////////////////

// ken

module name(){
  text ("KEN",font="Liberation
Sans:style=Bold",size=50,valign="center",halign="center");
}

module inround(){
    difference(){
       d=40;
       r=20;
            square(d,true);
             translate([-r,-r])circle(d=d);
             translate([-r,+r])circle(d=d);
             translate([+r,-r])circle(d=d);
             translate([+r,+r])circle(d=d);
     }
}

module inframe(){
            difference(){
                square([220,80],true);
                   translate([-110,-40])inround();
                   translate([-110,+40])inround();
                   translate([+110,-40])inround();
                   translate([+110,+40])inround();
     }
}

module frame(){
      difference(){
       offset(r=10) inframe();
        inframe();
    }
}

module base(){
   linear_extrude(5){
      offset(r=10) inframe();
  }
}

  base();
  linear_extrude(10){
  frame();
  name();
  }

I'm hoping to create a simple pattern for a casting a couple of brass nameplates. I would like to produce it as an stl for fdm printing. There are a few problems. 1) I've created a 3d design approximating to the desired size, but when extruding, there needs to be a draft angle of about 3 degrees for each letter and the frame. 2) there needs to be a fillet at the base of each character for easy pattern removal. 3) ideally, it would be nice to individually adjust the width of the strokes  of the letters. The code, so far, is listed below. As the lettering is simple, then I am wondering if it may be easier to create a profile for a cross section, including the fillet, and extrude a length, cut up and rotate and place accordingly. (it would be ten pieces and the frame).  I think that I could create the fillets, if I could get the draft angle on the eletter strokes, by differencing into a cube, and applying Minkowski with a small sphere, and differencing back again. Machining from solid is simpler, I use a profiled round-ended cutter to get the draft angle and fillet in one pass, I could almost write the g-code by hand for that.... Any suggestions? (being a bit of a Luddite, I am not going to be using bos2l 😳 ) Best wishes, Ray //////////////////////////////////////////////////////////////////////////////////// // ken module name(){   text ("KEN",font="Liberation Sans:style=Bold",size=50,valign="center",halign="center"); } module inround(){     difference(){        d=40;        r=20;             square(d,true);              translate([-r,-r])circle(d=d);              translate([-r,+r])circle(d=d);              translate([+r,-r])circle(d=d);              translate([+r,+r])circle(d=d);      } } module inframe(){             difference(){                 square([220,80],true);                    translate([-110,-40])inround();                    translate([-110,+40])inround();                    translate([+110,-40])inround();                    translate([+110,+40])inround();      } } module frame(){       difference(){        offset(r=10) inframe();         inframe();     } } module base(){    linear_extrude(5){       offset(r=10) inframe();   } }   base();   linear_extrude(10){   frame();   name();   }
RD
Revar Desmera
Thu, May 2, 2024 11:53 PM

You can always minkowski the text with a pseudo traffic-cone shape.

module rrect(size, r) {
hull() {
for (x = [-1,1], y = [-1,1])
translate([x*(size.x/2-r), y*(size.y/2-r)])
circle(r=r);
}
}

module plate(size, r, wall, base, height) {
linear_extrude(height=height) {
difference() {
rrect(size, r);
rrect(size-2*[wall,wall], r-wall);
}
}
linear_extrude(height=base) {
rrect(size, r);
}
}

module trumpet_horn(fillet, height, ang, n) {
tanx = fillet / cos(ang);
xoff = (height-fillet) * tan(ang);
cp = [tanx+xoff, fillet];
path = [
[0,height],
for (i = [0:1:n])
let( a = 180 + ang + (90-ang) * (i/n) )
cp + fillet * [cos(a),sin(a)],
[0,0]
];
rotate_extrude() polygon(path);
}

module name(text, fillet, height, ang, n) {
minkowski() {
translate([0,0,-0.1]) {
linear_extrude(height=0.1, center=false)
text(text, font="Liberation Sans:style=Bold", size=50, valign="center",halign="center");
}
trumpet_horn(fillet, height, ang, n);
}
}

module plaque(text, height, fillet, ang) {
union() {
translate([0,0,2])
name(text=text, fillet, height, ang, n=3);
plate(size=[220,90], r=20, wall=10, base=2, height=10);
}
}

plaque("KEN", height=10, fillet=3, ang=3);

  • Revar

On May 2, 2024, at 2:46 PM, Raymond West via Discuss discuss@lists.openscad.org wrote:

I'm hoping to create a simple pattern for a casting a couple of brass nameplates. I would like to produce it as an stl for fdm printing. There are a few problems. 1) I've created a 3d design approximating to the desired size, but when extruding, there needs to be a draft angle of about 3 degrees for each letter and the frame. 2) there needs to be a fillet at the base of each character for easy pattern removal. 3) ideally, it would be nice to individually adjust the width of the strokes  of the letters. The code, so far, is listed below.

As the lettering is simple, then I am wondering if it may be easier to create a profile for a cross section, including the fillet, and extrude a length, cut up and rotate and place accordingly. (it would be ten pieces and the frame).  I think that I could create the fillets, if I could get the draft angle on the eletter strokes, by differencing into a cube, and applying Minkowski with a small sphere, and differencing back again.

Machining from solid is simpler, I use a profiled round-ended cutter to get the draft angle and fillet in one pass, I could almost write the g-code by hand for that....

Any suggestions? (being a bit of a Luddite, I am not going to be using bos2l 😳 )

Best wishes,

Ray

////////////////////////////////////////////////////////////////////////////////////

// ken

module name(){
text ("KEN",font="Liberation Sans:style=Bold",size=50,valign="center",halign="center");
}

module inround(){
difference(){
d=40;
r=20;
square(d,true);
translate([-r,-r])circle(d=d);
translate([-r,+r])circle(d=d);
translate([+r,-r])circle(d=d);
translate([+r,+r])circle(d=d);
}
}

module inframe(){
difference(){
square([220,80],true);
translate([-110,-40])inround();
translate([-110,+40])inround();
translate([+110,-40])inround();
translate([+110,+40])inround();
}
}

module frame(){
difference(){
offset(r=10) inframe();
inframe();
}
}

module base(){
linear_extrude(5){
offset(r=10) inframe();
}
}

base();
linear_extrude(10){
frame();
name();
}


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

You can always minkowski the text with a pseudo traffic-cone shape. module rrect(size, r) { hull() { for (x = [-1,1], y = [-1,1]) translate([x*(size.x/2-r), y*(size.y/2-r)]) circle(r=r); } } module plate(size, r, wall, base, height) { linear_extrude(height=height) { difference() { rrect(size, r); rrect(size-2*[wall,wall], r-wall); } } linear_extrude(height=base) { rrect(size, r); } } module trumpet_horn(fillet, height, ang, n) { tanx = fillet / cos(ang); xoff = (height-fillet) * tan(ang); cp = [tanx+xoff, fillet]; path = [ [0,height], for (i = [0:1:n]) let( a = 180 + ang + (90-ang) * (i/n) ) cp + fillet * [cos(a),sin(a)], [0,0] ]; rotate_extrude() polygon(path); } module name(text, fillet, height, ang, n) { minkowski() { translate([0,0,-0.1]) { linear_extrude(height=0.1, center=false) text(text, font="Liberation Sans:style=Bold", size=50, valign="center",halign="center"); } trumpet_horn(fillet, height, ang, n); } } module plaque(text, height, fillet, ang) { union() { translate([0,0,2]) name(text=text, fillet, height, ang, n=3); plate(size=[220,90], r=20, wall=10, base=2, height=10); } } plaque("KEN", height=10, fillet=3, ang=3);  - Revar > On May 2, 2024, at 2:46 PM, Raymond West via Discuss <discuss@lists.openscad.org> wrote: > > I'm hoping to create a simple pattern for a casting a couple of brass nameplates. I would like to produce it as an stl for fdm printing. There are a few problems. 1) I've created a 3d design approximating to the desired size, but when extruding, there needs to be a draft angle of about 3 degrees for each letter and the frame. 2) there needs to be a fillet at the base of each character for easy pattern removal. 3) ideally, it would be nice to individually adjust the width of the strokes of the letters. The code, so far, is listed below. > > As the lettering is simple, then I am wondering if it may be easier to create a profile for a cross section, including the fillet, and extrude a length, cut up and rotate and place accordingly. (it would be ten pieces and the frame). I think that I could create the fillets, if I could get the draft angle on the eletter strokes, by differencing into a cube, and applying Minkowski with a small sphere, and differencing back again. > > Machining from solid is simpler, I use a profiled round-ended cutter to get the draft angle and fillet in one pass, I could almost write the g-code by hand for that.... > > Any suggestions? (being a bit of a Luddite, I am not going to be using bos2l 😳 ) > > Best wishes, > > Ray > > //////////////////////////////////////////////////////////////////////////////////// > > // ken > > module name(){ > text ("KEN",font="Liberation Sans:style=Bold",size=50,valign="center",halign="center"); > } > > module inround(){ > difference(){ > d=40; > r=20; > square(d,true); > translate([-r,-r])circle(d=d); > translate([-r,+r])circle(d=d); > translate([+r,-r])circle(d=d); > translate([+r,+r])circle(d=d); > } > } > > module inframe(){ > difference(){ > square([220,80],true); > translate([-110,-40])inround(); > translate([-110,+40])inround(); > translate([+110,-40])inround(); > translate([+110,+40])inround(); > } > } > > module frame(){ > difference(){ > offset(r=10) inframe(); > inframe(); > } > } > > module base(){ > linear_extrude(5){ > offset(r=10) inframe(); > } > } > > base(); > linear_extrude(10){ > frame(); > name(); > } > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org
RD
Revar Desmera
Fri, May 3, 2024 12:16 AM

I realized after posing that the the plate itself needed filleting:

module rrect(size, r) {
hull() {
for (x = [-1,1], y = [-1,1])
translate([x*(size.x/2-r), y*(size.y/2-r)])
circle(r=r);
}
}

module plate(size, r, wall, base, height, fillet, ang=3, n=3) {
linear_extrude(height=height) {
difference() {
rrect(size, r);
rrect(size-2*[wall,wall], r-wall);
}
}
minkowski() {
translate([0,0,base-0.1]) {
linear_extrude(height=0.1) {
difference() {
rrect(size-1.9*[wall,wall], r-0.95wall);
rrect(size-2
[wall,wall], r-wall);
}
}
}
trumpet_horn(fillet, height-base, ang, n);
}
linear_extrude(height=base) {
rrect(size, r);
}
}

module trumpet_horn(fillet, height, ang=3, n=3) {
tanx = fillet / cos(ang);
xoff = (height-fillet) * tan(ang);
cp = [tanx+xoff, fillet];
path = [
[0,height],
for (i = [0:1:n])
let( a = 180 + ang + (90-ang) * (i/n) )
cp + fillet * [cos(a),sin(a)],
[0,0]
];
rotate_extrude() polygon(path);
}

module name(text, fillet, height, ang=3, n=3) {
minkowski() {
translate([0,0,-0.1]) {
linear_extrude(height=0.1, center=false)
text(text, font="Liberation Sans:style=Bold", size=50, valign="center",halign="center");
}
trumpet_horn(fillet, height, ang, n);
}
}

module plaque(text, height, fillet, ang=3) {
union() {
translate([0,0,2])
name(text=text, fillet, height, ang, n=3);
plate(size=[220,90], r=20, wall=10, base=2, height=10, fillet=fillet, ang=ang);
}
}

plaque("KEN", height=10, fillet=3, ang=3);

  • Revar

On May 2, 2024, at 2:46 PM, Raymond West via Discuss discuss@lists.openscad.org wrote:

I'm hoping to create a simple pattern for a casting a couple of brass nameplates. I would like to produce it as an stl for fdm printing. There are a few problems. 1) I've created a 3d design approximating to the desired size, but when extruding, there needs to be a draft angle of about 3 degrees for each letter and the frame. 2) there needs to be a fillet at the base of each character for easy pattern removal. 3) ideally, it would be nice to individually adjust the width of the strokes  of the letters. The code, so far, is listed below.

As the lettering is simple, then I am wondering if it may be easier to create a profile for a cross section, including the fillet, and extrude a length, cut up and rotate and place accordingly. (it would be ten pieces and the frame).  I think that I could create the fillets, if I could get the draft angle on the eletter strokes, by differencing into a cube, and applying Minkowski with a small sphere, and differencing back again.

Machining from solid is simpler, I use a profiled round-ended cutter to get the draft angle and fillet in one pass, I could almost write the g-code by hand for that....

Any suggestions? (being a bit of a Luddite, I am not going to be using bos2l 😳 )

Best wishes,

Ray

////////////////////////////////////////////////////////////////////////////////////

// ken

module name(){
text ("KEN",font="Liberation Sans:style=Bold",size=50,valign="center",halign="center");
}

module inround(){
difference(){
d=40;
r=20;
square(d,true);
translate([-r,-r])circle(d=d);
translate([-r,+r])circle(d=d);
translate([+r,-r])circle(d=d);
translate([+r,+r])circle(d=d);
}
}

module inframe(){
difference(){
square([220,80],true);
translate([-110,-40])inround();
translate([-110,+40])inround();
translate([+110,-40])inround();
translate([+110,+40])inround();
}
}

module frame(){
difference(){
offset(r=10) inframe();
inframe();
}
}

module base(){
linear_extrude(5){
offset(r=10) inframe();
}
}

base();
linear_extrude(10){
frame();
name();
}


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

I realized after posing that the the plate itself needed filleting: module rrect(size, r) { hull() { for (x = [-1,1], y = [-1,1]) translate([x*(size.x/2-r), y*(size.y/2-r)]) circle(r=r); } } module plate(size, r, wall, base, height, fillet, ang=3, n=3) { linear_extrude(height=height) { difference() { rrect(size, r); rrect(size-2*[wall,wall], r-wall); } } minkowski() { translate([0,0,base-0.1]) { linear_extrude(height=0.1) { difference() { rrect(size-1.9*[wall,wall], r-0.95*wall); rrect(size-2*[wall,wall], r-wall); } } } trumpet_horn(fillet, height-base, ang, n); } linear_extrude(height=base) { rrect(size, r); } } module trumpet_horn(fillet, height, ang=3, n=3) { tanx = fillet / cos(ang); xoff = (height-fillet) * tan(ang); cp = [tanx+xoff, fillet]; path = [ [0,height], for (i = [0:1:n]) let( a = 180 + ang + (90-ang) * (i/n) ) cp + fillet * [cos(a),sin(a)], [0,0] ]; rotate_extrude() polygon(path); } module name(text, fillet, height, ang=3, n=3) { minkowski() { translate([0,0,-0.1]) { linear_extrude(height=0.1, center=false) text(text, font="Liberation Sans:style=Bold", size=50, valign="center",halign="center"); } trumpet_horn(fillet, height, ang, n); } } module plaque(text, height, fillet, ang=3) { union() { translate([0,0,2]) name(text=text, fillet, height, ang, n=3); plate(size=[220,90], r=20, wall=10, base=2, height=10, fillet=fillet, ang=ang); } } plaque("KEN", height=10, fillet=3, ang=3);  - Revar > On May 2, 2024, at 2:46 PM, Raymond West via Discuss <discuss@lists.openscad.org> wrote: > > I'm hoping to create a simple pattern for a casting a couple of brass nameplates. I would like to produce it as an stl for fdm printing. There are a few problems. 1) I've created a 3d design approximating to the desired size, but when extruding, there needs to be a draft angle of about 3 degrees for each letter and the frame. 2) there needs to be a fillet at the base of each character for easy pattern removal. 3) ideally, it would be nice to individually adjust the width of the strokes of the letters. The code, so far, is listed below. > > As the lettering is simple, then I am wondering if it may be easier to create a profile for a cross section, including the fillet, and extrude a length, cut up and rotate and place accordingly. (it would be ten pieces and the frame). I think that I could create the fillets, if I could get the draft angle on the eletter strokes, by differencing into a cube, and applying Minkowski with a small sphere, and differencing back again. > > Machining from solid is simpler, I use a profiled round-ended cutter to get the draft angle and fillet in one pass, I could almost write the g-code by hand for that.... > > Any suggestions? (being a bit of a Luddite, I am not going to be using bos2l 😳 ) > > Best wishes, > > Ray > > //////////////////////////////////////////////////////////////////////////////////// > > // ken > > module name(){ > text ("KEN",font="Liberation Sans:style=Bold",size=50,valign="center",halign="center"); > } > > module inround(){ > difference(){ > d=40; > r=20; > square(d,true); > translate([-r,-r])circle(d=d); > translate([-r,+r])circle(d=d); > translate([+r,-r])circle(d=d); > translate([+r,+r])circle(d=d); > } > } > > module inframe(){ > difference(){ > square([220,80],true); > translate([-110,-40])inround(); > translate([-110,+40])inround(); > translate([+110,-40])inround(); > translate([+110,+40])inround(); > } > } > > module frame(){ > difference(){ > offset(r=10) inframe(); > inframe(); > } > } > > module base(){ > linear_extrude(5){ > offset(r=10) inframe(); > } > } > > base(); > linear_extrude(10){ > frame(); > name(); > } > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org
RW
Raymond West
Fri, May 3, 2024 9:33 AM

Thanks Revar,

Just what I needed.  I realise now that I created a sort of x y problem
for myself, having always used a sphere for rounding edges with
Minkowski, I'd completely forgotten that other solids were possible,
never mind hull for corner rounded squares. 🙁

Best wishes,

Ray

On 03/05/2024 01:16, Revar Desmera wrote:

I realized after posing that the the plate itself needed filleting:

 module rrect(size, r) {
     hull() {
         for (x = [-1,1], y = [-1,1])
 translate([x*(size.x/2-r), y*(size.y/2-r)])
             circle(r=r);
     }
 }

 module plate(size, r, wall, base, height, fillet, ang=3, n=3) {
 linear_extrude(height=height) {
         difference() {
             rrect(size, r);
 rrect(size-2*[wall,wall], r-wall);
         }
     }
     minkowski() {
 translate([0,0,base-0.1]) {
 linear_extrude(height=0.1) {
                 difference() {
 rrect(size-1.9*[wall,wall], r-0.95*wall);
 rrect(size-2*[wall,wall], r-wall);
                 }
             }
         }
         trumpet_horn(fillet, height-base, ang, n);
     }
     linear_extrude(height=base) {
         rrect(size, r);
     }
 }

 module trumpet_horn(fillet, height, ang=3, n=3) {
     tanx = fillet / cos(ang);
     xoff = (height-fillet) * tan(ang);
     cp = [tanx+xoff, fillet];
     path = [
         [0,height],
         for (i = [0:1:n])
             let( a = 180 + ang + (90-ang) * (i/n) )
             cp + fillet * [cos(a),sin(a)],
         [0,0]
     ];
     rotate_extrude() polygon(path);
 }

 module name(text, fillet, height, ang=3, n=3) {
     minkowski() {
         translate([0,0,-0.1]) {
 linear_extrude(height=0.1, center=false)
                 text(text, font="Liberation Sans:style=Bold",
 size=50, valign="center",halign="center");
         }
         trumpet_horn(fillet, height, ang, n);
     }
 }

 module plaque(text, height, fillet, ang=3) {
     union() {
         translate([0,0,2])
             name(text=text, fillet, height, ang, n=3);
         plate(size=[220,90], r=20, wall=10, base=2, height=10,
 fillet=fillet, ang=ang);
     }
 }

 plaque("KEN", height=10, fillet=3, ang=3);

Screenshot 2024-05-02 at 5.15.50 PM.png

  • Revar

On May 2, 2024, at 2:46 PM, Raymond West via Discuss
discuss@lists.openscad.org wrote:

I'm hoping to create a simple pattern for a casting a couple of brass
nameplates. I would like to produce it as an stl for fdm printing.
There are a few problems. 1) I've created a 3d design approximating
to the desired size, but when extruding, there needs to be a draft
angle of about 3 degrees for each letter and the frame. 2) there
needs to be a fillet at the base of each character for easy pattern
removal. 3) ideally, it would be nice to individually adjust the
width of the strokes  of the letters. The code, so far, is listed below.

As the lettering is simple, then I am wondering if it may be easier
to create a profile for a cross section, including the fillet, and
extrude a length, cut up and rotate and place accordingly. (it would
be ten pieces and the frame).  I think that I could create the
fillets, if I could get the draft angle on the eletter strokes, by
differencing into a cube, and applying Minkowski with a small sphere,
and differencing back again.

Machining from solid is simpler, I use a profiled round-ended cutter
to get the draft angle and fillet in one pass, I could almost write
the g-code by hand for that....

Any suggestions? (being a bit of a Luddite, I am not going to be
using bos2l 😳 )

Best wishes,

Ray

////////////////////////////////////////////////////////////////////////////////////

// ken

module name(){
  text ("KEN",font="Liberation
Sans:style=Bold",size=50,valign="center",halign="center");
}

module inround(){
    difference(){
       d=40;
       r=20;
            square(d,true);
             translate([-r,-r])circle(d=d);
             translate([-r,+r])circle(d=d);
             translate([+r,-r])circle(d=d);
             translate([+r,+r])circle(d=d);
     }
}

module inframe(){
            difference(){
                square([220,80],true);
                   translate([-110,-40])inround();
                   translate([-110,+40])inround();
                   translate([+110,-40])inround();
                   translate([+110,+40])inround();
     }
}

module frame(){
      difference(){
       offset(r=10) inframe();
        inframe();
    }
}

module base(){
   linear_extrude(5){
      offset(r=10) inframe();
  }
}

  base();
  linear_extrude(10){
  frame();
  name();
  }


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

Thanks Revar, Just what I needed.  I realise now that I created a sort of x y problem for myself, having always used a sphere for rounding edges with Minkowski, I'd completely forgotten that other solids were possible, never mind hull for corner rounded squares. 🙁 Best wishes, Ray On 03/05/2024 01:16, Revar Desmera wrote: > I realized after posing that the the plate itself needed filleting: > > module rrect(size, r) { >     hull() { >         for (x = [-1,1], y = [-1,1]) > translate([x*(size.x/2-r), y*(size.y/2-r)]) >             circle(r=r); >     } > } > > module plate(size, r, wall, base, height, fillet, ang=3, n=3) { > linear_extrude(height=height) { >         difference() { >             rrect(size, r); > rrect(size-2*[wall,wall], r-wall); >         } >     } >     minkowski() { > translate([0,0,base-0.1]) { > linear_extrude(height=0.1) { >                 difference() { > rrect(size-1.9*[wall,wall], r-0.95*wall); > rrect(size-2*[wall,wall], r-wall); >                 } >             } >         } >         trumpet_horn(fillet, height-base, ang, n); >     } >     linear_extrude(height=base) { >         rrect(size, r); >     } > } > > module trumpet_horn(fillet, height, ang=3, n=3) { >     tanx = fillet / cos(ang); >     xoff = (height-fillet) * tan(ang); >     cp = [tanx+xoff, fillet]; >     path = [ >         [0,height], >         for (i = [0:1:n]) >             let( a = 180 + ang + (90-ang) * (i/n) ) >             cp + fillet * [cos(a),sin(a)], >         [0,0] >     ]; >     rotate_extrude() polygon(path); > } > > module name(text, fillet, height, ang=3, n=3) { >     minkowski() { >         translate([0,0,-0.1]) { > linear_extrude(height=0.1, center=false) >                 text(text, font="Liberation Sans:style=Bold", > size=50, valign="center",halign="center"); >         } >         trumpet_horn(fillet, height, ang, n); >     } > } > > module plaque(text, height, fillet, ang=3) { >     union() { >         translate([0,0,2]) >             name(text=text, fillet, height, ang, n=3); >         plate(size=[220,90], r=20, wall=10, base=2, height=10, > fillet=fillet, ang=ang); >     } > } > > plaque("KEN", height=10, fillet=3, ang=3); > > > > Screenshot 2024-05-02 at 5.15.50 PM.png > > - Revar > > >> On May 2, 2024, at 2:46 PM, Raymond West via Discuss >> <discuss@lists.openscad.org> wrote: >> >> I'm hoping to create a simple pattern for a casting a couple of brass >> nameplates. I would like to produce it as an stl for fdm printing. >> There are a few problems. 1) I've created a 3d design approximating >> to the desired size, but when extruding, there needs to be a draft >> angle of about 3 degrees for each letter and the frame. 2) there >> needs to be a fillet at the base of each character for easy pattern >> removal. 3) ideally, it would be nice to individually adjust the >> width of the strokes  of the letters. The code, so far, is listed below. >> >> As the lettering is simple, then I am wondering if it may be easier >> to create a profile for a cross section, including the fillet, and >> extrude a length, cut up and rotate and place accordingly. (it would >> be ten pieces and the frame).  I think that I could create the >> fillets, if I could get the draft angle on the eletter strokes, by >> differencing into a cube, and applying Minkowski with a small sphere, >> and differencing back again. >> >> Machining from solid is simpler, I use a profiled round-ended cutter >> to get the draft angle and fillet in one pass, I could almost write >> the g-code by hand for that.... >> >> Any suggestions? (being a bit of a Luddite, I am not going to be >> using bos2l 😳 ) >> >> Best wishes, >> >> Ray >> >> //////////////////////////////////////////////////////////////////////////////////// >> >> // ken >> >> module name(){ >>   text ("KEN",font="Liberation >> Sans:style=Bold",size=50,valign="center",halign="center"); >> } >> >> module inround(){ >>     difference(){ >>        d=40; >>        r=20; >>             square(d,true); >>              translate([-r,-r])circle(d=d); >>              translate([-r,+r])circle(d=d); >>              translate([+r,-r])circle(d=d); >>              translate([+r,+r])circle(d=d); >>      } >> } >> >> module inframe(){ >>             difference(){ >>                 square([220,80],true); >>                    translate([-110,-40])inround(); >>                    translate([-110,+40])inround(); >>                    translate([+110,-40])inround(); >>                    translate([+110,+40])inround(); >>      } >> } >> >> module frame(){ >>       difference(){ >>        offset(r=10) inframe(); >>         inframe(); >>     } >> } >> >> module base(){ >>    linear_extrude(5){ >>       offset(r=10) inframe(); >>   } >> } >> >>   base(); >>   linear_extrude(10){ >>   frame(); >>   name(); >>   } >> >> _______________________________________________ >> OpenSCAD mailing list >> To unsubscribe send an email to discuss-leave@lists.openscad.org >
RW
Raymond West
Fri, May 3, 2024 7:36 PM

I made it parametric, with customizer, and did a quick test print. -

On 03/05/2024 10:33, Raymond West via Discuss wrote:

Thanks Revar,

Just what I needed.  I realise now that I created a sort of x y
problem for myself, having always used a sphere for rounding edges
with Minkowski, I'd completely forgotten that other solids were
possible, never mind hull for corner rounded squares. 🙁

Best wishes,

Ray

I made it parametric, with customizer, and did a quick test print. - On 03/05/2024 10:33, Raymond West via Discuss wrote: > > Thanks Revar, > > Just what I needed.  I realise now that I created a sort of x y > problem for myself, having always used a sphere for rounding edges > with Minkowski, I'd completely forgotten that other solids were > possible, never mind hull for corner rounded squares. 🙁 > > Best wishes, > > Ray > >
SP
Sanjeev Prabhakar
Sat, May 4, 2024 12:04 AM

Normally if you are casting, sharp corners will always create problem.

Draft and fillets needs to be provided to avoid scoring, sticking and metal
filling issues.

For one off castings maybe fine though.

Regards

On Sat, 4 May, 2024, 1:07 am Raymond West via Discuss, <
discuss@lists.openscad.org> wrote:

I made it parametric, with customizer, and did a quick test print. -

On 03/05/2024 10:33, Raymond West via Discuss wrote:

Thanks Revar,

Just what I needed.  I realise now that I created a sort of x y problem
for myself, having always used a sphere for rounding edges with Minkowski,
I'd completely forgotten that other solids were possible, never mind hull
for corner rounded squares. 🙁

Best wishes,

Ray


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

Normally if you are casting, sharp corners will always create problem. Draft and fillets needs to be provided to avoid scoring, sticking and metal filling issues. For one off castings maybe fine though. Regards On Sat, 4 May, 2024, 1:07 am Raymond West via Discuss, < discuss@lists.openscad.org> wrote: > I made it parametric, with customizer, and did a quick test print. - > > > On 03/05/2024 10:33, Raymond West via Discuss wrote: > > Thanks Revar, > > Just what I needed. I realise now that I created a sort of x y problem > for myself, having always used a sphere for rounding edges with Minkowski, > I'd completely forgotten that other solids were possible, never mind hull > for corner rounded squares. 🙁 > > Best wishes, > > Ray > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >