CAD Software mit .Net + GDI+

  • C#
  • .NET (FX) 4.5–4.8

Es gibt 33 Antworten in diesem Thema. Der letzte Beitrag () ist von Niko Ortner.

    CAD Software mit .Net + GDI+

    Hy, nach langer zeit melde ich mich mal zurück. Da ich in der Ausbildung zum Metallbauer bin, würde ich gerne eine Anwendung Schreiben mit der ich Simpele Konstruktionszeichnungen erstellen kann. Nun stellt sich die Frage GDI+ oder doch OpenGL oder DirectX

    Hi
    warum verwendest du nicht eine bereits bestehende Anwendung, wie bspw. Autodesk Inventor o.Ä.? Nicht, dass ich mich in dem Bereich sonderlich gut auskenne...
    Es ist aber auf jeden Fall kein leichtes Unterfangen, das in GDI oder gar DirectX/OpenGL/Vulkan/... zu implementieren.

    Viele Grüße
    ~blaze~
    Es geht mir vor allem darum das ich mich mal wieder Sinvoll mit dem Programmieren auseinander setzen möchte. Habe jetzt ein paar monate nichts gemacht. Vor allem soll die Software wirklich Simpel sein, d.h. nur die Grundformen der Geometrie zeichnen können. Wirklich nichts Weltbewegendes.

    Klar könnte ich für das auch Paint, Inkscape, Sketchup oder LibreCAD nutzen, aber wie gesagt ich mag das Selbstmachen um mich mit dem Programmieren mal wieder zu beschäftigen.

    Grüße Andy

    Vergisses.
    Die Geschichte ist überaus kompliziert. Schon allein die DatenModell-Seite erfordert fundierte Kenntnisse.
    Dann musst du Hovern, selektieren und Dragging implementieren, inklusive drehen von Objekten, skalieren - und wie gesagt, die ganze Choose auch in ein relationales Datenmodell transportieren - bzw. davon auslesen.

    (Auf DirectX, Vulkan etc. bin ich dabei noch garnet eingegangen, kenne ich mich auch nicht mit aus.)
    Im Zweifel würde ich dann eher mit einer CAD-Bibliothek arbeiten...

    stackoverflow.com/questions/8687420/c-sharp-cad-libraries

    ----
    Ich habe sehr viel mit CAD zu tun und tobe mich programmiermäßig aus, indem ich meine CAD Anwendung (Catia) per COM fernsteuere. Da kann man ganz nette Sachen machen und die großen Pakete unterstützen das fast alle in der einen oder anderen Weise...
    Ja über das Drehen und Größe ändern habe ich mir schon gedankene gemacht, dass Selektieren hatte ich bereits einmal gelöst. Werde mal schauen. Ich danke euch aufjedenfall für eure Antworten :)

    Ich denke mal, .NET wird nicht so gut sein für eine CAD-Anwendung, denn es muss ja flüssig, und sauber ​dargestellt werden (damit meine ich, ruckelfrei, und keine Grafikfehler, etc.).
    Do Until Nothing IsNot Nothing
    Console.WriteLine("Viel Spaß dabei, mit diesen Code deine Zeit zu verschwenden, und zwar für immer!")
    Loop
    @'Kilobyte' Und warum sollte das in .NET nicht funktionieren?

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    @Trade .NET wurde nicht für sehr anspruchsvolle Anwendungen (wie z.B. CAD-Anwendungen) erstellt. Da würde ich lieber C++ nehmen.
    Do Until Nothing IsNot Nothing
    Console.WriteLine("Viel Spaß dabei, mit diesen Code deine Zeit zu verschwenden, und zwar für immer!")
    Loop
    .Net ist nicht Java. Mit DirectX oder OpenGL sind auch sehr komplexe 3D-Grafiken ohne Probleme möglich in .Net (dass es mit GDI+ nicht funktioniert ist klar).
    Siehe z.B. das Spiel Cities Skylines, das vollständig in C# geschrieben ist und auch nicht schlechter läuft als andere Spiele aus dem Genre.
    @Artentus Cities Skylines ist in Unity gemacht worden... Außerdem war .NET nicht dafür gedacht, CAD-Anwendungen zu erstellen. Es würde auch vll. Performanceprobleme geben.
    Do Until Nothing IsNot Nothing
    Console.WriteLine("Viel Spaß dabei, mit diesen Code deine Zeit zu verschwenden, und zwar für immer!")
    Loop

    ​Kilobyte schrieb:

    Cities Skylines ist in Unity gemacht worden
    Joa richtig, ist doch kein Widerspruch? Zeigt ja nur, dass man mit C# genauso viel aus der Engine rausholen kann wie mit C++, wie ich eben sagte.
    Bei so einem Projekt kommt es viel mehr darauf an, dass man sauber und effizient programmiert, als auf die verwendete Sprache.
    @Artentus Ich meinte, dass Unity eine andere Framework ist als .NET, und nicht die Programmiersprache.
    Do Until Nothing IsNot Nothing
    Console.WriteLine("Viel Spaß dabei, mit diesen Code deine Zeit zu verschwenden, und zwar für immer!")
    Loop

    Artentus schrieb:

    Unity verwendet Mono, die OpenSource-Implementierung von .Net.

    Ja, aber Unity ist eine Game-Engine, keine Anwendungs-Engine.
    Do Until Nothing IsNot Nothing
    Console.WriteLine("Viel Spaß dabei, mit diesen Code deine Zeit zu verschwenden, und zwar für immer!")
    Loop

    Kilobyte schrieb:

    .NET wurde nicht für sehr anspruchsvolle Anwendungen (wie z.B. CAD-Anwendungen) erstellt.

    Kilobyte schrieb:

    Außerdem war .NET nicht dafür gedacht, CAD-Anwendungen zu erstellen.

    Und mit welchen Argumenten stützt du diese Aussagen? Nenn doch mal paar Quellen, wo Microsoft diese Aussagen macht.
    Also ich habe keine Informationen darüber, wofür es explizit erschaffen wurde, aber ich kenne zumindestens die Möglichkeiten, und klar kann man anspruchsvolle Anwendungen mit .Net-Sprachen erstellen (warum soll das nicht möglich sein und wo definierst du den Anspruch, der zB. wie von dir erwähnt C++ abgrenzt?).


    Kilobyte schrieb:

    Ich meinte, dass Unity eine andere Framework ist als .NET, und nicht die Programmiersprache.

    Letztendlich wirst du mit C++ auch auf irgendwelche Programmierschnittstellen zugreifen müssen (zB. DirectX), um deine Grafiken darzustellen.
    Warum soll man das dann mit .Net nicht dürfen?


    Soll nicht böse rüberkommen, nur finde ich deine Aussagen ziemlich unangebracht oder einfach gesagt falsch. Dann würde ich mir zumindestens Argumente/Quellen zu deinen Aussagen wünschen, um mich eines Besseren belehren zu lassen.
    Die Performance-Unterschiede zwischen C++ und C# sind nun nicht so groß als, dass eine CAD Anwendung nicht tadellos in C# laufen würde.
    Im Gegenteil, wenn du in C++ nicht wirklich weißt was du tust, so wirste damit nur so viel Mist bauen, dass du am Ende langsamer bist als mit C#.
    Eine Begründung weshalb C# für eine CAD Anwendung zu langsam sein soll, wäre von Vorteil.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.