title: Ανάπτυξη λογισμικού υπολογισμού γεωμετρικών αναπτυγμάτων με τη βοήθεια τρισδιάστατης μοντελοποίησης
title: Software development for the calculation of geometric development via three-dimensional modeling
Creators: name: Μαραγκουδακης Αντωνιος-Εμμανουηλ
Publisher: name: Technical University of Crete
Year: 2022

description: Στην επιστήμη των υπολογιστών μια διεπαφή προγραμματισμού εφαρμογών (Application Programming Interface - API), επιτρέπει σε μία εφαρμογή να εξάγει πληροφορίες από ένα κομμάτι λογισμικού και να τις χρησιμοποιεί σε μια άλλη εφαρμογή. Συχνά σκοπός δεν είναι μόνο η εξαγωγή των πληροφοριών αυτών αλλά και η εκτέλεση ενεργειών όπως η κλήση ρουτίνων σε μία εφαρμογή. 
Στην παρούσα διπλωματική υλοποιήθηκε ένα API το οποία είχε ως σκοπό να δέχεται είσοδο από έναν χρήστη και να καλεί ρουτίνες εντός της εφαρμογής τρισδιάστατης μοντελοποίησης Autodesk Inventor. Δημιουργήθηκε δηλαδή ένα Inventor API, το οποίο συντελείται από μεθόδους που υλοποιήθηκαν και καλούνται – για πέντε περιπτώσεις Κυλινδρικών Τομών - με σκοπό την κατασκευή των επιφανειακών τρισδιάστατων μοντέλων, την ανάπτυξη αυτών στον δισδιάστατο χώρο και εν συνέχεια τον υπολογισμό των δισδιάστατων αναπτυγμάτων. Τέλος, επιπλέον μέθοδοι υλοποιήθηκαν και καλούνται ως επακόλουθο των προαναφερθέντων, με καταληκτικό σκοπό τους, την δημιουργία του Μηχανολογικού Σχεδίου των αναπτυγμάτων των Κυλινδρικών Τομών.
Η συνολική εργασία λοιπόν, έχει σαν σκοπό την ανάπτυξη της προπεριγραφείσας εφαρμογής , η οποία και υλοποιήθηκε εντός του Microsoft Visual Studio, το οποίο είναι ένα ολοκληρωμένο περιβάλλον ανάπτυξης εφαρμογών (Integrated Development Environment - IDE). Στο Microsoft Visual Studio δύο ήταν τα βασικά μέρη που αναπτύχθηκαν. Μία γραφική διεπαφή χρήστη και οι ρουτίνες όπου παράγουν τα επιθυμητά αντικείμενα εντός του Autodesk Inventor. Για την ανάπτυξη της γραφικής διεπαφής χρησιμοποιήθηκε η πλατφόρμα των Windows Forms, ενώ για τον προγραμματισμό των ενεργειών του Inventor API χρησιμοποιήθηκε η βιβλιοθήκη autodesk.inventor.interop.dll, η οποία είναι μία βιβλιοθήκη δυναμικής σύνδεσης (Dynamic Link Library - DLL). Η γλώσσα προγραμματισμού που χρησιμοποιήθηκε για την ανάπτυξη της εφαρμογής είναι η Visual Basic και επομένως η εφαρμογή αυτή μπορεί να θεωρηθεί στο σύνολό της ένα Inventor VBA (Visual Basic Application).
Η γραφική διεπαφή χρήστη που δημιουργήθηκε περιγράφεται από το αγγλικό ακρωνύμιο GUI (Graphical User Interface). Ένα GUI ενσωματώνεται σε μια εφαρμογή έτσι ώστε να της επιτρέπει να περιέχει γραφικά στοιχεία όπως εικονίδια, μενού, πλαίσια ελέγχου και άλλα τα οποία την καθιστούν ευκολότερη στην αλληλεπίδραση του χρήστη. Στην προκειμένη περίπτωση το GUI μπορεί να θεωρηθεί ως μία διεπαφή - μάσκα η οποία είναι απλή για τον χρήστη, ενώ παράλληλά έχει σαν σκοπό να κρύψει από αυτόν στο background ότι πραγματικά εκτελείτε εντός του Inventor και μόνο να του παραθέτει τα αποτελέσματα προς αποθήκευση.
Στην παρούσα διπλωματική θα αναλυθούν ο τρόπος με τον οποίο το GUI  συνεργάζεται με το API καθώς και το πως το API καλεί μία σειρά από ρουτίνες εντός του Inventor. Θα αναλυθεί ο σκοπός της κάθε ρουτίνας που δημιουργήθηκε, δηλαδή, το τι αυτή δημιουργεί εντός του Inventor, για ποιόν λόγο το δημιουργεί ή τι προβλήματα λύνει. Τέλος θα ακολουθήσουν τα συμπεράσματα καθώς και θα γίνει λόγος για πιθανές μελλοντικές εργασίες που είναι δυνατόν να επακολουθήσουν της εργασίας αυτής.

description: In computer science, an Application Programming Interface (API) allows an application to extract information from one piece of software and use it in another. Often the purpose is not only to extract this information but also to perform actions such as calling routines within an application.
In this thesis an Inventor API which calls routines within the 3D modeling application Autodesk Inventor was created. During operation, routines are called, which generate Mechanical Drawing of the 2D development for five cases of cylindrical intersection.  In short, the API builds  a 3D model based on the user input, develops it in 2D space and outputs intersection specifications as well as the original 3D model within the mechanical drawing generated. 
Overall, the principal aim of this thesis was to develop the aforementioned application, this was implemented in two main parts using the Integrated Development Environment (IDE), Microsoft Visual Studio. The first of these was,  a user interface. The second was the routines that actually produce the desired objects within Inventor. The interface was developed using the Windows Forms platform, while the Inventor API was developed using the Dynamic Link Library (DLL) autodesk.inventor.interop.dll. The language used to develop the application is Visual Basic and therefore this application can be considered as an Inventor VBA (Visual Basic Application).
The interface created is essentially a Graphical User Interface (GUI). A GUI is defined as an interface which facilitates the user through the use of graphical elements such as icons, menus, check boxes, and others. In this thesis the GUI acts as a user-friendly mask. It does this by hiding the actual process executed in Inventor from the user and only presenting him with the finished product of the calculation and modeling. 
This thesis will expand upon how each case of cylindrical intersection is handled by the application. In doing so it will explain—theoretically and practically—how the GUI interacts with the API, how the API exchanges information with Inventor, as well as how the relevant routines are called within Inventor. Additionally, the purpose, function, and troubleshooting that went into the development of each routine will be analyzed. Finally, the conclusions, the scope for improvement in future work and the general possibilities of Inventor APIs will be mentioned.