Willkommen! Anmelden Ein neues Profil erzeugen

Erweiterte Suche

Allgemeine Fragen zu OpenSCAD

geschrieben von Kistenschieber 
Allgemeine Fragen zu OpenSCAD
28. August 2016 09:50
Hallo Forumisti,

seit ich mich mit dem Thema 3d Druck beschäftige, nutze ich OpenSCAD, zur Zeit in der Version 2016.07.20.
Mittlerweile komme ich wirklich ganz gut mit der Software zurecht, und ein kompletter Umstieg auf was anderes kommt für mich aus diversen Gründen nicht in Frage.

Einige Dinge stören mich aber immer wieder mal bei der Arbeit mit dieser Software.
Zum einen dauert das Rendering komplexerer Geometrien in guter Auflösung auf meinem Rechner teilweise recht lange.
So bald das Model zum Beispiel Spheren enthält und diese mit einer einigermaßen hohen Oberflächengüte gerendert werden sollen wird die Sache zum Geduldsspiel.
Jetzt ist mein Rechner nicht mehr der jüngste, aber auf anderen Rechnern mit wesentlich mehr Rechenpower existiert das Problem ebenfalls.
(Mein Arbeitsrechner in der Firma hat doppelt so viele CPU-Kerne, taktet viel höher, hat das doppelte an Arbeitsspeicher und das Ganze ist nicht wesentlich schneller...)

Gibt es für OpenSCAD so etwas wie eine Refferenz-Konfiguration mit der die Software optimal performt?

Die andere Geschichte ist wohl eher eine Frage der Handhabung.
Bei mir gibt es immer wieder mal totales "Codechaos" wenn ich in einer Datei mehrere Module nutze und diese dann zusammenfügen möchte.

Wenn ich zum Beispiel Module aus mehreren Dateien in eine Datei kopiere (und das finde ich genial einfach, da textbasiert...), habe ich unter Umständen völlig verschiedene Maßbezugsebenen bei den verschiedenen Bauteilen.
Mir fällt dann mitunter die räumlich korrekte Anordnung der einzelnen Modelbestandteile recht schwer.
(Klar, bekommt man hin, aber ich habe immer das Gefühl ich stelle mich da besonders bescheuert an..)

Wie machen das die Experten unter euch?
Gibt es da ein Patentrezept?
Sollte man irgend einer Konvention beim Erstellen der Modelle folgen, die eine allgemein gültige Referenzierung der Maße ermöglicht?

Ich hoffe die Fragen sind nicht all zu dämlich...

Gruß

Kistenschieber
Re: Allgemeine Fragen zu OpenSCAD
28. August 2016 13:00
Kommt immer drauf an welche Funktionen du nutzt. Hull und Minkowski sind sehr rechenintensive Befehle. Meiden wo es nur geht. Für viele Details $fn ggf. über nen Parameter steuern und erst im finalen Design hoch setzen.

Beim Zusammenkoprieren musst du mal nen Beispiel geben. Kann dir nicht folgen. Normal kopieren ich nix zusammen. Je nach Situation "use" oder "include".


Triffid Hunter's Calibration Guide --> X <-- Drill for new Monitor Most important Gcode.
Re: Allgemeine Fragen zu OpenSCAD
28. August 2016 14:13
Hallo Wurstnase,

Die Sache mit Hull und Minkowski ist mir bekannt, ich setze die Funktionen auch sehr sparsam ein.
Während ich mit dem Model arbeite ("Entwurfsphase") gehe ich mit $fn global auch schon mal bis 10 runter. Manchmal lässt es sich aber nicht vermeiden hier mit mehr "Auflösung" zu arbeiten.

Beispiel, stark vereinfacht:

Datei 1:

