discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

how to round/soften top edges

P
pproj@posteo.de
Thu, Nov 30, 2023 1:30 PM

thiscode does prettymuch the same as code below, but might be easier to
understand, by just looking at it:

include <constructive-compiled.scad>

Wo=34; Lo=60; Ro = 8;
$skinThick =1.4; $margin=0;

assemble()
{
    addRemove(height(skin(5)),
        chamfer(down=-.5,up=-.5,side=-Ro,fnCorner=40))
                box(skin(Wo),skin(Lo));

    //remove the Lid at the top so you can see into the object
    remove(Z(5-1),height(5),chamfer(0,0,side=-Ro,fnCorner=40))
                box(Wo,Lo);
}
result:
On 30.11.23 13:19, pproj--- via Discuss wrote:

Yes it seems that the namesaces overlap.
here is a take on it using only constructive lib skin funtionality ( i
like your extrusion approach too)

include <../devlibs/constructive/constructive-all.scad>

Wo=34; Lo=60; Wi=23; Li=34; H=5; Ro = 8; Ri = 3; T=1.4;Off = 2.0;
$skinThick =1.4;

assemble() {
    addRemove(Z(margin(.1)),TODOWN(),height(skin(H)))
            chamfer(down=-1,up=-.15,side=-Ro,fnCorner=40)
                box(skin(Wo),skin(Lo));
}
i am not quite sure what bobs code was supposed to look like, so this
is only a first take.
more on skins in constructive here:
https://github.com/solidboredom/constructive/blob/main/tutorials/tutorial-partIII.md#easily-create-skins-with-skinsize0-skinthickskinthick-walls2-marginmargin
On 30.11.23 12:20, Marcus Poller wrote:

Hi Peter,

include <constructive-compiled.scad>

chamfer(4,-2) tube(d=10,h=20,wall=2.5);

I can't compile Bobs code after including <constructive-compiled.scad>; I get error messages of this

  WARNING: Too many unnamed arguments supplied in file ../.local/share/OpenSCAD/libraries/BOSL2/attachments.scad, line 3274

kind. I guess there is some naming ambiguities between BOSL and constructive-compiled;

Cheers,
Marcus


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

