
openscad
Ανοιχτού Κώδικα 3D CAD Μοντελοποιητής για Προγραμματιστές
Δημιουργήστε Στερεά 3D Μοντέλα Χρησιμοποιώντας CSG, Εξώθηση & Παραμετροποιήσιμες Παραμέτρους μέσω Ανοιχτού Κώδικα Δωρεάν Python API.
Τι είναι το OpenSCAD;
Το OpenSCAD είναι ένα δωρεάν και ανοιχτού κώδικα εργαλείο 3Δ CAD μοντελοποίησης σχεδιασμένο ειδικά για προγραμματιστές και μηχανικούς. Σε αντίθεση με τα διαδραστικά 3Δ μοντελοποιητές, το OpenSCAD χρησιμοποιεί μια προσέγγιση βασισμένη σε σενάρια για τον ορισμό στερεών 3Δ αντικειμένων χρησιμοποιώντας κατασκευαστική στερεή γεωμετρία (CSG) και τεχνικές εξώθησης. Αυτό επιτρέπει ακριβή, αναπαραγώγιμη και παραμετρική μοντελοποίηση, ιδανική για μηχανικά εξαρτήματα, πρωτότυπα και τεχνικά σχέδια. Το εργαλείο υποστηρίζει Linux, Windows και macOS, και ενσωματώνεται καλά με ροές εργασίας βασισμένες σε Python για αυτοματοποίηση και σενάριο.
Το OpenSCAD διαβάζει αρχεία σεναρίων που περιγράφουν το αντικείμενο και αποδίδει το 3Δ μοντέλο ανάλογα, παρέχοντας στους σχεδιαστές πλήρη έλεγχο της διαδικασίας μοντελοποίησης. Υποστηρίζει λειτουργίες όπως ένωση, τομή, διαφορά, και μετασχηματισμούς όπως μετάφραση, περιστροφή και κλιμάκωση. Τα δεδομένα μπορούν να εισαχθούν από αρχεία DXF και να εξαχθούν σε STL, OFF και άλλες μορφές. Η ανοιχτή αρχιτεκτονική του και η ενεργή κοινότητα το καθιστούν ισχυρή επιλογή για προγραμματιστές που αναζητούν προγραμματιστικές δυνατότητες 3Δ μοντελοποίησης χωρίς εξάρτηση από αλληλεπιδράσεις GUI.
Ξεκινώντας με το OpenSCAD
Το OpenSCAD είναι διαθέσιμο ως προσυγκροτημένα δυαδικά αρχεία για Linux, macOS και Windows από την επίσημη ιστοσελίδα του. Για προγραμματιστές, ο πηγαίος κώδικας φιλοξενείται στο GitHub, και μπορείτε να το κατασκευάσετε από τον πηγαίο κώδικα χρησιμοποιώντας το CMake και τα παρεχόμενα σενάρια κατασκευής. Το επίσημο [GitHub του openscad](https://github.com/openscad/openscad) αποθετήριο περιλαμβάνει λεπτομερείς οδηγίες κατασκευής για όλες τις κύριες πλατφόρμες. Για να ξεκινήσετε γρήγορα, κατεβάστε την τελευταία έκδοση, εγκαταστήστε την και ανοίξτε τον επεξεργαστή για να γράψετε το πρώτο σας σενάριο SCAD.
Εγκατάσταση του OpenSCAD μέσω Διαχειριστών Πακέτων
# Ubuntu/Debian
sudo apt install openscad
# macOS (Homebrew)
brew install --cask openscad
# Windows (Chocolatey)
choco install openscad
Κατασκευαστική Στερεή Γεωμετρία (CSG)
Η κύρια δύναμη του OpenSCAD έγκειται στην υποστήριξή του για την κατασκευαστική στερεή γεωμετρία (CSG), η οποία επιτρέπει τον συνδυασμό βασικών τρισδιάστατων πρωτογενών σχημάτων χρησιμοποιώντας λογικές πράξεις όπως η ένωση, η τομή και η διαφορά. Αυτή η προσέγγιση εξασφαλίζει ακριβή, μη‑μηνυαδική ασφαλή μοντελοποίηση κατάλληλη για μηχανική και κατασκευή. Για παράδειγμα, μπορείτε να δημιουργήσετε έναν κύλινδρο με τρύπα αφαιρώντας έναν μικρότερο κύλινδρο από έναν μεγαλύτερο. Οι λειτουργίες CSG ορίζονται δηλωτικά στο σενάριο, επιτρέποντας εύκολη παραμετροποίηση και αναθεώρηση. Αυτό καθιστά το OpenSCAD ιδανικό για το σχεδιασμό μηχανικών εξαρτημάτων, περιβλημάτων και λειτουργικών πρωτοτύπων όπου η ακρίβεια και η αναπαραγωγικότητα είναι κρίσιμες.
Πώς να δημιουργήσετε έναν κύλινδρο με τρύπα χρησιμοποιώντας CSG στο OpenSCAD;
difference() {
cylinder(h = 20, r = 10);
cylinder(h = 25, r = 4, center = true);
}
Εξώθηση 2Δ Περιγράμματος
Το OpenSCAD υποστηρίζει την εξώθηση 2D περιγραμμάτων που εισάγονται από αρχεία DXF ή ορίζονται απευθείας στον κώδικα SCAD. Αυτή η τεχνική είναι απαραίτητη για τη δημιουργία σύνθετων 3D σχημάτων από 2D προφίλ, όπως γρανάζια, στηρίγματα ή προσαρμοσμένα περιβλήματα. Μπορείτε να εξώθησετε διαδρομές γραμμικά ή να τις περιστρέψετε γύρω από έναν άξονα (μέσω περιστροφής). Η διαδικασία εξώθησης σέβεται τη σειρά των κορυφών και υποστηρίζει τόσο 2D πολύγωνα όσο και διαδρομές με τρύπες. Σε συνδυασμό με μετασχηματισμούς και μονάδες, αυτό επιτρέπει την παραμετρική δημιουργία εξαρτημάτων όπως σωλήνες, πλαίσια ή αρχιτεκτονικά στοιχεία, καθιστώντας το OpenSCAD ένα ισχυρό εργαλείο για τεχνικό σχεδιασμό και ροές παραγωγής.
Πώς να εξάγετε ένα 2Δ πολύγωνο σε ένα 3Δ αντικείμενο;
linear_extrude(height = 10, center = true, convexity = 10)
polygon(points = [[0,0], [10,0], [5,10]]);
Παραμετρική Μοντελοποίηση & Διαμόρφωση
Το OpenSCAD διαπρέπει στην παραμετρική μοντελοποίηση, όπου οι διαστάσεις και τα σχήματα ορίζονται χρησιμοποιώντας μεταβλητές και συναρτήσεις. Αυτό επιτρέπει στα σχέδια να προσαρμόζονται εύκολα αλλάζοντας μερικές παραμέτρους, καθιστώντας το ιδανικό για επαναληπτική πρωτοτυπία και προσαρμογή. Για παράδειγμα, μπορείτε να ορίσετε ένα μοντέλο που δέχεται παραμέτρους για το πλάτος, το ύψος και το πάχος, και στη συνέχεια να το χρησιμοποιήσετε ξανά σε πολλαπλά σχέδια. Οι παράμετροι μπορούν επίσης να καθοδηγούνται από εξωτερικά δεδομένα, όπως τιμές από αρχείο CSV ή DXF, επιτρέποντας την ενσωμάτωση με αγωγούς δεδομένων βασισμένους στην Python. Αυτή η δυνατότητα υποστηρίζει τη γενετική σχεδίαση, όπου τα μοντέλα προσαρμόζονται αυτόματα σε μεταβαλλόμενες απαιτήσεις ή περιορισμούς.
Πώς να ορίσετε μια επαναχρησιμοποιήσιμη παραμετρική μονάδα;
module box(width, height, thickness) {
difference() {
cube([width, height, thickness]);
translate([thickness, thickness, -1])
cube([width - 2*thickness, height - 2*thickness, thickness + 2]);
}
}
box(50, 30, 3);
Ενσωμάτωση Εισαγωγής & Εξαγωγής Δεδομένων
Το OpenSCAD παρέχει ισχυρή υποστήριξη για την εισαγωγή αρχείων 2D DXF και την εξαγωγή 3D μοντέλων σε STL, OFF και άλλες μορφές. Αυτό καθιστά εύκολη την ενσωμάτωση με εργαλεία CAD/CAM, 3D εκτυπωτές και λογισμικό προσομοίωσης. Οι εισαγωγές DXF μπορούν να περιλαμβάνουν διαδρομές για εξώθηση, ενώ οι εξαγωγές υποστηρίζουν δυαδικό και ASCII STL για 3D εκτύπωση. Επιπλέον, το OpenSCAD μπορεί να διαβάσει παραμέτρους σχεδίασης από αρχεία DXF, επιτρέποντας υβριδικές ροές εργασίας όπου η γεωμετρία ορίζεται σε εξωτερικά εργαλεία αλλά βελτιώνεται προγραμματιστικά. Αυτή η διαλειτουργικότητα, σε συνδυασμό με τη φύση βασισμένη σε σενάρια, επιτρέπει στους προγραμματιστές να αυτοματοποιούν τη δημιουργία μοντέλων και την επεξεργασία παρτίδων χρησιμοποιώντας Python ή script κελύφους, βελτιώνοντας τις παραγωγικές ροές εργασίας.
Πώς να εισάγετε ένα DXF και να το εξάγετε σε 3Δ;
linear_extrude(height = 5) {
import(file = "profile.dxf", layer = "outer");
}
