ไลบรารี Python โอเพนซอร์สสำหรับการวาด CAD 2 มิติและ 3 มิติ
ไลบรารี CAD โอเพนซอร์ส Python สำหรับการสร้างและจัดการโมเดล 2 มิติและ 3 มิติ สร้างบล็อกเลโก้แบบพารามิเตอร์ และใช้ตัวเลือกในแอปพลิเคชัน Python
ไลบรารี Build123d คืออะไร
Build123d เป็นแพ็กเกจ CAD 3 มิติแบบโอเพนซอร์สสำหรับ Python ที่ช่วยให้นักพัฒนาซอฟต์แวร์สามารถสร้างแบบร่าง 2 มิติและ 3 มิติภายในแอปพลิเคชัน Python ของตนเอง ไลบรารี Build123d ใช้ตัวจัดการบริบทมาตรฐานของ Python และมีตัวสร้างสามตัวสำหรับจัดการแบบร่าง ตัวสร้าง BuildLine สามารถใช้กับวัตถุมิติเดียว ตัวสร้าง BuildSketch สำหรับวัตถุสองมิติระนาบ และตัวสร้าง BuildPart สำหรับวัตถุสามมิติ ตัวสร้างใช้ Location Contexts สำหรับการจัดตำแหน่งวัตถุหรือการดำเนินการ
ไลบรารีนี้รองรับการดำเนินการ 2 มิติและ 3 มิติที่หลากหลาย เช่น การปรับมุมฉาก (Fillet), การสะท้อน (Mirror), การชดเชย (Offset), การปรับสเกล (Scale), การแบ่ง (Split), รูเจาะ (CounterBoreHole), รูเจาะ (CounterSinkHole), การอัดรีด (Extrude), รู (Hole), ลอฟต์ (Lift), การหมุน (Revolve), การปรับสเกล (Scale), การแบ่งส่วน (Section), การแบ่งส่วน (Split) และอื่นๆ อีกมากมาย นอกเหนือจากที่กล่าวมาแล้ว ยังมีตัวเลือก ตัวดำเนินการตัวเลือก ตัวดำเนินการขอบและเส้น ตัวดำเนินการระนาบ ตัวดำเนินการเวกเตอร์ และตัวดำเนินการจุดยอดอีกหลายตัว ซึ่งรวมอยู่ในไลบรารีนี้ด้วย
ไลบรารี Build123d เป็นทางเลือกที่มีประโยชน์สำหรับ Build123d API ซึ่งมีข้อดีเหนือกว่าหลายประการ และที่สำคัญที่สุดคือ build123d ช่วยให้สามารถใช้ชุดเครื่องมือ Python ได้อย่างเต็มรูปแบบเมื่อออกแบบอ็อบเจกต์ ไลบรารีนี้ใช้งานง่ายมาก และสามารถจัดตำแหน่งและจัดการอ็อบเจกต์ได้อย่างง่ายดายจากทุกที่
การเริ่มต้นใช้งาน Build123d
วิธีที่ง่ายที่สุดในการติดตั้ง Build123d เวอร์ชันเสถียรคือการใช้ GitHub โปรดใช้คำสั่งต่อไปนี้เพื่อการติดตั้งที่ราบรื่น
ติดตั้ง Build123d ผ่าน GitHub
python3 -m pip install git+https://github.com/gumyr/build123d.git#egg=build123d
คุณสามารถดาวน์โหลดไลบรารีที่แชร์ที่คอมไพล์แล้วจากที่เก็บ Github
วิธีใช้ Selectors ผ่านไลบรารี Python
เมื่อใช้ระบบ CAD ที่ใช้ GUI ผู้ใช้มักจะคลิกที่ฟีเจอร์เพื่อเลือกใช้งาน Selectors คือโพรซีเดอร์ที่แสดงวิธีที่ผู้ใช้สามารถแยกฟีเจอร์ออกจากดีไซน์โดยใช้ฟิลเตอร์ Python และเมธอดการเรียงลำดับ ซึ่งโดยทั่วไปแล้วจะถูกนำไปใช้เป็นชุดการดำเนินการ Python แบบกำหนดเอง ตัวอย่าง selectors ได้แก่ vertices(), edges(), wires(), solids() และ faces() ประเภทของตัวดำเนินการ ได้แก่ Axis, SortBy และ GeomType โปรดจำไว้ว่าเมธอดรายการมาตรฐาน เช่น sorted หรือ filtered มีประโยชน์ในการสร้าง selectors ที่ซับซ้อน
สร้างบล็อกเลโก้แบบพาราเมตริกผ่านไลบรารี Python
ไลบรารี Python แบบโอเพนซอร์ส Build123d ช่วยให้นักพัฒนาซอฟต์แวร์สามารถสร้างบล็อกเลโก้แบบพาราเมตริกภายในแอปพลิเคชัน Python ของตนเองได้ ขั้นแรกคุณต้องกำหนดสภาพแวดล้อม build123d และกำหนดขนาดของบล็อกเลโก้ จากนั้นเราสามารถไปที่ส่วนของ Builder และต้องสร้างโครงสร้างภายในของบล็อก สำหรับโครงสร้าง เราต้องวาดภาพร่างสองมิติที่จะขยายออกเป็นวัตถุสามมิติในภายหลัง หลังจากนั้นเราสามารถกำหนดเส้นรอบวงสี่เหลี่ยมผืนผ้า สร้างผนังของบล็อกสี่เหลี่ยมผืนผ้า และสร้างตารางภายใน หลังจากนั้นเราต้องแปลงตารางภายในเป็นสัน โดยต้องลบจุดศูนย์กลางออก จากนั้นสร้างชุดทรงกระบอกกลวงภายในและขยายภาพร่างเข้าไปในผนัง หลังจากสร้างผนังเสร็จแล้ว จะต้องเพิ่มส่วนบนของบล็อก และขั้นตอนสุดท้ายคือการเพิ่มจุด
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)