thiscode does prettymuch the same as code below, but might be easier to understand, by just looking at it: include <constructive-compiled.scad> Wo=34; Lo=60; Ro = 8; $skinThick =1.4; $margin=0; assemble() {     addRemove(height(skin(5)),         chamfer(down=-.5,up=-.5,side=-Ro,fnCorner=40))                 box(skin(Wo),skin(Lo));     //remove the Lid at the top so you can see into the object     remove(Z(5-1),height(5),chamfer(0,0,side=-Ro,fnCorner=40))                 box(Wo,Lo); } result: On 30.11.23 13:19, pproj--- via Discuss wrote: > Yes it seems that the namesaces overlap. > here is a take on it using only constructive lib skin funtionality ( i > like your extrusion approach too) > > include <../devlibs/constructive/constructive-all.scad> > > > Wo=34; Lo=60; Wi=23; Li=34; H=5; Ro = 8; Ri = 3; T=1.4;Off = 2.0; > $skinThick =1.4; > > assemble() { >     addRemove(Z(margin(.1)),TODOWN(),height(skin(H))) >             chamfer(down=-1,up=-.15,side=-Ro,fnCorner=40) >                 box(skin(Wo),skin(Lo)); > } > i am not quite sure what bobs code was supposed to look like, so this > is only a first take. > more on skins in constructive here: > https://github.com/solidboredom/constructive/blob/main/tutorials/tutorial-partIII.md#easily-create-skins-with-skinsize0-skinthickskinthick-walls2-marginmargin > On 30.11.23 12:20, Marcus Poller wrote: >> Hi Peter, >> >>> include <constructive-compiled.scad> >>> >>> chamfer(4,-2) tube(d=10,h=20,wall=2.5); >> I can't compile Bobs code after including <constructive-compiled.scad>; I get error messages of this >> >> WARNING: Too many unnamed arguments supplied in file ../.local/share/OpenSCAD/libraries/BOSL2/attachments.scad, line 3274 >> >> kind. I guess there is some naming ambiguities between BOSL and constructive-compiled; >> >> Cheers, >> Marcus > > > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email todiscuss-leave@lists.openscad.org
BR
Bob Roos
Fri, Dec 1, 2023 1:53 PM

Hi Adrian,

That would be interesting to explore.  Thank you.  
 
I am avoiding minkowski because it will round the bottom as well and that mates with parts on the camper.  Which brings me to reason 2.  I don't want the dimensions to change even a little.
 
Bob

Thursday, November 30, 2023, 6:20:14 AM, you wrote:

You can do that using the offset_sweep() module in BOSL2.  You would need to replace the rect_tube()'s with differences of offset_sweep() applied to rect(). 

On Wed, Nov 29, 2023 at 8:55 PM Bob Roos via Discuss discuss@lists.openscad.org wrote:

Hello ,

I would like to soften the top inner and outer edges on this figure.  I don't need much.  I just wanted to get rid of the edge.

Thank you

Bob Roos

  include <BOSL2/std.scad> //or screws or threading

Wo=34;
Lo=60;
Wi=23;
Li=34;
H=10;
Ro = 8;
Ri = 3;
T=1.4;
Off = 2.0;

difference(){
    union(){
rect_tube(size=[Wo,Lo], wall=(Wo-Wi)/2, rounding=Ro, h=H,irounding=3);
rect_tube(size=[Wo,Lo-(Wo-Wi)/2], wall=(Wo-Wi)/2, rounding=Ro, h=H,irounding=3);
    }
rect_tube(size=[Wo-T,Lo-T], wall=(Wo-Wi)/2-T,h=H-T,irounding=3, rounding=Ro);
#rect_tube(size=[Wo-T2,Lo-T2], wall=(Wo-Wi)/2-T,h=Off,irounding=3, rounding=Ro);
 up(Off/2)cuboid([Wo-6T,Lo-6T,Off]);   
}

-- 
have Fun,
 Bob                           mailto:roosbob@wybatap.com

Hi Adrian, That would be interesting to explore.  Thank you.     I am avoiding minkowski because it will round the bottom as well and that mates with parts on the camper.  Which brings me to reason 2.  I don't want the dimensions to change even a little.   Bob Thursday, November 30, 2023, 6:20:14 AM, you wrote: > You can do that using the offset_sweep() module in BOSL2.  You would need to replace the rect_tube()'s with differences of offset_sweep() applied to rect().  > On Wed, Nov 29, 2023 at 8:55 PM Bob Roos via Discuss <discuss@lists.openscad.org> wrote: >> Hello , >> I would like to soften the top inner and outer edges on this figure.  I don't need much.  I just wanted to get rid of the edge. >> Thank you >> Bob Roos >>   include <BOSL2/std.scad> //or screws or threading >> Wo=34; >> Lo=60; >> Wi=23; >> Li=34; >> H=10; >> Ro = 8; >> Ri = 3; >> T=1.4; >> Off = 2.0; >> difference(){ >>     union(){ >> rect_tube(size=[Wo,Lo], wall=(Wo-Wi)/2, rounding=Ro, h=H,irounding=3); >> rect_tube(size=[Wo,Lo-(Wo-Wi)/2], wall=(Wo-Wi)/2, rounding=Ro, h=H,irounding=3); >>     } >> rect_tube(size=[Wo-T,Lo-T], wall=(Wo-Wi)/2-T,h=H-T,irounding=3, rounding=Ro); >> #rect_tube(size=[Wo-T*2,Lo-T*2], wall=(Wo-Wi)/2-T,h=Off,irounding=3, rounding=Ro); >>  up(Off/2)cuboid([Wo-6*T,Lo-6*T,Off]);    >> } --  have Fun,  Bob                           mailto:roosbob@wybatap.com
CM
Curt McDowell
Sun, Dec 3, 2023 11:15 PM

I thought something like that should be doable with minkowski() and came
up with a module in the attached example:
round_edges_except_bottom(radius). It 3D-insets an object, then
minkowskis it back to original size using a cylinder capped with half a
sphere.

Regards,
Curt

On 12/1/2023 5:53 AM, Bob Roos via Discuss wrote:

Hi Adrian,

That would be interesting to explore.  Thank you.

I am avoiding minkowski because it will round the bottom as well and
that mates with parts on the camper.  Which brings me to reason 2.  I
don't want the dimensions to change even a little.

Bob

Thursday, November 30, 2023, 6:20:14 AM, you wrote:

 You can do that using the offset_sweep() module in BOSL2.  You
 would need to replace the rect_tube()'s with differences of
 offset_sweep() applied to rect().

 On Wed, Nov 29, 2023 at 8:55 PM Bob Roos via Discuss
 <discuss@lists.openscad.org> wrote:

     Hello ,

     I would like to soften the top inner and outer edges on this
     figure.  I don't need much.  I just wanted to get rid of the edge.

     Thank you

     Bob Roos


       include <BOSL2/std.scad> //or screws or threading

     Wo=34;
     Lo=60;
     Wi=23;
     Li=34;
     H=10;
     Ro = 8;
     Ri = 3;
     T=1.4;
     Off = 2.0;


     difference(){
         union(){
     rect_tube(size=[Wo,Lo], wall=(Wo-Wi)/2, rounding=Ro,
     h=H,irounding=3);
     rect_tube(size=[Wo,Lo-(Wo-Wi)/2], wall=(Wo-Wi)/2, rounding=Ro,
     h=H,irounding=3);
         }
     rect_tube(size=[Wo-T,Lo-T],
     wall=(Wo-Wi)/2-T,h=H-T,irounding=3, rounding=Ro);
     #rect_tube(size=[Wo-T*2,Lo-T*2],
     wall=(Wo-Wi)/2-T,h=Off,irounding=3, rounding=Ro);
      up(Off/2)cuboid([Wo-6*T,Lo-6*T,Off]);
     }

     -- 
     Best regards,
      Bob                          mailto:roosbob@wybatap.com
     _______________________________________________
     OpenSCAD mailing list
     To unsubscribe send an email to discuss-leave@lists.openscad.org

