Monitor Mount

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

Monitor Mount

ats3788
How an we do The Soft connection to the plate in OpenSCad
<http://forum.openscad.org/file/t2425/Monitor_Mount.jpg>



--
Sent from: http://forum.openscad.org/

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Reply | Threaded
Open this post in threaded view
|

Re: Monitor Mount

alexgibson
I think you mean that you want to re-create a part like this one, and you
want to be able to do the curved 'fillet' between the main plate and the
raised mount.

The way you can do this is to make the plate and the mount so that they
overlap, and put both inside a union() {.....}

Make the mount wider than you want it to be, by 2x the radius of the fillet
you want.

Translate the parts so that the TOP surface of the plate on Z=0.

Then, you want to take a cylinder with the radius of the fillet you want,
make it easily long enough to be wider than the whole part.  Rotate it over
so that it is in line with the fillet you want to make.
Translate it up to Z=fillet radius, so it is lying on the surface of the
plate. Translate it horizontally so its centre overlaps the EXTRA width of
the mount, and its edges are at the correct width.
Now, copy that cylinder, paste it and translate the copy in Z so it is way
above the  parts.  Then put both inside a hull() {.....}

Use difference() to cut the new cylinder hull out of the union above.  Then
copy-paste the cylinder hull over to the other side to do the same on the
other side.

This should get you what you are after!

Alex Gibson

admg consulting

edumaker limited

. Project management
. Operations & Process improvement
. 3D Printing


-----Original Message-----
From: Discuss [mailto:[hidden email]] On Behalf Of
ats3788
Sent: 22 November 2019 12:37
To: [hidden email]
Subject: [OpenSCAD] Monitor Mount

How an we do The Soft connection to the plate in OpenSCad
<http://forum.openscad.org/file/t2425/Monitor_Mount.jpg>



--
Sent from: http://forum.openscad.org/

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org


_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Reply | Threaded
Open this post in threaded view
|

Re: Monitor Mount

alexgibson

Example:

 

fillet_radius = 10;

mount_width = 15;

 

 

difference()

                {

                union()

                                {

                                //plate

                                translate([0,0,-5])

                                                cube([200,100,10],center=true);

                               

                                //mount

                                translate([0,0,25])

                                                cube([mount_width+fillet_radius*2,75,50],center=true);

                                }

                hull()

                                {

                                translate([mount_width/2+fillet_radius,0,fillet_radius])

                                                rotate([90,0,0])

                                                                cylinder(200,fillet_radius,fillet_radius,center=true);

                                translate([mount_width/2+fillet_radius,0,fillet_radius+200])

                                                rotate([90,0,0])

                                                                cylinder(200,fillet_radius,fillet_radius,center=true);

                                }

                hull()

                                {

                                translate([-mount_width/2-fillet_radius,0,fillet_radius])

                                                rotate([90,0,0])

                                                                cylinder(200,fillet_radius,fillet_radius,center=true);

                                translate([-mount_width/2-fillet_radius,0,fillet_radius+200])

                                                rotate([90,0,0])

                                                                cylinder(200,fillet_radius,fillet_radius,center=true);

                                }

                }

 

 

Alex Gibson

 

admg consulting

 

edumaker limited

 

• Project management

• Operations & Process improvement

• 3D Printing

 

 

-----Original Message-----
From: Discuss [mailto:[hidden email]] On Behalf Of Alex Gibson
Sent: 22 November 2019 13:44
To: 'OpenSCAD general discussion'
Subject: Re: [OpenSCAD] Monitor Mount

 

I think you mean that you want to re-create a part like this one, and you

want to be able to do the curved 'fillet' between the main plate and the

raised mount.

 

The way you can do this is to make the plate and the mount so that they

overlap, and put both inside a union() {.....}

 

Make the mount wider than you want it to be, by 2x the radius of the fillet

you want.

 

Translate the parts so that the TOP surface of the plate on Z=0.

 

Then, you want to take a cylinder with the radius of the fillet you want,

make it easily long enough to be wider than the whole part.  Rotate it over

