Text als STL-Datei generieren

Im 3D-Druck wird neben einem 3D-Drucker natürlich auch ein Modell benötigt. Dieses wird in entsprechender Software erstellt. In manchen Fällen wird aber z.B. nur ein einfacher Text benötigt. In diesem Fall steht die Webapplikation Text2STL hilfreich zur Seite.

Die Webapplikation in Aktion

In dieser Webapplikation kann ein Text eingegeben werden und anschließend können unterschiedlichen Einstellungen vorgenommen werden. So kann der Font, oder die Art und Weise wie dieser zu einem Modell gerendert wird eingestellt werden. Anschließend kann das fertige Modell als STL-Datei heruntergeladen und genutzt werden.

Mapcrafter unter Ubuntu aufsetzen

Eine Welt in Minecraft hat die Angewohnheit, mit der Zeit immer größer zu werden. In einem solchen Fall ist eine Karte natürlich sehr praktisch. Mithilfe des Tools Mapcrafter kann eine solche Karte erstellt werden. Der Mapcrafter erzeugt neben den Kartenkacheln auch eine JavaScript-Anwendung, mit der diese betrachtet werden können.

Eine Mapcrafter-Karte

Im ers­ten Schritt muss das Mapcrafter-Repository mittels:

git clone https://github.com/mapcrafter/mapcrafter.git

auf den Ser­ver geholt werden. Mit dem Befehl wird das Git-Repository, in welchem sich der Quelltext befindet, auf den Server geklont. Im Git-Kontext bedeutet dies, dass das gesamte Repository heruntergeladen wird. Falls Git nicht installiert ist, muss das entsprechende Paket mittels:

apt install git

installiert werden. Die aktuelle Entwicklung findet im Branch world113 statt, so das in diesen gewechselt werden muss:

cd mapcrafter
git checkout world113

Bevor die Software kompiliert werden kann, müssen einige Abhängigkeiten installiert werden:

apt install build-essential cmake libboost-all-dev libjpeg-dev libpng-dev

Anschließen kann die Software kompiliert und installiert werden:

cmake .
make 
make install
ldconfig

Nach der Installation könnte Mapcrafter über den Befehl:

/usr/local/bin/mapcrafter -c example.conf -b -j 4

ausgeführt werden. Allerdings muss vor dem ersten Start noch eine Konfigurationsdatei erstellt werden. In dieser Konfigurationsdatei ist definiert, wie die Karte gerendert werden soll. Die Datei und die Skripte zur Aktualisierung werden im Kontext des Nutzers minecraft angelegt:

su minecraft
cd
mkdir map
nano example.conf

Exemplarisch könnte die Konfigurationsdatei wie folgt aussehen:

output_dir = /home minecraft/map
background_color = #000000

[marker:teleporter]
name = Teleporter
prefix = Hauptteleporter
icon = beacon.png
icon_size = [32, 32]
show_default = false
title_format = %(textp)

[marker:signs]
name = Signs
icon = sign.png
icon_size = [32, 32]
show_default = false
title_format = %(textp)

[world:world]
input_dir = world
world_name = Example

[global:map]
image_format = png
png_indexed = true
rotations = top-left
texture_size = 16

[map:day_isometric]
name = Day (isometric)
render_view = isometric
render_mode = daylight
world = world

Nachdem die Konfigurationsdatei angelegt wurde, kann die Karte testweise mittels des Befehls:

/usr/local/bin/mapcrafter -c example.conf -b -j 4

erzeugt werden. Damit die Aktualisierung später automatisch geschieht, werden die Befehle zur Aktualisierung der Skripte in eine Skript-Datei geschrieben:

nano updateMap.sh

Diese Datei wird mit folgendem Inhalt befüllt:

#!/bin/bash
/usr/local/bin/mapcrafter -c example.conf -b -j 4
/usr/local/bin/mapcrafter_markers -v -c example.conf

Anschließend soll ein Cronjob eingerichtet werden. Dazu wird der Crontab-Editor geöffnet:

crontab -e

In der sich öffnende Datei muss nun folgende Zeile hinzugefügt werden:

0    1    * * *   (. ~/.profile; /usr/bin/screen -dmS mapcrafter /home/minecraft/updateMap.sh)

Danach kann die Datei geschlossen werden. Der Cronjob startet nun um 1 Uhr die tägliche Aktualisierung der Karte.

Framework 7

Bei der Suche nach brauchbaren und kleineren Frameworks für die Entwicklung von Web-Anwendungen bin ich unter anderem über OpenUI gestolpert. Allerdings war das Framework für meine Zwecke etwas zu groß, weshalb ich mich schlussendlich für Framework 7 entschieden habe. Mithilfe des Frameworks ist es möglich Web-Anwendungen zu schreiben, welche unter iOS, Android und auf dem Desktop laufen. Neben der Ausführung im Browser ist es daneben möglich Apps für die mobilen Systeme zu bauen. Framework 7 liefert Themes für iOS und Android mit, so das sich die Elemente an das Betriebssystem anpassen.

Eine Beispiel-App, welche mit Framework 7 erstellt wurde

Die offizielle Seite des Projektes ist unter framework7.io zu finden. Der Quelltext des Framework 7 ist auf GitHub zu finden. Der Quelltext des Frameworks ist unter der MIT-Lizenz lizenziert und damit freie Software.

OpenUI

Frameworks zum Bau von Web-Apps gibt es eine Menge. Neben den bekannteren wie z.B. React und Vue existieren auch einige unbekanntere Frameworks. Eines dieser Frameworks ist OpenUI. OpenUI ist die freie Variante von SAPUI, einer von SAP entwickelten Bibliothek für Web-Apps. OpenUI bietet eine große Anzahl an Komponenten, welche zum Bau von Applikationen genutzt werden können.

Ein Beispiel-App welche mittels OpenUI realisiert wurde

Neben der Unterstützung für MVC, bietet OpenUI eine Reihe von Funktionalitäten wie Lokalisation, Theming, Data Bindings, so das selten andere 3rd-Party Bibliotheken benutzt werden müssen. Integriert in OpenUI ist daneben eine jQuery-Version, so das DOM-Manipulationen mit dieser vorgenommen werden können. Problematisch an OpenUI ist, das es neben der ausgezeichneten Dokumentation, relativ wenige Tutorials und Hilfestellungen im Netz zu finden sind. Die offizielle Seite des Projektes kann unter openui5.org besucht werden. Der Quelltext von OpenUI ist auf GitHub zu finden. Er ist unter der Apache License in Version 2 lizenziert und damit freie Software.

Internationalisierung für Webapplikationen

Bei vielen Webapplikationen ist die Internationalisierung, also die Anpassung an unterschiedliche Sprachen, ein wichtiges Kriterium. Damit man bei diesem Thema nicht alleine gelassen wird, informiert die Webseite FormatJS darüber und zeigt Wege die eigene Webapplikation internationalisieren.

formatjs.io

formatjs.io

Die dabei verwendeten Bibliotheken sind unter freien Lizenzen wie der BSD- und MIT Lizenz lizenziert und auf GitHub zu finden.