Tangential join/infill two parallel vertical cylindrical tubes.

classic Classic list List threaded Threaded
38 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Tangential join/infill two parallel vertical cylindrical tubes.

OpenSCAD mailing list-2
I have 2 parallel vertical cylinders with different diameters that are adjacent and touching.  I want to fill the space 'between' the cylinders to join them securely.  I did think about creating a polygon block that I join with the two cylinders before taking the inner cylinders away to make a straight edge join but I thought this is a simple enough model to learn how to use the roundanything library  to create a fill with a radius of my choosing.  However , being a noob, Not sure where to start.

back story: The larger cylinder fits over my monitor stand.  The smaller Cylinder is for an anglepoise arm for a webcam/ video light.  I just need to be able to join them nicely so that they don't break apart.
Here's what I've got so far.:

include <Round-Anything/MinkowskiRound.scad>;
$fn=10;
br=32;
sr=12.3;
bw=5;
sw=4;
height=12;
boundingEnvelope=[50,50,50];
OR=0.7;
IR=1;
enable=1;

minkowskiRound(OR, IR, enable, boundingEnvelope) {
    union(){
        translate([0,0,-10]){
            difference(){
                cylinder (height,br+bw,br+bw,center=true);
                cylinder (height+2,br,br,center=true);
            }
            translate([br+sr+sw+bw,0,0]){
                difference(){
                    cylinder (height,sr+sw,sr+sw,center=true);
                    cylinder (height+2,sr,sr,center=true);
                }
            }
        }
    }
}

But I just get a spinning circle on my Mac.  
not sure how the bounding envelope works or how long I should expect to wait for a result.

Any help appreciated:

Chris Johnson

_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Tangential join/infill two parallel vertical cylindrical tubes.

adrianv
Sounds like you're looking for hull().  See below.  Note I put the cylinders at the same height, unlike your original example.  If you want them at different heights then I'm not sure what exactly you are after.  

Note that minkowski round calls the slowest function in OpenSCAD 3 times.  You might have to wait an hour.  It's not really practical.   I think boundingEnvelope is the bounding box for your model.   And the output you'll get will be a rounded version of your model, not a version with the space between the cylinders filled in.  

$fn=10;
br=32;
sr=12.3;
bw=5;
sw=4;
height=12;

difference(){
  hull(){
    cylinder (height,br+bw,br+bw,center=true);
    translate([br+sr+sw+bw,0,0]) cylinder (height,sr+sw,sr+sw,center=true);
  }
  translate([br+sr+sw+bw,0,0]) cylinder (height+2,sr,sr,center=true);
  cylinder (height+2,br,br,center=true);
}



OpenSCAD mailing list-2 wrote
I have 2 parallel vertical cylinders with different diameters that are
adjacent and touching.  I want to fill the space 'between' the cylinders to
join them securely.  I did think about creating a polygon block that I join
with the two cylinders before taking the inner cylinders away to make a
straight edge join but I thought this is a simple enough model to learn how
to use the roundanything library  to create a fill with a radius of my
choosing.  However , being a noob, Not sure where to start.

back story: The larger cylinder fits over my monitor stand.  The smaller
Cylinder is for an anglepoise arm for a webcam/ video light.  I just need
to be able to join them nicely so that they don't break apart.
Here's what I've got so far.:

include <Round-Anything/MinkowskiRound.scad>;
$fn=10;
br=32;
sr=12.3;
bw=5;
sw=4;
height=12;
boundingEnvelope=[50,50,50];
OR=0.7;
IR=1;
enable=1;

minkowskiRound(OR, IR, enable, boundingEnvelope) {
    union(){
        translate([0,0,-10]){
            difference(){
                cylinder (height,br+bw,br+bw,center=true);
                cylinder (height+2,br,br,center=true);
            }
            translate([br+sr+sw+bw,0,0]){
                difference(){
                    cylinder (height,sr+sw,sr+sw,center=true);
                    cylinder (height+2,sr,sr,center=true);
                }
            }
        }
    }
}

But I just get a spinning circle on my Mac.
not sure how the bounding envelope works or how long I should expect to
wait for a result.

Any help appreciated:

Chris Johnson

_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]


Sent from the OpenSCAD mailing list archive at Nabble.com.

_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Tangential join/infill two parallel vertical cylindrical tubes.

mondo
In reply to this post by OpenSCAD mailing list-2
Is this good enough? You can play with the sizes, and extrude the parts
separately if you want, make a prettier infill..


hole1 =10; //diameter of small hole
hole2 = 15;// diameter of large hole
wall=3;// thickness of wall
height =50; //height of piece

     // position holes
module holes(){
     circle (d=hole1);
     translate ([(hole1+hole2)/2,0])circle (d=hole2);
}

    // get solids
module skin(){
     circle (d=hole1 + wall+wall);
     translate([(hole1+hole2)/2,0])circle (d=hole2+wall+wall);
     //add in filler
        filler();
        mirror([0,1,0])filler();
}

    // make wedged shaped filler
module filler(){
polygon(points=[[0,0],[(hole1+hole2)/2,0],[(hole1+hole2)/2,hole2/2+wall],[0,hole1/2+wall]]);
}

$fn =80;

linear_extrude(height)
       difference (){
          skin();
          holes();
}



On 19/04/2021 23:49, Chris Johnson via Discuss wrote:
> _______________________________________________
> OpenSCAD mailing list
> To unsubscribe send an email to [hidden email]
_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Tangential join/infill two parallel vertical cylindrical tubes.

Troberg
In reply to this post by OpenSCAD mailing list-2
Try making 2D first. Two circles, use offset to create an inside radius (first offset -radius, then offset +radius), then linear_extrude to make it 3D.

Sent from the OpenSCAD mailing list archive at Nabble.com.

_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Tangential join/infill two parallel vertical cylindrical tubes.

OpenSCAD mailing list-2
In reply to this post by OpenSCAD mailing list-2
AdrianV, Ray West, Troberg
Thanks for all your suggestions! :-)  I now understand at least two new ways of reaching my goal; hull, linear_extrude and mirror.  Just need to focus on the maths now.  The vertical offset was left over from some tests I did and shouldn't have been in the original code but I've put it in to the Hull based model  now, added an additional  horizontal spacing between the vertical cylinder centres (to allow swing room for the arm) and am now trying to work out the maths to ensure that the cylinders that cut the holes are the right length.  Yes, I could make them silly long so they definitely cut right through  but its all part of the challenge.  Thanks, all, for your ideas. 
Chris


On Tue, 20 Apr 2021 at 08:36, <[hidden email]> wrote:
Send Discuss mailing list submissions to
        [hidden email]

To subscribe or unsubscribe via email, send a message with subject or
body 'help' to
        [hidden email]

You can reach the person managing the list at
        [hidden email]

When replying, please edit your Subject line so it is more specific
than "Re: Contents of Discuss digest..."

Today's Topics:

   1. Tangential join/infill two parallel vertical cylindrical tubes.
      (Chris Johnson)
   2. Re: Tangential join/infill two parallel vertical cylindrical tubes.
      (adrianv)
   3. Re: Tangential join/infill two parallel vertical cylindrical tubes.
      (Ray West)
   4. Re: Tangential join/infill two parallel vertical cylindrical tubes.
      (Troberg)
   5. Meassuerments workarround (Karl Exler)


----------------------------------------------------------------------

Message: 1
Date: Mon, 19 Apr 2021 23:49:30 +0100
From: Chris Johnson <[hidden email]>
Subject: [OpenSCAD] Tangential join/infill two parallel vertical
        cylindrical tubes.
To: [hidden email]
Message-ID:
        <[hidden email]>
Content-Type: multipart/alternative;
        boundary="000000000000b02fc605c05b2694"