so that it is in line with the fillet you want to make.

Translate it up to Z=fillet radius, so it is lying on the surface of the

plate. Translate it horizontally so its centre overlaps the EXTRA width of

the mount, and its edges are at the correct width.

Now, copy that cylinder, paste it and translate the copy in Z so it is way

above the  parts.  Then put both inside a hull() {.....}

 

Use difference() to cut the new cylinder hull out of the union above.  Then

copy-paste the cylinder hull over to the other side to do the same on the

other side.

 

This should get you what you are after!

 

Alex Gibson

 

admg consulting

 

edumaker limited

 

. Project management

. Operations & Process improvement

. 3D Printing

 

 

-----Original Message-----

From: Discuss [mailto:[hidden email]] On Behalf Of

ats3788

Sent: 22 November 2019 12:37

To: [hidden email]

Subject: [OpenSCAD] Monitor Mount

 

How an we do The Soft connection to the plate in OpenSCad

<http://forum.openscad.org/file/t2425/Monitor_Mount.jpg>

 

 

 

--

Sent from: http://forum.openscad.org/

 

_______________________________________________

OpenSCAD mailing list

[hidden email]

http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

 

 

_______________________________________________

OpenSCAD mailing list

[hidden email]

http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org


_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Reply | Threaded
Open this post in threaded view
|

Re: Monitor Mount

cacb
In reply to this post by ats3788
On 2019-11-22 13:36, ats3788 wrote:
> How an we do The Soft connection to the plate in OpenSCad
> <http://forum.openscad.org/file/t2425/Monitor_Mount.jpg>

Determine the fillet radius r and add 2*r thickness in all directions to
the parts mentioned below.

Union two "plates" defined as cubes. One for the "horizontal plate" and
one for the "vertical". No holes or cutouts at this stage, but add 2*r
to all directions so we can "machine" away a thickness of r on all sides
later and obtain the correct dimensions.

Create a cube enclosing the unioned parts 100% and subtract the unioned
parts from it. You now have a cube with an internal void shaped by your
object. Run minkowski() on that using a sphere with the required fillet
radius. Subtract the result of minkowski() from your original union. Now
you have two parts with a fillet with given radius between them.

Punch the holes as required.

Carsten Arnholm

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Reply | Threaded
Open this post in threaded view
|

Re: Monitor Mount

alexgibson

Here's an example of that.  It’s better, as it gives both fillets, if you want them the same radius:

 

 

fillet_radius = 10;

mount_width = 15;

 

 

module shape_inflated()

                {

                union()

                                {

                                //plate

                                translate([0,0,-5])

                                                cube([200+fillet_radius*2,100+fillet_radius*2,10+fillet_radius*2],center=true);

                               

                                //mount

                                translate([0,0,25])

                                                cube([mount_width+fillet_radius*2,75+fillet_radius*2,50+fillet_radius*2],center=true);

                                }

                }

 

difference()

                {

                shape_inflated();

                minkowski()

                                {

                                difference()

                                                {

                                                cube([500,500,500],center=true);

                                                shape_inflated();

                                                }

                                sphere(fillet_radius);

                                }

                }

 

Alex Gibson

 

admg consulting

 

edumaker limited

 

• Project management

• Operations & Process improvement

• 3D Printing

 

 

-----Original Message-----
From: Discuss [mailto:[hidden email]] On Behalf Of [hidden email]
Sent: 22 November 2019 14:04
To: OpenSCAD general discussion
Subject: Re: [OpenSCAD] Monitor Mount

 

On 2019-11-22 13:36, ats3788 wrote:

> How an we do The Soft connection to the plate in OpenSCad

> <http://forum.openscad.org/file/t2425/Monitor_Mount.jpg>

 

Determine the fillet radius r and add 2*r thickness in all directions to

the parts mentioned below.

 

Union two "plates" defined as cubes. One for the "horizontal plate" and

one for the "vertical". No holes or cutouts at this stage, but add 2*r

to all directions so we can "machine" away a thickness of r on all sides

later and obtain the correct dimensions.

 