translate([-30,-30,-15])cube([10,20,30);


Datei 2:

translate([0,0,0])cylinder(30,d=10); // translate macht hier natürlich keinen echten Sinn, dient nur zur Veranschaulichung

Wenn ich das jetzt in eine Datei kopiere, liegen die Grundseiten der Körper nicht in der selben Ebene.

Klar lässt sich das für dieses simple Beispiel sehr leicht korrigieren, aber wie macht das der Profi mit komplexen Bauteilen?

Sollten die Teile immer bei den Nullkoordinaten ihren Ursprung haben?
Manchmal konstruiere ich ein Teil, füge "unten" etwas hinzu und schon bin ich natürlich im negativen Koordinatenbereich.

Ich weiß nicht wie ich das besser erklären soll, ich hoffe das ist irgendwie verständlich...

Gruß

Kistenschieber
Re: Allgemeine Fragen zu OpenSCAD
28. August 2016 15:44
Mit 'echtem' CAD kann man Teile über Ebenen, Flächen und ähnlichem 'einbauen'. Bei OpenScad muss das der Programmierer übernehmen. Im üblichen CAD heißt das dann Standard-Einbau über ein bzw. das Standard-Koordinatensystem.
Du musst also selbst zusehen, wie dein Teil gegenüber dem Standard-Koordinatensystem angeordnet ist.


Triffid Hunter's Calibration Guide --> X <-- Drill for new Monitor Most important Gcode.
Re: Allgemeine Fragen zu OpenSCAD
29. August 2016 03:59
Hallo Kistenschieber,

du solltest dir eine Struktur angewöhnen, nur als Beispiel, für dein example project:

example.scad
use <module1.scad>
use <module2.scad>

translate([1,2,3]) module1();
translate([4,5,6]) module2();

module1.scad
module module1() {
    //some
    //complex
    //object
}

Die finale Ausrichtung der Objekte solltest du in der ersten Datei machen (example.scad), die kannst du nicht sinnvoll im Voraus ausrichten, so dass du in der ersten Datei ohne ein translate auskommen würdest.
Stell dir vor, du willst das Modul in einem anderen Projekt weiterverwenden, dann passt es ja auch nicht direkt rein und du musst schieben.
Wenn du fremde libraries einbindest, hat sich der Verfasser vielleicht keine oder andere Gedanken gemacht, dann musst du auch schieben, manchmal auch drehen, wirst du merken ;-)
Komplexe Objekte brauchen in der Regel auch nur ein translate um sie richtig abzulegen.

Du musst dabei auch nicht umbedingt jedes Modul in eine eigene Datei packen, wenn dir das dann zu viel Overhead ist, eine library.scad mit mehreren Modulen ist genauso gut möglich.

Wenn es dann umbedingt sein muss, kannst du bei dieser Struktur alle Module in eine Datei kopieren, z.B. falls du es irgendwo posten willst und es ist nur eine Datei erlaubt. Du musst dann lediglich die use-Anweisungen auskommentieren.
Ich schreibe allerdings in die Modul-Dateien gerne noch den Aufruf für das Modul mit rein, so kann ich die Dateien auch einzeln öffnen und als STL exportieren.

Zu deiner Frage nach dem Bezugspunkt bzw. nach einer sinnvollen Ausrichtung in den Modul-Dateien:
Ich glaube da gibt es mehrere sinnvolle Ansätze. Manchmal ist es sinnvoll, alles um den Nullpunkt herum anzuordnen.
Dann hast du innerhalb des Moduls immer "schöne" Koordinaten, z.B. wenn du etwas in vier Ecken verteilen willst +x+y, +x-y, -x+y, -x-y, etc.
Manchmal fängt man auch einfach bei 0 an und baut an allen Seiten an. Spricht auch nichts gegen, eben so wie es passt.

Mach bitte auch nicht den Fehler den Code "auf deutsch" zu schreiben und zu kommentieren.
Wenn du es dann bei Thingiverse veröffentlichst kann es kein Mensch lesen ;-)

Hoffe es hilft dir weiter.
Ein Umstieg auf eine unfreie Software käme für mich übrigens auch nicht in Frage.
FreeCAD wollte ich mir aber auch mal genauer ansehen.

1-mal bearbeitet. Zuletzt am 29.08.16 04:06.


Best regards / Viele Grüße
Till
Re: Allgemeine Fragen zu OpenSCAD
29. August 2016 07:13
Hi microfortnight,

ich denke fast, das ich da bisher einfach ein wenig chaotisch vorgegangen bin.
Ich werde deine Tips beherzigen und vor allem versuchen mich da mehr zu strukturieren.

Was FreeCAD angeht, läuft leider auf meinen Rechnern weder unter Windows noch unter Linux brauchbar.
Ich denke da sind meine betagten Rechner einfach zu schlapp...

Hat denn noch jemand einen Tip was die Performance b.z.w. ideale Hardware-Konfiguration für OpenSCAD angeht?
Re: Allgemeine Fragen zu OpenSCAD
29. August 2016 09:03
Lade doch mal ein Beispiel hoch welches so schlimm ist mit der Performance. Dann kann man das mal genauer ansehen und Tipps geben. Normal braucht OpenScad fast keine Leistung. Wahrscheinlich hilft bei dem Tool auch nur SingleCore-GHz.