I have 2 parallel vertical cylinders with different diameters that are
adjacent and touching.  I want to fill the space 'between' the cylinders to
join them securely.  I did think about creating a polygon block that I join
with the two cylinders before taking the inner cylinders away to make a
straight edge join but I thought this is a simple enough model to learn how
to use the roundanything library  to create a fill with a radius of my
choosing.  However , being a noob, Not sure where to start.

back story: The larger cylinder fits over my monitor stand.  The smaller
Cylinder is for an anglepoise arm for a webcam/ video light.  I just need
to be able to join them nicely so that they don't break apart.
Here's what I've got so far.:

include <Round-Anything/MinkowskiRound.scad>;
$fn=10;
br=32;
sr=12.3;
bw=5;
sw=4;
height=12;
boundingEnvelope=[50,50,50];
OR=0.7;
IR=1;
enable=1;

minkowskiRound(OR, IR, enable, boundingEnvelope) {
    union(){
        translate([0,0,-10]){
            difference(){
                cylinder (height,br+bw,br+bw,center=true);
                cylinder (height+2,br,br,center=true);
            }
            translate([br+sr+sw+bw,0,0]){
                difference(){
                    cylinder (height,sr+sw,sr+sw,center=true);
                    cylinder (height+2,sr,sr,center=true);
                }
            }
        }
    }
}

But I just get a spinning circle on my Mac.
not sure how the bounding envelope works or how long I should expect to
wait for a result.

Any help appreciated:

Chris Johnson
-------------- next part --------------
A message part incompatible with plain text digests has been removed ...
Name: not available
Type: text/html
Size: 1996 bytes
Desc: not available

------------------------------

Message: 2
Date: Mon, 19 Apr 2021 16:42:10 -0700 (MST)
From: adrianv <[hidden email]>
Subject: [OpenSCAD] Re: Tangential join/infill two parallel vertical
        cylindrical tubes.
To: [hidden email]
Message-ID: <[hidden email]>
Content-Type: multipart/alternative;
        boundary="----=_Part_457354_367848959.1618875730137"

Sounds like you're looking for hull().  See below.  Note I put the cylinders
at the same height, unlike your original example.  If you want them at
different heights then I'm not sure what exactly you are after. 

Note that minkowski round calls the slowest function in OpenSCAD 3 times.
You might have to wait an hour.  It's not really practical.   I think
boundingEnvelope is the bounding box for your model.   And the output you'll
get will be a rounded version of your model, not a version with the space
between the cylinders filled in. 

$fn=10;
br=32;
sr=12.3;
bw=5;
sw=4;
height=12;

difference(){
  hull(){
    cylinder (height,br+bw,br+bw,center=true);
    translate([br+sr+sw+bw,0,0]) cylinder (height,sr+sw,sr+sw,center=true);
  }
  translate([br+sr+sw+bw,0,0]) cylinder (height+2,sr,sr,center=true);
  cylinder (height+2,br,br,center=true);
}




OpenSCAD mailing list-2 wrote
> I have 2 parallel vertical cylinders with different diameters that are
> adjacent and touching.  I want to fill the space 'between' the cylinders
> to
> join them securely.  I did think about creating a polygon block that I
> join
> with the two cylinders before taking the inner cylinders away to make a
> straight edge join but I thought this is a simple enough model to learn
> how
> to use the roundanything library  to create a fill with a radius of my
> choosing.  However , being a noob, Not sure where to start.
>
> back story: The larger cylinder fits over my monitor stand.  The smaller
> Cylinder is for an anglepoise arm for a webcam/ video light.  I just need
> to be able to join them nicely so that they don't break apart.
> Here's what I've got so far.:
>
> include &lt;Round-Anything/MinkowskiRound.scad&gt;;
> $fn=10;
> br=32;
> sr=12.3;
> bw=5;
> sw=4;
> height=12;
> boundingEnvelope=[50,50,50];
> OR=0.7;
> IR=1;
> enable=1;
>
> minkowskiRound(OR, IR, enable, boundingEnvelope) {
>     union(){
>         translate([0,0,-10]){
>             difference(){
>                 cylinder (height,br+bw,br+bw,center=true);
>                 cylinder (height+2,br,br,center=true);
>             }
>             translate([br+sr+sw+bw,0,0]){
>                 difference(){
>                     cylinder (height,sr+sw,sr+sw,center=true);
>                     cylinder (height+2,sr,sr,center=true);
>                 }
>             }
>         }
>     }
> }
>
> But I just get a spinning circle on my Mac.
> not sure how the bounding envelope works or how long I should expect to
> wait for a result.
>
> Any help appreciated:
>
> Chris Johnson
>
> _______________________________________________
> OpenSCAD mailing list
> To unsubscribe send an email to

> discuss-leave@.openscad





--
Sent from: http://forum.openscad.org/-------------- next part --------------
A message part incompatible with plain text digests has been removed ...
Name: not available
Type: text/html
Size: 4020 bytes
Desc: not available

------------------------------

Message: 3
Date: Tue, 20 Apr 2021 03:03:46 +0100
From: Ray West <[hidden email]>
Subject: [OpenSCAD] Re: Tangential join/infill two parallel vertical
        cylindrical tubes.
To: [hidden email]
Message-ID: <[hidden email]>
Content-Type: text/plain; charset=windows-1252; format=flowed

Is this good enough? You can play with the sizes, and extrude the parts
separately if you want, make a prettier infill..


hole1 =10; //diameter of small hole
hole2 = 15;// diameter of large hole
wall=3;// thickness of wall
height =50; //height of piece

     // position holes
module holes(){
     circle (d=hole1);
     translate ([(hole1+hole2)/2,0])circle (d=hole2);
}

    // get solids
module skin(){
     circle (d=hole1 + wall+wall);
     translate([(hole1+hole2)/2,0])circle (d=hole2+wall+wall);
     //add in filler
        filler();
        mirror([0,1,0])filler();
}

    // make wedged shaped filler
module filler(){
polygon(points=[[0,0],[(hole1+hole2)/2,0],[(hole1+hole2)/2,hole2/2+wall],[0,hole1/2+wall]]);
}

$fn =80;

linear_extrude(height)
       difference (){
          skin();
          holes();
}



On 19/04/2021 23:49, Chris Johnson via Discuss wrote:
> _______________________________________________
> OpenSCAD mailing list
> To unsubscribe send an email to [hidden email]

------------------------------

Message: 4
Date: Mon, 19 Apr 2021 23:39:04 -0700 (MST)
From: Troberg <[hidden email]>
Subject: [OpenSCAD] Re: Tangential join/infill two parallel vertical
        cylindrical tubes.
To: [hidden email]
Message-ID: <[hidden email]>
Content-Type: multipart/alternative;
        boundary="----=_Part_459015_942237708.1618900744377"

Try making 2D first. Two circles, use offset to create an inside radius
(first offset -radius, then offset +radius), then linear_extrude to make it
3D.



--
Sent from: http://forum.openscad.org/-------------- next part --------------
A message part incompatible with plain text digests has been removed ...
Name: not available
Type: text/html
Size: 300 bytes
Desc: not available

------------------------------

Message: 5
Date: Mon, 19 Apr 2021 23:49:55 -0700 (MST)
From: Karl Exler <[hidden email]>
Subject: [OpenSCAD] Meassuerments workarround
To: [hidden email]
Message-ID: <[hidden email]>
Content-Type: multipart/alternative;
        boundary="----=_Part_459062_357729467.1618901395764"

Dear friends

I never had such a strong learning curve with OpenScad. It is 100% the tool
I looked ever.. I can do all my drafts and ideas in a very short time.

The only thing I miss is MEASSUREMENTs.

As far I could found out there is no convenient way to add meassurement to
my constructions