Create a cube enclosing the unioned parts 100% and subtract the unioned

parts from it. You now have a cube with an internal void shaped by your

object. Run minkowski() on that using a sphere with the required fillet

radius. Subtract the result of minkowski() from your original union. Now

you have two parts with a fillet with given radius between them.

 

Punch the holes as required.

 

Carsten Arnholm

 

_______________________________________________

OpenSCAD mailing list

[hidden email]

http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org


_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Reply | Threaded
Open this post in threaded view
|

Re: Monitor Mount

alexgibson

An even cleaner way to code that is below – has the same result but you can stick any shape you like into ‘original_shape’ module, and it will get the same treatment…

fillet_radius = 10;

mount_width = 15;

 

module original_shape()

                {

                union()

                                {

                                //plate

                                translate([0,0,-5])

                                                cube([200,100,10],center=true);

                               

                                //mount

                                translate([0,0,25])

                                                cube([mount_width,75,50],center=true);

                                }

                }

 

module shape_inflated()

                {

                minkowski()

                                {

                                original_shape();

                                cube([fillet_radius*2,fillet_radius*2,fillet_radius*2]);

                                }

                }

 

difference()

                {

                shape_inflated();

                minkowski()

                                {

                                difference()

                                                {

                                                cube([500,500,500],center=true);

                                                shape_inflated();

                                                }

                                sphere(fillet_radius);

                                }

                }

 

 

 

Alex Gibson

 

admg consulting

 

edumaker limited

 

·         Project management

·         Operations & Process improvement

·         3D Printing

 

From: Discuss [mailto:[hidden email]] On Behalf Of Alex Gibson
Sent: 22 November 2019 14:49
To: 'OpenSCAD general discussion'
Subject: Re: [OpenSCAD] Monitor Mount

 

Here's an example of that.  It’s better, as it gives both fillets, if you want them the same radius:

 

 

fillet_radius = 10;

mount_width = 15;

 

 

module shape_inflated()

                {

                union()

                                {

                                //plate

                                translate([0,0,-5])

                                                cube([200+fillet_radius*2,100+fillet_radius*2,10+fillet_radius*2],center=true);

                               

                                //mount

                                translate([0,0,25])

                                                cube([mount_width+fillet_radius*2,75+fillet_radius*2,50+fillet_radius*2],center=true);

                                }

                }

 

difference()

                {

                shape_inflated();

                minkowski()

                                {

                                difference()

                                                {

                                                cube([500,500,500],center=true);

                                                shape_inflated();

                                                }

                                sphere(fillet_radius);

                                }

                }

 

Alex Gibson

 

admg consulting

 

edumaker limited

 

• Project management

• Operations & Process improvement

• 3D Printing

 

 

-----Original Message-----
From: Discuss [mailto:[hidden email]] On Behalf Of [hidden email]
Sent: 22 November 2019 14:04
To: OpenSCAD general discussion
Subject: Re: [OpenSCAD] Monitor Mount

 

On 2019-11-22 13:36, ats3788 wrote:

> How an we do The Soft connection to the plate in OpenSCad

> <http://forum.openscad.org/file/t2425/Monitor_Mount.jpg>

 

Determine the fillet radius r and add 2*r thickness in all directions to

the parts mentioned below.

 

Union two "plates" defined as cubes. One for the "horizontal plate" and

one for the "vertical". No holes or cutouts at this stage, but add 2*r

to all directions so we can "machine" away a thickness of r on all sides

later and obtain the correct dimensions.

 

Create a cube enclosing the unioned parts 100% and subtract the unioned

parts from it. You now have a cube with an internal void shaped by your

object. Run minkowski() on that using a sphere with the required fillet

radius. Subtract the result of minkowski() from your original union. Now

you have two parts with a fillet with given radius between them.

 

Punch the holes as required.

 

Carsten Arnholm

 

_______________________________________________

OpenSCAD mailing list

[hidden email]

http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org


_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Reply | Threaded
Open this post in threaded view
|

Re: Monitor Mount

