### little question

KE
Karl Exler
Tue, Jul 16, 2024 8:18 AM

Dear all

...... this is the way a non programmer works.. but it is painful. :-(

\$fn=100;
id=55; //Innendurchmesser
od=64; //Außendurchmesser
h=10;  //Höhe über Alles
s=2;   //Stärke

translate([0,0,h/2+s/2])
tube(h=h-s, or=id/2, wall=s);
difference()

{
cylinder(s,d=od);
translate([-id/20.7,id/20.4,s0.5]) sphere(r=2);
translate([-id/2
0.3,id/20.6,s0.5]) sphere(r=2);
translate([id/20.4,id/20.5,s0.5]) sphere(r=2);
translate([id/2
0.5,id/20.2,s0.5]) sphere(r=2);
translate([id/20.2,-id/20.3,s0.5]) sphere(r=2);
translate([-id/2
0.6,id/2*-0.3,s*0.5]) sphere(r=2);
}

How can I manage to get a valid array of coordinates which are all
within a defined circle with a diameter of n?

Karl

P.S.
the goal is to print a kind of lid for different sizes of glasses... to
use them as vase for small flowers.

Dear all ...... this is the way a non programmer works.. but it is painful. :-( ---------------------------------------------------------------------------- include <bosl2/std.scad> \$fn=100; id=55; //Innendurchmesser od=64; //Außendurchmesser h=10;  //Höhe über Alles s=2;   //Stärke translate([0,0,h/2+s/2]) tube(h=h-s, or=id/2, wall=s); difference() { cylinder(s,d=od);     translate([-id/2*0.7,id/2*0.4,s*0.5]) sphere(r=2);     translate([-id/2*0.3,id/2*0.6,s*0.5]) sphere(r=2);     translate([id/2*0.4,id/2*0.5,s*0.5]) sphere(r=2);     translate([id/2*0.5,id/2*0.2,s*0.5]) sphere(r=2);     translate([id/2*0.2,-id/2*0.3,s*0.5]) sphere(r=2);     translate([-id/2*0.6,id/2*-0.3,s*0.5]) sphere(r=2); } ------------------------------------------- How can I manage to get a valid array of coordinates which are all within a defined circle with a diameter of n? Many thanks in advance Karl P.S. the goal is to print a kind of lid for different sizes of glasses... to use them as vase for small flowers.
DP
Dan Perry
Tue, Jul 16, 2024 8:42 AM

This line of code replaces your six lines to make the spheres:

for (angle = [0:60:300]) { rotate([0, 0, angle]) translate([-id/20.7,0,
0.5
s]) sphere(2);}

[image: image.png]

On Tue, Jul 16, 2024 at 9:18 AM Karl Exler via Discuss <

Dear all

...... this is the way a non programmer works.. but it is painful. :-(

\$fn=100;
id=55; //Innendurchmesser
od=64; //Außendurchmesser
h=10;  //Höhe über Alles
s=2;  //Stärke

translate([0,0,h/2+s/2])
tube(h=h-s, or=id/2, wall=s);
difference()

{
cylinder(s,d=od);
translate([-id/20.7,id/20.4,s0.5]) sphere(r=2);
translate([-id/2
0.3,id/20.6,s0.5]) sphere(r=2);
translate([id/20.4,id/20.5,s0.5]) sphere(r=2);
translate([id/2
0.5,id/20.2,s0.5]) sphere(r=2);
translate([id/20.2,-id/20.3,s0.5]) sphere(r=2);
translate([-id/2
0.6,id/2*-0.3,s*0.5]) sphere(r=2);
}

How can I manage to get a valid array of coordinates which are all
within a defined circle with a diameter of n?

Karl

P.S.
the goal is to print a kind of lid for different sizes of glasses... to
use them as vase for small flowers.

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

This line of code replaces your six lines to make the spheres: for (angle = [0:60:300]) { rotate([0, 0, angle]) translate([-id/2*0.7,0, 0.5*s]) sphere(2);} [image: image.png] On Tue, Jul 16, 2024 at 9:18 AM Karl Exler via Discuss < discuss@lists.openscad.org> wrote: > Dear all > > ...... this is the way a non programmer works.. but it is painful. :-( > > > ---------------------------------------------------------------------------- > > include <bosl2/std.scad> > > > \$fn=100; > id=55; //Innendurchmesser > od=64; //Außendurchmesser > h=10; //Höhe über Alles > s=2; //Stärke > > translate([0,0,h/2+s/2]) > tube(h=h-s, or=id/2, wall=s); > difference() > > { > cylinder(s,d=od); > translate([-id/2*0.7,id/2*0.4,s*0.5]) sphere(r=2); > translate([-id/2*0.3,id/2*0.6,s*0.5]) sphere(r=2); > translate([id/2*0.4,id/2*0.5,s*0.5]) sphere(r=2); > translate([id/2*0.5,id/2*0.2,s*0.5]) sphere(r=2); > translate([id/2*0.2,-id/2*0.3,s*0.5]) sphere(r=2); > translate([-id/2*0.6,id/2*-0.3,s*0.5]) sphere(r=2); > } > > ------------------------------------------- > > How can I manage to get a valid array of coordinates which are all > within a defined circle with a diameter of n? > > Many thanks in advance > Karl > > > P.S. > the goal is to print a kind of lid for different sizes of glasses... to > use them as vase for small flowers. > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >
PK
Peter Kriens
Tue, Jul 16, 2024 9:03 AM

I see you use BOSL2. Library is quite amazing. Spent the last 4 days trying to get my head around it and I feel I am barely touching the surface.

However, if you are you looking for a grid:

``````grid_copies(10, inside=circle(100)) cyl(d=5,h=1);
``````

Or just along the edge?

``````arc_copies(d=100,n=40) circle(3);
``````

if you just want the vectors:

path=arc(n=4,d=100,angle=360);
echo(path);

ECHO: [[50, 0], [-25, 43.3013], [-25, -43.3013], [50, 0]]

On 16 Jul 2024, at 10:18, Karl Exler via Discuss discuss@lists.openscad.org wrote:

Dear all

...... this is the way a non programmer works.. but it is painful. :-(

\$fn=100;
id=55; //Innendurchmesser
od=64; //Außendurchmesser
h=10;  //Höhe über Alles
s=2;  //Stärke

translate([0,0,h/2+s/2])
tube(h=h-s, or=id/2, wall=s);
difference()

{
cylinder(s,d=od);
translate([-id/20.7,id/20.4,s0.5]) sphere(r=2);
translate([-id/2
0.3,id/20.6,s0.5]) sphere(r=2);
translate([id/20.4,id/20.5,s0.5]) sphere(r=2);
translate([id/2
0.5,id/20.2,s0.5]) sphere(r=2);
translate([id/20.2,-id/20.3,s0.5]) sphere(r=2);
translate([-id/2
0.6,id/2*-0.3,s*0.5]) sphere(r=2);
}

How can I manage to get a valid array of coordinates which are all within a defined circle with a diameter of n?

Karl

P.S.
the goal is to print a kind of lid for different sizes of glasses... to use them as vase for small flowers.

<PXL_20240715_100200132.MP.jpg>_______________________________________________
To unsubscribe send an email to discuss-leave@lists.openscad.org

I see you use BOSL2. Library is quite amazing. Spent the last 4 days trying to get my head around it and I feel I am barely touching the surface. However, if you are you looking for a grid: grid_copies(10, inside=circle(100)) cyl(d=5,h=1); ￼ Or just along the edge? arc_copies(d=100,n=40) circle(3); ￼ if you just want the vectors: path=arc(n=4,d=100,angle=360); echo(path); > ECHO: [[50, 0], [-25, 43.3013], [-25, -43.3013], [50, 0]] > On 16 Jul 2024, at 10:18, Karl Exler via Discuss <discuss@lists.openscad.org> wrote: > > Dear all > > ...... this is the way a non programmer works.. but it is painful. :-( > > ---------------------------------------------------------------------------- > > include <bosl2/std.scad> > > > \$fn=100; > id=55; //Innendurchmesser > od=64; //Außendurchmesser > h=10; //Höhe über Alles > s=2; //Stärke > > translate([0,0,h/2+s/2]) > tube(h=h-s, or=id/2, wall=s); > difference() > > { > cylinder(s,d=od); > translate([-id/2*0.7,id/2*0.4,s*0.5]) sphere(r=2); > translate([-id/2*0.3,id/2*0.6,s*0.5]) sphere(r=2); > translate([id/2*0.4,id/2*0.5,s*0.5]) sphere(r=2); > translate([id/2*0.5,id/2*0.2,s*0.5]) sphere(r=2); > translate([id/2*0.2,-id/2*0.3,s*0.5]) sphere(r=2); > translate([-id/2*0.6,id/2*-0.3,s*0.5]) sphere(r=2); > } > > ------------------------------------------- > > How can I manage to get a valid array of coordinates which are all within a defined circle with a diameter of n? > > Many thanks in advance > Karl > > > P.S. > the goal is to print a kind of lid for different sizes of glasses... to use them as vase for small flowers. > > <PXL_20240715_100200132.MP.jpg>_______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org
AM
Tue, Jul 16, 2024 1:10 PM

Do you want a set of random points?  I wonder also if you should be using
cylinder instead of sphere to make the holes.

On Tue, Jul 16, 2024 at 08:39 Peter Kriens via Discuss <

I see you use BOSL2. Library is quite amazing. Spent the last 4 days
trying to get my head around it and I feel I am barely touching the surface.

However, if you are you looking for a grid:

grid_copies(10, inside=circle(100)) cyl(d=5,h=1);

[image: PastedGraphic-1.png]

Or just along the edge?

arc_copies(d=100,n=40) circle(3);

[image: PastedGraphic-2.png]

if you just want the vectors:

path=arc(n=4,d=100,angle=360);
echo(path);

ECHO: [[50, 0], [-25, 43.3013], [-25, -43.3013], [50, 0]]

On 16 Jul 2024, at 10:18, Karl Exler via Discuss <

Dear all

...... this is the way a non programmer works.. but it is painful. :-(

\$fn=100;
id=55; //Innendurchmesser
od=64; //Außendurchmesser
h=10;  //Höhe über Alles
s=2;  //Stärke

translate([0,0,h/2+s/2])
tube(h=h-s, or=id/2, wall=s);
difference()

{
cylinder(s,d=od);
translate([-id/20.7,id/20.4,s0.5]) sphere(r=2);
translate([-id/2
0.3,id/20.6,s0.5]) sphere(r=2);
translate([id/20.4,id/20.5,s0.5]) sphere(r=2);
translate([id/2
0.5,id/20.2,s0.5]) sphere(r=2);
translate([id/20.2,-id/20.3,s0.5]) sphere(r=2);
translate([-id/2
0.6,id/2*-0.3,s*0.5]) sphere(r=2);
}

How can I manage to get a valid array of coordinates which are all within
a defined circle with a diameter of n?

Karl

P.S.
the goal is to print a kind of lid for different sizes of glasses... to
use them as vase for small flowers.

<PXL_20240715_100200132.MP.jpg>

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

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

Do you want a set of random points? I wonder also if you should be using cylinder instead of sphere to make the holes. On Tue, Jul 16, 2024 at 08:39 Peter Kriens via Discuss < discuss@lists.openscad.org> wrote: > I see you use BOSL2. Library is quite amazing. Spent the last 4 days > trying to get my head around it and I feel I am barely touching the surface. > > However, if you are you looking for a grid: > > grid_copies(10, inside=circle(100)) cyl(d=5,h=1); > > [image: PastedGraphic-1.png] > > Or just along the edge? > > arc_copies(d=100,n=40) circle(3); > > > [image: PastedGraphic-2.png] > > if you just want the vectors: > > path=arc(n=4,d=100,angle=360); > echo(path); > > > ECHO: [[50, 0], [-25, 43.3013], [-25, -43.3013], [50, 0]] > > > > On 16 Jul 2024, at 10:18, Karl Exler via Discuss < > discuss@lists.openscad.org> wrote: > > Dear all > > ...... this is the way a non programmer works.. but it is painful. :-( > > > ---------------------------------------------------------------------------- > > include <bosl2/std.scad> > > > \$fn=100; > id=55; //Innendurchmesser > od=64; //Außendurchmesser > h=10; //Höhe über Alles > s=2; //Stärke > > translate([0,0,h/2+s/2]) > tube(h=h-s, or=id/2, wall=s); > difference() > > { > cylinder(s,d=od); > translate([-id/2*0.7,id/2*0.4,s*0.5]) sphere(r=2); > translate([-id/2*0.3,id/2*0.6,s*0.5]) sphere(r=2); > translate([id/2*0.4,id/2*0.5,s*0.5]) sphere(r=2); > translate([id/2*0.5,id/2*0.2,s*0.5]) sphere(r=2); > translate([id/2*0.2,-id/2*0.3,s*0.5]) sphere(r=2); > translate([-id/2*0.6,id/2*-0.3,s*0.5]) sphere(r=2); > } > > ------------------------------------------- > > How can I manage to get a valid array of coordinates which are all within > a defined circle with a diameter of n? > > Many thanks in advance > Karl > > > P.S. > the goal is to print a kind of lid for different sizes of glasses... to > use them as vase for small flowers. > > <PXL_20240715_100200132.MP.jpg> > _______________________________________________ > > > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org > > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >
KE
Karl Exler
Thu, Jul 18, 2024 5:09 AM

Hi Peter,

THIS is my favorite.... but I have a problem, as in these coordinates
the z-Achse is missing. So If I want to operate next with something like

path=arc(n=6,d=100,angle=360);

... it returns an array with x and y

/BUT to continue with /

for(i=[0:nz-1])

translate([path[i],0])

echo(path[i],0);
cylinder(d=2);

I need an array with a Z-Axis, too...

I receive an failure in "translate"

So my question is: How can I use the result from the path-Variable in
the first line?

Many thanks
Karl

if you just want the vectors:

`````` echo(path);
``````

ECHO: [[50, 0], [-25, 43.3013], [-25, -43.3013], [50, 0]]

On 16 Jul 2024, at 10:18, Karl Exler via Discuss

Dear all

...... this is the way a non programmer works.. but it is painful. :-(

\$fn=100;
id=55; //Innendurchmesser
od=64; //Außendurchmesser
h=10;  //Höhe über Alles
s=2;   //Stärke

translate([0,0,h/2+s/2])
tube(h=h-s, or=id/2, wall=s);
difference()

{
cylinder(s,d=od);
translate([-id/20.7,id/20.4,s0.5]) sphere(r=2);
translate([-id/2
0.3,id/20.6,s0.5]) sphere(r=2);
translate([id/20.4,id/20.5,s0.5]) sphere(r=2);
translate([id/2
0.5,id/20.2,s0.5]) sphere(r=2);
translate([id/20.2,-id/20.3,s0.5]) sphere(r=2);
translate([-id/2
0.6,id/2*-0.3,s*0.5]) sphere(r=2);
}

How can I manage to get a valid array of coordinates which are all
within a defined circle with a diameter of n?

Karl

P.S.
the goal is to print a kind of lid for different sizes of glasses...
to use them as vase for small flowers.

<PXL_20240715_100200132.MP.jpg>_______________________________________________
To unsubscribe send an email to discuss-leave@lists.openscad.org

Hi Peter, THIS is my favorite.... but I have a problem, as in these coordinates the z-Achse is missing. So If I want to operate next with something like *path=arc(n=6,d=100,angle=360);* ... it returns an array with x and y /*BUT* to continue with / for(i=[0:nz-1]) translate([path[i],0])   echo(path[i],0);   cylinder(d=2); I need an array with a Z-Axis, too... I receive an failure in "translate" So my question is: How can I use the result from the path-Variable in the first line? Many thanks Karl if you just want the vectors: > > > echo(path); > > > ECHO: [[50, 0], [-25, 43.3013], [-25, -43.3013], [50, 0]] > > > >> On 16 Jul 2024, at 10:18, Karl Exler via Discuss >> <discuss@lists.openscad.org> wrote: >> >> Dear all >> >> ...... this is the way a non programmer works.. but it is painful. :-( >> >> ---------------------------------------------------------------------------- >> >> include <bosl2/std.scad> >> >> >> \$fn=100; >> id=55; //Innendurchmesser >> od=64; //Außendurchmesser >> h=10;  //Höhe über Alles >> s=2;   //Stärke >> >> translate([0,0,h/2+s/2]) >> tube(h=h-s, or=id/2, wall=s); >> difference() >> >> { >> cylinder(s,d=od); >>     translate([-id/2*0.7,id/2*0.4,s*0.5]) sphere(r=2); >>     translate([-id/2*0.3,id/2*0.6,s*0.5]) sphere(r=2); >>     translate([id/2*0.4,id/2*0.5,s*0.5]) sphere(r=2); >>     translate([id/2*0.5,id/2*0.2,s*0.5]) sphere(r=2); >>     translate([id/2*0.2,-id/2*0.3,s*0.5]) sphere(r=2); >>     translate([-id/2*0.6,id/2*-0.3,s*0.5]) sphere(r=2); >> } >> >> ------------------------------------------- >> >> How can I manage to get a valid array of coordinates which are all >> within a defined circle with a diameter of n? >> >> Many thanks in advance >> Karl >> >> >> P.S. >> the goal is to print a kind of lid for different sizes of glasses... >> to use them as vase for small flowers. >> >> <PXL_20240715_100200132.MP.jpg>_______________________________________________ >> OpenSCAD mailing list >> To unsubscribe send an email to discuss-leave@lists.openscad.org >
RD
Revar Desmera
Thu, Jul 18, 2024 10:19 AM

In BOSL2, to convert a path from XY 2D, to XYZ 3D, use `p3d = path3d(p2d);`.

-Revar

On Jul 17, 2024, at 10:10 PM, Karl Exler via Discuss <discuss@lists.openscad.org> wrote:

﻿  Hi Peter,

THIS is my favorite.... but I have a problem, as in these coordinates the z-Achse is missing. So If I want to operate next with something like
path=arc(n=6,d=100,angle=360);

... it returns an array with x and y

BUT to continue with

for(i=[0:nz-1])

translate([path[i],0])

echo(path[i],0);
cylinder(d=2);

I need an array with a Z-Axis, too...

I receive an failure in "translate"

So my question is: How can I use the result from the path-Variable in the first line?

Many thanks
Karl

if you just want the vectors:

echo(path);

> ECHO: [[50, 0], [-25, 43.3013], [-25, -43.3013], [50, 0]]

On 16 Jul 2024, at 10:18, Karl Exler via Discuss <discuss@lists.openscad.org> wrote:

Dear all

...... this is the way a non programmer works.. but it is painful. :-(

\$fn=100;
id=55; //Innendurchmesser
od=64; //Außendurchmesser
h=10; //Höhe über Alles
s=2; //Stärke

translate([0,0,h/2+s/2])
tube(h=h-s, or=id/2, wall=s);
difference()

{
cylinder(s,d=od);
translate([-id/20.7,id/20.4,s0.5]) sphere(r=2);
translate([-id/2
0.3,id/20.6,s0.5]) sphere(r=2);
translate([id/20.4,id/20.5,s0.5]) sphere(r=2);
translate([id/2
0.5,id/20.2,s0.5]) sphere(r=2);
translate([id/20.2,-id/20.3,s0.5]) sphere(r=2);
translate([-id/2
0.6,id/2*-0.3,s*0.5]) sphere(r=2);
}

How can I manage to get a valid array of coordinates which are all within a defined circle with a diameter of n?

Karl

P.S.
the goal is to print a kind of lid for different sizes of glasses... to use them as vase for small flowers.

<PXL_20240715_100200132.MP.jpg>_______________________________________________
To unsubscribe send an email to discuss-leave@lists.openscad.org

_______________________________________________
To unsubscribe send an email to discuss-leave@lists.openscad.org

KE
Karl Exler
Thu, Jul 18, 2024 3:04 PM

Thanks you all for your help, but I can't  find a solution.. I always

\$fn=100;
id=55; //Innendurchmesser
od=64; //Außendurchmesser
h=10;  //Höhe über Alles
s=2;   //Stärke
nz=6;  //Anzahl kleine Löcher

path=arc(6,55,360);
newpath = path3d(path);

for(i=[0:4])

echo (i)
echo(newpath[i]);
translate([newpath[i]]) cylinder(h=2,d=2);

yours Karl

Am 18.07.24 um 12:19 schrieb Revar Desmera:

In BOSL2, to convert a path from XY 2D, to XYZ 3D, use `p3d = path3d(p2d);`.

-Revar

On Jul 17, 2024, at 10:10 PM, Karl Exler via Discuss

﻿ Hi Peter,

THIS is my favorite.... but I have a problem, as in these coordinates
the z-Achse is missing. So If I want to operate next with something like

path=arc(n=6,d=100,angle=360);

... it returns an array with x and y

/BUT to continue with /

for(i=[0:nz-1])

translate([path[i],0])

echo(path[i],0);
cylinder(d=2);

I need an array with a Z-Axis, too...

I receive an failure in "translate"

So my question is: How can I use the result from the path-Variable in
the first line?

Many thanks
Karl

if you just want the vectors:

`````` echo(path);
``````

ECHO: [[50, 0], [-25, 43.3013], [-25, -43.3013], [50, 0]]

On 16 Jul 2024, at 10:18, Karl Exler via Discuss

Dear all

...... this is the way a non programmer works.. but it is painful. :-(

\$fn=100;
id=55; //Innendurchmesser
od=64; //Außendurchmesser
h=10;  //Höhe über Alles
s=2;   //Stärke

translate([0,0,h/2+s/2])
tube(h=h-s, or=id/2, wall=s);
difference()

{
cylinder(s,d=od);
translate([-id/20.7,id/20.4,s0.5]) sphere(r=2);
translate([-id/2
0.3,id/20.6,s0.5]) sphere(r=2);
translate([id/20.4,id/20.5,s0.5]) sphere(r=2);
translate([id/2
0.5,id/20.2,s0.5]) sphere(r=2);
translate([id/20.2,-id/20.3,s0.5]) sphere(r=2);
translate([-id/2
0.6,id/2*-0.3,s*0.5]) sphere(r=2);
}

How can I manage to get a valid array of coordinates which are all
within a defined circle with a diameter of n?

Karl

P.S.
the goal is to print a kind of lid for different sizes of
glasses... to use them as vase for small flowers.

<PXL_20240715_100200132.MP.jpg>_______________________________________________
To unsubscribe send an email to discuss-leave@lists.openscad.org

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

JB
Jon Bondy
Thu, Jul 18, 2024 3:50 PM

Maybe missing curly brackets after the for() statement?

On 7/18/2024 11:04 AM, Karl Exler via Discuss wrote:

Thanks you all for your help, but I can't  find a solution.. I always

\$fn=100;
id=55; //Innendurchmesser
od=64; //Außendurchmesser
h=10;  //Höhe über Alles
s=2;   //Stärke
nz=6;  //Anzahl kleine Löcher

path=arc(6,55,360);
newpath = path3d(path);

for(i=[0:4])

echo (i)
echo(newpath[i]);
translate([newpath[i]]) cylinder(h=2,d=2);

yours Karl

Am 18.07.24 um 12:19 schrieb Revar Desmera:

In BOSL2, to convert a path from XY 2D, to XYZ 3D, use `p3d = path3d(p2d);`.

-Revar

On Jul 17, 2024, at 10:10 PM, Karl Exler via Discuss

﻿ Hi Peter,

THIS is my favorite.... but I have a problem, as in these
coordinates the z-Achse is missing. So If I want to operate next
with something like

path=arc(n=6,d=100,angle=360);

... it returns an array with x and y

/BUT to continue with /

for(i=[0:nz-1])

translate([path[i],0])

echo(path[i],0);
cylinder(d=2);

I need an array with a Z-Axis, too...

I receive an failure in "translate"

So my question is: How can I use the result from the path-Variable
in the first line?

Many thanks
Karl

if you just want the vectors:

`````` echo(path);
``````

ECHO: [[50, 0], [-25, 43.3013], [-25, -43.3013], [50, 0]]

On 16 Jul 2024, at 10:18, Karl Exler via Discuss

Dear all

...... this is the way a non programmer works.. but it is painful. :-(

\$fn=100;
id=55; //Innendurchmesser
od=64; //Außendurchmesser
h=10;  //Höhe über Alles
s=2;   //Stärke

translate([0,0,h/2+s/2])
tube(h=h-s, or=id/2, wall=s);
difference()

{
cylinder(s,d=od);
translate([-id/20.7,id/20.4,s0.5]) sphere(r=2);
translate([-id/2
0.3,id/20.6,s0.5]) sphere(r=2);
translate([id/20.4,id/20.5,s0.5]) sphere(r=2);
translate([id/2
0.5,id/20.2,s0.5]) sphere(r=2);
translate([id/20.2,-id/20.3,s0.5]) sphere(r=2);
translate([-id/2
0.6,id/2*-0.3,s*0.5]) sphere(r=2);
}

How can I manage to get a valid array of coordinates which are all
within a defined circle with a diameter of n?

Karl

P.S.
the goal is to print a kind of lid for different sizes of
glasses... to use them as vase for small flowers.

<PXL_20240715_100200132.MP.jpg>_______________________________________________
To unsubscribe send an email to discuss-leave@lists.openscad.org

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

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

--
This email has been checked for viruses by AVG antivirus software.
www.avg.com

KE
Karl Exler
Thu, Jul 18, 2024 4:02 PM

I managed at least using a funny function from BOSL2 ;-) ---> but I am
not convinced from the  randomize results.
Thanks to all for your help
Karl

\$fn=100;
id=55; //Innendurchmesser
od=64; //Außendurchmesser
h=10;  //Höhe über Alles
s=2;   //Stärke
kl=10;  //Anzahl kleine Löcher
ml=5;   //Anzahl mittelgroße Löcher
gl=3;   //Anzahl große Löcher

kpoints = spherical_random_points(kl,id/20.8);*
kp=path2d(kpoints);

mpoints = spherical_random_points(ml,id/2*0.8);
mp=path2d(mpoints);

gpoints = spherical_random_points(gl,id/2*0.8);
gp=path2d(gpoints);

difference()

{
translate([0,0,2])
union()
{
translate([0,0,h/2+s/2])
tube(h=h-s, or=id/2, wall=s);
cylinder(s,d=od);
}

for(i=[0:kl-1])
translate(kp[i]) cylinder(h=6,d=2);

for(i=[0:ml-1])
translate(mp[i]) cylinder(h=6,d=3.5);

for(i=[0:gl-1])
translate(gp[i]) cylinder(h=6,d=5);
}

I managed at least using a funny function from BOSL2 ;-) ---> but I am not convinced from the  randomize results. Thanks to all for your help Karl include <bosl2/std.scad> \$fn=100; id=55; //Innendurchmesser od=64; //Außendurchmesser h=10;  //Höhe über Alles s=2;   //Stärke kl=10;  //Anzahl kleine Löcher ml=5;   //Anzahl mittelgroße Löcher gl=3;   //Anzahl große Löcher kpoints = *spherical_random_points(kl,id/2*0.8);* kp=*path2d(kpoints);* mpoints = spherical_random_points(ml,id/2*0.8); mp=path2d(mpoints); gpoints = spherical_random_points(gl,id/2*0.8); gp=path2d(gpoints); difference() { translate([0,0,2]) union()     {     translate([0,0,h/2+s/2])     tube(h=h-s, or=id/2, wall=s);     cylinder(s,d=od);     } for(i=[0:kl-1])    translate(kp[i]) cylinder(h=6,d=2); for(i=[0:ml-1])    translate(mp[i]) cylinder(h=6,d=3.5); for(i=[0:gl-1])    translate(gp[i]) cylinder(h=6,d=5); }
SP
Sanjeev Prabhakar
Thu, Jul 18, 2024 4:02 PM

but there are some syntax error which I can see and corrected below

path=arc(6,55,360);
newpath = path3d(path);

for(i=[0:4])
{
echo (i);
echo(newpath[i]);
translate([newpath[i]]) cylinder(h=2,d=2);
}

On Thu, 18 Jul 2024 at 20:35, Karl Exler via Discuss <

Thanks you all for your help, but I can't  find a solution.. I always

\$fn=100;
id=55; //Innendurchmesser
od=64; //Außendurchmesser
h=10;  //Höhe über Alles
s=2;  //Stärke
nz=6;  //Anzahl kleine Löcher

path=arc(6,55,360);
newpath = path3d(path);

for(i=[0:4])

echo (i)
echo(newpath[i]);
translate([newpath[i]]) cylinder(h=2,d=2);

yours Karl
Am 18.07.24 um 12:19 schrieb Revar Desmera:

In BOSL2, to convert a path from XY 2D, to XYZ 3D, use `p3d = path3d(p2d);`.

-Revar

On Jul 17, 2024, at 10:10 PM, Karl Exler via Discuss

﻿ Hi Peter,

THIS is my favorite.... but I have a problem, as in these coordinates the
z-Achse is missing. So If I want to operate next with something like

path=arc(n=6,d=100,angle=360);

... it returns an array with x and y

*BUT to continue with *

for(i=[0:nz-1])

translate([path[i],0])

echo(path[i],0);
cylinder(d=2);

I need an array with a Z-Axis, too...

I receive an failure in "translate"

So my question is: How can I use the result from the path-Variable in the
first line?

Many thanks
Karl

if you just want the vectors:

echo(path);

ECHO: [[50, 0], [-25, 43.3013], [-25, -43.3013], [50, 0]]

On 16 Jul 2024, at 10:18, Karl Exler via Discuss

Dear all

...... this is the way a non programmer works.. but it is painful. :-(

\$fn=100;
id=55; //Innendurchmesser
od=64; //Außendurchmesser
h=10;  //Höhe über Alles
s=2;  //Stärke

translate([0,0,h/2+s/2])
tube(h=h-s, or=id/2, wall=s);
difference()

{
cylinder(s,d=od);
translate([-id/20.7,id/20.4,s0.5]) sphere(r=2);
translate([-id/2
0.3,id/20.6,s0.5]) sphere(r=2);
translate([id/20.4,id/20.5,s0.5]) sphere(r=2);
translate([id/2
0.5,id/20.2,s0.5]) sphere(r=2);
translate([id/20.2,-id/20.3,s0.5]) sphere(r=2);
translate([-id/2
0.6,id/2*-0.3,s*0.5]) sphere(r=2);
}

How can I manage to get a valid array of coordinates which are all within
a defined circle with a diameter of n?

Karl

P.S.
the goal is to print a kind of lid for different sizes of glasses... to
use them as vase for small flowers.

<PXL_20240715_100200132.MP.jpg>