Hello everybody!
I intend to 3d-print a wheel cover (Radlaufblende) for my old-timer
caravan for which I don't get spare parts any more. I can model the
shape with points in 3d space. The code looks like that:
// Radlaufblenden für Esterel T39 (Top Volume)
RLB_POINTS = [
[0,-234,0], // 0
[0,-212,0], // 1
[51,-52,0], // 2
[135,0,0], // 3
[277,0,0], // 4
[7,-234,0], // 5
[60,-63,0], // 6
[138,-16,0], // 7
[277,-16,0], // 8
[26,-234,50], // 9
[75,-80,50], // 10
[140,-40,50], // 11
[277,-40,50], // 12
[54,-234,50], // 13
[117,-110,50], // 14
[154,-90,50], // 15
[277,-90,50], // 16
[64,-234,45], // 17
[128,-114,45], // 18
[156,-100,45], // 19
[277,-98,45], // 20
];
RLB_FACES = [
[0,1,2,6,5], // flach
[2,3,7,6], // flach
[3,4,8,7], // flach
[5,6,10,9], // schräg
[6,7,11,10], // schräg
[7,8,12,11], // schräg
[9,10,14,13], // flach
[10,11,15,14], // flach
[11,12,16,15], // flach
[13,14,18,17], // schräg
[14,15,19,18], // schräg
[15,16,20,19], // schräg
];
scale([1.343,1.08,1]) {
union() {
translate([554,0,0])
mirror([1,0,0])
polyhedron(RLB_POINTS, RLB_FACES);
polyhedron(RLB_POINTS, RLB_FACES);
};
};
This generates pretty much it, but I can't get this shape a thickness.
How can I do this ? Is there another simple way to construct a part like
this in OpenScad ? What do I do wrong? Any ideas?
Cheers
Peter
To get thickness, you need to have more points. For example, the point at
[0, -234, 0] would have a corresponding point [0, -234, 1] if the part is
1mm thick.
Now you have many more points and faces to keep track of. This will be a
little easier if you take advantage of the part's X symmetry by centering
on the Y axis. And even easier if you model half the part and use the
OpenSCAD mirror() function to make the other half.
Dan
On Thu, Jul 4, 2024 at 4:09 AM Gertrude Musterfrau via Discuss <
discuss@lists.openscad.org> wrote:
Hello everybody!
I intend to 3d-print a wheel cover (Radlaufblende) for my old-timer
caravan for which I don't get spare parts any more. I can model the
shape with points in 3d space. The code looks like that:
// Radlaufblenden für Esterel T39 (Top Volume)
RLB_POINTS = [
[0,-234,0], // 0
[0,-212,0], // 1
[51,-52,0], // 2
[135,0,0], // 3
[277,0,0], // 4
[7,-234,0], // 5
[60,-63,0], // 6
[138,-16,0], // 7
[277,-16,0], // 8
[26,-234,50], // 9
[75,-80,50], // 10
[140,-40,50], // 11
[277,-40,50], // 12
[54,-234,50], // 13
[117,-110,50], // 14
[154,-90,50], // 15
[277,-90,50], // 16
[64,-234,45], // 17
[128,-114,45], // 18
[156,-100,45], // 19
[277,-98,45], // 20
];
RLB_FACES = [
[0,1,2,6,5], // flach
[2,3,7,6], // flach
[3,4,8,7], // flach
[5,6,10,9], // schräg
[6,7,11,10], // schräg
[7,8,12,11], // schräg
[9,10,14,13], // flach
[10,11,15,14], // flach
[11,12,16,15], // flach
[13,14,18,17], // schräg
[14,15,19,18], // schräg
[15,16,20,19], // schräg
];
scale([1.343,1.08,1]) {
union() {
translate([554,0,0])
mirror([1,0,0])
polyhedron(RLB_POINTS, RLB_FACES);
polyhedron(RLB_POINTS, RLB_FACES);
};
};
This generates pretty much it, but I can't get this shape a thickness.
How can I do this ? Is there another simple way to construct a part like
this in OpenScad ? What do I do wrong? Any ideas?
Cheers
Peter
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org
Sorry, I see that you are using the mirror() function... Another
suggestion, and the way I tackle this type of problem, is to use the hull()
function, one for each face of your polyhedron. If you hull() four spheres
of 1mm diameter, you will get a 1mm thick shape with rounded edges. hull()
four 1mm cubes and you get a shape with square edges. hull of four
cylinders will make a shape with flat surfaces and rounded corners,
depending on cylinder orientation. This technique, combined with some
trigonometry, will allow different thicknesses in different areas.
Regards,
Dan
On Thu, Jul 4, 2024 at 8:58 AM Dan Perry dan.p3rry@gmail.com wrote:
To get thickness, you need to have more points. For example, the point at
[0, -234, 0] would have a corresponding point [0, -234, 1] if the part is
1mm thick.
Now you have many more points and faces to keep track of. This will be a
little easier if you take advantage of the part's X symmetry by centering
on the Y axis. And even easier if you model half the part and use the
OpenSCAD mirror() function to make the other half.
Dan
On Thu, Jul 4, 2024 at 4:09 AM Gertrude Musterfrau via Discuss <
discuss@lists.openscad.org> wrote:
Hello everybody!
I intend to 3d-print a wheel cover (Radlaufblende) for my old-timer
caravan for which I don't get spare parts any more. I can model the
shape with points in 3d space. The code looks like that:
// Radlaufblenden für Esterel T39 (Top Volume)
RLB_POINTS = [
[0,-234,0], // 0
[0,-212,0], // 1
[51,-52,0], // 2
[135,0,0], // 3
[277,0,0], // 4
[7,-234,0], // 5
[60,-63,0], // 6
[138,-16,0], // 7
[277,-16,0], // 8
[26,-234,50], // 9
[75,-80,50], // 10
[140,-40,50], // 11
[277,-40,50], // 12
[54,-234,50], // 13
[117,-110,50], // 14
[154,-90,50], // 15
[277,-90,50], // 16
[64,-234,45], // 17
[128,-114,45], // 18
[156,-100,45], // 19
[277,-98,45], // 20
];
RLB_FACES = [
[0,1,2,6,5], // flach
[2,3,7,6], // flach
[3,4,8,7], // flach
[5,6,10,9], // schräg
[6,7,11,10], // schräg
[7,8,12,11], // schräg
[9,10,14,13], // flach
[10,11,15,14], // flach
[11,12,16,15], // flach
[13,14,18,17], // schräg
[14,15,19,18], // schräg
[15,16,20,19], // schräg
];
scale([1.343,1.08,1]) {
union() {
translate([554,0,0])
mirror([1,0,0])
polyhedron(RLB_POINTS, RLB_FACES);
polyhedron(RLB_POINTS, RLB_FACES);
};
};
This generates pretty much it, but I can't get this shape a thickness.
How can I do this ? Is there another simple way to construct a part like
this in OpenScad ? What do I do wrong? Any ideas?
Cheers
Peter
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org
I'm guessing you would need to print it in two or three sections, and
solvent weld or glue together. Anyway, my first thoughts, for that
shape, I would generate a cross section, and linear extrude. Using #, it
would be relatively simple to line up the parts with your existing
image. The tapered ends would need a bit more fiddling to get the taper,
but you'd only need to do one.
On 03/07/2024 15:08, Gertrude Musterfrau via Discuss wrote:
Hello everybody!
I intend to 3d-print a wheel cover (Radlaufblende) for my old-timer
caravan for which I don't get spare parts any more. I can model the
shape with points in 3d space. The code looks like that:
// Radlaufblenden für Esterel T39 (Top Volume)
RLB_POINTS = [
[0,-234,0], // 0
[0,-212,0], // 1
[51,-52,0], // 2
[135,0,0], // 3
[277,0,0], // 4
[7,-234,0], // 5
[60,-63,0], // 6
[138,-16,0], // 7
[277,-16,0], // 8
[26,-234,50], // 9
[75,-80,50], // 10
[140,-40,50], // 11
[277,-40,50], // 12
[54,-234,50], // 13
[117,-110,50], // 14
[154,-90,50], // 15
[277,-90,50], // 16
[64,-234,45], // 17
[128,-114,45], // 18
[156,-100,45], // 19
[277,-98,45], // 20
];
RLB_FACES = [
[0,1,2,6,5], // flach
[2,3,7,6], // flach
[3,4,8,7], // flach
[5,6,10,9], // schräg
[6,7,11,10], // schräg
[7,8,12,11], // schräg
[9,10,14,13], // flach
[10,11,15,14], // flach
[11,12,16,15], // flach
[13,14,18,17], // schräg
[14,15,19,18], // schräg
[15,16,20,19], // schräg
];
scale([1.343,1.08,1]) {
union() {
translate([554,0,0])
mirror([1,0,0])
polyhedron(RLB_POINTS, RLB_FACES);
polyhedron(RLB_POINTS, RLB_FACES);
};
};
This generates pretty much it, but I can't get this shape a thickness.
How can I do this ? Is there another simple way to construct a part like
this in OpenScad ? What do I do wrong? Any ideas?
Cheers
Peter
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org
This is how I stitched together two polygons, one defined as a top and
the other as a base. You can ignore the details of the points lists and
focus on my use of BOSL2 and function(). I hope it helps.
include <BOSL2/std.scad>
include <BOSL2/rounding.scad>
$fn = 120;
function TopShape() =
[
[0, 0], // 1
[9.4, 0], // 2
[9.4 + 4.1 , -9.4], // 3
[9.4 + 4.1 + 21.3 , -9.4], // 4
[9.4 + 4.1 + 21.3 + 4.1 , 0], // 5
[9.4 + 4.1 + 21.3 + 4.1 + 9.4, 0], // 6
[9.4 + 4.1 + 21.3 + 4.1 + 9.4, 33.1], // 7
[9.4 + 4.1 + 21.3 + 4.1 , 33.1], // 8
[9.4 + 4.1 + 21.3 , 33.1 + 9.4], // 9
[9.4 + 4.1 , 33.1 + 9.4], // 10
[9.4 , 33.1], // 11
[0 , 33.1] // 12
];
function BotShape() =
[
[2.3 + 0 , 2.3 + 0], // 1
[2.3 + 9.4 , 2.3 + 0], // 2
[2.3 + 9.4 + 4.1 , 2.3 + -9.4], // 3
[2.3 + 9.4 + 4.1 + 21.3 , 2.3 + -9.4], // 4
[2.3 + 9.4 + 4.1 + 21.3 + 4.1 , 2.3 + 0], // 5
[2.3 + 9.4 + 4.1 + 21.3 + 4.1 + 9.4, 2.3 + 0], // 6
[2.3 + 9.4 + 4.1 + 21.3 + 4.1 + 9.4, 2.3 + 28.5], // 7
[2.3 + 9.4 + 4.1 + 21.3 + 4.1 , 2.3 + 28.5], // 8
[2.3 + 9.4 + 4.1 + 21.3 , 2.3 + 28.5 + 9.4], // 9
[2.3 + 9.4 + 4.1 , 2.3 + 28.5 + 9.4], // 10
[2.3 + 9.4 , 2.3 + 28.5], // 11
[2.3 + 0 , 2.3 + 28.5] // 12
];
module Shape()
skin(
[
round_corners(BotShape(), radius = 2),
round_corners(TopShape(), radius = 2)
], z = [0, 36.3], slices=2);
Shape();
On 7/4/2024 3:58 AM, Dan Perry via Discuss wrote:
To get thickness, you need to have more points. For example, the point
at [0, -234, 0] would have a corresponding point [0, -234, 1] if the
part is 1mm thick.
Now you have many more points and faces to keep track of. This will
be a little easier if you take advantage of the part's X symmetry by
centering on the Y axis. And even easier if you model half the part
and use the OpenSCAD mirror() function to make the other half.
Dan
On Thu, Jul 4, 2024 at 4:09 AM Gertrude Musterfrau via Discuss
discuss@lists.openscad.org wrote:
Hello everybody!
I intend to 3d-print a wheel cover (Radlaufblende) for my old-timer
caravan for which I don't get spare parts any more. I can model the
shape with points in 3d space. The code looks like that:
// Radlaufblenden für Esterel T39 (Top Volume)
RLB_POINTS = [
[0,-234,0], // 0
[0,-212,0], // 1
[51,-52,0], // 2
[135,0,0], // 3
[277,0,0], // 4
[7,-234,0], // 5
[60,-63,0], // 6
[138,-16,0], // 7
[277,-16,0], // 8
[26,-234,50], // 9
[75,-80,50], // 10
[140,-40,50], // 11
[277,-40,50], // 12
[54,-234,50], // 13
[117,-110,50], // 14
[154,-90,50], // 15
[277,-90,50], // 16
[64,-234,45], // 17
[128,-114,45], // 18
[156,-100,45], // 19
[277,-98,45], // 20
];
RLB_FACES = [
[0,1,2,6,5], // flach
[2,3,7,6], // flach
[3,4,8,7], // flach
[5,6,10,9], // schräg
[6,7,11,10], // schräg
[7,8,12,11], // schräg
[9,10,14,13], // flach
[10,11,15,14], // flach
[11,12,16,15], // flach
[13,14,18,17], // schräg
[14,15,19,18], // schräg
[15,16,20,19], // schräg
];
scale([1.343,1.08,1]) {
union() {
translate([554,0,0])
mirror([1,0,0])
polyhedron(RLB_POINTS, RLB_FACES);
polyhedron(RLB_POINTS, RLB_FACES);
};
};
This generates pretty much it, but I can't get this shape a thickness.
How can I do this ? Is there another simple way to construct a
part like
this in OpenScad ? What do I do wrong? Any ideas?
Cheers
Peter
_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org
OpenSCAD mailing list
To unsubscribe send an email todiscuss-leave@lists.openscad.org
--
This email has been checked for viruses by AVG antivirus software.
www.avg.com
Hey guys,
thanks for your answers! I understand that there is no simple way to
solve this problem. Thus, I will have to do some geometry... :))
Cheers
Peter
Am 03.07.24 um 16:08 schrieb Gertrude Musterfrau via Discuss:
Hello everybody!
I intend to 3d-print a wheel cover (Radlaufblende) for my old-timer
caravan for which I don't get spare parts any more. I can model the
shape with points in 3d space. The code looks like that:
// Radlaufblenden für Esterel T39 (Top Volume)
RLB_POINTS = [
[0,-234,0], // 0
[0,-212,0], // 1
[51,-52,0], // 2
[135,0,0], // 3
[277,0,0], // 4
[7,-234,0], // 5
[60,-63,0], // 6
[138,-16,0], // 7
[277,-16,0], // 8
[26,-234,50], // 9
[75,-80,50], // 10
[140,-40,50], // 11
[277,-40,50], // 12
[54,-234,50], // 13
[117,-110,50], // 14
[154,-90,50], // 15
[277,-90,50], // 16
[64,-234,45], // 17
[128,-114,45], // 18
[156,-100,45], // 19
[277,-98,45], // 20
];
RLB_FACES = [
[0,1,2,6,5], // flach
[2,3,7,6], // flach
[3,4,8,7], // flach
[5,6,10,9], // schräg
[6,7,11,10], // schräg
[7,8,12,11], // schräg
[9,10,14,13], // flach
[10,11,15,14], // flach
[11,12,16,15], // flach
[13,14,18,17], // schräg
[14,15,19,18], // schräg
[15,16,20,19], // schräg
];
scale([1.343,1.08,1]) {
union() {
translate([554,0,0])
mirror([1,0,0])
polyhedron(RLB_POINTS, RLB_FACES);
polyhedron(RLB_POINTS, RLB_FACES);
};
};
This generates pretty much it, but I can't get this shape a thickness.
How can I do this ? Is there another simple way to construct a part like
this in OpenScad ? What do I do wrong? Any ideas?
Cheers
Peter
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org
Dear pseudonymous,
TL;DR: Have a look at the attachments.
I just had a brain wave: Your first attempt provided a list of coordinates and a list of surfaces/areas.
The issue is, that OpenSCAD has a strong destinction between 2D (anything in the x-y-plane, can be extruded) and 3D (any closed volume) and does not allow you to mix those two. You exploited polyhedron() to describe a 2D object and put it into 3D space.
You would like to have volumes, described by corner coordinates, thickness is negotiable.
What about using the list of coordinates and the list of surfaces -- plus adding hull() ? That will provide a 3D volume that reassembles thin sheets of material.
Have fun with the attachment,
Cheers,
Marcus
Marcus, you are a genius!
Thankx a lot, this solves my problem. :-))
Peter
using a cube instead of the sphere, gives a more 'angular' appearance,
which my match the existing better, and possibly better to fdm print.
On 10/07/2024 15:23, Marcus Poller via Discuss wrote:
Dear pseudonymous,
TL;DR: Have a look at the attachments.
I just had a brain wave: Your first attempt provided a list of coordinates and a list of surfaces/areas.
The issue is, that OpenSCAD has a strong destinction between 2D (anything in the x-y-plane, can be extruded) and 3D (any closed volume) and does not allow you to mix those two. You exploited polyhedron() to describe a 2D object and put it into 3D space.
You would like to have volumes, described by corner coordinates, thickness is negotiable.
What about using the list of coordinates and the list of surfaces -- plus adding hull() ? That will provide a 3D volume that reassembles thin sheets of material.
Have fun with the attachment,
Cheers,
Marcus
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org