So I guess there should be an easy was to export my construction and import
it in LibreCad or Freecad (I'm using Mint).

I don't need a detailed explanation but the raw steps would be great.

Many Thanks
Karl

P.S.
As I focused in trhe beginning I have no CAD experience. I'm coming from
programming



--
Sent from: http://forum.openscad.org/-------------- next part --------------
A message part incompatible with plain text digests has been removed ...
Name: not available
Type: text/html
Size: 818 bytes
Desc: not available

------------------------------

Subject: Digest Footer

_______________________________________________
Discuss mailing list -- [hidden email]
To unsubscribe send an email to [hidden email]


------------------------------

End of Discuss Digest, Vol 77, Issue 29
***************************************

_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Tangential join/infill two parallel vertical cylindrical tubes.

adrianv
The cutting cylinders need to be longer than the object they cut, *not* the precise right size, or you'll have problems with your model.  Just make them silly long.  

OpenSCAD mailing list-2 wrote
AdrianV, Ray West, Troberg
Thanks for all your suggestions! :-)  I now understand at least two new
ways of reaching my goal; hull, linear_extrude and mirror.  Just need to
focus on the maths now.  The vertical offset was left over from some tests
I did and shouldn't have been in the original code but I've put it in to
the Hull based model  now, added an additional  horizontal spacing between
the vertical cylinder centres (to allow swing room for the arm) and am now
trying to work out the maths to ensure that the cylinders that cut the
holes are the right length.  Yes, I could make them silly long so they
definitely cut right through  but its all part of the challenge.  Thanks,
all, for your ideas.
Chris


On Tue, 20 Apr 2021 at 08:36, <[hidden email]> wrote:

> Send Discuss mailing list submissions to
>         [hidden email]
>
> To subscribe or unsubscribe via email, send a message with subject or
> body 'help' to
>         [hidden email]
>
> You can reach the person managing the list at
>         [hidden email]
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Discuss digest..."
>
> Today's Topics:
>
>    1. Tangential join/infill two parallel vertical cylindrical tubes.
>       (Chris Johnson)
>    2. Re: Tangential join/infill two parallel vertical cylindrical tubes.
>       (adrianv)
>    3. Re: Tangential join/infill two parallel vertical cylindrical tubes.
>       (Ray West)
>    4. Re: Tangential join/infill two parallel vertical cylindrical tubes.
>       (Troberg)
>    5. Meassuerments workarround (Karl Exler)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Mon, 19 Apr 2021 23:49:30 +0100
> From: Chris Johnson <[hidden email]>
> Subject: [OpenSCAD] Tangential join/infill two parallel vertical
>         cylindrical tubes.
> To: [hidden email]
> Message-ID:
>         <
> [hidden email]>
> Content-Type: multipart/alternative;
>         boundary="000000000000b02fc605c05b2694"
>
> I have 2 parallel vertical cylinders with different diameters that are
> adjacent and touching.  I want to fill the space 'between' the cylinders to
> join them securely.  I did think about creating a polygon block that I join
> with the two cylinders before taking the inner cylinders away to make a
> straight edge join but I thought this is a simple enough model to learn how
> to use the roundanything library  to create a fill with a radius of my
> choosing.  However , being a noob, Not sure where to start.
>
> back story: The larger cylinder fits over my monitor stand.  The smaller
> Cylinder is for an anglepoise arm for a webcam/ video light.  I just need
> to be able to join them nicely so that they don't break apart.
> Here's what I've got so far.:
>
> include <Round-Anything/MinkowskiRound.scad>;
> $fn=10;
> br=32;
> sr=12.3;
> bw=5;
> sw=4;
> height=12;
> boundingEnvelope=[50,50,50];
> OR=0.7;
> IR=1;
> enable=1;
>
> minkowskiRound(OR, IR, enable, boundingEnvelope) {
>     union(){
>         translate([0,0,-10]){
>             difference(){
>                 cylinder (height,br+bw,br+bw,center=true);
>                 cylinder (height+2,br,br,center=true);
>             }
>             translate([br+sr+sw+bw,0,0]){
>                 difference(){
>                     cylinder (height,sr+sw,sr+sw,center=true);
>                     cylinder (height+2,sr,sr,center=true);
>                 }
>             }
>         }
>     }
> }
>
> But I just get a spinning circle on my Mac.
> not sure how the bounding envelope works or how long I should expect to
> wait for a result.
>
> Any help appreciated:
>
> Chris Johnson
> -------------- next part --------------
> A message part incompatible with plain text digests has been removed ...
> Name: not available
> Type: text/html
> Size: 1996 bytes
> Desc: not available
>
> ------------------------------
>
> Message: 2
> Date: Mon, 19 Apr 2021 16:42:10 -0700 (MST)
> From: adrianv <[hidden email]>
> Subject: [OpenSCAD] Re: Tangential join/infill two parallel vertical
>         cylindrical tubes.
> To: [hidden email]
> Message-ID: <[hidden email]>
> Content-Type: multipart/alternative;
>         boundary="----=_Part_457354_367848959.1618875730137"
>
> Sounds like you're looking for hull().  See below.  Note I put the
> cylinders
> at the same height, unlike your original example.  If you want them at
> different heights then I'm not sure what exactly you are after.
>
> Note that minkowski round calls the slowest function in OpenSCAD 3 times.
> You might have to wait an hour.  It's not really practical.   I think
> boundingEnvelope is the bounding box for your model.   And the output
> you'll
> get will be a rounded version of your model, not a version with the space
> between the cylinders filled in.
>
> $fn=10;
> br=32;
> sr=12.3;
> bw=5;
> sw=4;
> height=12;
>
> difference(){
>   hull(){
>     cylinder (height,br+bw,br+bw,center=true);
>     translate([br+sr+sw+bw,0,0]) cylinder (height,sr+sw,sr+sw,center=true);
>   }
>   translate([br+sr+sw+bw,0,0]) cylinder (height+2,sr,sr,center=true);
>   cylinder (height+2,br,br,center=true);
> }
>
>
>
>
> OpenSCAD mailing list-2 wrote
> > I have 2 parallel vertical cylinders with different diameters that are
> > adjacent and touching.  I want to fill the space 'between' the cylinders
> > to
> > join them securely.  I did think about creating a polygon block that I
> > join
> > with the two cylinders before taking the inner cylinders away to make a
> > straight edge join but I thought this is a simple enough model to learn
> > how
> > to use the roundanything library  to create a fill with a radius of my
> > choosing.  However , being a noob, Not sure where to start.
> >
> > back story: The larger cylinder fits over my monitor stand.  The smaller
> > Cylinder is for an anglepoise arm for a webcam/ video light.  I just need
> > to be able to join them nicely so that they don't break apart.
> > Here's what I've got so far.:
> >
> > include <Round-Anything/MinkowskiRound.scad>;
> > $fn=10;
> > br=32;
> > sr=12.3;
> > bw=5;
> > sw=4;
> > height=12;
> > boundingEnvelope=[50,50,50];
> > OR=0.7;
> > IR=1;
> > enable=1;
> >
> > minkowskiRound(OR, IR, enable, boundingEnvelope) {
> >     union(){
> >         translate([0,0,-10]){
> >             difference(){
> >                 cylinder (height,br+bw,br+bw,center=true);
> >                 cylinder (height+2,br,br,center=true);
> >             }
> >             translate([br+sr+sw+bw,0,0]){
> >                 difference(){
> >                     cylinder (height,sr+sw,sr+sw,center=true);
> >                     cylinder (height+2,sr,sr,center=true);
> >                 }
> >             }
> >         }
> >     }
> > }
> >
> > But I just get a spinning circle on my Mac.
> > not sure how the bounding envelope works or how long I should expect to
> > wait for a result.
> >
> > Any help appreciated:
> >
> > Chris Johnson
> >
> > _______________________________________________
> > OpenSCAD mailing list
> > To unsubscribe send an email to
>
> > discuss-leave@.openscad
>
>
>
>
>
> --
> Sent from: http://forum.openscad.org/-------------- next part
> --------------
> A message part incompatible with plain text digests has been removed ...
> Name: not available
> Type: text/html
> Size: 4020 bytes
> Desc: not available
>
> ------------------------------
>
> Message: 3
> Date: Tue, 20 Apr 2021 03:03:46 +0100
> From: Ray West <[hidden email]>
> Subject: [OpenSCAD] Re: Tangential join/infill two parallel vertical
>         cylindrical tubes.
> To: [hidden email]
> Message-ID: <[hidden email]>
> Content-Type: text/plain; charset=windows-1252; format=flowed
>
> Is this good enough? You can play with the sizes, and extrude the parts
> separately if you want, make a prettier infill..
>
>
> hole1 =10; //diameter of small hole
> hole2 = 15;// diameter of large hole
> wall=3;// thickness of wall
> height =50; //height of piece
>
>      // position holes
> module holes(){
>      circle (d=hole1);
>      translate ([(hole1+hole2)/2,0])circle (d=hole2);
> }
>
>     // get solids
> module skin(){
>      circle (d=hole1 + wall+wall);
>      translate([(hole1+hole2)/2,0])circle (d=hole2+wall+wall);
>      //add in filler
>         filler();
>         mirror([0,1,0])filler();
> }
>
>     // make wedged shaped filler
> module filler(){
>
> polygon(points=[[0,0],[(hole1+hole2)/2,0],[(hole1+hole2)/2,hole2/2+wall],[0,hole1/2+wall]]);
> }
>
> $fn =80;
>
> linear_extrude(height)
>        difference (){
>           skin();
>           holes();
> }
>
>
>
> On 19/04/2021 23:49, Chris Johnson via Discuss wrote:
> > _______________________________________________
> > OpenSCAD mailing list
> > To unsubscribe send an email to [hidden email]
>
> ------------------------------
>
> Message: 4
> Date: Mon, 19 Apr 2021 23:39:04 -0700 (MST)
> From: Troberg <[hidden email]>
> Subject: [OpenSCAD] Re: Tangential join/infill two parallel vertical
>         cylindrical tubes.
> To: [hidden email]
> Message-ID: <[hidden email]>
> Content-Type: multipart/alternative;
>         boundary="----=_Part_459015_942237708.1618900744377"
>
> Try making 2D first. Two circles, use offset to create an inside radius
> (first offset -radius, then offset +radius), then linear_extrude to make it
> 3D.
>
>
>
> --
> Sent from: http://forum.openscad.org/-------------- next part
> --------------
> A message part incompatible with plain text digests has been removed ...
> Name: not available
> Type: text/html
> Size: 300 bytes
> Desc: not available
>
> ------------------------------
>
> Message: 5
> Date: Mon, 19 Apr 2021 23:49:55 -0700 (MST)
> From: Karl Exler <[hidden email]>
> Subject: [OpenSCAD] Meassuerments workarround
> To: [hidden email]
> Message-ID: <[hidden email]>
> Content-Type: multipart/alternative;
>         boundary="----=_Part_459062_357729467.1618901395764"
>
> Dear friends
>
> I never had such a strong learning curve with OpenScad. It is 100% the tool
> I looked ever.. I can do all my drafts and ideas in a very short time.
>
> The only thing I miss is MEASSUREMENTs.
>
> As far I could found out there is no convenient way to add meassurement to
> my constructions
>
> So I guess there should be an easy was to export my construction and import
> it in LibreCad or Freecad (I'm using Mint).
>
> I don't need a detailed explanation but the raw steps would be great.
>
> Many Thanks
> Karl
>
> P.S.
> As I focused in trhe beginning I have no CAD experience. I'm coming from
> programming
>
>
>
> --
> Sent from: http://forum.openscad.org/-------------- next part
> --------------
> A message part incompatible with plain text digests has been removed ...
> Name: not available
> Type: text/html
> Size: 818 bytes
> Desc: not available
>
> ------------------------------
>
> Subject: Digest Footer
>
> _______________________________________________
> Discuss mailing list -- [hidden email]
> To unsubscribe send an email to [hidden email]
>
>
> ------------------------------
>
> End of Discuss Digest, Vol 77, Issue 29
> ***************************************
>

_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]


