Στο σύντομο αυτό εγχειρίδιο, θα μάθουμε πώς μπορούμε να εγκαταστήσουμε εύκολα και γρήγορα plugins στο περιβάλλον Google Sketch Up και να τα χρησιμοποιούμε μέσα από ένα μενού Plugins που θα δημιουργήσουμε. Στο διαδίκτυο υπάρχει μία πληθώρα έτοιμων δωρεάν κι εμπορικών plugins. Ενδεικτικοί σύνδεσμοι είναι οι ακόλουθοι: Plugin Index Didier Bur's Ruby Depot Smustard Ας ξεκινήσουμε λοιπόν! Όπως γνωρίζεται ήδη, τα Plugins είναι αρχεία με την κατάληξη.rbz ή.rb, τα οποία πρέπει να τοποθετηθούν στον κατάλληλο φάκελο στο directory εγκατάστασης του λογισμικού Sketchup ώστε να "φορτώνονται" αυτόματα κάθε φορά που εκκινεί το πρόγραμμα. Εγκαθιστώντας αρχεία RBZ στο περιβάλλον SketchUp Από την έκδοση SketchUp 8 M2 και μετά, οι χρήστες του SketchUp μπορούν πολύ εύκολα να εγκαταστήσουν plugins με ένα κλικ, μέσω του κατάλληλου μενού. Επιλέξτε το μενού Window >>Preferences ώστε να σας εμφανιστεί το διπλανό πλαίσιο διαλόγου. Επιλέγοντας Extensions από την πλαϊνή λίστα, μπορείτε να ενεργοποιήσετε/απενεργοποιήσετε τα ήδη εγκατεστημένα plugins. Πατώντας στο κουμπί Install Extension μπορείτε να εγκαταστήσετε νέες υλοποιήσεις, αναζητώντας στο δίσκο το.rbz που "κατεβάσατε". Μετά την επιλογή του αρχείου εμφανίζεται ένα παράθυρο προειδοποίησης, ζητώντας επιβεβαίωση για την εισαγωγή του αρχείου και την εμπιστοσύνη στο δημιουργό του script. ΠΡΟΣΕΞΤΕ ΛΟΙΠΟΝ ΤΗΝ ΠΗΓΗ ΑΠΟ ΤΗN ΟΠΟΙΑ "ΚΑΤΕΒΑΣΑΤΕ" ΤΟ PLUGIN! Το τελικό παράθυρο διαλόγου επιβεβαιώνει την εγκατάσταση! Εγκατάσταση plugins στο περιβάλλον GOOGLE SKETCHUP Δαμιανάκης Α. Λιβανός Γ. Σελίδα 1
Εγκατάσταση αρχείων.rb στο SketchUp Η μορφή αρχείου.rb ήταν η πρωταρχική "λύση" για τη διανομή SketchUp Plugins. Τα αρχεία αυτής της μορφής είναι απλά αρχεία κειμένου που περιέχουν εντολές σύμφωνα με τη γραμματική και το συντακτικό της γλώσσας Ruby. Η πολυπλοκότητα και το πλήθος των εντολών που μπορούν να περιέχουν ποικίλουν, ανάλογα με το μοντέλο σχεδίασης και τη λειτουργικότητα που θα προσφέρει. Στη γενική μορφή, τα αρχεία αυτά εισάγονται χειροκίνητα. Η πρώτη ενέργεια είναι να εντοπιστεί ο φάκελος SketchUp Plugins στο υπολογιστικό σύστημα του χρήστη. Υπενθυμίζεται ότι ο φάκελος αυτός βρίσκεται ακολουθώντας τη διαδρομή: C:\Users\<your_windows_user_name>\AppData\Roaming\SketchUp\SketchUp[n]\Sket chup\plugins (ΕΚΔΟΣΗ ΜΕΤΑ ΤΟ SKETCHUP 2013) C:\Program Files (x86)\sketchup\sketchup [n]\plugins (ΕΚΔΟΣΗ ΠΡΙΝ ΤΟ SKETCHUP 2013) Η εγκατάσταση του plugin γίνεται με τη διαδικασία drag and drop, αντιγράφοντας το.rb αρχείο στη κατάλληλη θέση προορισμού. Για να "τρέξει" το script το πρόγραμμα πρέπει να επανεκκινήσει. Έστω ότι θέλετε να εγκαταστήσετε ένα plugin το οποίο θα δημιουργηθεί αυτόματα μία σκάλα και ότι το αρχείο που περιέχει τον κώδικα Ruby είναι το stairs.rb. Στις παρακάτω γραμμές αναλύεται και σχολιάζεται η υλοποίηση του κώδικα. Βήμα 1: Δημιουργία αντικειμένου menu # First we pull in the standard API hooks. το κείμενο μετά από το σύμβολο # είναι σχόλια και αγνοείται από τον compiler require 'sketchup.rb' # Show the Ruby Console at startup so we can # see any programming errors we may make. SKETCHUP_CONSOLE.show # Add a menu item to launch our plugin. UI.menu("Plugins").add_item("Draw stairs") Εμφάνιση κονσόλας για να βλέπουμε τυχόν λάθη που τυπώνονται Δημιουργία μενού "Plugins" κι υπομενού "Draw stairs" { Τα σύμβολα {} ορίζουν πού αρχίζει και τελειώνει UI.messagebox("I'm about to draw stairs!") ένα μπλοκ εντολών } Εγκατάσταση plugins στο περιβάλλον GOOGLE SKETCHUP Δαμιανάκης Α. Λιβανός Γ. Σελίδα 2
Αν έχουν πάει όλα καλά, μόλις επαεκκινήσετε το SketchUp θα έχει δημιουργηθεί ένα μενού Plugins στο κεντρικό μενού και ένα υπομενού Draw stairs θα έχει προσαρτηθεί στο μενού Plugins. Η επιλογή "Draw stairs" ουσιαστικά θα εξετάζει το αρχείο stairs.rb και θα ενεργοποιεί το κατάλληλο τμήμα κώδικα που περιέχει. Αν υπάρχει πρόβλημα, τότε θα εμφανιστεί κάποιο μήνυμα λάθους στη γκρίζα περιοχή του Ruby Console. Βήμα 2: Δημιουργία συνάρτησης/μεθόδου η οποία θα καλείται Είναι πολύ χρήσιμο ο κώδικας που υλοποιεί μία ιδέα-σχέδιο να μπορεί να χρησιμοποιηθεί άμεσα κι εύκολα παραπάνω από μία φορά, χωρίς να επαναλαμβάνονται οι ίδιες εντολές. Για το λόγο αυτό δημιουργούμε "συναρτήσεις/μεθόδους", δηλαδή ένα μπλοκ από εντολές, οι οποίες θα "καλούνται" χρησιμοποιώντας μόνο το "κωδικό" όνομα της μεθόδου (draw_stairs στο παράδειγμά μας). Παρακάτω εμφανίζεται ο κώδικας που δημιουργεί τα σκαλοπάτια: Δήλωση μεθόδου με το όνομα draw _stairs # Get "handles" to our model and the Entities collection it contains. Δήλωση μεταβλητών που "χειρίζονται" οντότητες # Create a series of "points", each a 3-item array containing x, y, and z. pt1 = [0, 0, 0] pt2 = [9, 0, 0] pt3 = [9, 9, 0] pt4 = [0, 9, 0] # Call methods on the Entities collection to draw stuff. Δήλωση συντεταγμένων σημείων εκκίνηση σκαλοπατιών Αρχή και τέλος συνάρτησης/μεθόδου # Add a menu item to launch our plugin. Δημιουργία μενού κι υπομενού UI.menu("PlugIns").add_item("Draw stairs") { Δήλωση των ενεργειών που θα εκτελούνται: } UI.messagebox("I'm about to draw stairs!") # Call our new method. draw_stairs 1. Εκτύπωση μηνύματος 2. Κλήση μεθόδου για σχεδίαση σκάλας Εγκατάσταση plugins στο περιβάλλον GOOGLE SKETCHUP Δαμιανάκης Α. Λιβανός Γ. Σελίδα 3
Με την επενεκκίνηση του SketchUp, χρησιμοποιώντας το μενού Plugins>>Draw_stairs θα σχηματιζόταν ένα τετράγωνο διαστάσεων 9"x9" στην αρχή του συστήματος συντεταγμένων. Βήμα 3: Χρήση μεταβλητών κι επαναληπτικών για τη σχεδίαση σκαλοπατιών Στο σημείο αυτό, χρειάζεται να δημιουργηθούν τα σκαλοπάτια με επαναληπτικό τρόπο ώστε όλα τα σκαλοπάτια να είναι ομοιόμορφα με το πρώτο. Θα χρειαστούμε επομένως μεταβλητές (variables), οπότε θα εμπλουτίσουμε τη συνάρτηση/μέθοδο draw_stairs, η νέα μορφή της οποίας θα είναι η ακόλουθη (οι γραμμές με πράσινο χρώμα είναι οι διαφορές με την προηγούμενη υλοποίηση): # Create some variables. Δήλωση μεταβλητών stairs = 10 rise = 8 run = 12 width = 100 # Get handles to our model and the Entities collection it contains. # Loop across the same code several times for step in 1..stairs Έναρξη βρόγχου επανάληψης # Calculate our stair corners. x1 = 0 x2 = width y1 = run * step y2 = run * (step + 1) z = rise * step # Create a series of "points", each a 3-item array containing x, y, and z. pt1 = [x1, y1, z] pt2 = [x2, y1, z] pt3 = [x2, y2, z] pt4 = [x1, y2, z] # Call methods on the Entities collection to draw stuff. Τέλος βρόγχου επανάληψης Εγκατάσταση plugins στο περιβάλλον GOOGLE SKETCHUP Δαμιανάκης Α. Λιβανός Γ. Σελίδα 4
Με την επενεκκίνηση του SketchUp, χρησιμοποιώντας το μενού Plugins>>Draw_stairs θα σχηματιζόταν η πρόσοψη σκαλοπατιών Βήμα 4: Μορφοποίηση Push/Pull Το εργαλείο Push/Pull είναι πολύ εύχρηστο για χειροκίνητη μοντελοποίηση στο περιβάλλον SketchUp, αλλά εξίσου σημαντική εντολή στο περιβάλλον Ruby API. Στο περιβάλλον αυτό, η ονομασία pushpull παραπέμπει σε μία συνάρτηση/μέθοδο η οποία καλείται σε κάθε αντικείμενο Face. Η συνάρτηση draw_stairs εμπλουτίζεται τώρα με τις επιπλέον γραμμές που επισημαίνονται με κίτρινο χρώμα, μέσω των οποίων αυξάνεται το πάχος κάθε σκαλοπατιού : # Create some variables. stairs = 10 rise = 8 run = 12 width = 100 thickness = 3 # Get handles to our model and the Entities collection it contains. # Loop across the same code several times for step in 1..stairs # Calculate our stair corners. x1 = 0 x2 = width y1 = run * step y2 = run * (step + 1) z = rise * step # Create a series of "points", each a 3- item array containing x, y, and z. pt1 = [x1, y1, z] pt2 = [x2, y1, z] pt3 = [x2, y2, z] pt4 = [x1, y2, z] # Call methods on the Entities collection to draw stuff. new_face.pushpull thickness Εγκατάσταση plugins στο περιβάλλον GOOGLE SKETCHUP Δαμιανάκης Α. Λιβανός Γ. Σελίδα 5