cacb
In reply to this post by alexgibson
On 2019-11-22 15:48, Alex Gibson wrote:
> Here's an example of that.  It's better, as it gives both fillets, if
> you want them the same radius:

Yes, that's what I meant, as I did this
https://gist.github.com/arnholm/a8254293238b2143c4565fc179104576

Carsten Arnholm

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Reply | Threaded
Open this post in threaded view
|

Re: Monitor Mount

alexgibson

Nice!  I must check out AngelCAD.

 

So this works well for square-edged items.  I wanted to check how well my example would work for  rounded shapes.  Not so well.

 

In this case the ‘mount’ is supposed to have rounded ends being the union of two cylinders.  But the cubes I used to inflate the original piece overpowered the original shape’s radii:

 

 

fillet_radius = 10;

mount_width = 15;

 

module original_shape()

     {

     union()

           {

           //plate

           translate([0,0,-5])

                cube([200,100,10],center=true);

          

           //mount

           hull()

                {

                translate([0,75/2-mount_width/2,25])

                     cylinder(50,mount_width/2,mount_width/2,center=true);

                translate([0,-75/2+mount_width/2,25])

                     cylinder(50,mount_width/2,mount_width/2,center=true);

                }

           }

     }

 

module shape_inflated()

     {

     minkowski()

           {

           original_shape();

           cube([fillet_radius*2,fillet_radius*2,fillet_radius*2],center=true);

           }

     }

 

difference()

     {

     shape_inflated();

     minkowski()

           {

           difference()

                {

                cube([500,500,500],center=true);

                shape_inflated();

                }

           sphere(fillet_radius);

           }

     }

 

 

 

So, If the same is run again, but making sure the radii on the original part are bigger than the fillet radius, you get something closer to the expected output – but still distorted:

 

 

 

 

Alex Gibson

 

admg consulting

 

edumaker limited

 

• Project management

• Operations & Process improvement

• 3D Printing

 

 

-----Original Message-----
From: Discuss [mailto:[hidden email]] On Behalf Of [hidden email]
Sent: 22 November 2019 15:11
To: OpenSCAD general discussion
Subject: Re: [OpenSCAD] Monitor Mount

 

On 2019-11-22 15:48, Alex Gibson wrote:

> Here's an example of that.  It's better, as it gives both fillets, if

> you want them the same radius:

 

Yes, that's what I meant, as I did this

https://gist.github.com/arnholm/a8254293238b2143c4565fc179104576

 

Carsten Arnholm

 

_______________________________________________

OpenSCAD mailing list

[hidden email]

http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org


_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Reply | Threaded
Open this post in threaded view
|

Re: Monitor Mount

ats3788
Thank you people
That looks great




--
Sent from: http://forum.openscad.org/

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Reply | Threaded
Open this post in threaded view
|

Re: Monitor Mount

ats3788
In reply to this post by alexgibson
Thank you people



--
Sent from: http://forum.openscad.org/

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Reply | Threaded
Open this post in threaded view
|

Re: Monitor Mount

cacb
In reply to this post by alexgibson
On 2019-11-22 16:25, Alex Gibson wrote:
> Nice!  I must check out AngelCAD.
>
> So this works well for square-edged items.  I wanted to check how well
> my example would work for  rounded shapes.  Not so well.
>
> In this case the 'mount' is supposed to have rounded ends being the
> union of two cylinders.  But the cubes I used to inflate the original
> piece overpowered the original shape's radii:

I have not tried that, but this technique is equivalent to "machine
away" a layer of material of thickness equal to fillet radius from all
sides, so if the shape is rounded in the first place, that rounding will
be reduced or disappear.

Perhaps the general solution is to first inflate the original rounded
shape using minkowski, using a sphere with the fillet radius. Then apply
the same technique as demonstrated for the square-edge items on the
result.

This could be considered a 3d equivalent to positive followed by
negative offsets in 2d.

Carsten Arnholm


_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Reply | Threaded
Open this post in threaded view
|

Re: Monitor Mount

Parkinbot
For convex shapes, one can use the following solution that builds on hull:


convex_fillet(10)
  linear_extrude(50)
    offset(0) square([10, 40], center = true);