Sent from the OpenSCAD mailing list archive at Nabble.com.

_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Tangential join/infill two parallel vertical cylindrical tubes.

mondo

If you do a 2d drawing of the extrusion profile, and extrude, you have no problem wrt the length of the hole. The example I previously posted,  a separation value can be added, and modify each translation value for x  in the modules (and also the 'wedge polygon). If you are fussy about the tangent, then you could remove (or not bother)  the 'filler' module, and its references, and  replace the code after the '$fn=80;' by

difference(){
hull(){
    linear_extrude(height)
    skin();
}
translate([0,0,-height])linear_extrude(height*3)holes();
}

you need longer holes in 3d if you want to be sure that' it knows the holes go right through', and making them three times longer and translating back one length, is the easiest.


On 20/04/2021 11:54, adrianv wrote:
The cutting cylinders need to be longer than the object they cut, *not* the precise right size, or you'll have problems with your model.  Just make them silly long.  

OpenSCAD mailing list-2 wrote
AdrianV, Ray West, Troberg
Thanks for all your suggestions! :-)  I now understand at least two new
ways of reaching my goal; hull, linear_extrude and mirror.  Just need to
focus on the maths now.  The vertical offset was left over from some tests
I did and shouldn't have been in the original code but I've put it in to
the Hull based model  now, added an additional  horizontal spacing between
the vertical cylinder centres (to allow swing room for the arm) and am now
trying to work out the maths to ensure that the cylinders that cut the
holes are the right length.  Yes, I could make them silly long so they
definitely cut right through  but its all part of the challenge.  Thanks,
all, for your ideas.
Chris


On Tue, 20 Apr 2021 at 08:36, <[hidden email]> wrote:

> Send Discuss mailing list submissions to
>         [hidden email]
>
> To subscribe or unsubscribe via email, send a message with subject or
> body 'help' to
>         [hidden email]
>
> You can reach the person managing the list at
>         [hidden email]
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Discuss digest..."
>
> Today's Topics:
>
>    1. Tangential join/infill two parallel vertical cylindrical tubes.
>       (Chris Johnson)
>    2. Re: Tangential join/infill two parallel vertical cylindrical tubes.
>       (adrianv)
>    3. Re: Tangential join/infill two parallel vertical cylindrical tubes.
>       (Ray West)
>    4. Re: Tangential join/infill two parallel vertical cylindrical tubes.
>       (Troberg)
>    5. Meassuerments workarround (Karl Exler)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Mon, 19 Apr 2021 23:49:30 +0100
> From: Chris Johnson <[hidden email]>
> Subject: [OpenSCAD] Tangential join/infill two parallel vertical
>         cylindrical tubes.
> To: [hidden email]
> Message-ID:
>         <
> [hidden email]>
> Content-Type: multipart/alternative;
>         boundary="000000000000b02fc605c05b2694"
>
> I have 2 parallel vertical cylinders with different diameters that are
> adjacent and touching.  I want to fill the space 'between' the cylinders to
> join them securely.  I did think about creating a polygon block that I join
> with the two cylinders before taking the inner cylinders away to make a
> straight edge join but I thought this is a simple enough model to learn how
> to use the roundanything library  to create a fill with a radius of my
> choosing.  However , being a noob, Not sure where to start.
>
> back story: The larger cylinder fits over my monitor stand.  The smaller
> Cylinder is for an anglepoise arm for a webcam/ video light.  I just need
> to be able to join them nicely so that they don't break apart.
> Here's what I've got so far.:
>
> include <Round-Anything/MinkowskiRound.scad>;
> $fn=10;
> br=32;
> sr=12.3;
> bw=5;
> sw=4;
> height=12;
> boundingEnvelope=[50,50,50];
> OR=0.7;
> IR=1;
> enable=1;
>
> minkowskiRound(OR, IR, enable, boundingEnvelope) {
>     union(){
>         translate([0,0,-10]){
>             difference(){
>                 cylinder (height,br+bw,br+bw,center=true);
>                 cylinder (height+2,br,br,center=true);
>             }
>             translate([br+sr+sw+bw,0,0]){
>                 difference(){
>                     cylinder (height,sr+sw,sr+sw,center=true);
>                     cylinder (height+2,sr,sr,center=true);
>                 }
>             }
>         }
>     }
> }
>
> But I just get a spinning circle on my Mac.
> not sure how the bounding envelope works or how long I should expect to
> wait for a result.
>
> Any help appreciated:
>
> Chris Johnson
> -------------- next part --------------
> A message part incompatible with plain text digests has been removed ...
> Name: not available
> Type: text/html
> Size: 1996 bytes
> Desc: not available
>
> ------------------------------
>
> Message: 2
> Date: Mon, 19 Apr 2021 16:42:10 -0700 (MST)
> From: adrianv <[hidden email]>
> Subject: [OpenSCAD] Re: Tangential join/infill two parallel vertical
>         cylindrical tubes.
> To: [hidden email]
> Message-ID: <[hidden email]>
> Content-Type: multipart/alternative;
>         boundary="----=_Part_457354_367848959.1618875730137"
>
> Sounds like you're looking for hull().  See below.  Note I put the
> cylinders
> at the same height, unlike your original example.  If you want them at
> different heights then I'm not sure what exactly you are after.
>
> Note that minkowski round calls the slowest function in OpenSCAD 3 times.
> You might have to wait an hour.  It's not really practical.   I think
> boundingEnvelope is the bounding box for your model.   And the output
> you'll
> get will be a rounded version of your model, not a version with the space
> between the cylinders filled in.
>
> $fn=10;
> br=32;
> sr=12.3;
> bw=5;
> sw=4;
> height=12;
>
> difference(){
>   hull(){
>     cylinder (height,br+bw,br+bw,center=true);
>     translate([br+sr+sw+bw,0,0]) cylinder (height,sr+sw,sr+sw,center=true);
>   }
>   translate([br+sr+sw+bw,0,0]) cylinder (height+2,sr,sr,center=true);
>   cylinder (height+2,br,br,center=true);
> }
>
>
>
>
> OpenSCAD mailing list-2 wrote
> > I have 2 parallel vertical cylinders with different diameters that are
> > adjacent and touching.  I want to fill the space 'between' the cylinders
> > to
> > join them securely.  I did think about creating a polygon block that I
> > join
> > with the two cylinders before taking the inner cylinders away to make a
> > straight edge join but I thought this is a simple enough model to learn
> > how
> > to use the roundanything library  to create a fill with a radius of my
> > choosing.  However , being a noob, Not sure where to start.
> >
> > back story: The larger cylinder fits over my monitor stand.  The smaller
> > Cylinder is for an anglepoise arm for a webcam/ video light.  I just need
> > to be able to join them nicely so that they don't break apart.
> > Here's what I've got so far.:
> >
> > include <Round-Anything/MinkowskiRound.scad>;
> > $fn=10;
> > br=32;
> > sr=12.3;
> > bw=5;
> > sw=4;
> > height=12;
> > boundingEnvelope=[50,50,50];
> > OR=0.7;
> > IR=1;
> > enable=1;
> >
> > minkowskiRound(OR, IR, enable, boundingEnvelope) {
> >     union(){
> >         translate([0,0,-10]){
> >             difference(){
> >                 cylinder (height,br+bw,br+bw,center=true);
> >                 cylinder (height+2,br,br,center=true);
> >             }
> >             translate([br+sr+sw+bw,0,0]){
> >                 difference(){
> >                     cylinder (height,sr+sw,sr+sw,center=true);
> >                     cylinder (height+2,sr,sr,center=true);
> >                 }
> >             }
> >         }
> >     }
> > }
> >
> > But I just get a spinning circle on my Mac.
> > not sure how the bounding envelope works or how long I should expect to
> > wait for a result.
> >
> > Any help appreciated:
> >
> > Chris Johnson
> >
> > _______________________________________________
> > OpenSCAD mailing list
> > To unsubscribe send an email to
>
> > [hidden email]
>
>
>
>
>
> --
> Sent from: http://forum.openscad.org/-------------- next part
> --------------
> A message part incompatible with plain text digests has been removed ...
> Name: not available
> Type: text/html
> Size: 4020 bytes
> Desc: not available
>
> ------------------------------
>
> Message: 3
> Date: Tue, 20 Apr 2021 03:03:46 +0100
> From: Ray West <[hidden email]>
> Subject: [OpenSCAD] Re: Tangential join/infill two parallel vertical
>         cylindrical tubes.
> To: [hidden email]
> Message-ID: <[hidden email]>
> Content-Type: text/plain; charset=windows-1252; format=flowed
>
> Is this good enough? You can play with the sizes, and extrude the parts
> separately if you want, make a prettier infill..
>
>
> hole1 =10; //diameter of small hole
> hole2 = 15;// diameter of large hole
> wall=3;// thickness of wall
> height =50; //height of piece
>
>      // position holes
> module holes(){
>      circle (d=hole1);
>      translate ([(hole1+hole2)/2,0])circle (d=hole2);
> }
>
>     // get solids
> module skin(){
>      circle (d=hole1 + wall+wall);
>      translate([(hole1+hole2)/2,0])circle (d=hole2+wall+wall);
>      //add in filler
>         filler();
>         mirror([0,1,0])filler();
> }
>
>     // make wedged shaped filler
> module filler(){
>
> polygon(points=[[0,0],[(hole1+hole2)/2,0],[(hole1+hole2)/2,hole2/2+wall],[0,hole1/2+wall]]);
> }
>
> $fn =80;
>
> linear_extrude(height)
>        difference (){
>           skin();
>           holes();
> }
>
>
>
> On 19/04/2021 23:49, Chris Johnson via Discuss wrote:
> > _______________________________________________
> > OpenSCAD mailing list
> > To unsubscribe send an email to [hidden email]
>
> ------------------------------
>
> Message: 4
> Date: Mon, 19 Apr 2021 23:39:04 -0700 (MST)
> From: Troberg <[hidden email]>
> Subject: [OpenSCAD] Re: Tangential join/infill two parallel vertical
>         cylindrical tubes.
> To: [hidden email]
> Message-ID: <[hidden email]>
> Content-Type: multipart/alternative;
>         boundary="----=_Part_459015_942237708.1618900744377"
>
> Try making 2D first. Two circles, use offset to create an inside radius
> (first offset -radius, then offset +radius), then linear_extrude to make it
> 3D.
>
>
>
> --
> Sent from: http://forum.openscad.org/-------------- next part
> --------------
> A message part incompatible with plain text digests has been removed ...
> Name: not available
> Type: text/html
> Size: 300 bytes
> Desc: not available
>
> ------------------------------
>
> Message: 5
> Date: Mon, 19 Apr 2021 23:49:55 -0700 (MST)
> From: Karl Exler <[hidden email]>
> Subject: [OpenSCAD] Meassuerments workarround
> To: [hidden email]
> Message-ID: <[hidden email]>
> Content-Type: multipart/alternative;
>         boundary="----=_Part_459062_357729467.1618901395764"
>
> Dear friends
>
> I never had such a strong learning curve with OpenScad. It is 100% the tool
> I looked ever.. I can do all my drafts and ideas in a very short time.
>
> The only thing I miss is MEASSUREMENTs.
>
> As far I could found out there is no convenient way to add meassurement to
> my constructions
>
> So I guess there should be an easy was to export my construction and import
> it in LibreCad or Freecad (I'm using Mint).
>
> I don't need a detailed explanation but the raw steps would be great.
>
> Many Thanks
> Karl
>
> P.S.
> As I focused in trhe beginning I have no CAD experience. I'm coming from
> programming
>
>
>
> --
> Sent from: http://forum.openscad.org/-------------- next part
> --------------
> A message part incompatible with plain text digests has been removed ...
> Name: not available
> Type: text/html
> Size: 818 bytes
> Desc: not available
>
> ------------------------------
>
> Subject: Digest Footer
>
> _______________________________________________
> Discuss mailing list -- [hidden email]
> To unsubscribe send an email to [hidden email]
>
>
> ------------------------------
>
> End of Discuss Digest, Vol 77, Issue 29
> ***************************************
>

_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]


