Thư viện Python nguồn mở cho bản vẽ CAD 2D và 3D
Thư viện CAD Python nguồn mở để tạo và quản lý mô hình 2D và 3D. Tạo khối Lego tham số và sử dụng bộ chọn bên trong ứng dụng Python.
Thư viện Build123d là gì?
Build123d là một gói CAD 3D Python mã nguồn mở, giúp các nhà phát triển phần mềm tạo bản vẽ 2D và 3D trong ứng dụng Python của riêng họ. Thư viện Build123d sử dụng trình quản lý ngữ cảnh Python chuẩn và có ba trình xây dựng để xử lý bản vẽ. Trình xây dựng BuildLine có thể được sử dụng cho các đối tượng một chiều, trình xây dựng BuildSketch cho các đối tượng hai chiều phẳng và trình xây dựng BuildPart cho các đối tượng ba chiều. Trình xây dựng sử dụng Ngữ cảnh Vị trí để định vị các đối tượng hoặc thao tác.
Thư viện đã bao gồm hỗ trợ cho nhiều thao tác 2D và 3D khác nhau, chẳng hạn như fillet, mirror, offset, scale, split, CounterBoreHole, CounterSinkHole, Extrude, Hole, Loft, Revolve, Scale, Section, Split, và nhiều thao tác khác. Ngoài những điều trên, thư viện còn có một số bộ chọn, toán tử chọn, toán tử cạnh và dây, toán tử mặt phẳng, toán tử vectơ và toán tử đỉnh.
Thư viện Build123d là một giải pháp thay thế hữu ích cho API Build123d, sở hữu nhiều ưu điểm vượt trội, và quan trọng nhất là build123d cho phép sử dụng toàn bộ bộ công cụ Python khi thiết kế đối tượng. Thư viện rất dễ vận hành và có thể dễ dàng định vị và quản lý đối tượng ở bất kỳ đâu.
Bắt đầu với Build123d
Cách dễ nhất để cài đặt Build123d phiên bản ổn định là sử dụng GitHub. Vui lòng sử dụng lệnh sau để cài đặt suôn sẻ
Cài đặt Build123d qua GitHub
python3 -m pip install git+https://github.com/gumyr/build123d.git#egg=build123d
Bạn có thể tải xuống thư viện chia sẻ đã biên dịch từ kho lưu trữ Github.
Cách sử dụng Bộ chọn thông qua Thư viện Python
Khi sử dụng hệ thống CAD dựa trên GUI, người dùng thường nhấp vào một đối tượng để chọn nó cho một thao tác nào đó. Bộ chọn là các thủ tục cho thấy cách người dùng có thể tách một đối tượng khỏi thiết kế bằng các phương pháp lọc và sắp xếp Python, thường được triển khai dưới dạng một tập hợp các thao tác Python tùy chỉnh. Vertices(), Edges(), Wires(), Solids() và Faces() là một số ví dụ về bộ chọn. Các kiểu toán hạng là: Axis, SortBy và GeomType. Xin lưu ý rằng các phương thức danh sách tiêu chuẩn như sorted hoặc filtered rất hữu ích trong việc tạo ra các bộ chọn phức tạp.
Tạo khối Lego tham số thông qua thư viện Python
Thư viện Python mã nguồn mở Build123d cho phép các nhà phát triển phần mềm tạo khối Lego tham số bên trong ứng dụng Python của riêng họ. Trước tiên, bạn cần khởi động môi trường build123d và xác định kích thước của khối Lego. Bây giờ, chúng ta có thể chuyển sang phần xây dựng và cần tạo cấu trúc bên trong của các khối. Về cấu trúc, chúng ta cần vẽ một bản phác thảo hai chiều, sau đó sẽ được đùn thành một vật thể ba chiều. Sau đó, chúng ta có thể xác định hình chữ nhật chu vi và tạo các bức tường của khối hình chữ nhật và tạo lưới bên trong. Tiếp theo, chúng ta cần chuyển đổi lưới bên trong thành các gờ, phần tâm cần được loại bỏ. Bây giờ, hãy tạo một tập hợp các hình trụ rỗng bên trong và đùn bản phác thảo thành các bức tường. Sau khi hoàn thành các bức tường, phần trên cùng của khối cần được thêm vào và bước cuối cùng là thêm các điểm.
Làm thế nào để tạo kích thước và lưới bên trong của khối Lego thông qua API Python?
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)