کتابخانه متنباز پایتون برای نقشههای CAD دوبعدی و سهبعدی
کتابخانه CAD پایتون متنباز برای ایجاد و مدیریت مدلهای دوبعدی و سهبعدی. ایجاد بلوکهای پارامتری لگو و استفاده از انتخابگرها در برنامههای پایتون.
کتابخانه Build123d چیست؟
Build123d یک بسته CAD سهبعدی متنباز پایتون است که به توسعهدهندگان نرمافزار کمک میکند تا نقشههای دوبعدی و سهبعدی را در برنامههای پایتون خود ایجاد کنند. کتابخانه Build123d از مدیر زمینه استاندارد پایتون استفاده میکند و سه سازنده برای مدیریت نقشهها در دسترس است. سازنده BuildLine میتواند برای اشیاء یک بعدی، سازنده BuildSketch برای اشیاء دوبعدی مسطح و سازنده BuildPart برای اشیاء سهبعدی استفاده شود. یک سازنده از Location Contexts برای موقعیتیابی اشیاء یا عملیات استفاده میکند.
این کتابخانه از عملیات مختلف دوبعدی و سهبعدی مانند fillet، mirror، offset، scale، split، CounterBoreHole، CounterSinkHole، Extrude، Hole، Loft، Revolve، Scale، Section، Split و موارد دیگر پشتیبانی میکند. جدا از موارد فوق، چندین انتخابگر وجود دارد، عملگرهای انتخابگر، عملگرهای لبه و سیم، عملگرهای صفحه، عملگرهای بردار و عملگرهای رأس نیز بخشی از این کتابخانه هستند.
کتابخانه Build123d یک جایگزین مفید برای API Build123d است که مزایای زیادی نسبت به آن دارد و مهمترین آن این است که build123d هنگام طراحی اشیاء، جعبه ابزار کامل پایتون را فعال میکند. کار با این کتابخانه بسیار ساده است و میتوان به راحتی اشیاء را در هر مکانی قرار داد و مدیریت کرد.
شروع کار با Build123d
سادهترین راه برای نصب نسخه پایدار Build123d استفاده از GitHub است. لطفاً برای نصب روان از دستور زیر استفاده کنید.
Install Build123d via GitHub
python3 -m pip install git+https://github.com/gumyr/build123d.git#egg=build123d
شما میتوانید کتابخانه مشترک کامپایل شده را از مخزن گیتهاب دانلود کنید.
نحوه استفاده از انتخابگرها از طریق کتابخانه پایتون
Aهنگام استفاده از یک سیستم CAD مبتنی بر رابط کاربری گرافیکی، کاربر اغلب روی یک ویژگی کلیک میکند تا آن را برای برخی عملیات انتخاب کند. انتخابگرها رویههایی هستند که نشان میدهند چگونه کاربران میتوانند با استفاده از روشهای فیلتر و مرتبسازی پایتون که معمولاً به عنوان مجموعهای از عملیات سفارشی پایتون پیادهسازی میشوند، یک ویژگی را از یک طرح جدا کنند. vertices()،edges()،wires()،solids() وfaces() نمونههایی از انتخابگرها هستند. انواع عملوندها عبارتند از: Axis، SortBy و GeomType. لطفاً به یاد داشته باشید که روشهای استاندارد لیست مانند sorted یا filtered در تولید انتخابگرهای پیچیده مفید هستند.
ایجاد بلوک لگو پارامتری از طریق کتابخانه پایتون
کتابخانه متنباز پایتون Build123d به توسعهدهندگان نرمافزار اجازه میدهد تا بلوک لگو پارامتری را در برنامههای پایتون خود ایجاد کنند. ابتدا باید محیط build123d را فعال کرده و ابعاد بلوک لگو را تعریف کنید. اکنون میتوانیم به بخش سازنده برویم و ساختار داخلی بلوکها را ایجاد کنیم. برای ساختار، باید یک طرح دو بعدی رسم کنیم که بعداً به یک شیء سهبعدی تبدیل شود. پس از آن میتوانیم مستطیل محیطی را تعریف کنیم و دیوارهای مستطیل بلوک را ایجاد کرده و شبکه داخلی ایجاد کنیم. پس از آن باید شبکه داخلی را به برآمدگی تبدیل کنیم، مرکز باید حذف شود. اکنون مجموعهای از استوانههای توخالی داخلی ایجاد کنید و طرح را به دیوارها تبدیل کنید. پس از تکمیل دیوارها، بالای بلوک باید اضافه شود و مرحله آخر اضافه کردن پیپها است.
چگونه ابعاد و شبکه داخلی بلوک لگو را از طریق 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)