Seite 1 von 2

Lua || Selber bauen || Andere Vorschläge

Verfasst: Di Apr 02, 2013 6:12 pm
von Bebu
Ich bastle zur Zeit an einem kleinen Projekt um Pfade nach bestimmten Mustern zu erzeugen. In der Firma, in der ich arbeite legen wir Projekte mit einer bestimmten Ordnerstruktur auf einem Netzlaufwerk an und legen dort CAD Dateien, Bilder und sonstigen Kram zum Projekt ab. Diese Ordnerstruktur erstellen wir bisher von Hand, was ziemlich lästig ist. Mittels Boost und wxWidgets habe ich mittlerweile einen funktionierenden Prototypen, der jetzt aber noch verfeinert und für produktiven Einsatz fit gemacht werden muss. Jetzt zum Problem: Die Pfade müssen je nach Projekttyp unterschiedlich aufgebaut werden und auch bestimmten Konventionen entsprechen. Manchmal ist auch nicht jeder Punkt der Eingabemaske zwingend auszufüllen, oder wird gar nicht benötigt. Außerdem gibt es Spezialfälle, die sich nur über eine Kontrollstruktur abbilden lassen. Das alles soll sich über eine Konfigurationsdatei steuern lassen; ich brauche also mindestens if-Abfragen und die Möglichkeit Variablen an mein C++ Programm zu schicken und zu empfangen.

Die letzten Tage habe ich mich in Boost::Spirit eingelesen, aber mal eben einen Lexer, Parser und Interpreter schreiben, erscheint mir ein bisschen viel Aufwand um eine GUI zu konfigurieren, das Zeit/Nutzen Verhältnis passt nicht. Heute bin ich noch auf Lua gestoßen, was mir viel Arbeit abnehmen würde.

Wie würdet ihr die Sache anpacken? Habt ihr noch ganz andere Ideen?

Re: Lua || Selber bauen || Andere Vorschläge

Verfasst: Di Apr 02, 2013 6:38 pm
von cloidnerux
Wenn ich dich richtig verstehe, willst du dir Arbeit abnehmen, indem du bestimmte, sich wiederholende Vorgänge Automatisieren möchtest.
Dann stellt sich doch die Frage, wie viel einfacher wird es, wenn man statt Ordnerstrukturen von Hand anlegen, erstmal ein Lua-Script schreiben muss?

Dann natürlich die Überlegung, was ändert sich, kann man das irgendwie auch zusammenfassen?
Vlt auch die Überlegung, einfach Modulweise deine Struktur anzugehen und dann einfach schnell Module zu nem Baum verknüpfen, Das du also ein projekt anlegst, das Modul CAD anheftest, das Modul Elektrik, das Modul Fotos, und dadurch dann die Software die ordnerstruktur anlegt?

Re: Lua || Selber bauen || Andere Vorschläge

Verfasst: Di Apr 02, 2013 8:21 pm
von Bebu
Du hast Recht, ich möchte wiederholende Vorgänge automatisieren. Ich will nicht jedesmal ein Lua Script schreiben, ich habe eine Eingabemaske erstellt, in die man die notwendigen Projektdaten eingeben muss. Dann werden aus diesen Angaben die Pfade zusammengesetzt. Jetzt gibt es aber unterschiedliche Projektarten, d. h. die Pfade werden anders zusammengesetzt. Das Script soll nur steuern, wie der Pfad zusammengesetzt wird und Teile der GUI aktivieren und deaktivieren.

Re: Lua || Selber bauen || Andere Vorschläge

Verfasst: Mi Apr 03, 2013 10:17 am
von Xin
Wieviele Projektarten gibt es denn? Bzw. ändern die sich laufend?

Re: Lua || Selber bauen || Andere Vorschläge

Verfasst: Mi Apr 03, 2013 7:03 pm
von Bebu
Im Moment gibt es zwei und es kommen nicht regelmäßig welche dazu. Ich möchte die Sache aber trotzdem flexibel halten. Ich habe in der Firma keine Infrastruktur um mal eben neu zu kompilieren. Flexibilität in der Richtung ist eine Designentscheidung.

Re: Lua || Selber bauen || Andere Vorschläge

Verfasst: Mi Apr 03, 2013 9:04 pm
von Xin
Bebu hat geschrieben:Im Moment gibt es zwei und es kommen nicht regelmäßig welche dazu. Ich möchte die Sache aber trotzdem flexibel halten. Ich habe in der Firma keine Infrastruktur um mal eben neu zu kompilieren. Flexibilität in der Richtung ist eine Designentscheidung.
Ich habe mit Lua noch nie gearbeitet. Es soll wohl recht einfach sein, eine Pythonanbindung zu machen.

Re: Lua || Selber bauen || Andere Vorschläge

Verfasst: Do Apr 04, 2013 6:20 pm
von Bebu
Python hatte ich noch nie im Einsatz. Ich habe allerdings das Gefühl, das Python weit mächtiger ist, also schon fast wieder Overkill :-) Ich kucke mir mal Lua genauer an, kann ja dann Bericht erstatten

Re: Lua || Selber bauen || Andere Vorschläge

Verfasst: Do Apr 04, 2013 7:16 pm
von Xin
Bebu hat geschrieben:Python hatte ich noch nie im Einsatz. Ich habe allerdings das Gefühl, das Python weit mächtiger ist, also schon fast wieder Overkill :-) Ich kucke mir mal Lua genauer an, kann ja dann Bericht erstatten
Ich bitte darum. :-)
Wenn Du es einbindest, wäre ein kleine Artikel dazu schön, damit man das nachmachen kann.

Re: Lua || Selber bauen || Andere Vorschläge

Verfasst: Mi Apr 24, 2013 6:01 pm
von jeanluc
Schon fertig ? :)

Python kannst du auch sehr einfach einbetten:

Code: Alles auswählen

Py_Initialize();
PyRun_SimpleString(programmcode);
Py_Finalize();
Die include Pfade und die libs aus der Python Installation in den Compiler-Settings deiner IDE angeben, kompilieren, fertig.

programmcode ist ein String. Wenn du nur die Eingaben deiner GUI verarbeiten willst gehe vor wie folgt:
- Platzhalter in programmcode schreiben
- Eingaben zu String konvertieren
- String-Ersetzung durchführen, d.h. Platzhalter durch deine Eingabe-Strings ersetzen.

Alternativ gibt es eine ausführliche Doku wenn du einzelne (selbstdefinierte) Python-Funktionen aufrufen und Rückgaben auswerten willst.

Siehe auch http://docs.python.org/2/extending/embedding.html

Re: Lua || Selber bauen || Andere Vorschläge

Verfasst: Mi Apr 24, 2013 8:23 pm
von Bebu
Ja, danke ich bin schon bei Python gelandet. Aber so einfach ist das einbetten auch wieder nicht, zumindest, wenn man bidirektional arbeiten will. Ich spiele mit Boost Python, das erleichtert vieles, aber noch habe ich es nicht so hin bekommen, wie ich es mir wünsche. Lua liegt auf Eis, die Entwicklung meines favorisierten C++ Bindings stockt ziemlich. Aber zur Zeit läuft nicht so viel, schönes Wetter :-)