Οδηγός για αρχάριους στο OpenSCAD: Προγραμματισμός τρισδιάστατων εκτυπωμένων μοντέλων

Οδηγός για αρχάριους στο OpenSCAD: Προγραμματισμός τρισδιάστατων εκτυπωμένων μοντέλων

Πάντα ήθελες να σχεδιάσεις τα δικά σου τρισδιάστατα μοντέλα; Τι γίνεται με την τρισδιάστατη εκτύπωση ενός εξαρτήματος που έχετε σχεδιάσει; Υπάρχουν πολλά προγράμματα τρισδιάστατης μοντελοποίησης, αλλά αυτά μπορεί να είναι δύσκολο να χρησιμοποιηθούν αν δεν είστε καλλιτεχνικοί (όπως εγώ). OpenSCAD παρέχει έναν τρόπο για να σχεδιάσετε μοντέλα ειδικά για τρισδιάστατη εκτύπωση, χωρίς να χρησιμοποιείτε παρά μόνο κώδικας Το Μην ανησυχείτε αν δεν ξέρετε πώς να κωδικοποιήσετε, σήμερα θα σας καθοδηγήσω στα βασικά.





Τι είναι το OpenSCAD;

Το OpenSCAD είναι δωρεάν Στερεός σχεδιασμός με τη βοήθεια υπολογιστή μοντελιστής. Είναι διαθέσιμο για Windows, Mac και Linux. Αυτό που το κάνει διαφορετικό από πολλά άλλα προγράμματα είναι ότι σχεδιάζετε μέρη χρησιμοποιώντας κώδικα αντί για ποντίκι. Αυτό καθιστά πολύ εύκολο να κάνετε μαθηματικούς υπολογισμούς, να αποθηκεύετε διαστάσεις σε μεταβλητές, να αλλάζετε μέγεθος εξαρτημάτων και πολλά άλλα.





Υπάρχουν ορισμένοι παράγοντες που πρέπει να λάβετε υπόψη όταν χρησιμοποιείτε μοντέλα τρισδιάστατης εκτύπωσης, αλλά πολλοί από αυτούς ισχύουν γενικά για μοντέλα τρισδιάστατης εκτύπωσης CAD, όχι μόνο για σχέδια OpenSCAD. Αν θέλετε να μάθετε περισσότερα για την τρισδιάστατη εκτύπωση, ανατρέξτε στον οδηγό Ultimate Beginner's. Αν ψάχνετε για έναν πιο διαδραστικό μοντέλο, διαβάστε τον οδηγό για τη δημιουργία αντικειμένων στο Sketchup.





Εγκατάσταση

Πρώτα, κατευθυνθείτε προς το λήψεις σελίδα και βρείτε μια έκδοση του OpenSCAD κατάλληλη για το λειτουργικό σας σύστημα. Χρησιμοποιώ Mac OS, αλλά αυτές οι αρχές του OpenSCAD ισχύουν για όλα τα συστήματα.

Μόλις εγκατασταθεί, προχωρήστε και ανοίξτε το. Θα σας παρουσιαστεί αυτό το μενού εκκίνησης:



Αυτό σας δείχνει τα αρχεία που ανοίξατε τελευταία και σας δίνει την επιλογή να φορτώσετε μερικά παραδείγματα. Μη διστάσετε να κοιτάξετε μερικά από τα παραδείγματα, ωστόσο τα βρήκα πιο μπερδεμένα τα πράγματα όταν πρωτοξεκίνησα. Για αυτό το σεμινάριο, δημιουργήστε ένα νέο αρχείο κάνοντας κλικ στο νέος κουμπί.

Μόλις ανοίξει, θα παρουσιαστεί με αυτό το γυμνό περιβάλλον εμφάνισης:





Αυτό χωρίζεται σε τρεις κύριους τομείς. Στα αριστερά είναι το δικό σας συντάκτης και μενού. Εδώ θα γράψετε τον κωδικό σας. Αυτό δεν θα έχει ακόμη κωδικό, καθώς δημιουργείτε ένα νέο αρχείο. Στο επάνω μέρος, υπάρχουν μερικά κουμπιά μενού για την εκτέλεση βασικών εργασιών, όπως φόρτωση, αποθήκευση, αναίρεση κ.ο.κ.