Triffid Hunter's Calibration Guide --> X <-- Drill for new Monitor Most important Gcode.
Re: Allgemeine Fragen zu OpenSCAD
29. August 2016 12:35
Hallo,

also ich habe gerade ein Modell mit vielen Minkowski Funktionen. Das Berechnen dauerte Stunden und brach da einfach ab. Dort ging es einfach nur noch mit dem Zerteilen des Objektes und Teilstück für Teilstück berechnen lassen, Speichern und per STL Import im Script Printen lassen als ganzes. Ich habe zwar einen etwas älteren High End PC, aber wenn OpenSCAD 13GB Arbeitsspeicher belegt schließt Windows 10 das OpenSCAD einfach. Ich habe nur 16GB Speicher, ist scheinbar einfach zu wenig... oder ich will einfach zu viel?

PS: Im FreeCad geht das wegen der Anzahl Verschachtelungen erst gar nicht mehr zu bearbeiten. Das habe ich wohl eine Grenze überschritten. Waren bestimmt weit über 100 verschachtelte Aufrufe sichtbar.

mfg,
Rickenharp
Re: Allgemeine Fragen zu OpenSCAD
29. August 2016 14:12
Für solche Fälle hilfreich: [www.implicitcad.org]
Das Rendern dauert auch lang, aber die Komplexität macht keine Probleme.

Herzl. Grüße
Re: Allgemeine Fragen zu OpenSCAD
29. August 2016 19:00
Da vielleicht noch mal meinen Senf dazu:

gute Erfahrungen habe ich auch (bei komplexen Sachen) damit gemacht, einzelne Gruppen seperat zu "basteln" als .stl zu generieren und dann in der "finalen" Datei einfach die .stl's zu importieren und passend zueinander zu platzieren (hilfreich hierbei ist z.B. das "alte Cura" das ein, egal wo im Raum plaziertes Bauteil, nach dem öffnen und wieder abspeichern als .stl - in x/y auf 0 zentriert und in z auf 0 setzt).

Dadurch wird das rendern des finalen Teils deutlich schneller (evtl. erforderliche Änderungen aber halt bischen umständlicher).

Allerdings wird ein anderes "Problem?" von OpenSCAD dadurch unter Umständen deutlicher, das es mit nicht "sauberen" (weiß nicht wie ich es sonst beschreiben könnte) Überlappungen Probleme hat.
Hatte grad wieder so einen Fall:
2 (stl) Objekte in 10mm Abstand zueinander positioniert - sollte eigentlich passen - OpenSCAD will nicht.
Bei einem Abstand von 10.001mm oder 9.999 hingegen funktioniert es ... verstehe das wer will ;-))
Re: Allgemeine Fragen zu OpenSCAD
30. August 2016 01:33
Quote
So bald das Model zum Beispiel Spheren enthält und diese mit einer einigermaßen hohen Oberflächengüte gerendert werden sollen wird die Sache zum Geduldsspiel.

Daher benutze ich gerne die Fibonacci Sphere. Die ist schneller und macht meiner Meinung nach schönere Oberflächen. Gelegentlich gibt es jedoch Probleme mit der Wasserdichtigkeit (manifold).


Gruß
Niko

