Βιβλιοθήκη Python ανοιχτού κώδικα για σχέδια CAD 2D και 3D
Βιβλιοθήκη CAD Python ανοιχτού κώδικα για τη δημιουργία και διαχείριση μοντέλων 2D και 3D. Δημιουργήστε παραμετρικά μπλοκ Lego και χρησιμοποιήστε επιλογείς μέσα σε εφαρμογές Python.
Τι είναι η Βιβλιοθήκη Build123d;
Το Build123d είναι ένα πακέτο Python 3D CAD ανοιχτού κώδικα που βοηθά τους προγραμματιστές λογισμικού να δημιουργούν σχέδια 2D και 3D μέσα στις δικές τους εφαρμογές Python. Η βιβλιοθήκη Build123d χρησιμοποιεί τον τυπικό διαχειριστή περιβάλλοντος Python και υπάρχουν τρεις διαθέσιμοι δημιουργοί για τον χειρισμό σχεδίων. Ο δημιουργός BuildLine μπορεί να χρησιμοποιηθεί για μονοδιάστατα αντικείμενα, ο δημιουργός BuildSketch για επίπεδα δισδιάστατα αντικείμενα και ο δημιουργός BuildPart για τρισδιάστατα αντικείμενα. Ένας δημιουργός χρησιμοποιεί Πλαίσια Τοποθεσίας για την τοποθέτηση αντικειμένων ή λειτουργιών.
Η βιβλιοθήκη περιλαμβάνει υποστήριξη για διάφορες λειτουργίες 2D και 3D, όπως φιλέτο, καθρέφτισμα, μετατόπιση, κλίμακα, διαίρεση, CounterBoreHole, CounterSinkHole, εξώθηση, τρύπα, λοφτ, περιστροφή, κλίμακα, τομή, διαίρεση και πολλά άλλα. Εκτός από τα παραπάνω, υπάρχουν επίσης αρκετοί επιλογείς, τελεστές επιλογέων, τελεστές ακμών και καλωδίων, τελεστές επιπέδου, τελεστές διανυσμάτων και τελεστές κορυφών που αποτελούν επίσης μέρος της βιβλιοθήκης.
Η βιβλιοθήκη Build123d είναι μια χρήσιμη εναλλακτική λύση στο API Build123d, έχοντας πολλά πλεονεκτήματα έναντι αυτού, και το πιο σημαντικό είναι ότι το build123d επιτρέπει την πλήρη εργαλειοθήκη python κατά το σχεδιασμό αντικειμένων. Η βιβλιοθήκη είναι πολύ απλή στη λειτουργία και μπορεί κανείς εύκολα να τοποθετήσει και να διαχειριστεί αντικείμενα οπουδήποτε.
Ξεκινώντας με το Build123d
Ο ευκολότερος τρόπος για να εγκαταστήσετε τη σταθερή έκδοση του Build123d είναι χρησιμοποιώντας το GitHub. Χρησιμοποιήστε την ακόλουθη εντολή για ομαλή εγκατάσταση
Εγκαταστήστε το Build123d μέσω GitHub
python3 -m pip install git+https://github.com/gumyr/build123d.git#egg=build123d
Μπορείτε να κατεβάσετε την μεταγλωττισμένη κοινόχρηστη βιβλιοθήκη από το αποθετήριο Github.
Πώς να χρησιμοποιήσετε επιλογείς μέσω της βιβλιοθήκης Python
Όταν χρησιμοποιείτε ένα σύστημα CAD που βασίζεται σε γραφικό περιβάλλον χρήστη (GUI), ο χρήστης συχνά κάνει κλικ σε ένα χαρακτηριστικό για να το επιλέξει για κάποια λειτουργία. Οι επιλογείς είναι διαδικασίες που δείχνουν πώς οι χρήστες μπορούν να διαχωρίσουν ένα χαρακτηριστικό από ένα σχέδιο χρησιμοποιώντας φίλτρο Python και μεθόδους ταξινόμησης που συνήθως υλοποιούνται ως ένα σύνολο προσαρμοσμένων λειτουργιών Python. Οι vertices(), edges(), wires(), solids() και faces() είναι μερικά παραδείγματα επιλογέων. Οι τύποι τελεστέων είναι: Axis, SortBy και GeomType. Λάβετε υπόψη ότι οι τυπικές μέθοδοι λίστας, όπως οι ταξινομημένες ή οι φιλτραρισμένες, είναι χρήσιμες για τη δημιουργία σύνθετων επιλογέων.
Δημιουργία Παραμετρικού Lego Block μέσω της Βιβλιοθήκης Python
Η Βιβλιοθήκη Python ανοιχτού κώδικα Build123d επιτρέπει στους προγραμματιστές λογισμικού να δημιουργούν παραμετρικά Lego Block μέσα στις δικές τους εφαρμογές Python. Πρώτα πρέπει να εισάγετε το περιβάλλον build123d και να ορίσετε τις διαστάσεις του Lego Block. Τώρα μπορούμε να προχωρήσουμε στο τμήμα του builder και να δημιουργήσουμε την εσωτερική δομή των μπλοκ. Για τη δομή, πρέπει να σχεδιάσουμε ένα δισδιάστατο σκίτσο που αργότερα θα εξωθηθεί σε ένα τρισδιάστατο αντικείμενο. Στη συνέχεια, μπορούμε να ορίσουμε ένα ορθογώνιο περιμέτρου και να δημιουργήσουμε τοίχους του ορθογωνίου μπλοκ και να δημιουργήσουμε εσωτερικό πλέγμα. Στη συνέχεια, πρέπει να μετατρέψουμε το εσωτερικό πλέγμα σε κορυφογραμμές, το κέντρο πρέπει να αφαιρεθεί. Τώρα δημιουργήστε ένα σύνολο εσωτερικών κοίλων κυλίνδρων και εξωθήστε το Sketch σε Walls. Μετά την ολοκλήρωση των τοίχων, πρέπει να προστεθεί η κορυφή του μπλοκ και το τελευταίο βήμα είναι να προσθέσετε τα pips.
Πώς να δημιουργήσετε διαστάσεις και εσωτερικό πλέγμα ενός μπλοκ Lego μέσω Python API;
from build123d import *
pip_count = 6
lego_unit_size = 8
pip_height = 1.8
pip_diameter = 4.8
block_length = lego_unit_size * pip_count
block_width = 16
base_height = 9.6
block_height = base_height + pip_height
support_outer_diameter = 6.5
support_inner_diameter = 4.8
ridge_width = 0.6
ridge_depth = 0.3
wall_thickness = 1.2
// instantiate a BuildPart
with BuildPart() as lego:
//create a sketch builder
with BuildPart() as lego:
# Draw the bottom of the block
with BuildSketch() as plan:
//create Perimeter Rectangle
with BuildPart() as lego:
# Draw the bottom of the block
with BuildSketch() as plan:
# Start with a Rectangle the size of the block
perimeter = Rectangle(width=block_length, height=block_width)
//create the walls of the block
ith BuildPart() as lego:
# Draw the bottom of the block
with BuildSketch() as plan:
# Start with a Rectangle the size of the block
perimeter = Rectangle(width=block_length, height=block_width)
# Subtract an offset to create the block walls
Offset(
perimeter,
amount=-wall_thickness,
kind=Kind.INTERSECTION,
mode=Mode.SUBTRACT,
)
//Create Internal Grid
with BuildPart() as lego:
# Draw the bottom of the block
with BuildSketch() as plan:
# Start with a Rectangle the size of the block
perimeter = Rectangle(width=block_length, height=block_width)
# Subtract an offset to create the block walls
Offset(
perimeter,
amount=-wall_thickness,
kind=Kind.INTERSECTION,
mode=Mode.SUBTRACT,
)
# Add a grid of lengthwise and widthwise bars
with GridLocations(x_spacing=0, y_spacing=lego_unit_size, x_count=1, y_count=2):
Rectangle(width=block_length, height=ridge_width)
with GridLocations(lego_unit_size, 0, pip_count, 1):
Rectangle(width=ridge_width, height=block_width)