« 2015-02-14 Basteleien 2014-05-27 »

Basteleien: 2015-01-20: 3D-Modell


Beim Versuch eines Designs der 2. und 3. Achse blieb ich stecken, weil XFig, mein Lieblingszeichenprogramm auch für Platinen und 3D-Baupläne, irgendwie an die Grenzen seiner 3D-Fähigkeiten kam. Naja, XFig ist 2D, d.h. ich hatte immer manuell die Achsen von 2 bis 3 Seiten gezeichnet. Für die CNC-Fräse war jetzt der nächste Schritt eine Polymerbetonplatte zu erstellen, die hoch- und runter fährt, und dafür mußte sowohl die Vorder- als auch die Rückseite bebaut werden, für die X- und Z-Achse, inklusive zweier Motoren, Spindelhalter usw.usf. Das ging nicht mehr so einfach: ob alles paßt und sich nichts in die Quere kommt, war nicht zu erkennen. Bzw. war ich mir nie sicher, ob ich alles in den verschiedenen Zeichnungen konsistent hatte.

Also brauche ich Alternativen. Die 3D-Zeichenprogramme, die ich mal versucht hatte zu benutzen, fand ich ziemlich umständlich. Ich bin eigentlich auch kein Zeichner, sondern Programmierer. Also wollte ich eigentlich eher Programmieren. Nach längerer Suche hab ich mir mein kleines Modellierungsprogramm selbst in C geschrieben.

Die 3D-Teile das Programm sind recht einfach und benutzen CSG als Technik, um aus einfachen Bausteinen durch Vereinigung, Schnitt und Abzug eine komplexe Szene aufzubauen. Das aufgebaute CSG-Modell kann dann exportiert werden.

Bibliotheken wie CGal hab ich nicht benutz, da das auch immer Einarbeitungszeit kostet bzw. da ich von CGal das API sehr wenig schön finde. Es muß auch Spaß machen...

Ich werde sicherlich nach OpenSCAD exportieren wollen, und vielleicht auch nach Povray. In diesen Fällen muß man gar nicht viel umrechnen, da beide Programme direkt CSG können. OpenSCAD hatte ich vorher gar nicht gefunden, evtl. hätte ich es dann direkt benutzt.

Für den Anfang wollte ich aber was anzeigen lassen. Daher habe ich eine kleine Bibliothek, csg.js, nach C portiert, um aus CSG ein normales Polygonmodell zu machen. Nach einigem Debuggen einer numerischen Instabilität funktioniert es recht gut, obwohl es sehr einfach ist und ganz unoptimiert ziemlich viele Polygone erzeugt. Aber es ist klein genug um jetzt mit WebGL im Brower angezeigt zu werden. Ein kleines JavaScript-Programm steuert alles. Dieses JavaScript benutzt ein paar Module von gl-matrix, dessen API ziemlich intuitiv ist. Hier hab ich nicht nochmal alles selbst implementiert...

Jetzt kann ich also wieder was sehen und zwar in 3D. Da das alle JavaScript ist, kann man auch wunderbar ein interaktives Modell machen, in dem man z.B. Achsen verschieben kann. Sehr angenehm, um Konflikte schnell und intuitiv zu finden.

Hier also die erste Version zum Spielen. Das Modell ist relativ groß, trotz einiger Techniken, das klein zu kriegen. D.h. evtl. dauert es ein bißchen beim Laden.

Das Modell ist noch nicht fertig. Z.B. fehlt das ganze Portal noch, d.h. dort schweben die Dinge noch in der Luft. Viele Details fehlen: Abdeckungen, mehr Faltenbälge, mehr Schleppketten, Trafos, Steuergeräte, Kühlmittelspitzschutz, Spindelkühlung, Pumpen, usw.usf.

Falls das im Browser nicht klappt mit dem WebGL, hier ein Screenshots.

1

2

Das Maschinchen dauert also noch ein bißchen. Ich werde jetzt erstmal alles in dieser Art fertigplanen, damit es möglichst wenige Überraschungen gibt.


Kommentare

Index

4. Januar 2018
Anmerkungen? Vorschläge? Verbesserungen? Schreib mir was.
zpentrabvagiktu@theiling.de
Schwerpunktpraxis
Datenschutz