Εισαγωγή στη δημιουργία σεναρίων (scripting)
1. Ρύθμιση του περιβάλλοντος δημιουργίας σεναρίων.
Η χρήση σεναρίων προσφέρει έναν πιο ισχυρό τρόπο αλληλεπίδρασης με το OghmaNano. Αντί να χρησιμοποιείτε το γραφικό περιβάλλον χρήστη, μπορείτε να χρησιμοποιήσετε την αγαπημένη σας γλώσσα προγραμματισμού για να αλληλεπιδράσετε με το OghmaNano. Αυτό σας δίνει τη δυνατότητα να εκτελείτε προσομοιώσεις με έναν πολύ πιο ισχυρό τρόπο από ό,τι θα ήταν δυνατό χρησιμοποιώντας μόνο το γραφικό περιβάλλον. Παρακάτω, δίνω παραδείγματα χρήσης των MATLAB και Python για την εκτέλεση του OghmaNano, αλλά μπορείτε να χρησιμοποιήσετε οποιαδήποτε γλώσσα θέλετε, αρκεί να διαθέτει αναγνώστη/συγγραφέα JSON. Οι γλώσσες Perl και Java είναι δύο παραδείγματα.
Πριν ξεκινήσετε να γράφετε σενάρια για το OghmaNano, πρέπει να ενημερώσετε τα Windows σχετικά με τη θέση εγκατάστασης του OghmaNano. Από προεπιλογή, το OghmaNano εγκαθίσταται στον φάκελο C:\Program Files x86\OghmaNano. Σε αυτόν τον φάκελο, θα βρείτε δύο εκτελέσιμα αρχεία των Windows: το oghma.exe, το οποίο είναι η γραφική διεπαφή χρήστη, και ένα δεύτερο εκτελέσιμο αρχείο, το oghma_core.exe. Μπορείτε να εκτελέσετε το oghma_core.exe από τη γραμμή εντολών χωρίς να χρησιμοποιήσετε το oghma.exe. Απλώς πρέπει να μεταβείτε σε έναν φάκελο που περιέχει έναν φάκελο sim.oghma και να καλέσετε το oghma_core.exe. Αυτό μπορεί να γίνει από τη γραμμή εντολών των Windows, από το Matlab, από την Python ή από οποιαδήποτε άλλη γλώσσα σεναρίων. Ωστόσο, πριν μπορέσετε να το κάνετε αυτό στα Windows, πρέπει να προσθέσετε τον φάκελο C:\Program Files x86\OghmaNano στη διαδρομή των Windows, ώστε τα Windows να γνωρίζουν πού είναι εγκατεστημένο το OghmaNano. Ένα παράδειγμα για το πώς να το κάνετε αυτό σε μια σύγχρονη έκδοση των Windows δίνεται στον σύνδεσμο https://docs.microsoft.com/en-us/previous-versions/office/developer/sharepoint-2010/ee537574(v=office.14).
Φαίνεται ότι κάθε νέα έκδοση των Windows αλλάζει τη θέση των επιλογών διαμόρφωσης, επομένως ίσως χρειαστεί να αναζητήσετε οδηγίες για την έκδοση των Windows που χρησιμοποιείτε.
2. Περισσότερες συμβουλές σχετικά με τη δημιουργία σεναρίων.
sim.json ως ένα δέντρο με δυνατότητα πλοήγησης.Φανταστείτε το GUI ως μια δομημένη εφαρμογή προβολής JSON.
Ένα χρήσιμο νοητικό μοντέλο κατά τη δημιουργία σεναρίων για το OghmaNano είναι να αντιμετωπίζετε ολόκληρο το GUI ως μια δομημένη προβολή και έναν επεξεργαστή για το υποκείμενο αρχείο sim.json. Κάθε στοιχείο, ρυθμιστικό, πίνακας και παράθυρο διαλόγου τελικά διαβάζει και γράφει σε αυτό το αρχείο. Δεν υπάρχει ξεχωριστή «κατάσταση GUI» – το JSON είναι η κατάσταση. Στην κορδέλα Αυτοματισμού, το JSON Explorer (Εικόνα ??) σας επιτρέπει να περιηγηθείτε απευθείας στο αρχείο sim.json ως μια ιεραρχική δομή. Αυτός είναι συχνά ο πιο γρήγορος τρόπος για να κατανοήσετε πού «βρίσκεται» μια παράμετρος στο JSON και να επιβεβαιώσετε ότι μια ενέργεια GUI γράφει στο πεδίο που περιμένετε.
Έλεγχος αντικειμένων μέσω αντιγραφής και επικόλλησης.
Μια άλλη χρήσιμη τεχνική είναι να εκμεταλλευτείτε τον τρόπο με τον οποίο λειτουργεί η λειτουργία αντιγραφής και επικόλλησης σε όλο το περιβάλλον γραφικού χρήστη (GUI). Όταν αντιγράφετε ένα αντικείμενο – για παράδειγμα, κάνοντας δεξί κλικ και αντιγράφοντας ένα επίπεδο στον επεξεργαστή επιπέδων ή αντιγράφοντας ένα επιλεγμένο αντικείμενο στην τρισδιάστατη προβολή – το OghmaNano μπορεί να τοποθετήσει απευθείας στην προχείρη (clipboard) την υποκείμενη δομή JSON που είναι υπεύθυνη για τη δημιουργία αυτού του αντικειμένου.
Εάν αντιγράψετε και επικολλήσετε το περιεχόμενο του προχείρου σε έναν επεξεργαστή απλού κειμένου (Notepad, Notepad++, VS Code, κ.λπ.), μπορείτε να εξετάσετε το ακριβές μπλοκ JSON που χρησιμοποιείται για τον ορισμό αυτού του αντικειμένου ή της εγγραφής πίνακα. Αυτό παρέχει μια άμεση και σαφή εικόνα του τρόπου με τον οποίο το αντικείμενο αναπαρίσταται εσωτερικά και συχνά είναι ο πιο γρήγορος τρόπος για να εντοπίσετε τα σχετικά κλειδιά για τη δημιουργία σεναρίων.
Πολλά μενού περιβάλλοντος παρέχουν επίσης επιλογές όπως «Αντιγραφή JSON», «Αντιγραφή διαδρομής JSON» ή «Αντιγραφή διαδρομής μέσω σεναρίου». Αυτές οι εντολές αποκαλύπτουν την ακριβή θέση ενός αντικειμένου εντός της ιεραρχίας JSON, καθιστώντας πολύ πιο εύκολη την εύρεση και την τροποποίηση της αντίστοιχης καταχώρησης στα σενάρια.
Αν βρίσκεστε σε δύσκολη θέση: χρησιμοποιήστε ένα εργαλείο σύγκρισης αρχείων.
Εάν δεν είστε σίγουροι για το πώς ένα συγκεκριμένο στοιχείο γραφικής διεπαφής (GUI) αντιστοιχεί στο αρχείο sim.json, μια απλή και αποτελεσματική τεχνική εντοπισμού σφαλμάτων είναι η χρήση ενός εργαλείου σύγκρισης αρχείων (diff).
- Δημιουργήστε ένα αντίγραφο ασφαλείας του αρχείου προσομοίωσής σας, π.χ.
sim.json→sim.back. - Αλλάξτε μία μόνο παράμετρο στο γραφικό περιβάλλον χρήστη.
- Συγκρίνετε το τροποποιημένο αρχείο
sim.jsonμε το αντίγραφο ασφαλείας που έχετε, χρησιμοποιώντας ένα εργαλείο σύγκρισης, όπως το KDiff3. - Η έξοδος της εντολής `diff` θα σας δείξει ακριβώς ποια γραμμή (ή τμήμα) του αρχείου JSON έχει αλλάξει, αποκαλύπτοντας πώς αυτό το στοιχείο του γραφικού περιβάλλοντος χρήστη αναπαρίσταται εσωτερικά.
Αυτός είναι συχνά ο πιο γρήγορος τρόπος για να αντιστοιχίσετε ένα στοιχείο διεπαφής χρήστη σε ένα συγκεκριμένο πεδίο JSON, ειδικά σε μεγάλες ιεραρχίες παραμέτρων.
Χρησιμοποιώντας αναγνωριστικά αντικειμένων για την εύρεση εγγραφών στο sim.json.
Τα περισσότερα δομημένα αντικείμενα στο OghmaNano – όπως επίπεδα, σχήματα, σαρώσεις παραμέτρων και άλλες ιεραρχικές οντότητες – διαθέτουν ένα μοναδικό αναγνωριστικό (ID), συνήθως μια τυχαία δεκαεξαδική συμβολοσειρά περίπου 16 χαρακτήρων.
Το αναγνωριστικό αντικειμένου εμφανίζεται συχνά απευθείας στο περιβάλλον χρήστη. Για παράδειγμα, στην Εικόνα ??, το αναγνωριστικό εμφανίζεται στην κάτω αριστερή γωνία του παραθύρου επεξεργασίας αντικειμένου. Αυτό το ίδιο αναγνωριστικό εμφανίζεται επίσης στην αντίστοιχη εγγραφή στο αρχείο sim.json.
Αυτά τα αναγνωριστικά είναι εξαιρετικά χρήσιμα κατά την πλοήγηση σε μεγάλες ή πολύπλοκες δομές JSON. Αναζητώντας τη συμβολοσειρά του αναγνωριστικού στο sim.json, μπορείτε να εντοπίσετε άμεσα το ακριβές αντικείμενο που σχετίζεται με ένα συγκεκριμένο στοιχείο GUI, ακόμη και όταν η γύρω ιεραρχία είναι περίπλοκη.