--
have Fun,
 Bob mailto:roosbob@wybatap.com mailto:roosbob@wybatap.com


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

I thought something like that should be doable with minkowski() and came up with a module in the attached example: round_edges_except_bottom(radius). It 3D-insets an object, then minkowskis it back to original size using a cylinder capped with half a sphere. Regards, Curt On 12/1/2023 5:53 AM, Bob Roos via Discuss wrote: > > Hi Adrian, > > > That would be interesting to explore.  Thank you. > > I am avoiding minkowski because it will round the bottom as well and > that mates with parts on the camper.  Which brings me to reason 2.  I > don't want the dimensions to change even a little. > > Bob > > > Thursday, November 30, 2023, 6:20:14 AM, you wrote: > > You can do that using the offset_sweep() module in BOSL2.  You > would need to replace the rect_tube()'s with differences of > offset_sweep() applied to rect(). > > On Wed, Nov 29, 2023 at 8:55 PM Bob Roos via Discuss > <discuss@lists.openscad.org> wrote: > > Hello , > > I would like to soften the top inner and outer edges on this > figure.  I don't need much.  I just wanted to get rid of the edge. > > Thank you > > Bob Roos > > >   include <BOSL2/std.scad> //or screws or threading > > Wo=34; > Lo=60; > Wi=23; > Li=34; > H=10; > Ro = 8; > Ri = 3; > T=1.4; > Off = 2.0; > > > difference(){ >     union(){ > rect_tube(size=[Wo,Lo], wall=(Wo-Wi)/2, rounding=Ro, > h=H,irounding=3); > rect_tube(size=[Wo,Lo-(Wo-Wi)/2], wall=(Wo-Wi)/2, rounding=Ro, > h=H,irounding=3); >     } > rect_tube(size=[Wo-T,Lo-T], > wall=(Wo-Wi)/2-T,h=H-T,irounding=3, rounding=Ro); > #rect_tube(size=[Wo-T*2,Lo-T*2], > wall=(Wo-Wi)/2-T,h=Off,irounding=3, rounding=Ro); >  up(Off/2)cuboid([Wo-6*T,Lo-6*T,Off]); > } > > -- > Best regards, >  Bob                          mailto:roosbob@wybatap.com > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org > > > -- > have Fun, >  Bob mailto:roosbob@wybatap.com <mailto:roosbob@wybatap.com> > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email todiscuss-leave@lists.openscad.org