Κάτω δεξιά είναι το κονσόλα Το Αυτό θα σας δείξει τυχόν λάθη στην κατασκευή του μοντέλου.

Το τελευταίο τμήμα είναι το κύρια διεπαφή πάνω δεξιά. Εδώ μπορείτε να αλληλεπιδράσετε με το μοντέλο σας, αλλά δεν θα μπορείτε να το επεξεργαστείτε εδώ (θα γράψετε κώδικα για να το κάνετε αυτό).

Το android δεν μπορεί να μετακινήσει εφαρμογές στην κάρτα sd

Υπάρχουν πολλά κουμπιά στο κάτω μέρος αυτής της κύριας διεπαφής. Αυτά σας επιτρέπουν κυρίως να δείτε το σχέδιό σας με διαφορετικούς τρόπους.

Προχωρήστε και αποθηκεύστε ένα νέο αρχείο πατώντας το κουμπί αποθήκευσης στο μενού επεξεργαστή ή πηγαίνοντας στο Αρχείο >> Αποθηκεύσετε Το

Τα βασικά

Ο τρόπος που λειτουργεί το OpenSCAD τις περισσότερες φορές είναι μέσω της προσθήκης και αφαίρεσης απλών σχημάτων. Μπορείτε να δημιουργήσετε πολύ περίπλοκα μοντέλα με αυτόν τον τρόπο, οπότε ας προχωρήσουμε αμέσως.

Εδώ είναι το πρώτο σχήμα, ένα απλό κουτί:

Και εδώ είναι ο κώδικας για την παραγωγή αυτού:

cube(); // create a cube

Για να εκτελέσετε και να δημιουργήσετε το μοντέλο, ο κώδικάς σας πρέπει να κάνετε προεπισκόπηση. Το OpenSCAD θα το κάνει αυτό από προεπιλογή κάθε φορά που αποθηκεύετε ή μπορείτε να πατήσετε F5 για αναγκαστική ανανέωση. Πειραματιστείτε με τη μετακίνηση σε χώρο 3D κρατώντας πατημένο το αριστερό ή το δεξί κουμπί του ποντικιού.

Τώρα, αυτό παράγει έναν ωραίο κύβο, αλλά δεν είναι τρομερά χρήσιμο χωρίς διαστάσεις. Το OpenSCAD δεν λειτουργεί σε κανένα συγκεκριμένο σύστημα μέτρησης, αλλά οι μονάδες είναι όλες σχετικές μεταξύ τους. Μπορείτε να δημιουργήσετε ένα πλαίσιο 20 x 10, και εναπόκειται σε οποιοδήποτε άλλο πρόγραμμα (όπως ο τεμαχιστής 3D εκτύπωσης) να τα ερμηνεύσει, είτε μετρικά είτε αυτοκρατορικά. Πραγματικά παρέχει μεγάλη ευελιξία.

Ας προσθέσουμε μερικές διαστάσεις στον κύβο σας. Μπορείτε να το κάνετε αυτό περνώντας σε παραμέτρους στο κύβος μέθοδος:

cube(size = [10, 20, 30]); // rectangle

Οι αξίες 10 , είκοσι , και 30 αντιπροσωπεύουν το μέγεθος του κύβου στο Χ , ΚΑΙ , και ΜΕ άξονας. Παρατηρήστε πώς αυτό έχει δημιουργήσει ένα πολύ μεγαλύτερο ορθογώνιο:

Από προεπιλογή, το OpenSCAD αντλεί στοιχεία από κάτω αριστερά. Μπορείτε να το προσαρμόσετε ρυθμίζοντας το κέντρο παράμετρος σε αληθής Το Ακολουθεί ο κώδικας για να το κάνετε στο ορθογώνιο:

cube(size = [10, 20, 30], center = true); // rectangle centered

Και ιδού πώς φαίνεται:

