mirror of
https://github.com/dptech-corp/Uni-Lab-OS.git
synced 2025-12-19 14:01:20 +00:00
153 lines
3.3 KiB
Python
153 lines
3.3 KiB
Python
"""
|
|
弹夹架类定义 - 用于纽扣电池组装工作站
|
|
Magazine Holder Resource Classes
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
from typing import List, Optional
|
|
from pylabrobot.resources.coordinate import Coordinate
|
|
from pylabrobot.resources import ResourceHolder
|
|
from pylabrobot.resources.utils import create_ordered_items_2d
|
|
from unilabos.resources.itemized_carrier import ItemizedCarrier
|
|
|
|
|
|
def MagazineHolder_4_Cathode(name: str) -> ItemizedCarrier:
|
|
"""正极&铝箔弹夹 - 4个洞位 (2x2布局)
|
|
|
|
Args:
|
|
name: 弹夹名称
|
|
|
|
Returns:
|
|
ItemizedCarrier: 包含4个槽位的弹夹架
|
|
"""
|
|
sites = create_ordered_items_2d(
|
|
klass=ResourceHolder,
|
|
num_items_x=2,
|
|
num_items_y=2,
|
|
dx=10.0,
|
|
dy=10.0,
|
|
dz=0.0,
|
|
item_dx=50.0,
|
|
item_dy=30.0,
|
|
size_x=40.0,
|
|
size_y=25.0,
|
|
size_z=40.0,
|
|
)
|
|
|
|
return ItemizedCarrier(
|
|
name=name,
|
|
size_x=120.0,
|
|
size_y=80.0,
|
|
size_z=50.0,
|
|
num_items_x=2,
|
|
num_items_y=2,
|
|
sites=sites,
|
|
category="magazine_holder",
|
|
)
|
|
|
|
|
|
def MagazineHolder_6_Cathode(name: str) -> ItemizedCarrier:
|
|
"""正极壳&平垫片弹夹 - 6个洞位 (2x3布局)
|
|
|
|
Args:
|
|
name: 弹夹名称
|
|
|
|
Returns:
|
|
ItemizedCarrier: 包含6个槽位的弹夹架
|
|
"""
|
|
sites = create_ordered_items_2d(
|
|
klass=ResourceHolder,
|
|
num_items_x=3,
|
|
num_items_y=2,
|
|
dx=10.0,
|
|
dy=10.0,
|
|
dz=0.0,
|
|
item_dx=40.0,
|
|
item_dy=30.0,
|
|
size_x=35.0,
|
|
size_y=25.0,
|
|
size_z=40.0,
|
|
)
|
|
|
|
return ItemizedCarrier(
|
|
name=name,
|
|
size_x=150.0,
|
|
size_y=80.0,
|
|
size_z=50.0,
|
|
num_items_x=3,
|
|
num_items_y=2,
|
|
sites=sites,
|
|
category="magazine_holder",
|
|
)
|
|
|
|
|
|
def MagazineHolder_6_Anode(name: str) -> ItemizedCarrier:
|
|
"""负极壳&弹垫片弹夹 - 6个洞位 (2x3布局)
|
|
|
|
Args:
|
|
name: 弹夹名称
|
|
|
|
Returns:
|
|
ItemizedCarrier: 包含6个槽位的弹夹架
|
|
"""
|
|
sites = create_ordered_items_2d(
|
|
klass=ResourceHolder,
|
|
num_items_x=3,
|
|
num_items_y=2,
|
|
dx=10.0,
|
|
dy=10.0,
|
|
dz=0.0,
|
|
item_dx=40.0,
|
|
item_dy=30.0,
|
|
size_x=35.0,
|
|
size_y=25.0,
|
|
size_z=40.0,
|
|
)
|
|
|
|
return ItemizedCarrier(
|
|
name=name,
|
|
size_x=150.0,
|
|
size_y=80.0,
|
|
size_z=50.0,
|
|
num_items_x=3,
|
|
num_items_y=2,
|
|
sites=sites,
|
|
category="magazine_holder",
|
|
)
|
|
|
|
|
|
def MagazineHolder_6_Battery(name: str) -> ItemizedCarrier:
|
|
"""成品弹夹 - 6个洞位 (3x2布局)
|
|
|
|
Args:
|
|
name: 弹夹名称
|
|
|
|
Returns:
|
|
ItemizedCarrier: 包含6个槽位的弹夹架
|
|
"""
|
|
sites = create_ordered_items_2d(
|
|
klass=ResourceHolder,
|
|
num_items_x=3,
|
|
num_items_y=2,
|
|
dx=10.0,
|
|
dy=10.0,
|
|
dz=0.0,
|
|
item_dx=33.0,
|
|
item_dy=40.0,
|
|
size_x=30.0,
|
|
size_y=35.0,
|
|
size_z=40.0,
|
|
)
|
|
|
|
return ItemizedCarrier(
|
|
name=name,
|
|
size_x=120.0,
|
|
size_y=100.0,
|
|
size_z=50.0,
|
|
num_items_x=3,
|
|
num_items_y=2,
|
|
sites=sites,
|
|
category="magazine_holder",
|
|
)
|
|
|