Sent from the OpenSCAD mailing list archive at Nabble.com.

_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]

_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Tangential join/infill two parallel vertical cylindrical tubes.

milmac
In reply to this post by OpenSCAD mailing list-2

I’ve learned that it’s much faster to make a cylinder by using linear_extrude() circle() than by using cylinder() — and it’s very very much faster to make a hollow cylinder by using linear_extrude() difference() { circle(); circle();} than by using difference() { cylinder(); cylinder();}.

I’ve also discovered that hull() and offset() are much faster than minkowski().

So try this (which, on my machine, renders in less than one second):

$fn=150;
br=32;
sr=12.3;
bw=5;
sw=4;
height=12;

linear_extrude(height=height)
	difference() {
		hull() {
			circle(r=br+bw);
			translate([br+sr+sw+bw,0,0]) circle(r=sr+sw);
		}
		circle(r=br);
		translate([br+sr+sw+bw,0,0]) circle(r=sr);
	}


_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]

bracket.png (27K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Tangential join/infill two parallel vertical cylindrical tubes.

OpenSCAD mailing list-2
In reply to this post by OpenSCAD mailing list-2
As you say extruding a polygon on a plane has no issues with holes fully cutting and where the cylinders are the same height with no vertical offset that's trivial too (I just add "2" to the length).  The problem with the hole lengths comes in when using hull to fill in the space between the cylinders and the  cylinders are either different lengths, vertically offset or both so that there are sloping sections between the two cylinders meaning the holes are cutting through a sloping face so need to be longer than their "parent" cylinder.
Chris Johnson



_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Tangential join/infill two parallel vertical cylindrical tubes.

adrianv
If your model can be made as an extrusion of something 2d then that will be faster than making it in 3d, and you can difference() circles without any problem.  But in 3d if you subtract a cylinder from another cylinder and they are the same length then OpenSCAD will get confused about the surface and you will see a phantom surface at the ends.   Never subtract two 3d objects that share a face.

OpenSCAD mailing list-2 wrote
As you say extruding a polygon on a plane has no issues with holes fully
cutting and where the cylinders are the same height with no vertical offset
that's trivial too (I just add "2" to the length).  The problem with the
hole lengths comes in when using hull to fill in the space between the
cylinders and the  cylinders are either different lengths, vertically
offset or both so that there are sloping sections between the two cylinders
meaning the holes are cutting through a sloping face so need to be longer
than their "parent" cylinder.
Chris Johnson


>

_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]


Sent from the OpenSCAD mailing list archive at Nabble.com.

_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]
Reply | Threaded
Open this post in threaded view
|

Linear_extrude

mondo
Is there a method of doing a linear-extrude or equivalent in the
opposite direction, (-ve z instead of +ve)? In simple 3 axis machining,
it is usual to have z0 at the top of the work piece, and it would make
things easier, I think, if an extrude in the -ve z direction was possible.

For example, instead of a  number of lines like
'translate([0,0,-5])linear_extrude(5)notch();'  could simply write
'linear_extrude(-5)notch;' It would allow a very quick way of getting
the 2d drawing into a 3d model of the object.
_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Linear_extrude

acwest
I would just use:
mirror([0, 0, 1]) linear_extrude...


On Wed, 21 Apr 2021, 10:55 Ray West, <[hidden email]> wrote:
Is there a method of doing a linear-extrude or equivalent in the
opposite direction, (-ve z instead of +ve)? In simple 3 axis machining,
it is usual to have z0 at the top of the work piece, and it would make
things easier, I think, if an extrude in the -ve z direction was possible.

For example, instead of a  number of lines like
'translate([0,0,-5])linear_extrude(5)notch();'  could simply write
'linear_extrude(-5)notch;' It would allow a very quick way of getting
the 2d drawing into a 3d model of the object.
_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]

_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Linear_extrude

Gene Heskett
On Wednesday 21 April 2021 11:03:52 A. Craig West wrote:

> I would just use:
> mirror([0, 0, 1]) linear_extrude...

Now, why didn't I think of that? Go ahead, answer that, I deserve it.

That would be an ideal first step in making gcode for a milliing machine.  
The next would be a "slicer" like translator to break that depth into
something the machine is capable of. Just think, from an idea done in
openscad, sliced into gcode to drive the machine. The capabilities of
that, and the time saved in making the finished part are mind boggling.

> On Wed, 21 Apr 2021, 10:55 Ray West, <[hidden email]> wrote:
> > Is there a method of doing a linear-extrude or equivalent in the
> > opposite direction, (-ve z instead of +ve)? In simple 3 axis
> > machining, it is usual to have z0 at the top of the work piece, and
> > it would make things easier, I think, if an extrude in the -ve z
> > direction was possible.
> >
> > For example, instead of a  number of lines like
> > 'translate([0,0,-5])linear_extrude(5)notch();'  could simply write
> > 'linear_extrude(-5)notch;' It would allow a very quick way of
> > getting the 2d drawing into a 3d model of the object.
> > _______________________________________________
> > OpenSCAD mailing list
> > To unsubscribe send an email to [hidden email]


Cheers, Gene Heskett
--
"There are four boxes to be used in defense of liberty:
 soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
If we desire respect for the law, we must first make the law respectable.
 - Louis D. Brandeis
Genes Web page <http://geneslinuxbox.net:6309/gene>
_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Linear_extrude

OpenSCAD mailing list-2

I found this thread that seems promising. There were other semi-related links when searching for "OpenSCAD to gcode converter" but none of them as promising as the above link. I'm not qualified to determine suitability.



On Wednesday, April 21, 2021, 12:51:00 PM EDT, Gene Heskett <[hidden email]> wrote:


Now, why didn't I think of that? Go ahead, answer that, I deserve it.

That would be an ideal first step in making gcode for a milliing machine. 
The next would be a "slicer" like translator to break that depth into
something the machine is capable of. Just think, from an idea done in
openscad, sliced into gcode to drive the machine. The capabilities of
that, and the time saved in making the finished part are mind boggling.



_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Linear_extrude

acwest
In reply to this post by Gene Heskett
Openscad is an amazingly flexible tool, but I do find that it is overly limited by the assumption that 3d printers are the only possible use case. I find that the language is great for expressing geometry in 2d as well, but due to the assumption that all generated objects must have thickness/volume, you can't actually use it for things like laser cutting... 

On Wed, 21 Apr 2021, 12:50 Gene Heskett, <[hidden email]> wrote:
On Wednesday 21 April 2021 11:03:52 A. Craig West wrote:

> I would just use:
> mirror([0, 0, 1]) linear_extrude...

Now, why didn't I think of that? Go ahead, answer that, I deserve it.

That would be an ideal first step in making gcode for a milliing machine. 
The next would be a "slicer" like translator to break that depth into
something the machine is capable of. Just think, from an idea done in
openscad, sliced into gcode to drive the machine. The capabilities of
that, and the time saved in making the finished part are mind boggling.