module convex_fillet(r=10, n=6)
{
  for(i=[0:n-1])
  {
    w0 = 90/n*i;
    w1 = 90/n*(i+1);
    x0 = r*(1-sin(w0));
    x1 = r*(1-sin(w1));
    y0 = r*(1-cos(w0));
    y1 = r*(1-cos(w1));
    hull()
    {
      translate([0,0,y0])linear_extrude(.01)
      offset(x0)projection() children();  
      translate([0,0,y1])linear_extrude(.01)
      offset(x1)projection() children();
    }
  }
   children();
}


<http://forum.openscad.org/file/t887/fillet.png>



--
Sent from: http://forum.openscad.org/

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Reply | Threaded
Open this post in threaded view
|

Re: Monitor Mount

alexgibson
In reply to this post by cacb

I plowed on in the same vein as the previous example, but using TWO minkowski spheres, one to inflate, and the next to cut.

 

After 5 HOURS of rendering, I got the intended result:

 

Here’s the slightly tweaked code:

 

fillet_radius = 10;

mount_width = 15;

 

module original_shape()

     {

     union()

           {

           //plate

           translate([0,0,-5])

                cube([200,100,10],center=true);

          

           //mount

           hull()

                {

                translate([0,75/2-mount_width/2,25])

                     cylinder(50,mount_width/2,mount_width/2,center=true);

                translate([0,-75/2+mount_width/2,25])

                     cylinder(50,mount_width/2,mount_width/2,center=true);

                }

           }

     }

 

module shape_inflated()

     {

     minkowski()

           {

           original_shape();

           sphere(fillet_radius);

           }

     }

 

difference()

     {

     shape_inflated();

     minkowski()

           {

           difference()

                {

                cube([500,500,500],center=true);

                shape_inflated();

                }

           sphere(fillet_radius);

           }

     }

 

 

Doing a minkowski with sphere operation on an already completed minkowski sphere is super intensive to code, so i will be keen to try any other ways to achieve the same result…!

 

Also, I showed the good side above;  here is the other side, with either a render defect or a hole in the mesh…!

 

Alex Gibson

 

admg consulting

 

edumaker limited

 

• Project management

• Operations & Process improvement

• 3D Printing

 

-----Original Message-----
From: Discuss [mailto:[hidden email]] On Behalf Of [hidden email]
Sent: 23 November 2019 09:57
To: OpenSCAD general discussion
Subject: Re: [OpenSCAD] Monitor Mount

 

On 2019-11-22 16:25, Alex Gibson wrote:

> Nice!  I must check out AngelCAD.

>

> So this works well for square-edged items.  I wanted to check how well

> my example would work for  rounded shapes.  Not so well.

>

> In this case the 'mount' is supposed to have rounded ends being the

> union of two cylinders.  But the cubes I used to inflate the original

> piece overpowered the original shape's radii:

 

I have not tried that, but this technique is equivalent to "machine

away" a layer of material of thickness equal to fillet radius from all

sides, so if the shape is rounded in the first place, that rounding will

be reduced or disappear.

 

Perhaps the general solution is to first inflate the original rounded

shape using minkowski, using a sphere with the fillet radius. Then apply

the same technique as demonstrated for the square-edge items on the

result.

 

This could be considered a 3d equivalent to positive followed by

negative offsets in 2d.

 

Carsten Arnholm

 

 

_______________________________________________

OpenSCAD mailing list

[hidden email]

http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org


_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Reply | Threaded
Open this post in threaded view
|

Re: Monitor Mount

adrianv
I wrote a module specifically to handle this sort of problem.  My module,
offset_sweep, constructs a polygon from a set of polygons offset from a
given polygon.  You have to supply the starting shape as a point sequence
rather than geometry.   I contributed by function to the BOSL2 library.  

Here's the code:

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

fillet_radius = 10;
mount_width = 15;
mount_length = 75;

