Θέλατε πάντα να σχεδιάσετε τα δικά σας 3D μοντέλα; Τι γίνεται με την εκτύπωση 3D ενός μέρους που έχετε σχεδιάσει; Υπάρχουν πολλά προγράμματα 3D μοντελοποίησης, αλλά αυτά μπορεί να είναι δύσκολο να χρησιμοποιηθούν αν δεν είστε καλλιτεχνικοί (όπως εμένα). Το OpenSCAD παρέχει έναν τρόπο για να σχεδιάσετε μοντέλα ειδικά για εκτύπωση 3D, χρησιμοποιώντας μόνο κώδικα . Μην ανησυχείτε αν δεν ξέρετε πώς να κωδικοποιήσετε, σήμερα θα σας καθοδηγήσω στα βασικά.
Τι είναι το OpenSCAD;
Το OpenSCAD είναι ένας μοντέρνος σχεδιασμός που υποστηρίζεται από συμπαγές υπολογιστή . Είναι διαθέσιμο για Windows, Mac και Linux. Αυτό που το κάνει διαφορετικό από πολλά άλλα προγράμματα είναι ότι σχεδιάζετε εξαρτήματα χρησιμοποιώντας κώδικα αντί για ποντίκι. Αυτό κάνει πολύ εύκολο να κάνετε μαθηματικούς υπολογισμούς, να αποθηκεύσετε τις διαστάσεις στις μεταβλητές, να αλλάξετε το μέγεθος των τμημάτων και πολλά άλλα.
Υπάρχουν ορισμένοι παράγοντες που πρέπει να λάβετε υπόψη για τα μοντέλα εκτύπωσης 3D, αλλά πολλά από αυτά ισχύουν για τα μοντέλα 3D εκτύπωσης 3D γενικά, όχι μόνο για τα σχέδια OpenSCAD. Εάν θέλετε να μάθετε περισσότερα σχετικά με την εκτύπωση 3D, ελέγξτε τον οδηγό Ultimate Beginner του οδηγού Ultimate Beginner για την εκτύπωση 3D Ultimate Guide to 3D Printing Η εκτύπωση 3D υποτίθεται ότι είναι η νέα "Βιομηχανική Επανάσταση". Δεν έχει πάρει ακόμα τον κόσμο, αλλά είμαι εδώ για να σας μιλήσω για όλα όσα πρέπει να ξέρετε για να ξεκινήσετε. Διαβάστε περισσότερα . Αν ψάχνετε για ένα πιο διαδραστικό μοντέλο, διαβάστε τον οδηγό για τη δημιουργία αντικειμένων στο Sketchup Design & Build 3D Virtual Buildings & Objects Με το Google SketchUp Σχεδιασμός & Κατασκευή 3D Εικονικών Κτιρίων & Αντικειμένων Με το Google SketchUp Το Google SketchUp είναι το πρόγραμμα μοντελοποίησης κορμού για το Google Το BuildingMaker, το οποίο επιτρέπει στους σχεδιαστές γραφικών να υποβάλουν σχέδια σχεδίασης στην Google για να προστεθούν στις επίσημες εικόνες του Google Earth. Διαβάστε περισσότερα .
Λήψη ρύθμισης
Αρχικά, κατευθυνθείτε στη σελίδα λήψεων και βρείτε μια έκδοση του OpenSCAD κατάλληλη για το λειτουργικό σας σύστημα. Χρησιμοποιώ το Mac OS, αλλά αυτές οι αρχές OpenSCAD ισχύουν για όλα τα συστήματα.
Μόλις εγκατασταθεί, προχωρήστε και ανοίξτε το. Θα εμφανιστείτε με αυτό το μενού εκκίνησης:
Αυτό σας δείχνει τα αρχεία που ανοίξατε τελευταία και σας δίνει τη δυνατότητα να φορτώσετε μερικά παραδείγματα. Αισθανθείτε ελεύθερος να κοιτάξετε γύρω από μερικά από τα παραδείγματα, ωστόσο βρήκα αυτά τα πράγματα γίνονται πιο συγκεχυμένα κατά την πρώτη εκκίνηση. Για αυτό το σεμινάριο, δημιουργήστε ένα νέο αρχείο κάνοντας κλικ στο νέο κουμπί.
Αφού ανοιχτεί, θα παρουσιαστείτε με αυτό το απλό interface:
Αυτό χωρίζεται σε τρεις κύριους τομείς. Αριστερά είναι ο συντάκτης και το μενού σας. Αυτό είναι όπου θα γράψετε τον κώδικα σας. Αυτό δεν θα έχει ακόμα κάποιο κωδικό, καθώς δημιουργείτε ένα νέο αρχείο. Στην κορυφή, υπάρχουν μερικά κουμπιά μενού για την εκτέλεση βασικών εργασιών, όπως φόρτωση, αποθήκευση, αναίρεση κλπ.
Το κάτω δεξιά είναι η κονσόλα . Αυτό θα σας δείξει τυχόν λάθη στην κατασκευή του μοντέλου.
Το τελευταίο τμήμα είναι η κύρια διεπαφή στην πάνω δεξιά γωνία. Εδώ μπορείτε να αλληλεπιδράσετε με το μοντέλο σας, αλλά δεν θα μπορείτε να το επεξεργαστείτε εδώ (θα γράψετε κώδικα για να το κάνετε αυτό).
Υπάρχουν πολλά κουμπιά στο κάτω μέρος αυτής της κύριας διεπαφής. Αυτά επιτρέπουν κυρίως την προβολή του σχεδιασμού σας με διαφορετικούς τρόπους.
Προχωρήστε και αποθηκεύστε ένα νέο αρχείο πατώντας το κουμπί αποθήκευσης στο μενού επεξεργασίας ή μεταβαίνοντας στο Αρχείο > Αποθήκευση .
Τα βασικά
Ο τρόπος με τον οποίο λειτουργεί το OpenSCAD το μεγαλύτερο μέρος του χρόνου είναι μέσω της προσθήκης και αφαίρεσης απλών σχημάτων. Μπορείτε να φτιάξετε πολύ περίπλοκα μοντέλα με αυτόν τον τρόπο, γι 'αυτό ας πηδήσουμε δεξιά.
Εδώ είναι το πρώτο σχήμα, ένα απλό κουτί:
Και εδώ είναι ο κώδικας για να παραχθεί αυτό:
cube(); // create a cube
Για να εκτελέσετε τον κώδικα και να δημιουργήσετε το μοντέλο, πρέπει να το δείτε προεπισκόπηση. Το OpenSCAD θα το κάνει αυτό από προεπιλογή κάθε φορά που αποθηκεύετε ή μπορείτε να πατήσετε F5 για να αναγκαστεί η ανανέωση. Πειραματιστείτε με τη μετακίνηση σε τρισδιάστατο χώρο κρατώντας πατημένο το αριστερό ή δεξί κουμπί του ποντικιού.
Τώρα, αυτό παράγει ένα ωραίο κύβο, αλλά δεν είναι τρομερά χρήσιμο χωρίς διαστάσεις. Το OpenSCAD δεν λειτουργεί σε κανένα συγκεκριμένο σύστημα μέτρησης, αλλά οι μονάδες είναι όλες σχετικές μεταξύ τους. Μπορείτε να δημιουργήσετε ένα κουτί 20 x 10 και είναι εναρμονισμένο με οποιοδήποτε άλλο πρόγραμμα (όπως ο εκτυπωτής τρισδιάστατης εκτύπωσης) για την ερμηνεία αυτών, είτε μετρικό είτε αυτοκρατορικό. Παρέχει πραγματικά μεγάλη ευελιξία.
Ας προσθέσουμε κάποιες διαστάσεις στον κύβο σας. Κάνετε αυτό να περάσετε σε παραμέτρους στη μέθοδο κύβου :
cube(size = [10, 20, 30]); // rectangle
Οι τιμές 10, 20 και 30 αντιπροσωπεύουν το μέγεθος του κύβου στον άξονα Χ, Υ και Ζ . Παρατηρήστε πώς αυτό έχει δημιουργήσει ένα πολύ μεγαλύτερο ορθογώνιο:
Από προεπιλογή, το OpenSCAD σχεδιάζει στοιχεία από το κάτω αριστερό μέρος. Μπορείτε να ρυθμίσετε αυτό ρυθμίζοντας την κεντρική παράμετρο σε true . Εδώ είναι ο κώδικας για να γίνει αυτό στο ορθογώνιο:
cube(size = [10, 20, 30], center = true); // rectangle centered
Και εδώ είναι αυτό που μοιάζει με:
Τα κεντραριστικά αντικείμενα λειτουργούν καλά για απλά σχήματα, αλλά καθιστούν τα πράγματα περίπλοκα για μη συμμετρικά αντικείμενα. Θα χρειαστεί να αποφασίσετε ποια μέθοδος λειτουργεί καλύτερα για εσάς.
Προχωρώντας σε ένα πιο περίπλοκο σχήμα, εδώ είναι ένας κύλινδρος :
Εδώ είναι ο κώδικας για να το δημιουργήσετε:
cylinder(d = 10, h = 10, center = true); // cylinder
Σε αντίθεση με τους κύβους, οι κύλινδροι τραβιούνται αυτόματα στο κέντρο του άξονα Χ και Υ. Η παράμετρος d αντιπροσωπεύει τη διάμετρο (μπορείτε να περάσετε στην ακτίνα αν προτιμάτε). Η παράμετρος h είναι το ύψος. Κάτι δεν πάει καλά εδώ. Αυτός ο κύλινδρος φαίνεται αρκετά "μπλοκ". Πρέπει να αυξήσετε τον αριθμό των προσώπων που έχουν σχεδιαστεί στην περιφέρεια. Αυτό είναι εύκολο να γίνει - προσθέστε την ακόλουθη παράμετρο στον κώδικά σας.
$fn = 100
Έτσι ο ορισμός του κυλίνδρου γίνεται:
cylinder(d = 10, h = 10, center = true, $fn = 100);
Εδώ είναι αυτό που μοιάζει με:
Αυτό αυξάνει τον αριθμό των προσώπων που χρειάζονται για να κάνουν κύκλους - το 100 είναι ένα καλό σημείο εκκίνησης. Λάβετε υπόψη ότι αυτό θα αυξήσει σημαντικά τους χρόνους εμφάνισης, ιδιαίτερα σε σύνθετα μοντέλα, επομένως είναι συνήθως καλύτερο να τα αφήσετε μέχρι να τελειώσετε το σχεδιασμό.
Είναι εύκολο να εφαρμόσετε μετασχηματισμούς σε σχήματα. Πρέπει να καλέσετε ειδικές μεθόδους πριν δημιουργήσετε τα σχήματα σας. Δείτε πώς μπορείτε να περιστρέψετε τον κύλινδρο χρησιμοποιώντας τη μέθοδο περιστροφής :
rotate(a = [0, 90, 0]) cylinder(d = 10, h = 10, center = true); // rotated cylinder
Οι τιμές που μεταφέρονται στην παράμετρο a αντιπροσωπεύουν τη γωνία περιστροφής των αξόνων Χ, Υ και Ζ. Εδώ είναι το αποτέλεσμα:
Μια άλλη πολύ χρήσιμη λειτουργία είναι η μετάφραση . Αυτό σας επιτρέπει να μετακινήσετε αντικείμενα γύρω σε τρισδιάστατο χώρο. Για άλλη μια φορά, θα χρειαστεί να περάσετε την ποσότητα κίνησης για κάθε άξονα. Εδώ είναι το αποτέλεσμα:
Εδώ είναι ο κώδικας:
translate(v = [0, 25, 0]) cylinder(d = 10, h = 10, center = true); // translated cylinder
Η κατανόηση της μεθόδου μετάφρασης είναι ένα από τα πιο σημαντικά πράγματα που μπορείτε να κάνετε. Απαιτείται για το σχεδιασμό των πολύπλοκων σχεδίων.
Τέλος, ένα άλλο χρήσιμο σχήμα είναι μια σφαίρα :
Εδώ είναι ο κώδικας:
sphere(d = 100);
Ακριβώς όπως και ο κύλινδρος, μπορείτε να το εξομαλύνετε χρησιμοποιώντας τον κώδικα $ fn παραπάνω.
Προηγμένη κωδικοποίηση
Τώρα που γνωρίζετε τα βασικά, ας δούμε μερικές πιο προηγμένες δεξιότητες. Όταν σχεδιάζετε ένα μέρος, βοηθάει να σκέφτεστε πώς θα μπορούσε να γίνει από μικρότερα σχήματα και αντικείμενα. Δεν χρειάζεται να το κάνετε αυτό και μπορείτε να "κάνετε τα πράγματα επάνω" καθώς πηγαίνετε, αλλά βοηθάει να έχετε ένα τραχύ σχέδιο - ακόμα κι αν είναι μόνο στο κεφάλι σας.
Ας δημιουργήσουμε ένα προχωρημένο σχήμα: έναν κύβο με εσωτερικό εσωτερικό σφαίρα. Δημιουργήστε έναν κύβο και μια σφαίρα με το κέντρο που είναι αληθινό. Αφαιρέστε το ένα από το άλλο χρησιμοποιώντας τη μέθοδο διαφοράς :
difference() { // subtraction cube(size = [50, 50, 50], center = true); // outer cube sphere(d = 65, center = true); // inner sphere }
Εδώ είναι το αποτέλεσμα:
Πειραματιστείτε με τη διάμετρο (παράμετρο d ) της σφαίρας και δείτε τι συμβαίνει.
Στο OpenSCAD, υπάρχουν συνήθως πολλοί τρόποι για να επιτευχθεί το ίδιο έργο. Εάν θέλετε ένα αυλάκι σε έναν κύβο, μπορείτε να αφαιρέσετε έναν άλλο κύβο από αυτό ή να προσθέσετε δύο ακόμη πάνω από αυτό. Δεν συνηθίζεται συνήθως με ποιον τρόπο γίνονται τα πράγματα, αλλά εξαρτάται από την πολυπλοκότητα του μέρους, μπορεί να είναι πιο εύκολο να κάνετε πρώτα ορισμένους χειρισμούς.
Δείτε πώς μπορείτε να δημιουργήσετε ένα κανάλι σε έναν κύβο. Αντί να χρησιμοποιήσετε έναν άλλο κύβο, χρησιμοποιώντας ένα κύλινδρο θα δημιουργήσει ένα στρογγυλεμένο κανάλι. Παρατηρήστε πώς χρησιμοποιείται η μέθοδος διαφοράς για άλλη μια φορά και πώς χρησιμοποιούνται οι μέθοδοι μετάφρασης και περιστροφής για τον χειρισμό των σχημάτων. Χρησιμοποιώντας τη μέθοδο περιστροφής συχνά καθιστά δύσκολο το μετασχηματισμό, οπότε παίζετε με τις παραμέτρους μέχρι να επιτύχετε το επιθυμητό αποτέλεσμα. Εδώ είναι ο κώδικας:
difference() { // subtraction cube(size = [50, 150, 50]); // outer cube translate(v = [25, 150, 50]) rotate(a = [90, 0, 0]) cylinder(d = 40, h = 150); // cylinder channel }
Εδώ είναι αυτό που μοιάζει με:
Μπορεί να αναρωτιέστε τι είναι όλα τα πράσινα πράγματα. Αυτό είναι εδώ επειδή το 3D μοντέλο είναι απλά μια προεπισκόπηση αυτή τη στιγμή. Για να διορθώσετε αυτό το πρόβλημα, πατήστε το πλήκτρο F6 για να καταστήσετε πλήρως το μοντέλο. Αυτό μπορεί να διαρκέσει λίγο, ανάλογα με την πολυπλοκότητα. Η προεπισκόπηση ( F5 ) είναι συνήθως αρκετά καλή ενώ εργάζεστε. Εδώ φαίνεται η τελική απόδοση (με το $ fn να είναι 100):
Ακολουθεί ένα άλλο προηγμένο παράδειγμα. Πείτε ότι ήθελα να βγάλετε κάτι χρησιμοποιώντας ένα μπουλόνι. Η δημιουργία μιας τρύπας είναι αρκετά απλή με τη χρήση του κυλίνδρου, αλλά τι θα ήταν αν θέλατε να είναι τοποθετημένη η κεφαλή μπουλονιού για βιδωτά μπουλόνια; Θα μπορούσατε απλά να δημιουργήσετε έναν μεγάλο κύλινδρο για το κεφάλι του μπουλονιού για να καθίσετε, αλλά αυτό δεν θα φαινόταν πολύ ωραίο. Η λύση είναι μια λοξότμηση, την οποία μπορείτε να δημιουργήσετε με τη μέθοδο του κυλίνδρου . Το κόλπο εδώ είναι να καθορίσετε δύο διαμέτρους - d1 και d2 . Κάντε αυτά τα διαφορετικά μεγέθη και το OpenSCAD θα κάνει τα υπόλοιπα.
Δεδομένου ότι είμαι Βρετανοί, θα χρησιμοποιώ μετρικές διαστάσεις εδώ, για ένα μπουλόνι M5. Θα μπορούσατε εύκολα να ρυθμίσετε αυτό για να ταιριάζει με τα εξαρτήματα που θέλετε να χρησιμοποιήσετε. Εδώ είναι ο κώδικας:
$fn = 100; // bolt settings m5_clearance_diameter = 5.5; m5_head_clearance_diameter = 11; m5_head_depth = 5; difference() { // subtract cube(20, 20, 20); bolt_hole(10, 10, 20); bolt_bevel(10, 10, 15); } module bolt_hole(x, y, height) { /* M5 hole at 90 deg. */ translate(v = [x, y, 0]) cylinder(d = m5_clearance_diameter, h = height); } module bolt_bevel(x, y, z) { // M5 bevel translate(v = [x, y, z]) cylinder(d2 = m5_head_clearance_diameter, d1 = m5_clearance_diameter, h = m5_head_depth); }
Παρατηρήστε πώς οι διαστάσεις των μπουλονιών αποθηκεύονται σε μεταβλητές; Αυτό κάνει πολύ πιο εύκολη την κωδικοποίηση και τη συντήρηση. Μια μέθοδος που ίσως δεν έχετε συναντήσει ακόμα είναι η ενότητα . Αυτό σας επιτρέπει να ορίσετε ένα μπλοκ κώδικα για να εκτελέσετε όποτε θέλετε. Στην πραγματικότητα, αυτή είναι μια λειτουργία . Θα πρέπει να χρησιμοποιείτε λειτουργικές μονάδες και μεταβλητές για κάθε πολύπλοκο σχήμα, καθώς καθιστούν τα πράγματα πιο εύκολα να διαβαστούν και γρηγορότερα να γίνουν αλλαγές. Ακολουθεί η εμφάνιση της λοξότμησης:
Ας δούμε ένα τελευταίο παράδειγμα. Ας υποθέσουμε ότι ήθελε να παράγει μια σειρά από τρύπες γύρω από έναν κύκλο. Θα μπορούσατε να μετρήσετε με μη αυτόματο τρόπο, να μεταφράσετε και να περιστρέψετε όλα αυτά, αλλά ακόμη και με τις ενότητες αυτό θα ήταν κουραστικό. Εδώ είναι το τελικό αποτέλεσμα, 10 φιάλες διανέμονται ακόμη και γύρω από έναν κύκλο:
Εδώ είναι ο κώδικας:
$fn = 100; number_of_holes = 10; for(i = [1 : 360 / number_of_holes : 360]) { // number_of_holes defines number of times this code runs make_cylinder(i); } module make_cylinder(i) { // make cylinder and even distribute rotate([0, 0, i]) translate([10, 0, 0]) cylinder(h = 2, r = 2); }
Αυτός ο κώδικας είναι απλούστερος από τον αναμενόμενο. Ο κύκλος A for χρησιμοποιείται για να καλέσει τη μονάδα make_cylinder δέκα φορές. Δεδομένου ότι υπάρχουν 360 μοίρες σε έναν κύκλο και 360/10 = 36, κάθε κύλινδρος πρέπει να περιστραφεί σε βήματα 36 μοίρες. Κάθε επανάληψη αυτού του βρόχου θα αυξήσει τη μεταβλητή i κατά 36. Αυτός ο βρόχος καλεί τη μονάδα make_cylinder, η οποία απλά τραβάει έναν κύλινδρο και το τοποθετεί σύμφωνα με τους βαθμούς που υποβάλλονται σε αυτό από τον βρόχο. Μπορείτε να σχεδιάσετε περισσότερους ή λιγότερους κυλίνδρους τροποποιώντας τη μεταβλητή αριθμός_οήτων - αν και μπορεί να θέλετε να προσαρμόσετε την απόσταση, αν το κάνετε. Ακολουθεί το παράδειγμα των 100 κυλίνδρων, που επικαλύπτονται ελαφρώς:
Εξαγωγή
Τώρα που ξέρετε πώς να κωδικοποιήσετε στο OpenScad, υπάρχει ένα τελευταίο βήμα πριν να μπορείτε να εκτυπώσετε 3D τα μοντέλα σας. Πρέπει να εξαγάγετε το σχέδιό σας από το OpenSCAD στην τυπική μορφή STL που χρησιμοποιείται από τους περισσότερους 3D εκτυπωτές. ευτυχώς, υπάρχει εξαγωγή στο κουμπί STL: Επεξεργαστής Μενού > Κορυφαία Δεξιά :
Αυτό είναι για σήμερα. Θα πρέπει τώρα να έχετε εξαιρετική εργασιακή γνώση του OpenSCAD - όλα τα περίπλοκα πράγματα βασίζονται σε αυτά τα θεμέλια και πολλά πολύπλοκα σχήματα είναι πραγματικά πολλά απλά σχήματα συνδυασμένα.
Για μια πρόκληση, γιατί να μην δούμε κάποια από τα έργα 3D εκτύπωσης και να προσπαθήσουμε να αναδημιουργήσουμε τα μέρη στο OpenSCAD:
- 3D Printables for Tabletop Fantasy RPG Τα καλύτερα 3D Printables για Tabletop Fantasy RPG Τα καλύτερα 3D εκτυπώσιμα για Tabletop Fantasy RPG Αν προτιμάτε μια εντυπωσιακή εμπειρία για παιχνίδια ρόλων, υπάρχει ένας νέος τρόπος για να το κάνετε: Χρησιμοποιήστε 3D εκτύπωση για να δημιουργήσετε φυσικά κομμάτια του εδάφους μινιατούρες. Διαβάστε περισσότερα
- Προσαρμοσμένα πλήκτρα συντόμευσης Κάντε τα δικά σας πλήκτρα συντόμευσης με ένα Arduino Κάντε τα δικά σας προσαρμοσμένα πλήκτρα συντόμευσης με ένα Arduino Το ταπεινό Arduino μπορεί να κάνει πολλά πράγματα, αλλά ξέρατε ότι μπορεί να μιμηθεί ένα πληκτρολόγιο USB; Θα μπορούσατε να συνδυάσετε μακρές συντομεύσεις πληκτρολογίου σε ένα μόνο προσαρμοσμένο πλήκτρο συντόμευσης, με αυτό το απλό κύκλωμα. Διαβάστε περισσότερα
- Ηλεκτρονική D20 Roll σε στυλ με αυτό το DIY Ηλεκτρονικό D20 Die Roll σε στυλ με αυτό το DIY Ηλεκτρονικό D20 Die Θέλετε κάτι λίγο μοναδικό στην επόμενη σας συνάντηση τυχερών παιχνιδιών; Ανατρέξτε σε αυτό το DIY ηλεκτρονικό D20, που διαθέτει προσαρμοσμένα γραφικά για κρίσιμες επιτυχίες και αποτυχίες. Διαβάστε περισσότερα
- Παιχνίδια που μπορείτε να εκτυπώσετε 3D 6 πιο ωραία παιχνίδια Μπορείτε να εκτυπώσετε 3D στο σπίτι 6 πιο ωραία παιχνίδια Μπορείτε να εκτυπώσετε 3D στο σπίτι Όλοι γνωρίζουν τους εκτυπωτές 3D, αλλά αυτό που ίσως δεν γνωρίζετε είναι πόσο διασκεδαστική είναι η εκτύπωση 3D και πόση διασκέδαση μπορεί να δημιουργήσει όλη την οικογένειά σας. Μιλάμε 3D τυπωμένα επιτραπέζια παιχνίδια. Διαβάστε περισσότερα
Μάθατε νέα τεχνάσματα σήμερα; Ποια είναι η αγαπημένη σας λειτουργία OpenSCAD; Θα μεταβείτε σύντομα από άλλο εργαλείο CAD; Ενημερώστε μας στα σχόλια παρακάτω!