mirror of
https://github.com/dptech-corp/Uni-Lab-OS.git
synced 2025-12-17 13:01:12 +00:00
feat: 添加YB瓶子和载架配置
- 在YB_bottles.py中添加8种瓶子类型(100ml液体、高粘液、5ml分液瓶、20ml分液瓶、配液瓶小、配液瓶大、枪头等) - 在YB_bottle_carriers.py中添加12个载架函数(包括新增的高粘液载架和100ml液体载架) - 更新config.py的MATERIAL_TYPE_MAPPINGS配置,添加16种物料类型映射 - 创建YB_bottle_carriers.yaml注册文件,包含所有载架和瓶子函数 - 创建YB_bottle.yaml注册文件,包含独立的瓶子函数配置 - 移除不存在的瓶子函数引用(YB_Solid_Vial等4个函数)
This commit is contained in:
@@ -129,15 +129,27 @@ WAREHOUSE_MAPPING = {
|
|||||||
"J02": "3a19deae-2c7a-1d45-b4f8-6f866530e205",
|
"J02": "3a19deae-2c7a-1d45-b4f8-6f866530e205",
|
||||||
"J03": "3a19deae-2c7a-f237-89d9-8fe19025dee9"
|
"J03": "3a19deae-2c7a-f237-89d9-8fe19025dee9"
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# 物料类型配置
|
# 物料类型配置
|
||||||
MATERIAL_TYPE_MAPPINGS = {
|
MATERIAL_TYPE_MAPPINGS = {
|
||||||
|
"100ml液体": ("YB_1Bottle100mlCarrier", "d37166b3-ecaa-481e-bd84-3032b795ba07"),
|
||||||
"加样头(大)": ("YB_jia_yang_tou_da_1X1_carrier", "3a190ca0-b2f6-9aeb-8067-547e72c11469"),
|
|
||||||
"液": ("YB_1BottleCarrier", "3a190ca1-2add-2b23-f8e1-bbd348b7f790"),
|
"液": ("YB_1BottleCarrier", "3a190ca1-2add-2b23-f8e1-bbd348b7f790"),
|
||||||
# YB信息
|
"高粘液": ("YB_1GaoNianYeBottleCarrier", "abe8df30-563d-43d2-85e0-cabec59ddc16"),
|
||||||
|
"加样头(大)": ("YB_jia_yang_tou_da_1X1_carrier", "3a190ca0-b2f6-9aeb-8067-547e72c11469"),
|
||||||
|
"加样头(大)板": ("YB_jia_yang_tou_da_1X1_carrier", "a8e714ae-2a4e-4eb9-9614-e4c140ec3f16"),
|
||||||
|
"5ml分液瓶板": ("YB_6x5ml_DispensingVialCarrier", "3a192fa4-007d-ec7b-456e-2a8be7a13f23"),
|
||||||
|
"5ml分液瓶": ("YB_6x5ml_DispensingVialCarrier", "3a192c2a-ebb7-58a1-480d-8b3863bf74f4"),
|
||||||
|
"20ml分液瓶板": ("YB_6x20ml_DispensingVialCarrier", "3a192fa4-47db-3449-162a-eaf8aba57e27"),
|
||||||
|
"20ml分液瓶": ("YB_6x20ml_DispensingVialCarrier", "3a192c2b-19e8-f0a3-035e-041ca8ca1035"),
|
||||||
|
"配液瓶(小)板": ("YB_6x_SmallSolutionBottleCarrier", "3a190c8b-3284-af78-d29f-9a69463ad047"),
|
||||||
|
"配液瓶(小)": ("YB_6x_SmallSolutionBottleCarrier", "3a190c8c-fe8f-bf48-0dc3-97afc7f508eb"),
|
||||||
|
"配液瓶(大)板": ("YB_4x_LargeSolutionBottleCarrier", "53e50377-32dc-4781-b3c0-5ce45bc7dc27"),
|
||||||
|
"配液瓶(大)": ("YB_4x_LargeSolutionBottleCarrier", "19c52ad1-51c5-494f-8854-576f4ca9c6ca"),
|
||||||
|
"适配器块": ("YB_AdapterBlock", "efc3bb32-d504-4890-91c0-b64ed3ac80cf"),
|
||||||
|
"枪头盒": ("YB_TipBox", "3a192c2e-20f3-a44a-0334-c8301839d0b3"),
|
||||||
|
"枪头": ("YB_TipBox", "b6196971-1050-46da-9927-333e8dea062d"),
|
||||||
}
|
}
|
||||||
|
|
||||||
SOLID_LIQUID_MAPPINGS = {
|
SOLID_LIQUID_MAPPINGS = {
|
||||||
|
|||||||
65
unilabos/registry/resources/bioyond/YB_bottle.yaml
Normal file
65
unilabos/registry/resources/bioyond/YB_bottle.yaml
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
YB_fen_ye_5ml_Bottle:
|
||||||
|
category:
|
||||||
|
- yb3
|
||||||
|
class:
|
||||||
|
module: unilabos.resources.bioyond.YB_bottles:YB_fen_ye_5ml_Bottle
|
||||||
|
type: pylabrobot
|
||||||
|
description: YB_fen_ye_5ml_Bottle
|
||||||
|
handles: []
|
||||||
|
icon: ''
|
||||||
|
init_param_schema: {}
|
||||||
|
registry_type: resource
|
||||||
|
version: 1.0.0
|
||||||
|
|
||||||
|
YB_fen_ye_20ml_Bottle:
|
||||||
|
category:
|
||||||
|
- yb3
|
||||||
|
class:
|
||||||
|
module: unilabos.resources.bioyond.YB_bottles:YB_fen_ye_20ml_Bottle
|
||||||
|
type: pylabrobot
|
||||||
|
description: YB_fen_ye_20ml_Bottle
|
||||||
|
handles: []
|
||||||
|
icon: ''
|
||||||
|
init_param_schema: {}
|
||||||
|
registry_type: resource
|
||||||
|
version: 1.0.0
|
||||||
|
|
||||||
|
YB_pei_ye_xiao_Bottle:
|
||||||
|
category:
|
||||||
|
- yb3
|
||||||
|
class:
|
||||||
|
module: unilabos.resources.bioyond.YB_bottles:YB_pei_ye_xiao_Bottle
|
||||||
|
type: pylabrobot
|
||||||
|
description: YB_pei_ye_xiao_Bottle
|
||||||
|
handles: []
|
||||||
|
icon: ''
|
||||||
|
init_param_schema: {}
|
||||||
|
registry_type: resource
|
||||||
|
version: 1.0.0
|
||||||
|
|
||||||
|
YB_pei_ye_da_Bottle:
|
||||||
|
category:
|
||||||
|
- yb3
|
||||||
|
class:
|
||||||
|
module: unilabos.resources.bioyond.YB_bottles:YB_pei_ye_da_Bottle
|
||||||
|
type: pylabrobot
|
||||||
|
description: YB_pei_ye_da_Bottle
|
||||||
|
handles: []
|
||||||
|
icon: ''
|
||||||
|
init_param_schema: {}
|
||||||
|
registry_type: resource
|
||||||
|
version: 1.0.0
|
||||||
|
|
||||||
|
YB_Pipette_Tip:
|
||||||
|
category:
|
||||||
|
- yb3
|
||||||
|
class:
|
||||||
|
module: unilabos.resources.bioyond.YB_bottles:YB_Pipette_Tip
|
||||||
|
type: pylabrobot
|
||||||
|
description: YB_Pipette_Tip
|
||||||
|
handles: []
|
||||||
|
icon: ''
|
||||||
|
init_param_schema: {}
|
||||||
|
registry_type: resource
|
||||||
|
version: 1.0.0
|
||||||
|
|
||||||
@@ -1,10 +1,24 @@
|
|||||||
YB_jia_yang_tou_da_1X1_carrier:
|
|
||||||
|
YB_6StockCarrier:
|
||||||
category:
|
category:
|
||||||
- yb3
|
- yb3
|
||||||
class:
|
class:
|
||||||
module: unilabos.resources.bioyond.YB_bottle_carriers:YB_jia_yang_tou_da_1X1_carrier
|
module: unilabos.resources.bioyond.YB_bottle_carriers:YB_6StockCarrier
|
||||||
type: pylabrobot
|
type: pylabrobot
|
||||||
description: YB_jia_yang_tou_da_1X1_carrier
|
description: YB_6StockCarrier
|
||||||
|
handles: []
|
||||||
|
icon: ''
|
||||||
|
init_param_schema: {}
|
||||||
|
registry_type: resource
|
||||||
|
version: 1.0.0
|
||||||
|
|
||||||
|
YB_6VialCarrier:
|
||||||
|
category:
|
||||||
|
- yb3
|
||||||
|
class:
|
||||||
|
module: unilabos.resources.bioyond.YB_bottle_carriers:YB_6VialCarrier
|
||||||
|
type: pylabrobot
|
||||||
|
description: YB_6VialCarrier
|
||||||
handles: []
|
handles: []
|
||||||
icon: ''
|
icon: ''
|
||||||
init_param_schema: {}
|
init_param_schema: {}
|
||||||
@@ -23,3 +37,172 @@ YB_1BottleCarrier:
|
|||||||
init_param_schema: {}
|
init_param_schema: {}
|
||||||
registry_type: resource
|
registry_type: resource
|
||||||
version: 1.0.0
|
version: 1.0.0
|
||||||
|
|
||||||
|
YB_1GaoNianYeBottleCarrier:
|
||||||
|
category:
|
||||||
|
- yb3
|
||||||
|
class:
|
||||||
|
module: unilabos.resources.bioyond.YB_bottle_carriers:YB_1GaoNianYeBottleCarrier
|
||||||
|
type: pylabrobot
|
||||||
|
description: YB_1GaoNianYeBottleCarrier
|
||||||
|
handles: []
|
||||||
|
icon: ''
|
||||||
|
init_param_schema: {}
|
||||||
|
registry_type: resource
|
||||||
|
version: 1.0.0
|
||||||
|
|
||||||
|
YB_1Bottle100mlCarrier:
|
||||||
|
category:
|
||||||
|
- yb3
|
||||||
|
class:
|
||||||
|
module: unilabos.resources.bioyond.YB_bottle_carriers:YB_1Bottle100mlCarrier
|
||||||
|
type: pylabrobot
|
||||||
|
description: YB_1Bottle100mlCarrier
|
||||||
|
handles: []
|
||||||
|
icon: ''
|
||||||
|
init_param_schema: {}
|
||||||
|
registry_type: resource
|
||||||
|
version: 1.0.0
|
||||||
|
|
||||||
|
YB_6x5ml_DispensingVialCarrier:
|
||||||
|
category:
|
||||||
|
- yb3
|
||||||
|
class:
|
||||||
|
module: unilabos.resources.bioyond.YB_bottle_carriers:YB_6x5ml_DispensingVialCarrier
|
||||||
|
type: pylabrobot
|
||||||
|
description: YB_6x5ml_DispensingVialCarrier
|
||||||
|
handles: []
|
||||||
|
icon: ''
|
||||||
|
init_param_schema: {}
|
||||||
|
registry_type: resource
|
||||||
|
version: 1.0.0
|
||||||
|
|
||||||
|
YB_6x20ml_DispensingVialCarrier:
|
||||||
|
category:
|
||||||
|
- yb3
|
||||||
|
class:
|
||||||
|
module: unilabos.resources.bioyond.YB_bottle_carriers:YB_6x20ml_DispensingVialCarrier
|
||||||
|
type: pylabrobot
|
||||||
|
description: YB_6x20ml_DispensingVialCarrier
|
||||||
|
handles: []
|
||||||
|
icon: ''
|
||||||
|
init_param_schema: {}
|
||||||
|
registry_type: resource
|
||||||
|
version: 1.0.0
|
||||||
|
|
||||||
|
YB_6x_SmallSolutionBottleCarrier:
|
||||||
|
category:
|
||||||
|
- yb3
|
||||||
|
class:
|
||||||
|
module: unilabos.resources.bioyond.YB_bottle_carriers:YB_6x_SmallSolutionBottleCarrier
|
||||||
|
type: pylabrobot
|
||||||
|
description: YB_6x_SmallSolutionBottleCarrier
|
||||||
|
handles: []
|
||||||
|
icon: ''
|
||||||
|
init_param_schema: {}
|
||||||
|
registry_type: resource
|
||||||
|
version: 1.0.0
|
||||||
|
|
||||||
|
YB_4x_LargeSolutionBottleCarrier:
|
||||||
|
category:
|
||||||
|
- yb3
|
||||||
|
class:
|
||||||
|
module: unilabos.resources.bioyond.YB_bottle_carriers:YB_4x_LargeSolutionBottleCarrier
|
||||||
|
type: pylabrobot
|
||||||
|
description: YB_4x_LargeSolutionBottleCarrier
|
||||||
|
handles: []
|
||||||
|
icon: ''
|
||||||
|
init_param_schema: {}
|
||||||
|
registry_type: resource
|
||||||
|
version: 1.0.0
|
||||||
|
|
||||||
|
YB_jia_yang_tou_da_1X1_carrier:
|
||||||
|
category:
|
||||||
|
- yb3
|
||||||
|
class:
|
||||||
|
module: unilabos.resources.bioyond.YB_bottle_carriers:YB_jia_yang_tou_da_1X1_carrier
|
||||||
|
type: pylabrobot
|
||||||
|
description: YB_jia_yang_tou_da_1X1_carrier
|
||||||
|
handles: []
|
||||||
|
icon: ''
|
||||||
|
init_param_schema: {}
|
||||||
|
registry_type: resource
|
||||||
|
version: 1.0.0
|
||||||
|
|
||||||
|
YB_AdapterBlock:
|
||||||
|
category:
|
||||||
|
- yb3
|
||||||
|
class:
|
||||||
|
module: unilabos.resources.bioyond.YB_bottle_carriers:YB_AdapterBlock
|
||||||
|
type: pylabrobot
|
||||||
|
description: YB_AdapterBlock
|
||||||
|
handles: []
|
||||||
|
icon: ''
|
||||||
|
init_param_schema: {}
|
||||||
|
registry_type: resource
|
||||||
|
version: 1.0.0
|
||||||
|
|
||||||
|
YB_TipBox:
|
||||||
|
category:
|
||||||
|
- yb3
|
||||||
|
class:
|
||||||
|
module: unilabos.resources.bioyond.YB_bottle_carriers:YB_TipBox
|
||||||
|
type: pylabrobot
|
||||||
|
description: YB_TipBox
|
||||||
|
handles: []
|
||||||
|
icon: ''
|
||||||
|
init_param_schema: {}
|
||||||
|
registry_type: resource
|
||||||
|
version: 1.0.0
|
||||||
|
|
||||||
|
YB_ye_Bottle:
|
||||||
|
category:
|
||||||
|
- yb3
|
||||||
|
class:
|
||||||
|
module: unilabos.resources.bioyond.YB_bottles:YB_ye_Bottle
|
||||||
|
type: pylabrobot
|
||||||
|
description: YB_ye_Bottle
|
||||||
|
handles: []
|
||||||
|
icon: ''
|
||||||
|
init_param_schema: {}
|
||||||
|
registry_type: resource
|
||||||
|
version: 1.0.0
|
||||||
|
|
||||||
|
YB_ye_100ml_Bottle:
|
||||||
|
category:
|
||||||
|
- yb3
|
||||||
|
class:
|
||||||
|
module: unilabos.resources.bioyond.YB_bottles:YB_ye_100ml_Bottle
|
||||||
|
type: pylabrobot
|
||||||
|
description: YB_ye_100ml_Bottle
|
||||||
|
handles: []
|
||||||
|
icon: ''
|
||||||
|
init_param_schema: {}
|
||||||
|
registry_type: resource
|
||||||
|
version: 1.0.0
|
||||||
|
|
||||||
|
YB_gao_nian_ye_Bottle:
|
||||||
|
category:
|
||||||
|
- yb3
|
||||||
|
class:
|
||||||
|
module: unilabos.resources.bioyond.YB_bottles:YB_gao_nian_ye_Bottle
|
||||||
|
type: pylabrobot
|
||||||
|
description: YB_gao_nian_ye_Bottle
|
||||||
|
handles: []
|
||||||
|
icon: ''
|
||||||
|
init_param_schema: {}
|
||||||
|
registry_type: resource
|
||||||
|
version: 1.0.0
|
||||||
|
|
||||||
|
YB_jia_yang_tou_da:
|
||||||
|
category:
|
||||||
|
- yb3
|
||||||
|
class:
|
||||||
|
module: unilabos.resources.bioyond.YB_bottles:YB_jia_yang_tou_da
|
||||||
|
type: pylabrobot
|
||||||
|
description: YB_jia_yang_tou_da
|
||||||
|
handles: []
|
||||||
|
icon: ''
|
||||||
|
init_param_schema: {}
|
||||||
|
registry_type: resource
|
||||||
|
version: 1.0.0
|
||||||
|
|||||||
@@ -3,7 +3,14 @@ from pylabrobot.resources import create_homogeneous_resources, Coordinate, Resou
|
|||||||
from unilabos.resources.itemized_carrier import Bottle, BottleCarrier
|
from unilabos.resources.itemized_carrier import Bottle, BottleCarrier
|
||||||
from unilabos.resources.bioyond.YB_bottles import (
|
from unilabos.resources.bioyond.YB_bottles import (
|
||||||
YB_jia_yang_tou_da,
|
YB_jia_yang_tou_da,
|
||||||
YB_ye_Bottle
|
YB_ye_Bottle,
|
||||||
|
YB_ye_100ml_Bottle,
|
||||||
|
YB_gao_nian_ye_Bottle,
|
||||||
|
YB_fen_ye_5ml_Bottle,
|
||||||
|
YB_fen_ye_20ml_Bottle,
|
||||||
|
YB_pei_ye_xiao_Bottle,
|
||||||
|
YB_pei_ye_da_Bottle,
|
||||||
|
YB_Pipette_Tip,
|
||||||
)
|
)
|
||||||
# 命名约定:试剂瓶-Bottle,烧杯-Beaker,烧瓶-Flask,小瓶-Vial
|
# 命名约定:试剂瓶-Bottle,烧杯-Beaker,烧瓶-Flask,小瓶-Vial
|
||||||
|
|
||||||
@@ -53,8 +60,8 @@ def BIOYOND_Electrolyte_6VialCarrier(name: str) -> BottleCarrier:
|
|||||||
carrier.num_items_x = 3
|
carrier.num_items_x = 3
|
||||||
carrier.num_items_y = 2
|
carrier.num_items_y = 2
|
||||||
carrier.num_items_z = 1
|
carrier.num_items_z = 1
|
||||||
for i in range(6):
|
# for i in range(6):
|
||||||
carrier[i] = YB_Solid_Vial(f"{name}_vial_{i+1}")
|
# carrier[i] = YB_Solid_Vial(f"{name}_vial_{i+1}")
|
||||||
return carrier
|
return carrier
|
||||||
|
|
||||||
|
|
||||||
@@ -91,7 +98,7 @@ def BIOYOND_Electrolyte_1BottleCarrier(name: str) -> BottleCarrier:
|
|||||||
carrier.num_items_x = 1
|
carrier.num_items_x = 1
|
||||||
carrier.num_items_y = 1
|
carrier.num_items_y = 1
|
||||||
carrier.num_items_z = 1
|
carrier.num_items_z = 1
|
||||||
carrier[0] = YB_Solution_Beaker(f"{name}_beaker_1")
|
# carrier[0] = YB_Solution_Beaker(f"{name}_beaker_1")
|
||||||
return carrier
|
return carrier
|
||||||
|
|
||||||
|
|
||||||
@@ -141,8 +148,8 @@ def YB_6StockCarrier(name: str) -> BottleCarrier:
|
|||||||
carrier.num_items_y = 2
|
carrier.num_items_y = 2
|
||||||
carrier.num_items_z = 1
|
carrier.num_items_z = 1
|
||||||
ordering = ["A1", "A2", "A3", "B1", "B2", "B3"] # 自定义顺序
|
ordering = ["A1", "A2", "A3", "B1", "B2", "B3"] # 自定义顺序
|
||||||
for i in range(6):
|
# for i in range(6):
|
||||||
carrier[i] = YB_Solid_Stock(f"{name}_vial_{ordering[i]}")
|
# carrier[i] = YB_Solid_Stock(f"{name}_vial_{ordering[i]}")
|
||||||
return carrier
|
return carrier
|
||||||
|
|
||||||
|
|
||||||
@@ -192,13 +199,13 @@ def YB_6VialCarrier(name: str) -> BottleCarrier:
|
|||||||
carrier.num_items_y = 2
|
carrier.num_items_y = 2
|
||||||
carrier.num_items_z = 1
|
carrier.num_items_z = 1
|
||||||
ordering = ["A1", "A2", "A3", "B1", "B2", "B3"] # 自定义顺序
|
ordering = ["A1", "A2", "A3", "B1", "B2", "B3"] # 自定义顺序
|
||||||
for i in range(3):
|
# for i in range(3):
|
||||||
carrier[i] = YB_Solid_Vial(f"{name}_solidvial_{ordering[i]}")
|
# carrier[i] = YB_Solid_Vial(f"{name}_solidvial_{ordering[i]}")
|
||||||
for i in range(3, 6):
|
# for i in range(3, 6):
|
||||||
carrier[i] = YB_Liquid_Vial(f"{name}_liquidvial_{ordering[i]}")
|
# carrier[i] = YB_Liquid_Vial(f"{name}_liquidvial_{ordering[i]}")
|
||||||
return carrier
|
return carrier
|
||||||
|
|
||||||
"""1瓶载架 - 单个中央位置"""
|
# 1瓶载架 - 单个中央位置
|
||||||
def YB_1BottleCarrier(name: str) -> BottleCarrier:
|
def YB_1BottleCarrier(name: str) -> BottleCarrier:
|
||||||
|
|
||||||
# 载架尺寸 (mm)
|
# 载架尺寸 (mm)
|
||||||
@@ -235,7 +242,80 @@ def YB_1BottleCarrier(name: str) -> BottleCarrier:
|
|||||||
return carrier
|
return carrier
|
||||||
|
|
||||||
|
|
||||||
"""5ml分液瓶板 - 4x2布局,8个位置"""
|
# 高粘液瓶载架 - 单个中央位置
|
||||||
|
def YB_1GaoNianYeBottleCarrier(name: str) -> BottleCarrier:
|
||||||
|
|
||||||
|
# 载架尺寸 (mm)
|
||||||
|
carrier_size_x = 127.8
|
||||||
|
carrier_size_y = 85.5
|
||||||
|
carrier_size_z = 20.0
|
||||||
|
|
||||||
|
# 烧杯尺寸
|
||||||
|
beaker_diameter = 60.0
|
||||||
|
|
||||||
|
# 计算中央位置
|
||||||
|
center_x = (carrier_size_x - beaker_diameter) / 2
|
||||||
|
center_y = (carrier_size_y - beaker_diameter) / 2
|
||||||
|
center_z = 5.0
|
||||||
|
|
||||||
|
carrier = BottleCarrier(
|
||||||
|
name=name,
|
||||||
|
size_x=carrier_size_x,
|
||||||
|
size_y=carrier_size_y,
|
||||||
|
size_z=carrier_size_z,
|
||||||
|
sites=create_homogeneous_resources(
|
||||||
|
klass=ResourceHolder,
|
||||||
|
locations=[Coordinate(center_x, center_y, center_z)],
|
||||||
|
resource_size_x=beaker_diameter,
|
||||||
|
resource_size_y=beaker_diameter,
|
||||||
|
name_prefix=name,
|
||||||
|
),
|
||||||
|
model="1GaoNianYeBottleCarrier",
|
||||||
|
)
|
||||||
|
carrier.num_items_x = 1
|
||||||
|
carrier.num_items_y = 1
|
||||||
|
carrier.num_items_z = 1
|
||||||
|
carrier[0] = YB_gao_nian_ye_Bottle(f"{name}_flask_1")
|
||||||
|
return carrier
|
||||||
|
|
||||||
|
|
||||||
|
# 100ml液体瓶载架 - 单个中央位置
|
||||||
|
def YB_1Bottle100mlCarrier(name: str) -> BottleCarrier:
|
||||||
|
|
||||||
|
# 载架尺寸 (mm)
|
||||||
|
carrier_size_x = 127.8
|
||||||
|
carrier_size_y = 85.5
|
||||||
|
carrier_size_z = 20.0
|
||||||
|
|
||||||
|
# 烧杯尺寸
|
||||||
|
beaker_diameter = 60.0
|
||||||
|
|
||||||
|
# 计算中央位置
|
||||||
|
center_x = (carrier_size_x - beaker_diameter) / 2
|
||||||
|
center_y = (carrier_size_y - beaker_diameter) / 2
|
||||||
|
center_z = 5.0
|
||||||
|
|
||||||
|
carrier = BottleCarrier(
|
||||||
|
name=name,
|
||||||
|
size_x=carrier_size_x,
|
||||||
|
size_y=carrier_size_y,
|
||||||
|
size_z=carrier_size_z,
|
||||||
|
sites=create_homogeneous_resources(
|
||||||
|
klass=ResourceHolder,
|
||||||
|
locations=[Coordinate(center_x, center_y, center_z)],
|
||||||
|
resource_size_x=beaker_diameter,
|
||||||
|
resource_size_y=beaker_diameter,
|
||||||
|
name_prefix=name,
|
||||||
|
),
|
||||||
|
model="1Bottle100mlCarrier",
|
||||||
|
)
|
||||||
|
carrier.num_items_x = 1
|
||||||
|
carrier.num_items_y = 1
|
||||||
|
carrier.num_items_z = 1
|
||||||
|
carrier[0] = YB_ye_100ml_Bottle(f"{name}_flask_1")
|
||||||
|
return carrier
|
||||||
|
|
||||||
|
# 5ml分液瓶板 - 4x2布局,8个位置
|
||||||
def YB_6x5ml_DispensingVialCarrier(name: str) -> BottleCarrier:
|
def YB_6x5ml_DispensingVialCarrier(name: str) -> BottleCarrier:
|
||||||
|
|
||||||
|
|
||||||
@@ -282,10 +362,10 @@ def YB_6x5ml_DispensingVialCarrier(name: str) -> BottleCarrier:
|
|||||||
carrier.num_items_z = 1
|
carrier.num_items_z = 1
|
||||||
ordering = ["A1", "A2", "A3", "A4", "B1", "B2", "B3", "B4"]
|
ordering = ["A1", "A2", "A3", "A4", "B1", "B2", "B3", "B4"]
|
||||||
for i in range(8):
|
for i in range(8):
|
||||||
carrier[i] = YB_5ml_Dispensing_Vial(f"{name}_vial_{ordering[i]}")
|
carrier[i] = YB_fen_ye_5ml_Bottle(f"{name}_vial_{ordering[i]}")
|
||||||
return carrier
|
return carrier
|
||||||
|
|
||||||
"""20ml分液瓶板 - 4x2布局,8个位置"""
|
# 20ml分液瓶板 - 4x2布局,8个位置
|
||||||
def YB_6x20ml_DispensingVialCarrier(name: str) -> BottleCarrier:
|
def YB_6x20ml_DispensingVialCarrier(name: str) -> BottleCarrier:
|
||||||
|
|
||||||
|
|
||||||
@@ -332,10 +412,10 @@ def YB_6x20ml_DispensingVialCarrier(name: str) -> BottleCarrier:
|
|||||||
carrier.num_items_z = 1
|
carrier.num_items_z = 1
|
||||||
ordering = ["A1", "A2", "A3", "A4", "B1", "B2", "B3", "B4"]
|
ordering = ["A1", "A2", "A3", "A4", "B1", "B2", "B3", "B4"]
|
||||||
for i in range(8):
|
for i in range(8):
|
||||||
carrier[i] = YB_20ml_Dispensing_Vial(f"{name}_vial_{ordering[i]}")
|
carrier[i] = YB_fen_ye_20ml_Bottle(f"{name}_vial_{ordering[i]}")
|
||||||
return carrier
|
return carrier
|
||||||
|
|
||||||
"""配液瓶(小)板 - 4x2布局,8个位置"""
|
# 配液瓶(小)板 - 4x2布局,8个位置
|
||||||
def YB_6x_SmallSolutionBottleCarrier(name: str) -> BottleCarrier:
|
def YB_6x_SmallSolutionBottleCarrier(name: str) -> BottleCarrier:
|
||||||
|
|
||||||
|
|
||||||
@@ -382,12 +462,12 @@ def YB_6x_SmallSolutionBottleCarrier(name: str) -> BottleCarrier:
|
|||||||
carrier.num_items_z = 1
|
carrier.num_items_z = 1
|
||||||
ordering = ["A1", "A2", "A3", "A4", "B1", "B2", "B3", "B4"]
|
ordering = ["A1", "A2", "A3", "A4", "B1", "B2", "B3", "B4"]
|
||||||
for i in range(8):
|
for i in range(8):
|
||||||
carrier[i] = YB_Small_Solution_Bottle(f"{name}_bottle_{ordering[i]}")
|
carrier[i] = YB_pei_ye_xiao_Bottle(f"{name}_bottle_{ordering[i]}")
|
||||||
return carrier
|
return carrier
|
||||||
|
|
||||||
|
|
||||||
|
# 配液瓶(大)板 - 2x2布局,4个位置
|
||||||
def YB_4x_LargeSolutionBottleCarrier(name: str) -> BottleCarrier:
|
def YB_4x_LargeSolutionBottleCarrier(name: str) -> BottleCarrier:
|
||||||
"""配液瓶(大)板 - 2x2布局,4个位置"""
|
|
||||||
|
|
||||||
# 载架尺寸 (mm)
|
# 载架尺寸 (mm)
|
||||||
carrier_size_x = 127.8
|
carrier_size_x = 127.8
|
||||||
@@ -432,10 +512,10 @@ def YB_4x_LargeSolutionBottleCarrier(name: str) -> BottleCarrier:
|
|||||||
carrier.num_items_z = 1
|
carrier.num_items_z = 1
|
||||||
ordering = ["A1", "A2", "B1", "B2"]
|
ordering = ["A1", "A2", "B1", "B2"]
|
||||||
for i in range(4):
|
for i in range(4):
|
||||||
carrier[i] = YB_Large_Solution_Bottle(f"{name}_bottle_{ordering[i]}")
|
carrier[i] = YB_pei_ye_da_Bottle(f"{name}_bottle_{ordering[i]}")
|
||||||
return carrier
|
return carrier
|
||||||
|
|
||||||
"""加样头(大)板 - 1x1布局,1个位置"""
|
# 加样头(大)板 - 1x1布局,1个位置
|
||||||
def YB_jia_yang_tou_da_1X1_carrier(name: str) -> BottleCarrier:
|
def YB_jia_yang_tou_da_1X1_carrier(name: str) -> BottleCarrier:
|
||||||
|
|
||||||
# 载架尺寸 (mm)
|
# 载架尺寸 (mm)
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
from unilabos.resources.itemized_carrier import Bottle, BottleCarrier
|
from unilabos.resources.itemized_carrier import Bottle, BottleCarrier
|
||||||
# 工厂函数
|
# 工厂函数
|
||||||
|
|
||||||
"""加样头(大)"""
|
"""加样头(大)"""
|
||||||
def YB_jia_yang_tou_da(
|
def YB_jia_yang_tou_da(
|
||||||
name: str,
|
name: str,
|
||||||
@@ -36,3 +35,129 @@ def YB_ye_Bottle(
|
|||||||
barcode=barcode,
|
barcode=barcode,
|
||||||
model="Liquid_Bottle",
|
model="Liquid_Bottle",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
"""100ml液体"""
|
||||||
|
def YB_ye_100ml_Bottle(
|
||||||
|
name: str,
|
||||||
|
diameter: float = 50.0,
|
||||||
|
height: float = 90.0,
|
||||||
|
max_volume: float = 100000.0, # 100mL
|
||||||
|
barcode: str = None,
|
||||||
|
) -> Bottle:
|
||||||
|
"""创建100ml液体瓶"""
|
||||||
|
return Bottle(
|
||||||
|
name=name,
|
||||||
|
diameter=diameter,
|
||||||
|
height=height,
|
||||||
|
max_volume=max_volume,
|
||||||
|
barcode=barcode,
|
||||||
|
model="Liquid_Bottle_100ml",
|
||||||
|
)
|
||||||
|
|
||||||
|
"""高粘液"""
|
||||||
|
def YB_gao_nian_ye_Bottle(
|
||||||
|
name: str,
|
||||||
|
diameter: float = 40.0,
|
||||||
|
height: float = 70.0,
|
||||||
|
max_volume: float = 50000.0, # 50mL
|
||||||
|
barcode: str = None,
|
||||||
|
) -> Bottle:
|
||||||
|
"""创建高粘液瓶"""
|
||||||
|
return Bottle(
|
||||||
|
name=name,
|
||||||
|
diameter=diameter,
|
||||||
|
height=height,
|
||||||
|
max_volume=max_volume,
|
||||||
|
barcode=barcode,
|
||||||
|
model="High_Viscosity_Liquid",
|
||||||
|
)
|
||||||
|
|
||||||
|
"""5ml分液瓶"""
|
||||||
|
def YB_fen_ye_5ml_Bottle(
|
||||||
|
name: str,
|
||||||
|
diameter: float = 20.0,
|
||||||
|
height: float = 50.0,
|
||||||
|
max_volume: float = 5000.0, # 5mL
|
||||||
|
barcode: str = None,
|
||||||
|
) -> Bottle:
|
||||||
|
"""创建5ml分液瓶"""
|
||||||
|
return Bottle(
|
||||||
|
name=name,
|
||||||
|
diameter=diameter,
|
||||||
|
height=height,
|
||||||
|
max_volume=max_volume,
|
||||||
|
barcode=barcode,
|
||||||
|
model="Separation_Bottle_5ml",
|
||||||
|
)
|
||||||
|
|
||||||
|
"""20ml分液瓶"""
|
||||||
|
def YB_fen_ye_20ml_Bottle(
|
||||||
|
name: str,
|
||||||
|
diameter: float = 30.0,
|
||||||
|
height: float = 65.0,
|
||||||
|
max_volume: float = 20000.0, # 20mL
|
||||||
|
barcode: str = None,
|
||||||
|
) -> Bottle:
|
||||||
|
"""创建20ml分液瓶"""
|
||||||
|
return Bottle(
|
||||||
|
name=name,
|
||||||
|
diameter=diameter,
|
||||||
|
height=height,
|
||||||
|
max_volume=max_volume,
|
||||||
|
barcode=barcode,
|
||||||
|
model="Separation_Bottle_20ml",
|
||||||
|
)
|
||||||
|
|
||||||
|
"""配液瓶(小)"""
|
||||||
|
def YB_pei_ye_xiao_Bottle(
|
||||||
|
name: str,
|
||||||
|
diameter: float = 35.0,
|
||||||
|
height: float = 60.0,
|
||||||
|
max_volume: float = 30000.0, # 30mL
|
||||||
|
barcode: str = None,
|
||||||
|
) -> Bottle:
|
||||||
|
"""创建配液瓶(小)"""
|
||||||
|
return Bottle(
|
||||||
|
name=name,
|
||||||
|
diameter=diameter,
|
||||||
|
height=height,
|
||||||
|
max_volume=max_volume,
|
||||||
|
barcode=barcode,
|
||||||
|
model="Mixing_Bottle_Small",
|
||||||
|
)
|
||||||
|
|
||||||
|
"""配液瓶(大)"""
|
||||||
|
def YB_pei_ye_da_Bottle(
|
||||||
|
name: str,
|
||||||
|
diameter: float = 55.0,
|
||||||
|
height: float = 100.0,
|
||||||
|
max_volume: float = 150000.0, # 150mL
|
||||||
|
barcode: str = None,
|
||||||
|
) -> Bottle:
|
||||||
|
"""创建配液瓶(大)"""
|
||||||
|
return Bottle(
|
||||||
|
name=name,
|
||||||
|
diameter=diameter,
|
||||||
|
height=height,
|
||||||
|
max_volume=max_volume,
|
||||||
|
barcode=barcode,
|
||||||
|
model="Mixing_Bottle_Large",
|
||||||
|
)
|
||||||
|
|
||||||
|
"""枪头"""
|
||||||
|
def YB_Pipette_Tip(
|
||||||
|
name: str,
|
||||||
|
diameter: float = 10.0,
|
||||||
|
height: float = 50.0,
|
||||||
|
max_volume: float = 1000.0, # 1mL
|
||||||
|
barcode: str = None,
|
||||||
|
) -> Bottle:
|
||||||
|
"""创建枪头"""
|
||||||
|
return Bottle(
|
||||||
|
name=name,
|
||||||
|
diameter=diameter,
|
||||||
|
height=height,
|
||||||
|
max_volume=max_volume,
|
||||||
|
barcode=barcode,
|
||||||
|
model="Pipette_Tip",
|
||||||
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user