User Tools

Site Tools


blog:mit_miki_strukturen_aus_einer_beschreibung_erzeugen

Mit Miki Strukturen aus einer Beschreibung erzeugen

Wenn man eine Struktur formal in einem leicht lesbaren Text beschreiben kann, bringt das Vorteile.

  • Die Beschreibung ist (zumindest für Programmierer) leichter zu lesen als eine Umsetzung in eine Programmiersprache
  • Die Datei kann automatisch ausgewertet werden, um reale Strukturen zu erzeugen
  • Für verschiedene Strukturmodelle kann man prinzipiel die gleiche Beschreibungssprache nutzen

Miki nutzt Ideen von yaml und von Kivy kv, unterscheidet sich aber in der Arbeitsweise. Das ist notwendig, um die gewünschten Anwendungsbereiche abdecken zu können.

Miki übersetzt eine Strukturdatei in die entsprechende Objektstruktur.

Miki funktioniert mit derzeit drei Anwendungsbereichen:

  • QtGui - Widgets
  • FreeCAD Part Objekte - Primitive und erste Operationen (Fusion und Compound)
  • pivy.coin Objekte, d.h. Visualisierungen im 3D Raum
Qt

Im ersten Beispiek ist ein Qt-Forumlar beschrieben. Es besteht aus mehreren geschachtelten Layouts und Buttons und Labels.

Zwei Klassen VerticalLayout und HorizontalLayout sind innerhalb von Miki definiert, da Qt für jedes Layout immer erst ein Windget benötigt, dem dann ein Layout-Objekt zugeordnet wird, welches die untergeordneten Objekte aufnimmt.

Miki Qt

	w=QtGui.QWidget()
	layout = QtGui.QVBoxLayout()
	w.setLayout(layout)

Die drei Schritte sind in Miki zu einem Schritt, zum Aufruf der Klasse VerticalLayout zusammengefasst.

Part

Im zweiten Beispiel werden zwei Part-Objekte erzeugt und aus beiden zwei Fusionen.

Dafür werden die Grundkörper mit einem Anker &b, &c versehen, auf die bei der zweiten Fusion mit den Zeigern *b, *c wieder zugegriffen wird.

Auf diese Weise entsteht ein gerichteter kreisfreier Graph (DAG).

Miki kann also durch Verwendung von Ankern und Zeigern diese Arten von Netzen generieren. Für CAD macht das Sinn - Teile können mehrfach verwendet werden. Bei Qt kann dieses Hilfsmittel nicht angewendet werden, das jedes Widget immer nur ein parent haben darf.

Miki Part

Die Werte für die Attribute werden einfach hinter den Attributnamen durch Doppelpunkt getrennt geschrieben. Es sind als Datentypen Zahlen, Wahrheitswerte, Zeichenketten möglich. Eine Erweiterung auf Listen folgt.

Miki erkennt an der Klasse, welcher Aufruf zum Setzen des Attributes benötigt wird.

Miki Attribute

Open Inventor/coin

Klassen, die mit So beginnen, gehören zur Visualisierung mittels Open Inventor. Attribute unterstützen auch Tupel von Werten z.B. für Vektoren.

Miki Open Inventor

Eigene Klassen

Im letzten Beispiel wird eine eigene Klassebezeichnung verwendet. Intern in Miki wird ihr eine Konstruktionsmethode zugeordnet.

Miki Eigen

YourSpecialCreator=Animation.createManager
Dateien
blog/mit_miki_strukturen_aus_einer_beschreibung_erzeugen.txt · Last modified: 2017/03/22 11:37 by freek