NXD evo (Duet Wifi, RepRap Firmware 3.1.1, Duet 3d smart effektor & Haydn Huntley Magrods, Bondtech BMG (flying) extruder.
Re: Allgemeine Fragen zu OpenSCAD
06. September 2016 14:34
Hi, nach etwas längerer Abstinenz hier noch mal was von mir zu dem Thema.

Ich habe mal was rausgesucht was mir in der Vergangenheit Probleme bereitet hat.
Auf dem Bild kann man erkennen wie es aussehen soll, hatte das Ding auch schon mal fertig gerendert und letztendlich auch gedruckt.
Gut, das Ding enthält Spheren, Hüllen und es wird auch noch in den einzelnen Teilen rumscaliert.
Ich kann mir gut vorstellen das braucht Rechenpower, aber so viel?

Der Rechner an dem ich gerade sitze:

Intel Core 2 Duo E8400 (3 GHz), ca. 3,75 GB verfügbarer RAM

Wenn ich versuche das Ding mit global $fn=360 zu rendern friert mir der Rechner quasi ein.

Ist übrigens vollkommen wurscht ob ich es unter Win 10 oder Linux versuche (Dualboot), das Ergebnis ist vergleichbar.

Grad habe ich es noch mal unter Win 10 probiert, der Rechner fängt an zu swapen, das es eine wahre Freude ist.

Was tun?

Mehr Arbeitsspeicher? (Blöd weil teuer für die Kiste...)

Schnelle SSD? (Sollte beim swapen was bringen...)

Oder einfach die Ansprüche runterschrauben? (Blöd weil gefällt mir nicht...)

Ich weiß, hier wiederhole ich mich, aber hat jemand einen Tipp für ein (bezahlbares!) Referenzsystem auf dem diese Software gut performt?

Gruß

Kistenschieber
Anhänge:
Öffnen | Download - rendertest.scad (4.5 KB)
Öffnen | Download - rendertest.png (81.3 KB)
Re: Allgemeine Fragen zu OpenSCAD
06. September 2016 15:32
Das Ding ist schlecht programmiert.
1. $fn=360? Wofür?
2. Der Körper wird 3x im Zentrum rotiert mit $fn=360! Du lässt also 3 mal das gleiche Objekt in der Mitte berechnen und OpenScad muss das dann noch verbinden. Körper also rausziehen.
3. Du machst nen Sphere für den Fuß. Das ist OK. Der Zylinder drunter zum abziehen, den kein Mensch jemals sehen wird, bekommt nen $fn=360! Ein einfacher Cube ist mehr als ausreichend.

Im Anhang mal deine Datei etwas überarbeitet. $fn ist je nach Situation zwischen 30 und 50.
Compiling design (CSG Tree generation)...
Rendering Polygon Mesh using CGAL...
Geometries in cache: 21
Geometry cache size in bytes: 674712
CGAL Polyhedrons in cache: 10
CGAL cache size in bytes: 21605200
Total rendering time: 0 hours, 0 minutes, 18 seconds
   Top level object is a 3D object:
   Simple:        yes
   Vertices:     3461
   Halfedges:   15990
   Edges:        7995
   Halffacets:   9078
   Facets:       4539
   Volumes:         2
Rendering finished.

Nur mal als Vergleich, dein Teil mit $fn=30 anstatt 360:
Compiling design (CSG Tree generation)...
Rendering Polygon Mesh using CGAL...
Geometries in cache: 37
Geometry cache size in bytes: 19947320
CGAL Polyhedrons in cache: 7
CGAL cache size in bytes: 14949648
Total rendering time: 0 hours, 0 minutes, 27 seconds
   Top level object is a 3D object:
   Simple:        yes
   Vertices:     4565
   Halfedges:   17154
   Edges:        8577
   Halffacets:   8034
   Facets:       4017
   Volumes:         2
Rendering finished.

Kannst ja mal raten, welches dein Modell mit $fn von 30 ist.


1-mal bearbeitet. Zuletzt am 06.09.16 15:56.


Triffid Hunter's Calibration Guide --> X <-- Drill for new Monitor Most important Gcode.

Anhänge:
Öffnen | Download - rendertest.scad (796 bytes)
Re: Allgemeine Fragen zu OpenSCAD
06. September 2016 22:57
Man sollte sich vielleicht auch mal die entsprechende Referenz (bzgl. $fn) rein ziehen:
[en.wikibooks.org]
dann wir evtl. manches klarer.

Davon abgesehen, hull() ist eine echte "Spaßbremse" ;-)) - bei dem Model aber wohl nicht zu vermeiden.

Und hier stellen sich mir Fragen:
Quote

Oder einfach die Ansprüche runterschrauben? (Blöd weil gefällt mir nicht...)
Welche Ansprüche:
die an die gerenderte Darstellung oder die ans Druckergebniss?
ein $fn=360 ... welcher Drucker schafft die Auflösung?
Quote

Ich weiß, hier wiederhole ich mich, aber hat jemand einen Tipp für ein (bezahlbares!) Referenzsystem auf dem diese Software gut performt?
Auf jedem einigermaßen aktuellen PC/Laptop performt OpenSCAD eigentlich recht ordentlich, vorausgesetzt, man stellt keine "utopischen" Ansprüche für die Berechnung.

(Wobei ... das muß ich aber noch verifizieren ... ich den Eindruck habe das es auf auf Mehrkernsystemen nur einen benutzt ...)

Ist so, auf meinem Linux-System ist 1 Kern mit 100% ausgelastet während die anderen sich mit dem Rest beschäftigen. Interessanteweise verschiebt sich alle 20-30 Sekunden die Last auf den nächsten Kern....

1-mal bearbeitet. Zuletzt am 06.09.16 23:26.
In diesem Forum dürfen leider nur registrierte Teilnehmer schreiben.

Klicke hier, um Dich einzuloggen