rectangle = square([mount_width, mount_length],center=true);
round_rectangle = round_corners(rectangle, measure="radius",
size=mount_width/2,$fn=64);
cuboid([200,100,10],anchor=TOP);
offset_sweep(round_rectangle, height=50,
bottom=os_circle(r=-fillet_radius));


And here's the result, which previews in 1s and renders in 3s on my machine.  

<http://forum.openscad.org/file/t2477/round_thing.png>



--
Sent from: http://forum.openscad.org/

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Reply | Threaded
Open this post in threaded view
|

Re: Monitor Mount

thehans
Didn't see adrianv's reply til now, but I just created a simple module to perform fillet on bottom and/or top as a sort of variation on linear_extrude, called fillet_extrude.

https://gist.github.com/thehans/b47ab7077c862361eb5d8f095448b2d4

Its not as efficient or flexible as the BOSL example appears to be, since my version does not work directly with point data.
But still should render under a minute, with fairly compact, self-contained code.

Hans

On Sat, Nov 23, 2019 at 8:12 PM adrianv <[hidden email]> wrote:
I wrote a module specifically to handle this sort of problem.  My module,
offset_sweep, constructs a polygon from a set of polygons offset from a
given polygon.  You have to supply the starting shape as a point sequence
rather than geometry.   I contributed by function to the BOSL2 library. 

Here's the code:

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

fillet_radius = 10;
mount_width = 15;
mount_length = 75;

rectangle = square([mount_width, mount_length],center=true);
round_rectangle = round_corners(rectangle, measure="radius",
size=mount_width/2,$fn=64);
cuboid([200,100,10],anchor=TOP);
offset_sweep(round_rectangle, height=50,
bottom=os_circle(r=-fillet_radius));


And here's the result, which previews in 1s and renders in 3s on my machine. 

<http://forum.openscad.org/file/t2477/round_thing.png>



--
Sent from: http://forum.openscad.org/

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Reply | Threaded
Open this post in threaded view
|

Re: Monitor Mount

adrianv
It seems like the main unavoidable limitation of your approach is that the
polygon has to be convex (and the resulting shape has to be constructable
from convex slices).  It's certainly a heck of a lot simpler than what I
did.  


thehans wrote

> Didn't see adrianv's reply til now, but I just created a simple module to
> perform fillet on bottom and/or top as a sort of variation on
> linear_extrude, called fillet_extrude.
>
> https://gist.github.com/thehans/b47ab7077c862361eb5d8f095448b2d4
>
> Its not as efficient or flexible as the BOSL example appears to be, since
> my version does not work directly with point data.
> But still should render under a minute, with fairly compact,
> self-contained
> code.
>
> Hans
>
> On Sat, Nov 23, 2019 at 8:12 PM adrianv &lt;

> avm4@

> &gt; wrote:
>
>> I wrote a module specifically to handle this sort of problem.  My module,
>> offset_sweep, constructs a polygon from a set of polygons offset from a
>> given polygon.  You have to supply the starting shape as a point sequence
>> rather than geometry.   I contributed by function to the BOSL2 library.
>>
>> Here's the code:
>>
>> include&lt;BOSL2/std.scad&gt;
>> include&lt;BOSL2/rounding.scad&gt;
>>
>> fillet_radius = 10;
>> mount_width = 15;
>> mount_length = 75;
>>
>> rectangle = square([mount_width, mount_length],center=true);
>> round_rectangle = round_corners(rectangle, measure="radius",
>> size=mount_width/2,$fn=64);
>> cuboid([200,100,10],anchor=TOP);
>> offset_sweep(round_rectangle, height=50,
>> bottom=os_circle(r=-fillet_radius));
>>
>>
>> And here's the result, which previews in 1s and renders in 3s on my
>> machine.
>>
>> &lt;http://forum.openscad.org/file/t2477/round_thing.png&gt;
>>
>>
>>
>> --
>> Sent from: http://forum.openscad.org/
>>
>> _______________________________________________
>> OpenSCAD mailing list
>>

> Discuss@.openscad

>> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
>>
>
> _______________________________________________
> OpenSCAD mailing list

> Discuss@.openscad

> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org





--
Sent from: http://forum.openscad.org/

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org