τι μπορείτε να αγοράσετε με τη δωροκάρτα itunes

Το κεντράρισμα αντικειμένων λειτουργεί καλά για απλά σχήματα, αλλά κάνει τα πράγματα περίπλοκα για μη συμμετρικά αντικείμενα. Θα πρέπει να αποφασίσετε ποια μέθοδος λειτουργεί καλύτερα για εσάς.

Προχωρώντας σε ένα πιο περίπλοκο σχήμα, εδώ είναι ένα κύλινδρος :

Ακολουθεί ο κώδικας για τη δημιουργία του:

cylinder(d = 10, h = 10, center = true); // cylinder

Διαφορετικός κύβους , κύλινδροι σχεδιάζονται αυτόματα στο κέντρο του άξονα Χ και Υ. ο ρε η παράμετρος σημαίνει διάμετρος (μπορείτε να περάσετε στην ακτίνα αν προτιμάτε). ο η παράμετρος είναι το ύψος. Κάτι δεν πάει καλά όμως εδώ. Αυτός ο κύλινδρος φαίνεται αρκετά «μπλοκαρισμένος». Πρέπει να αυξήσετε τον αριθμό των προσώπων που σχεδιάζονται στην περιφέρεια. Αυτό είναι εύκολο να γίνει - προσθέστε την ακόλουθη παράμετρο στον κωδικό κυλίνδρου.

$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

Οι τιμές πέρασαν στο προς το η παράμετρος αντιπροσωπεύει τη γωνία περιστροφής του άξονα Χ, Υ και Ζ. Ιδού το αποτέλεσμα:

Μια άλλη πολύ χρήσιμη λειτουργία είναι μεταφράζω Το Αυτό σας επιτρέπει να μετακινείτε αντικείμενα σε τρισδιάστατο χώρο. Για άλλη μια φορά, θα χρειαστεί να περάσετε την ποσότητα κίνησης για κάθε άξονα. Ιδού το αποτέλεσμα:

Εδώ είναι ο κωδικός:

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
}

Ιδού το αποτέλεσμα:

Πειραματιστείτε με τη διάμετρο ( ρε παράμετρος) της σφαίρας και δείτε τι συμβαίνει.

Στο 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
}

Δείτε πώς φαίνεται:

Mayσως αναρωτιέστε τι είναι όλα τα πράσινα πράγματα. Αυτό είναι εδώ επειδή το μοντέλο 3D είναι απλώς μια προεπισκόπηση αυτή τη στιγμή. Για να το διορθώσετε, πατήστε F6 για την πλήρη απόδοση του μοντέλου. Αυτό μπορεί να πάρει κάποιο χρόνο, ανάλογα με την πολυπλοκότητα. Η προεπισκόπηση ( F5 ) είναι συνήθως αρκετά καλό ενώ εργάζεστε. Δείτε πώς φαίνεται η τελική απόδοση (με $ fn ρυθμισμένο στο 100):

Εδώ είναι ένα άλλο προηγμένο παράδειγμα. Πείτε ότι θέλετε να τοποθετήσετε κάτι χρησιμοποιώντας ένα μπουλόνι. Η δημιουργία μιας τρύπας είναι αρκετά απλή στη χρήση κύλινδρος , αλλά τι γίνεται αν θέλετε η κεφαλή του μπουλονιού να είναι τοποθετημένη για μπουλόνια που βυθίζονται; Θα μπορούσατε απλά να δημιουργήσετε έναν μεγάλο κύλινδρο για να καθίσει η κεφαλή του μπουλονιού, αλλά αυτό δεν θα φαινόταν πολύ ωραίο. Η λύση είναι μια λοξοτομή, την οποία μπορείτε να δημιουργήσετε με το κύλινδρος μέθοδος. Το κόλπο εδώ είναι να καθορίσετε δύο διαμέτρους - δ1 και δ2 Το Κάντε αυτά τα διαφορετικά μεγέθη και το 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);
}