> On Wed, 21 Apr 2021, 10:55 Ray West, <[hidden email]> wrote:
> > Is there a method of doing a linear-extrude or equivalent in the
> > opposite direction, (-ve z instead of +ve)? In simple 3 axis
> > machining, it is usual to have z0 at the top of the work piece, and
> > it would make things easier, I think, if an extrude in the -ve z
> > direction was possible.
> >
> > For example, instead of a  number of lines like
> > 'translate([0,0,-5])linear_extrude(5)notch();'  could simply write
> > 'linear_extrude(-5)notch;' It would allow a very quick way of
> > getting the 2d drawing into a 3d model of the object.
> > _______________________________________________
> > OpenSCAD mailing list
> > To unsubscribe send an email to [hidden email]


Cheers, Gene Heskett
--
"There are four boxes to be used in defense of liberty:
 soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
If we desire respect for the law, we must first make the law respectable.
 - Louis D. Brandeis
Genes Web page <http://geneslinuxbox.net:6309/gene>
_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]

_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Linear_extrude

OpenSCAD mailing list-2
I've used OpenSCAD to create an object which I then "projected" to create the flat outline I needed to export to SVG, which is accepted by my laser cutting software. It was the most efficient method available to me at the time. There may have been other ways, but it worked for my purposes. I'll be doing a similar task for a boat hull, to create outlines to make on the laser a dry dock sort of array.

On Wednesday, April 21, 2021, 1:17:43 PM EDT, A. Craig West <[hidden email]> wrote:


Openscad is an amazingly flexible tool, but I do find that it is overly limited by the assumption that 3d printers are the only possible use case. I find that the language is great for expressing geometry in 2d as well, but due to the assumption that all generated objects must have thickness/volume, you can't actually use it for things like laser cutting... 

On Wed, 21 Apr 2021, 12:50 Gene Heskett, <[hidden email]> wrote:
On Wednesday 21 April 2021 11:03:52 A. Craig West wrote:

> I would just use:
> mirror([0, 0, 1]) linear_extrude...

Now, why didn't I think of that? Go ahead, answer that, I deserve it.

That would be an ideal first step in making gcode for a milliing machine. 
The next would be a "slicer" like translator to break that depth into
something the machine is capable of. Just think, from an idea done in
openscad, sliced into gcode to drive the machine. The capabilities of
that, and the time saved in making the finished part are mind boggling.

> On Wed, 21 Apr 2021, 10:55 Ray West, <[hidden email]> wrote:
> > Is there a method of doing a linear-extrude or equivalent in the
> > opposite direction, (-ve z instead of +ve)? In simple 3 axis
> > machining, it is usual to have z0 at the top of the work piece, and
> > it would make things easier, I think, if an extrude in the -ve z
> > direction was possible.
> >
> > For example, instead of a  number of lines like
> > 'translate([0,0,-5])linear_extrude(5)notch();'  could simply write
> > 'linear_extrude(-5)notch;' It would allow a very quick way of
> > getting the 2d drawing into a 3d model of the object.
> > _______________________________________________
> > OpenSCAD mailing list
> > To unsubscribe send an email to [hidden email]


Cheers, Gene Heskett
--
"There are four boxes to be used in defense of liberty:
 soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
If we desire respect for the law, we must first make the law respectable.
 - Louis D. Brandeis
Genes Web page <<a rel="nofollow noopener noreferrer" shape="rect" target="_blank" onclick="return window.theMainWindow.showLinkWarning(this)" href="http://geneslinuxbox.net:6309/gene">http://geneslinuxbox.net:6309/gene>
_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]
_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]

_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Linear_extrude

alexgibson
In reply to this post by acwest

I’m confused to read that as I use it all the time for 2D!

 

Are you aware of the whole 2D subsystem? IE square([1,2]); instead of cube([1,2,3]);?

 

And that you can both import and export DXF files which are good for laser cutting and CNC routing?

 

(if you want to import DXF files – you need to make sure they don’t contain curves as these come in many incompatible dialects – instead decimate them to many straight sections – there’s an excellent plugin for Inkscape called ‘DXF output for OpenSCAD’ or similar which does this for you)

 

You can take a 2D shape and linear or rotate extrude to 3D, or you can cut a cross section from a 3D model in 2D with projection()…

 

Or… what is it you’re struggling to do?

 

Cheers,

 

Alex Gibson

 

admg consulting

 

edumaker limited

 

·         Project management

·         Operations & Process improvement

·         3D Printing

 

From: A. Craig West [mailto:[hidden email]]
Sent: 21 April 2021 18:17
To: OpenSCAD general discussion
Subject: [OpenSCAD] Re: Linear_extrude

 

Openscad is an amazingly flexible tool, but I do find that it is overly limited by the assumption that 3d printers are the only possible use case. I find that the language is great for expressing geometry in 2d as well, but due to the assumption that all generated objects must have thickness/volume, you can't actually use it for things like laser cutting... 

 

On Wed, 21 Apr 2021, 12:50 Gene Heskett, <[hidden email]> wrote:

On Wednesday 21 April 2021 11:03:52 A. Craig West wrote:

> I would just use:
> mirror([0, 0, 1]) linear_extrude...

Now, why didn't I think of that? Go ahead, answer that, I deserve it.

That would be an ideal first step in making gcode for a milliing machine. 
The next would be a "slicer" like translator to break that depth into
something the machine is capable of. Just think, from an idea done in
openscad, sliced into gcode to drive the machine. The capabilities of
that, and the time saved in making the finished part are mind boggling.


> On Wed, 21 Apr 2021, 10:55 Ray West, <[hidden email]> wrote:
> > Is there a method of doing a linear-extrude or equivalent in the
> > opposite direction, (-ve z instead of +ve)? In simple 3 axis
> > machining, it is usual to have z0 at the top of the work piece, and
> > it would make things easier, I think, if an extrude in the -ve z
> > direction was possible.
> >
> > For example, instead of a  number of lines like
> > 'translate([0,0,-5])linear_extrude(5)notch();'  could simply write
> > 'linear_extrude(-5)notch;' It would allow a very quick way of
> > getting the 2d drawing into a 3d model of the object.
> > _______________________________________________
> > OpenSCAD mailing list
> > To unsubscribe send an email to [hidden email]


Cheers, Gene Heskett
--
"There are four boxes to be used in defense of liberty:
 soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
If we desire respect for the law, we must first make the law respectable.
 - Louis D. Brandeis
Genes Web page <http://geneslinuxbox.net:6309/gene>
_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]

 

Virus-free. www.avg.com

 


_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Linear_extrude

acwest
You can export in 2d, but you can't export open shapes, which can be a problem for laser cutting, as to make a line cut, you run the laser over the path twice 

On Wed, 21 Apr 2021, 13:40 Alex Gibson, <[hidden email]> wrote:

I’m confused to read that as I use it all the time for 2D!

 

Are you aware of the whole 2D subsystem? IE square([1,2]); instead of cube([1,2,3]);?

 

And that you can both import and export DXF files which are good for laser cutting and CNC routing?

 

(if you want to import DXF files – you need to make sure they don’t contain curves as these come in many incompatible dialects – instead decimate them to many straight sections – there’s an excellent plugin for Inkscape called ‘DXF output for OpenSCAD’ or similar which does this for you)

 

You can take a 2D shape and linear or rotate extrude to 3D, or you can cut a cross section from a 3D model in 2D with projection()…

 

Or… what is it you’re struggling to do?

 

Cheers,

 

Alex Gibson

 

admg consulting

 

edumaker limited

 

·         Project management

·         Operations & Process improvement

·         3D Printing

 

From: A. Craig West [mailto:[hidden email]]
Sent: 21 April 2021 18:17
To: OpenSCAD general discussion
Subject: [OpenSCAD] Re: Linear_extrude

 

Openscad is an amazingly flexible tool, but I do find that it is overly limited by the assumption that 3d printers are the only possible use case. I find that the language is great for expressing geometry in 2d as well, but due to the assumption that all generated objects must have thickness/volume, you can't actually use it for things like laser cutting... 

 

