Forum: Mechanik, Gehäuse, Werkzeug Frage zu einem OpenSCAD Model


von Martin M. (ats3788)


Lesenswert?

Hallo ich habe mich heute
beim Englischen OpenSCAD Forum angemeldet leider kann man da nicht 
einfach eine Frage stellen deswegen versuche ich es hier.
Wie bekomme ich in den blöden Deckel ein Loch hinein ich habe
nach difference()  probiert, das einzige was verschwindet ist der Rand 
des Deckels. Vielleicht kennt sich da jemand besser aus.

Ich selber beschäftige mich mit OpenSCAD erst seit 4 Tagen und es 
gefällt mir sehr gut.
1
$fn=50;
2
3
r = 40; 
4
thickness = 5; 
5
hole_size = 6; 
6
ScrewPos1 = -16;
7
8
length = 120;
9
width= 50;
10
height = 35;
11
cornerRadius = 10;
12
13
font = "Liberation Sans";
14
15
cube_size = width;
16
letter_size = 10;
17
letter_height = 5;
18
19
o = cube_size / 2 - letter_height / 2;
20
21
22
translate([0, 10, 0]){
23
         roundedBox(length, width, 1, cornerRadius);
24
           difference() {
25
              translate([1,1,0]) {
26
                roundedBox(length-2,width-2,4,cornerRadius);
27
              }
28
            translate([2,2,0]) {
29
           roundedBox(length-4,width-4,4,cornerRadius);
30
          
31
           }     
32
       
33
               ScrewHoles_3(-16,  +40 ,  -15.7);
34
                ScrewHoles_3(-16,  +80, -15.7);   
35
             }
36
          
37
       }
38
39
40
module letter(l) {
41
  // Use linear_extrude() to make the letters 3D objects as they
42
  // are only 2D shapes when only using text()
43
  linear_extrude(height = letter_height) {
44
    text(l, size = letter_size, font = font, halign = "center", valign = "center", $fn = 16);
45
  }
46
}
47
//translate([width*2, 10, 20]){
48
49
50
51
module ScrewHoles_3(x, y, z)
52
{
53
translate([x,y,z]){
54
union(){
55
 cylinder(h = 60, r = 1.5);
56
 translate([0,0,14])   
57
 cylinder(h = 2, r1 = 1.5, r2 =2.5);   
58
}
59
}
60
}   
61
   
62
63
module roundedBox(length, width, height, radius)
64
{
65
    dRadius = 2*radius;
66
67
    //base rounded shape
68
    minkowski() {
69
        cube(size=[width-dRadius,length-dRadius, height]);
70
        cylinder(r=radius);
71
    }
72
   
73
}

: Bearbeitet durch User
von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Ich nehme an, daß Du Deine Schraublöcher vermisst.

Um zu sehen, wo sie sind, kannst Du ein '#' vor den Aufruf der Funktion 
"Screwholes" setzen:
1
    #ScrewHoles_3(-16,  +40 ,  -15.7);
2
    #ScrewHoles_3(-16,  +80, -15.7);

... und Du siehst, daß Deine Löcher etwas, äh, unerwartet aussehen und 
vor allem weit außerhalb Deiner Box sind.

Wenn Du übrigens beim Rendern so eine gelb/grün schraffiert-flackernde 
Fläche siehst, heißt das, daß Du hier zwei Objekte ohne Überlappung 
voneinander abgezogen hast; das solltest Du vermeiden, indem Du die 
subtrahierten objekte einen Hauch größer machst.

von A-Freak (Gast)


Lesenswert?

Nur mal so pauschal gesagt, alles was ein zusammenhängendes teil sein 
soll zuerst mit Union() zusammenfassen und dann mit Difference() die 
Löcher machen.

<code>
Difference(){
Union(){
Deckelteil1;
Deckelteil2;
Rand;
Verzierungpositiv;
}
Loch1;
Loch2;
Verzierungnegativ;
}

von A-Freak (Gast)


Lesenswert?

Ups, der Code sollte eigentlich mit Tabulatoren eingerückt sein aber die 
wurden hier von dem Forum irgendwie abgefangen und sind verloren.

von Martin M. (ats3788)


Lesenswert?

Oh Danke für die Antworten, das ist alles neu für mich,
macht aber Spaß, das mit den Unions hört sich gut an.

von Gerd (Gast)


Lesenswert?

Vielleicht solltest Du erstmal mit Blockscad anfangen. Das ist etwas 
einfacher - das kann dann auch einen Openscad Code erzeugen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.