Αυτός ο κωδικός είναι απλούστερος από ό, τι θα περίμενε κανείς. ΕΝΑ Για ο βρόχος χρησιμοποιείται για να καλέσει το make_cylinder ενότητα δέκα φορές. Καθώς υπάρχουν 360 μοίρες σε έναν κύκλο και 360 /10 = 36, κάθε κύλινδρος πρέπει να περιστρέφεται κατά βήματα 36 μοιρών. Κάθε επανάληψη αυτού του βρόχου θα αυξάνει το Εγώ μεταβλητή κατά 36. Αυτός ο βρόχος καλεί το make_cylinder μονάδα, η οποία απλώς σχεδιάζει έναν κύλινδρο και τον τοποθετεί σύμφωνα με τους βαθμούς που περνούν σε αυτόν από τον βρόχο. Μπορείτε να σχεδιάσετε περισσότερους ή λιγότερους κυλίνδρους τροποποιώντας το αριθμός_οπών μεταβλητή - αν και μπορεί να θέλετε να ρυθμίσετε το διάστημα εάν το κάνετε. Δείτε πώς φαίνονται 100 κύλινδροι, επικαλύπτονται ελαφρώς:

Εξαγωγή

Τώρα που ξέρετε πώς να κωδικοποιείτε στο OpenScad, απαιτείται ένα τελευταίο βήμα για να μπορέσετε να εκτυπώσετε 3D τα μοντέλα σας. Πρέπει να εξάγετε το πρόγραμμά σας από το OpenSCAD στο πρότυπο STL μορφή που χρησιμοποιείται από τους περισσότερους τρισδιάστατους εκτυπωτές. ευτυχώς, υπάρχει ένα κουμπί εξαγωγής στο STL: Μενού συντάκτη >> Πάνω δεξιά :

Αυτά για σήμερα. Θα πρέπει τώρα να έχετε άριστη εργασιακή γνώση του OpenSCAD - όλα τα πολύπλοκα πράγματα βασίζονται σε αυτά τα θεμέλια και πολλά πολύπλοκα σχήματα είναι πραγματικά πολλά απλά σχήματα συνδυασμένα.

Για μια πρόκληση, γιατί να μην δείτε μερικά από τα έργα τρισδιάστατης εκτύπωσης και να προσπαθήσετε να αναδημιουργήσετε τα μέρη στο OpenSCAD:

Μάθατε κάποια νέα κόλπα σήμερα; Ποια είναι η αγαπημένη σας λειτουργία OpenSCAD; Θα αλλάξετε από άλλο εργαλείο CAD σύντομα; Ενημερώστε μας στα σχόλια παρακάτω!

Μερίδιο Μερίδιο Τιτίβισμα ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ Πώς να αποκτήσετε πρόσβαση στο ενσωματωμένο επίπεδο φυσαλίδων της Google στο Android

Εάν χρειαστήκατε ποτέ να βεβαιωθείτε ότι κάτι είναι στο ίδιο επίπεδο, μπορείτε τώρα να λάβετε ένα επίπεδο φυσαλίδων στο τηλέφωνό σας σε δευτερόλεπτα.

Διαβάστε Επόμενο
Σχετικά θέματα
  • DIY
  • Προγραμματισμός
  • Τρισδιάστατη εκτύπωση
  • Τρισδιάστατη μοντελοποίηση
Σχετικά με τον Συγγραφέα Τζο Κόμπερν(136 δημοσιευμένα άρθρα)

Ο Joe είναι απόφοιτος της Επιστήμης των Υπολογιστών από το Πανεπιστήμιο του Lincoln, Ηνωμένο Βασίλειο. Είναι επαγγελματίας προγραμματιστής λογισμικού και όταν δεν πετάει με drones ή δεν γράφει μουσική, μπορεί συχνά να βρεθεί να βγάζει φωτογραφίες ή να παράγει βίντεο.

Περισσότερα από τον Joe Coburn

Εγγραφείτε στο newsletter μας

Εγγραφείτε στο ενημερωτικό μας δελτίο για τεχνικές συμβουλές, κριτικές, δωρεάν ebooks και αποκλειστικές προσφορές!

Κάντε κλικ εδώ για εγγραφή
Κατηγορία Diy