On Wed, 21 Apr 2021, 12:50 Gene Heskett, <[hidden email]> wrote:

On Wednesday 21 April 2021 11:03:52 A. Craig West wrote:

> I would just use:
> mirror([0, 0, 1]) linear_extrude...

Now, why didn't I think of that? Go ahead, answer that, I deserve it.

That would be an ideal first step in making gcode for a milliing machine. 
The next would be a "slicer" like translator to break that depth into
something the machine is capable of. Just think, from an idea done in
openscad, sliced into gcode to drive the machine. The capabilities of
that, and the time saved in making the finished part are mind boggling.


> On Wed, 21 Apr 2021, 10:55 Ray West, <[hidden email]> wrote:
> > Is there a method of doing a linear-extrude or equivalent in the
> > opposite direction, (-ve z instead of +ve)? In simple 3 axis
> > machining, it is usual to have z0 at the top of the work piece, and
> > it would make things easier, I think, if an extrude in the -ve z
> > direction was possible.
> >
> > For example, instead of a  number of lines like
> > 'translate([0,0,-5])linear_extrude(5)notch();'  could simply write
> > 'linear_extrude(-5)notch;' It would allow a very quick way of
> > getting the 2d drawing into a 3d model of the object.
> > _______________________________________________
> > OpenSCAD mailing list
> > To unsubscribe send an email to [hidden email]


Cheers, Gene Heskett
--
"There are four boxes to be used in defense of liberty:
 soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
If we desire respect for the law, we must first make the law respectable.
 - Louis D. Brandeis
Genes Web page <http://geneslinuxbox.net:6309/gene>
_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]

 

Virus-free. www.avg.com

 

_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]

_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Linear_extrude

alexgibson

Ah – I see.  Your problem is the lack of a 1D subsystem J

 

It’s never really crossed my mind as a significant constraint, despite using OpenSCAD for laser cutting plenty, but I think I’ve had the same problem and just fixed the consequences – for example importing the DXF into RDWorks/Lightburn and before laser cutting just deleting the unnecessary lines – or accept the unnecessary second cut.

I wonder how significant a structural change to the language it would be to actually add in the capability to OpenSCAD to draw a line… for example instead of square([1,2]); or cube([1,2,3]); you could have line([1]); which until rotated or translated always began along the X axis?  Could a valid DXF file be exported with that?

Cheers,

Alex Gibson

 

admg consulting

 

edumaker limited

 

·         Project management

·         Operations & Process improvement

·         3D Printing

 

From: A. Craig West [mailto:[hidden email]]
Sent: 21 April 2021 18:44
To: OpenSCAD general discussion
Subject: [OpenSCAD] Re: Linear_extrude

 

You can export in 2d, but you can't export open shapes, which can be a problem for laser cutting, as to make a line cut, you run the laser over the path twice 

 

On Wed, 21 Apr 2021, 13:40 Alex Gibson, <[hidden email]> wrote:

I’m confused to read that as I use it all the time for 2D!

 

Are you aware of the whole 2D subsystem? IE square([1,2]); instead of cube([1,2,3]);?

 

And that you can both import and export DXF files which are good for laser cutting and CNC routing?

 

(if you want to import DXF files – you need to make sure they don’t contain curves as these come in many incompatible dialects – instead decimate them to many straight sections – there’s an excellent plugin for Inkscape called ‘DXF output for OpenSCAD’ or similar which does this for you)

 

You can take a 2D shape and linear or rotate extrude to 3D, or you can cut a cross section from a 3D model in 2D with projection()…

 

Or… what is it you’re struggling to do?

 

Cheers,

 

Alex Gibson

 

admg consulting

 

edumaker limited

 

·         Project management

·         Operations & Process improvement

·         3D Printing

 

From: A. Craig West [mailto:[hidden email]]
Sent: 21 April 2021 18:17
To: OpenSCAD general discussion
Subject: [OpenSCAD] Re: Linear_extrude

 

Openscad is an amazingly flexible tool, but I do find that it is overly limited by the assumption that 3d printers are the only possible use case. I find that the language is great for expressing geometry in 2d as well, but due to the assumption that all generated objects must have thickness/volume, you can't actually use it for things like laser cutting... 

 

On Wed, 21 Apr 2021, 12:50 Gene Heskett, <[hidden email]> wrote:

On Wednesday 21 April 2021 11:03:52 A. Craig West wrote:

> I would just use:
> mirror([0, 0, 1]) linear_extrude...

Now, why didn't I think of that? Go ahead, answer that, I deserve it.

That would be an ideal first step in making gcode for a milliing machine. 
The next would be a "slicer" like translator to break that depth into
something the machine is capable of. Just think, from an idea done in
openscad, sliced into gcode to drive the machine. The capabilities of
that, and the time saved in making the finished part are mind boggling.


> On Wed, 21 Apr 2021, 10:55 Ray West, <[hidden email]> wrote:
> > Is there a method of doing a linear-extrude or equivalent in the
> > opposite direction, (-ve z instead of +ve)? In simple 3 axis
> > machining, it is usual to have z0 at the top of the work piece, and
> > it would make things easier, I think, if an extrude in the -ve z
> > direction was possible.
> >
> > For example, instead of a  number of lines like
> > 'translate([0,0,-5])linear_extrude(5)notch();'  could simply write
> > 'linear_extrude(-5)notch;' It would allow a very quick way of
> > getting the 2d drawing into a 3d model of the object.
> > _______________________________________________
> > OpenSCAD mailing list
> > To unsubscribe send an email to [hidden email]


Cheers, Gene Heskett
--
"There are four boxes to be used in defense of liberty:
 soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
If we desire respect for the law, we must first make the law respectable.
 - Louis D. Brandeis
Genes Web page <http://geneslinuxbox.net:6309/gene>
_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]

 

Virus-free. www.avg.com

 

_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]


_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Linear_extrude

Gene Heskett
In reply to this post by acwest
On Wednesday 21 April 2021 13:16:58 A. Craig West wrote:

> Openscad is an amazingly flexible tool, but I do find that it is
> overly limited by the assumption that 3d printers are the only
> possible use case. I find that the language is great for expressing
> geometry in 2d as well, but due to the assumption that all generated
> objects must have thickness/volume, you can't actually use it for
> things like laser cutting...

I didn't have laser cutting in mind, Craig, more like a suitable carbide
end mill whose dimensions would have to be known by the slicer. Or
assume sinker EDM, but that also has problems due to the erosion of the
sinker electrode as it works.

That too is a major problem when the hole being burnt is more than
electrode diameter deep. I have cut slots to make compressible petals
out of a socket to receive a ball screw, with tapered threads on the
outside.  It does those slots an inch deep, .032" wide, putting a drive
shaft on the end of a ball screw for 2 lathes x drives now. No warpage,
no burrs, puts tons of grip on the end of a ball screw when its wet with
threadlocker and the nut drawn tight.  Hasn't slipped a micron in many
years. That was the general idea.

So what to we have that can turn an openscad output into gcode?
Preferably metric based although linuxcnc accepts either measurement
system.  Preferably something smart enough to make use of linuxcnc's
looping abilities. Something that turns 100 lines of source code into
100 gigabytes of gcode because it has to unroll all the loops, is not to
me, a workable solution.  Success to me is a 90 line gcode program that
takes 3 days to run. I have done that by hand. It also made the sharpest
table saw carbide blade I've ever used.

So I am curious, if you are designing a part in openscad that will
eventually be made on a cnc controlled 3 or more axis milling machine,
what do you use to make that connection work?

Thank you all.

[...]

Cheers, Gene Heskett
--
"There are four boxes to be used in defense of liberty:
 soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
If we desire respect for the law, we must first make the law respectable.
 - Louis D. Brandeis
Genes Web page <http://geneslinuxbox.net:6309/gene>
_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]
12