Zusammenfassung
Dieses OpenSCAD-Skript wird eine zweiteilige, zusammenpassende Verpackung für ein Gerät von benutzerdefinierter Größe generieren. Eine beliebige Anzahl von Ausschnitten verschiedener Formen, Stützstangen, gravierten Texten und Logos kann mithilfe spezieller Array-Variablen problemlos auf jeder Seite platziert werden. Schauen Sie sich die Anweisungen unten sowie die Beispiele und Kommentare im Code an, um weitere Informationen zur Verwendung zu er
Autor: Mark Gaffney
Version: 2.6c (die Versionen d und f sind leichte Modifikationen für einen bestimmten Artikel ohne ordnungsgemäße Kontrollen, aber diese werden in v2.7 enthalten sein)
Datum: 2013-04-04
Zu erledigen:
Fügen Sie benutzerkontrollierbare Flansche und ineinandergreifende Lippenmerkmale hinzu.
Warning:
Einige Kombinationen von Werten, Formen und Positionen usw. können dazu führen, dass eine ungültige oder nicht-manifold Form erstellt wird, was Sie daran hindert, ein .stl zu exportieren.
Wenn dies geschieht, versuchen Sie, einige der Funktionen oder Werte zu entfernen oder zu ändern, bis Sie eine gültige Form erhalten, und fügen Sie sie dann schrittweise wieder hinzu, bis Sie das fehlerhafte Element finden, und ändern Sie es dann, damit es kein Problem verursacht.
Änderungen gegenüber früheren Versionen:
v2.6c
- Die Fähigkeit, die Form der Box zu wählen, wurde implementiert, d.h. "Würfel", "gerundet an allen vier Seiten", "gerundet an allen sechs Seiten", "abgeschrägt an allen sechs Seiten".
- Es wurde sichergestellt, dass das Modul "box_type" bei der Generierung von jedem box_half verwendet wird.
v2.6b - Ich habe eine Fehlausrichtung der Oberlippe untersucht und behoben.
v2.6 - Implementiert das Laden externer Objekte (wie z. B. .stl-Dateien), um sie auf Flächen zu platzieren.
- Die übersehene Übersetzung von Text auf Gesichtern aus der vorherigen Version wurde implementiert.
- fixierter box_t in make_cutouts
v2.5 (auch bekannt als cutouts_on_faces_for_loop-v0_2.scad) - Implementieren Sie die Toleranz der Verbindung zwischen zwei Hälften mithilfe von lip_fit.
- Text auf Gesichtern implementieren
- Vollständige Dokumentation
v2.4 (auch bekannt als cutouts_on_faces_for_loop-v0_4.scad) - Der Benutzer gibt die Geräteabmessungen und den
- Vorbereitungen, um unterschiedliche wall_t in x,y,z zu ermöglichen.
- Beiträge implementieren
- Mauseohren funktionieren ordnungsgemäß.
- 2 Hälften im "nebeneinander"-Layout, verbunden durch eine Union.
v2.3 2013-03-23 (AKA cutouts_on_faces_for_loop-v0_3.scad)
- Fixierte Aufrufe zu make_box und half_box Modulen.
- Hinzugefügte Fähigkeit, den "Loch"-Array zu handhaben, um Ausschnitte für die Module make_box und half_box zu erstellen.
- Hinzugefügtes Modul für ein abgerundetes Quader
- Fehler behoben bei der Verwendung von a_bit in den abgerundeten Quaderausschnitten.
- Korrektur von Übersetzungsfehlern beim Erstellen von Lippen auf einer Schachtel.
- Es wurde sichergestellt, dass alle Teile auf z=0 generiert werden.
- gab oben (grünlich) und unten (rötlich) verschiedene Farben zur leichteren Identifizierung.
- Das rotierte Top im "Seite an Seite"-Layout für eine intuitivere Ausrichtung.
- Hinzugefügtes Box-Cross-Modul und Einbeziehung in die Rumpfberechnungen, um sicherzustellen, dass die Boxgrößen auch bei einer geringen Anzahl von Seiten exakt sind.
- Das Modul box_type wurde hinzugefügt, um die Auswahl verschiedener geformter Boxen zu ermöglichen oder sie automatisch basierend auf den aktuellen Variablen auszutauschen.
- Das mouse_ears-Modul hinzugefügt.
Hinweis: Im gestapelten Modus werden Sie möglicherweise bemerken, dass die rote Hälfte so aussieht, als wäre sie die volle Länge. Dies scheint ein Visualisierungsfehler in OpenSCAD zu sein, der Teil wird korrekt generiert.
v2.2 2013-03-22 (auch bekannt als cutouts_on_faces_for_loop-v0_2.scad)
Basierend auf meiner eigenen Struktur.
- Neues Format [Gesichtsname, Formname, Formposition [x_pos, y_pos, x_offs, y_offs, rotieren, ausrichten], Formgröße [Tiefe,,,]]
-
- Gesichtsname ("N", "S", "E", "W", "T", "B")
-
- shape_name ("Quadrat", "Rechteck", "Rundes Rechteck", "Zylinder", "Ellipse", "Kegel")
-
- shape_position[x_pos,y_pos,x_offs,y_offs,rotate,align=("inside" oder "outside")]
-
-
- "Quadratische" Form_Größe[Tiefe, Länge_Breite]
-
-
-
- "Rechteck" shape_size[Tiefe, Länge, Breite]
-
-
-
- "Round_Rect" Formgröße[Tiefe, Länge, Breite, Eckenradius, Eckenseiten]
-
-
-
- "Zylinder" shape_size[Tiefe, Radius, Seiten]
-
-
-
- "Ellipse" shape_size[Tiefe, Radius-Länge, Radius-Breite, Seiten]
-
-
-
- "Kegel"-Form_Größe[[Tiefe, Radius unten, Radius oben, Seiten]
-
- Pos_x und pos_y werden so gewählt, dass sie mit Ansichten ausgerichtet sind, die von den Nord-, Ober- oder Ostseiten zum Ursprung hin genommen werden, so dass sie jeweils mit [-x,+z], [+x,+y] und [+y,+z] ausgerichtet sind.
- Die Rotation erfolgt im Uhrzeigersinn um die Ebene der Nord-, Ober- oder Ostseiten, wenn man auf den Ursprung schaut. Dies bedeutet, dass sie für die gegenüberliegenden Seiten gegen den Uhrzeigersinn sind (d.h. dieselbe Konvention wie oben).
- Diese beiden Konventionen werden gewählt, um es einfacher zu machen, Ausschnitte zu positionieren, die mit gegenüberliegenden Seiten ausgerichtet sind. Zum Beispiel eine Box, die um eine gedrehte Ellipsenröhre passt.
v2.1 2013-03-22 (AKA cutouts_on_faces_for_loop-v0_1.scad)
- Basierend auf Kitlaans Array-Struktur, die Kegel und Rechtecke unterstützt.
- Von kitlaans anpassbarer Verpackung für elektronische Geräte.http://www.thingiverse.com/thing:8607
-
- Rechteck [ x-Offset, y-Offset, x-Breite, y-Breite, Eckenradius, Eckenseiten, Tiefe, Drehung ]
-
- Zylinder [ x-Offset, y-Offset, innerer Radius, äußerer Radius, Seiten, Tiefe, Drehung ]
Anweisungen
Dies beginnt damit, dass der Benutzer einige grundlegende Werte eingibt:
- Dimensionen des zu verpackenden Objekts in XYZ (device_xyz, [x,y,z])
- Größe des Spaltes zwischen jeder Seite des Objekts und der inneren Wand der Verpackung (clearance_xyz, [x,y,z])
- Wie dick das Material der Verpackung ist (wall_t)
- Der äußere Radius der abgerundeten Ecken der Verpackung (corner_radius)
- Wie viele Seiten haben diese abgerundeten Ecken? (corner_sides, 3 bis 10 sind gut für die meisten Gegenstände, 1 wird Ihnen abgeschrägte Kanten geben)
- Wie hoch ist die Lippe, die die beiden Hälften verbindet? (lip_h, 1,5 bis 3 sind für die meisten Anwendungen gut)
- Wie hoch ist der obere Teil im Verhältnis zum unteren Teil? (top_bottom_ratio, 0,1 bis 0,9, 0,5 wird dir 2 Hälften gleicher Höhe geben)
- Hat das Teil Mausohren oder nicht? (has_mouseears, wahr oder falsch)
- Wie dick die flachen Scheiben sein sollten, die die Mausohren bilden (mouse_ear_thickness, es ist eine gute Idee, die Dicke der Druckschicht zu verdoppeln)
- Wie groß die flachen Scheiben sind, die die Mausohren bilden (mouse_ear_radius, 5 bis 15 funktioniert im Allgemeinen gut)
- Welche Teile du willst und wie sie angeordnet sind (Layout, [nebeneinander, gestapelt, oben, unten])
- Wie weit auseinander die beiden Hälften im "Seite an Seite"-Layout sind (Abstand, 2 ist gut)
- Wie viel Überschneidung (-ve) oder Lücke (+ve) gibt es zwischen den inneren und äußeren Lippenoberflächen (lip_fit, ein Wert von 0 bedeutet, dass sie sich perfekt in der Mitte treffen, dies wird von Ihrem Materialdrucker usw. abhängen, also werden Sie wahrscheinlich mit dieser Variable herumspielen müssen)
Als nächstes kann der Benutzer die Datenstrukturen modifizieren, die Löcher, Pfosten und Text auf jeder Seite der Verpackung erzeugen. Diese sind kompliziert und erfordern möglicherweise, dass Sie mit Werten herumspielen oder einige der Kommentare weiter unten im Code lesen.
- Die Ausschnitte und Vertiefungen, die auf der Verpackung verwendet werden (Löcher = [[]])
Format für jedes Loch [Gesichtsname, Formname, Formposition [x_pos, y_pos, x_offs, y_offs, rotieren, ausrichten], Formgröße [Tiefe,,,]] - Die internen Stützstrukturen, die auf der Verpackung verwendet werden (Posts=[[]])
Format für jeden Beitrag [Gesichtsname, Formname, Formposition [x_pos, y_pos, x_offs, y_offs, rotieren, ausrichten], Formgröße [Tiefe,,,]] -
Der gravierte Text, der auf der Verpackung verwendet wird (Text=[[]])
Format für jeden Textabschnitt [Gesichtsname, zu schreibender Text, Formposition [x-Position, y-Position, x-Versatz, y-Versatz, Drehung, Ausrichtung], Formgröße [Tiefe, Schriftgröße, Schriftabstand, Spiegelung]] Hinweis: Aus dummen Gründen muss Spiegelung 0 oder 1 sein, was in dieser Version falsch und wahr entspricht.Auf welcher der 6 Seiten der Verpackung möchtest du diese Funktion haben? (face_name, T,B,N,E,W,S)
"T", das Top- oder Z+ -Gesicht
"B", die Unterseite oder Z-Seite
"N", die Nord- oder Y+ -Seite
"E", die Ost- oder X+ -Seite
"W", die West- oder X-Seite
"S", die Süd- oder Y-Seite
Wo auf dem Gesicht möchtest du diese Funktion (shape_position [x_pos,y_pos,x_offs,y_offs,rotate,align])?
x_pos, wie weit entlang des Gesichts bewegst du dich in X?
y_pos, wie weit entlang des Gesichts bewegst du dich in Y-Richtung?
x_offs, wo entlang des Gesichts nimmst du Messungen in X vor?
y_offs, wo entlang des Gesichts nehmen Sie die Messungen in Y vor?
Rotieren, um wie viele Grad möchtest du das Objekt rotieren lassen?
Wenn du keines der oben genannten verwendest, setze sie bitte auf 0! Lass sie nicht einfach leer!
Ausrichtung, möchtest du, dass das Objekt mit der "Innenseite" oder der "Außenseite" der Verpackungsfläche ausgerichtet wird?Welche Form möchtest du? (Formname, Kegel/Ellipse/Zylinder/Rundes Rechteck/Quadrat/Rechteck/Noppenstange/Tiefstange/Hohler Zylinder)
Was sind die Abmessungen der Form (shape_size[depth,,,])... Sie müssen den Abschnitt unten lesen, da sie für jede Form unterschiedlich sind.
"Quadratische" Form_Größe[Tiefe, Länge_Breite]
"Rechteck" shape_size[Tiefe, Länge, Breite]
"Round_Rect" shape_size[Tiefe, Länge, Breite, Eckenradius, Eckenseiten]
"Zylinder" Form_Größe[Tiefe, Radius, Seiten]
"Ellipse" shape_size[Tiefe, Radius-Länge, Radius-Breite, Seiten]
"Kegel"-Form_Größe[Tiefe, Radius unten, Radius oben, Seiten]
"Nub_Post" shape_size[Tiefe, Radius unten, Radius oben, Tiefe der Noppen, Seiten]
"Dip_Post" shape_size[Tiefe, Radius unten, Radius oben, Tiefe Dip, Seiten]
Form "Hohlzylinder" Größe [Tiefe, Außenradius, Innendurchmesser, Seiten]
Eine Textzeile, die du in ein Gesicht gravieren lassen möchtest (text_to_write)
Für Text shape_size[Tiefe, Schriftgröße, Schriftabstand, Spiegelung]
Sobald der Benutzer diese Daten bereitgestellt hat, wird die Form wie folgt erstellt:
- Berechne die äußere Größe der Verpackung basierend auf "device_xyz", "clearance_xyz" und "wall_t".
- Erzeuge eine hohle kubische Form, indem du eine etwas kleinere von einer etwas größeren unterscheidest.
- Aus "Posts" erstellen Sie interne Stützstrukturen und verbinden diese mit der vorherigen Form.
- Aus "Löchern" erstellst du Formen auf jeder Seite und unterscheidest sie von der vorherigen Form.
- Aus "Text" Buchstaben auf jedem Gesicht erstellen und diese von der vorherigen Form unterscheiden.
- Anhand der Verpackungshöhe, "lip_h", "top_bottom_ratio" und "lip_fit" wird die vorherige Form in eine obere und untere Hälfte aufgeteilt.
- Mithilfe von Layout und Trennung ordnen Sie die Teile so an, wie vom Benutzer angegeben.
- Mithilfe von Layout, mouse_ears, mouse_ear_thickness und mouse_ear_radius werden die Mäuseohren korrekt mit den vorherigen Formen verbunden.
- Fertig!
Etiquetas
Fuente del modelo
