Это обновлённый AiSearch.Что-то работает не так? Расскажите или вернитесь на прежнюю версиюСообщитьПрежняя версия✕

Угловой кронштейн с ребром: скрипт CadQuery (model.py)

Автор: User 254f7fd2

Построено нейросетью по описанию: «Угловой кронштейн из пластины толщиной 5 мм: две полки 60×40 мм под прямым углом, треугольное ребро жёсткости посередине, по два отверстия 6,5 мм в каждой полке». Здесь все файлы модели: STEP, STL, GLB, архив, скрипт CadQuery и картинки. Сделать свою деталь: aisearch.ru/aimedia/3d-model

Угловой кронштейн с ребром - model.py · 2.0 KB · text/x-pythonСделать своёОткрыть в JupyterСкачать
import cadquery as cq
import cadkit as ck

# Parameters
PLATE_T = 5.0              # Thickness of the plates (mm)
SHELF_L = 60.0             # Length of the shelves (mm)
SHELF_W = 40.0             # Width of the shelves (mm)
HOLE_D = 6.5               # Clearance hole diameter (mm)
HOLE_OFFSET = 12.0         # Offset of holes from edges (mm)
GUSSET_W = 15.0            # Width of the central reinforcement rib (mm)
GUSSET_L = 30.0            # Leg length of the triangular rib (mm)
FILLET_R = 0.5             # Small fillet for edges (mm)

# 1. Bottom Shelf
# Create the base plate and cut holes in one chain to avoid "Cannot find solid" error
bottom = (
    cq.Workplane("XY")
    .box(SHELF_L, SHELF_W, PLATE_T, centered=(True, True, False))
    .faces(">Z").workplane()
    .pushPoints([
        (-SHELF_L/2 + HOLE_OFFSET, 0),
        (SHELF_L/2 - HOLE_OFFSET, 0)
    ])
    .hole(HOLE_D)
)

# 2. Vertical Shelf
# Positioned at the left edge of the bottom shelf
vertical = (
    cq.Workplane("XY")
    .workplane(offset=PLATE_T)
    .center(-SHELF_L/2 + PLATE_T/2, 0)
    .box(PLATE_T, SHELF_W, SHELF_L - PLATE_T, centered=(True, True, False))
    .faces("<X").workplane()
    .center(0, 0)
    .pushPoints([
        (0, - (SHELF_L - PLATE_T)/2 + HOLE_OFFSET),
        (0, (SHELF_L - PLATE_T)/2 - HOLE_OFFSET)
    ])
    .hole(HOLE_D)
)

# 3. Gusset (Reinforcement Rib)
# Triangle in XZ plane, extruded along Y
# We define the triangle vertices relative to the inner corner
gusset = (
    cq.Workplane("XZ")
    .center(-SHELF_L/2 + PLATE_T, PLATE_T)
    .polyline([(0, 0), (GUSSET_L, 0), (0, GUSSET_L)])
    .close()
    .extrude(GUSSET_W, both=True)
)

# Combine all components
bracket = bottom.union(vertical).union(gusset)

# Apply small fillets to the outer edges for a manufacturable look
# We select edges that are not the hole edges to avoid errors
bracket = bracket.edges().fillet(FILLET_R)

# Assembly for final result
assy = cq.Assembly()
assy.add(bracket, name="angle_bracket", color=cq.Color(0.7, 0.7, 0.7))

result = assy

Похожее