Veröffentlicht 26. November 202426. Nov Hallo zusammen, für ein Hobbyprojekt versuchen ich und ein paar Freunde, eine Zeichensoftware zu bauen, die automatisiert Zeichnungen anfertig. Der Use Case ist noch nicht ganz konkretisiert, aber es es könnte beispielsweise eine Software sein, die Maschinenbauingenieure dabei unterstützt 2-dimensionale Konstruktionspläne automatisiert zu erstellen. Letztlich bekommt so eine Software eine Menge an Ausgangsdaten und eine Menge an fertigen Konstruktionsplänen, die auf Basis, der Ausgangsdaten erstellt wurden. So soll die Software lernen nach welchen Regeln sie die Ergebnisse erstellt. Das Ganze ist dann sicherlich KI-basiert. Die Frage ist, welche Möglichkeiten gibt es eine solche Software zu bauen ohne dabei alles von grundauf neu zu coden(Bin selber SAP-Softwareentwickler und verstehe grundlegende Konzepte der Softwarentwicklung). Unsere Idee ist es, dass wir versuchen eins der existierenden Sprachmodelle, wie beispielsweise chatgpt DSGVO-konform zu trainieren für unseren Use Case. Es gibt ja beispielsweise die Möglichkeit auf europäischen Microsoft Servern das GPT-Sprachmodell zu nutzen und zu trainieren. Hat jemand vielleicht weitere Empfehlungen/Ideen, welche Basiskomponenten es für unseren Use Case schon gibt? (Zeichenmodule etc.) Auch über Anregungen oder Tipps zur Umsetzung, freuen wir uns. Bezüglich des Use Cases bitte beachten, dass uns bewusst ist, dass der Use Case eventuell nicht umsetzbar ist. Uns geht es mehr darum zu verstehen, wie man bereits existierenden Modelle für einen Use Case trainieren und anpassen kann. VG, Daniel
26. November 202426. Nov vor 1 Stunde schrieb daniel861: Hat jemand vielleicht weitere Empfehlungen/Ideen, welche Basiskomponenten es für unseren Use Case schon gibt? (Zeichenmodule etc.) Dies sind die Abhängigkeiten von Freecad. * dependency graph for media-gfx/freecad-1.0.0 `-- media-gfx/freecad-1.0.0 amd64 `-- dev-lang/python-3.10.15_p2 (dev-lang/python) amd64 `-- dev-lang/python-3.11.10_p1 (dev-lang/python) amd64 `-- dev-lang/python-3.12.7_p1 (dev-lang/python) amd64 `-- dev-cpp/gtest-1.14.0-r1 (dev-cpp/gtest) amd64 `-- dev-cpp/yaml-cpp-0.8.0 (dev-cpp/yaml-cpp) amd64 `-- dev-libs/OpenNI2-2.2_beta2-r1 (dev-libs/OpenNI2) amd64 [opengl(+)] `-- dev-libs/boost-1.85.0-r1 (dev-libs/boost) amd64 `-- dev-libs/libfmt-9.1.0-r2 (dev-libs/libfmt) amd64 `-- dev-libs/libspnav-1.1 (dev-libs/libspnav) amd64 [X] `-- dev-libs/xerces-c-3.2.5 (dev-libs/xerces-c) amd64 [icu] `-- dev-ruby/asciidoctor-2.0.23 (dev-ruby/asciidoctor) amd64 `-- dev-qt/qtconcurrent-5.15.14 (dev-qt/qtconcurrent) amd64 `-- dev-qt/qtcore-5.15.14 (dev-qt/qtcore) amd64 `-- dev-qt/qtnetwork-5.15.14-r1 (dev-qt/qtnetwork) amd64 `-- dev-qt/qtxml-5.15.14 (dev-qt/qtxml) amd64 `-- dev-qt/qtxmlpatterns-5.15.14 (dev-qt/qtxmlpatterns) amd64 `-- dev-qt/qtbase-6.7.3-r2 (dev-qt/qtbase) amd64 [concurrent network xml] `-- media-libs/freetype-2.13.2 (media-libs/freetype) amd64 `-- media-libs/qhull-2020.2-r3 (media-libs/qhull) amd64 `-- sci-libs/hdf5-1.14.3-r1 (sci-libs/hdf5) amd64 [fortran zlib] `-- sci-libs/med-4.1.1-r3 (>=sci-libs/med-4.0.0-r1) amd64 `-- sci-libs/opencascade-7.8.1 (sci-libs/opencascade) amd64 [json vtk] `-- sci-libs/orocos_kdl-1.5.1 (sci-libs/orocos_kdl) amd64 `-- sys-libs/zlib-1.3.1-r1 (sys-libs/zlib) amd64 `-- virtual/libusb-1-r2 (virtual/libusb) amd64 `-- dev-libs/openssl-3.3.2 (dev-libs/openssl) amd64 `-- net-misc/curl-8.10.1-r1 (net-misc/curl) amd64 `-- sci-libs/vtk-9.3.0-r3 (sci-libs/vtk) amd64 [qt5 rendering] `-- media-libs/coin-4.0.3 (>=media-libs/coin-4.0.0) amd64 `-- virtual/glu-9.0-r2 (virtual/glu) amd64 `-- virtual/opengl-7.0-r2 (virtual/opengl) amd64 `-- dev-qt/designer-5.15.14 (dev-qt/designer) amd64 `-- dev-qt/qtgui-5.15.14 (dev-qt/qtgui) amd64 `-- dev-qt/qtopengl-5.15.14 (dev-qt/qtopengl) amd64 `-- dev-qt/qtprintsupport-5.15.14 (dev-qt/qtprintsupport) amd64 `-- dev-qt/qtsvg-5.15.14 (dev-qt/qtsvg) amd64 `-- dev-qt/qtwidgets-5.15.14 (dev-qt/qtwidgets) amd64 `-- dev-qt/qtx11extras-5.15.14 (dev-qt/qtx11extras) amd64 `-- sci-libs/pcl-1.14.1 (sci-libs/pcl) amd64 [qt5] `-- dev-python/matplotlib-3.9.2 (dev-python/matplotlib) amd64 [python_targets_python3_10(-)] `-- dev-python/pivy-0.6.8 (>=dev-python/pivy-0.6.5) amd64 [python_targets_python3_10(-)] `-- dev-python/pyside2-5.15.14 (dev-python/pyside2) M[package.mask] [gui svg webchannel python_targets_python3_10(-)] `-- dev-python/shiboken2-5.15.14 (dev-python/shiboken2) M[package.mask] [python_targets_python3_10(-)] `-- dev-qt/qttools-6.7.3 (dev-qt/qttools) amd64 [designer] `-- dev-qt/qt5compat-6.7.3 (dev-qt/qt5compat) amd64 `-- dev-qt/qtsvg-6.7.3 (dev-qt/qtsvg) amd64 `-- dev-python/pyside6-6.7.3 (dev-python/pyside6) amd64 [gui svg webchannel python_targets_python3_10(-)] `-- dev-python/shiboken6-6.7.3 (dev-python/shiboken6) amd64 [python_targets_python3_10(-)] `-- media-gfx/netgen-6.2.2302 (media-gfx/netgen) amd64 [opencascade] `-- media-gfx/openscad-2021.01-r5 (media-gfx/openscad) amd64 `-- dev-python/numpy-2.1.3 (dev-python/numpy) amd64 [python_targets_python3_10(-)] `-- dev-python/pybind11-2.13.6 (dev-python/pybind11) amd64 [python_targets_python3_10(-)] `-- dev-python/gitpython-3.1.43 (dev-python/gitpython) amd64 [python_targets_python3_10(-)] `-- dev-python/ply-3.11-r2 (dev-python/ply) amd64 [python_targets_python3_10(-)] `-- dev-cpp/eigen-3.4.0-r1 (>=dev-cpp/eigen-3.3.1) amd64 `-- dev-cpp/ms-gsl-4.0.0 (dev-cpp/ms-gsl) amd64 `-- dev-python/pyyaml-6.0.2 (dev-python/pyyaml) amd64 [python_targets_python3_10(-)] `-- dev-qt/qttest-5.15.14 (dev-qt/qttest) amd64 `-- app-text/dos2unix-7.5.2 (app-text/dos2unix) amd64 `-- dev-lang/swig-4.2.1 (dev-lang/swig) amd64 `-- app-alternatives/ninja-1 (app-alternatives/ninja) amd64 `-- dev-build/cmake-3.30.5 (>=dev-build/cmake-3.20.5) amd64 `-- dev-util/desktop-file-utils-0.27-r1 (dev-util/desktop-file-utils) amd64 `-- x11-misc/shared-mime-info-2.4-r1 (x11-misc/shared-mime-info) amd64 Ich würde mir zunächst Open Cascade anschauen. Dies ist ein sogenannter CAD Kernel. Diese Kernels kann man nutzen um CAD Software zu bauen. Man sollte hierbei auch bedenken das alleine bei Freecad hunderte an Entwicklern über Jahre an der Software gearbeitet haben. Überlegt euch, welche Ziele ihr erreichen könnt. Wenn eure Ziele zu hoch sind, werden eure Ideen im Sande verlaufen. Ich würde wahrscheinlich erst mal versuchen ohne GUI eine art Durchstoß zu schaffen, um zu sehen, ob eure Ideen überhaupt tragfähig sind. Überlegt euch auch, für wen ihr das machen wollt. Die Zielgruppe muss ja das Produkt am Ende des Tages annehmen.
26. November 202426. Nov Autor Danke für die Rückmeldung. Letztlich ist genau das unser Ziel zu versuchen erstmal ohne das Ganze drumherum, wie GUIs etc. ein Stück Software zu haben, dass aus dem Input einen Output generiert. Ziel ist es halt möglichst wenig selbst zu coden. Deshalb war die Ausgangsidee ein Sprachmodell zu nutzen, das automatisch zeichnet. Hat jemand damit Erfahrung? Gibt es eventuell ein chatgpt Zeichenmodul?
26. November 202426. Nov Ich hab die Befürchtung, dass es so nicht funktionieren wird, was ihr da vorhabt. So funktionieren Bildgeneratoren einfach nicht. Sie basieren auf Zufall und Wahrscheinlichkeitsberechnungen und nicht auf exakte angaben. Das Ergebnis ist nicht deterministisch und schon gar nicht der Norm entsprechend. Darum haben Bildgeneratoren z.B. ein Problem mit Texten. Sie können Texte einfach nicht richtig darstellen, obwohl es genug Trainingsmaterial gibt, das man auch leicht selbst erstellen kann. Ihr werdet es also nicht hinbekommen, mit einem Prompt exakt das gewünschte Ergebnis zu bekommen, was meiner Meinung sowieso total unmöglich ist. Man sieht es ja an der Softwareentwicklung. Die klare Beschreibung der Anforderung ist seit der Geburtsstunde der Softwareentwicklung ein riesiges Problem. Auch ist ein Bildgenerator nicht in der Lage, Vektorgrafiken zu erzeugen, sondern ausschließlich Rastergrafiken aber mit Rastergrafiken kommt man nicht weit, weil Konstruktionszeichnungen auf auf DIN A0 gedruckt werden und da muss die Zeichnung weiterhin scharf bleiben, was nur mit Vektorgrafiken möglich ist.
27. November 202427. Nov wenn es stark vereinfach ist, evtl. lassen sich Zahnräder so erstellen, und ggf. Umrechnen auf 3D Hat ein Freund von mir mal in Basic Programiert: https://dreal.ch/Deutsch/Download/Zahnrad.html
27. November 202427. Nov Autor vor 19 Stunden schrieb Whiz-zarD: Ich hab die Befürchtung, dass es so nicht funktionieren wird, was ihr da vorhabt. So funktionieren Bildgeneratoren einfach nicht. Sie basieren auf Zufall und Wahrscheinlichkeitsberechnungen und nicht auf exakte angaben. Das Ergebnis ist nicht deterministisch und schon gar nicht der Norm entsprechend. Darum haben Bildgeneratoren z.B. ein Problem mit Texten. Sie können Texte einfach nicht richtig darstellen, obwohl es genug Trainingsmaterial gibt, das man auch leicht selbst erstellen kann. Ihr werdet es also nicht hinbekommen, mit einem Prompt exakt das gewünschte Ergebnis zu bekommen, was meiner Meinung sowieso total unmöglich ist. Man sieht es ja an der Softwareentwicklung. Die klare Beschreibung der Anforderung ist seit der Geburtsstunde der Softwareentwicklung ein riesiges Problem. Auch ist ein Bildgenerator nicht in der Lage, Vektorgrafiken zu erzeugen, sondern ausschließlich Rastergrafiken aber mit Rastergrafiken kommt man nicht weit, weil Konstruktionszeichnungen auf auf DIN A0 gedruckt werden und da muss die Zeichnung weiterhin scharf bleiben, was nur mit Vektorgrafiken möglich ist. Danke für die ausführliche Antwort. Gibt es denn eventuell die Möglichkeit eine eigene Software zu bauen, die Vektorgrafiken erzeugt ? Bearbeitet 27. November 202427. Nov von daniel861
28. November 202428. Nov vor 9 Stunden schrieb daniel861: Gibt es denn eventuell die Möglichkeit eine eigene Software zu bauen, die Vektorgrafiken erzeugt ? Klar gibt es die. SVG ist ein ziemlich einfaches plaintext format. Als Softwareentwickler solltest du aber doch schon mal mit solchen Sachen konfrontiert worden sein, oder? Am 26.11.2024 um 20:27 schrieb Whiz-zarD: Das Ergebnis ist nicht deterministisch KI Modelle selbst sind deterministisch. Muss nur richtig in der API konfiguriert werden. Sprachmodell können aber nicht wirklich mit Zahlen und Bits jonglieren. Es wäre möglich, eine syntaktische Beschreibungssprache wie JSON Graph oder ähnliches erzeugen zu lassen, woraus du Grafiken erstellen könntest. Je bekannter desto höher die Erfolgswahrscheinlichkeit. Es könnte nötig sein, zusätzliche Finetuning Schritte durchzuführen. Da hätte ich Zweifel, ob das für dich so einfach umsetzbar wäre.
28. November 202428. Nov vor 4 Stunden schrieb Shannon: Es wäre möglich, eine syntaktische Beschreibungssprache wie JSON Graph oder ähnliches erzeugen zu lassen, woraus du Grafiken erstellen könntest. Das wäre der Ansatz, den ich auch wählen würde. TeXCAD 4.6 kann das auch (s. Beispiel). https://texcad.sourceforge.io
28. November 202428. Nov Autor vor 9 Stunden schrieb Shannon: Klar gibt es die. SVG ist ein ziemlich einfaches plaintext format. Als Softwareentwickler solltest du aber doch schon mal mit solchen Sachen konfrontiert worden sein, oder? KI Modelle selbst sind deterministisch. Muss nur richtig in der API konfiguriert werden. Sprachmodell können aber nicht wirklich mit Zahlen und Bits jonglieren. Es wäre möglich, eine syntaktische Beschreibungssprache wie JSON Graph oder ähnliches erzeugen zu lassen, woraus du Grafiken erstellen könntest. Je bekannter desto höher die Erfolgswahrscheinlichkeit. Es könnte nötig sein, zusätzliche Finetuning Schritte durchzuführen. Da hätte ich Zweifel, ob das für dich so einfach umsetzbar wäre. Danke für die Rückmeldung. Bin im SAP-Umfeld unterwegs, aber klar es gibt für alles Bibliotheken. Die Frage war etwas unpräzise formuliert. Die Antwort hilft mir aber sehr weiter. Bearbeitet 28. November 202428. Nov von daniel861
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.