From 6f2b0367f2408538b8511c761dfa297cd1b2d0c3 Mon Sep 17 00:00:00 2001 From: Rivera Andres <andres.rivera@stud.tu-darmstadt.de> Date: Tue, 29 Oct 2024 23:24:17 +0000 Subject: [PATCH] Alle Teilen wurden definiert und ich habe ein Loop fur einigen Teilen benutzt --- ausarbeitung.ipynb | 128 +++++++++------------------------------------ 1 file changed, 26 insertions(+), 102 deletions(-) diff --git a/ausarbeitung.ipynb b/ausarbeitung.ipynb index 7a74ab8..fc2e3ba 100644 --- a/ausarbeitung.ipynb +++ b/ausarbeitung.ipynb @@ -112,7 +112,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "690da270", "metadata": {}, "outputs": [], @@ -125,7 +125,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "ccaf3043", "metadata": {}, "outputs": [], @@ -133,19 +133,20 @@ "# initialize components\n", "\n", "with open(\"datasheets/axles.json\") as json_file:\n", - " axles_data = json.load(json_file)\n", + " axles_data = json.load(json_file)\n", "with open(\"datasheets/motors.json\") as json_file:\n", - " motors_data = json.load(json_file)\n", + " motors_data = json.load(json_file)\n", "with open(\"datasheets/gears.json\") as json_file:\n", - " gears_data = json.load(json_file)\n", + " gears_data = json.load(json_file)\n", "with open(\"datasheets/batteries.json\") as json_file:\n", - " batteries_data = json.load(json_file)\n", + " batteries_data = json.load(json_file)\n", "with open(\"datasheets/frame.json\") as json_file:\n", - " frame_data = json.load(json_file)\n", + " frame_data = json.load(json_file)\n", "with open(\"datasheets/tires.json\") as json_file:\n", - " tires_data = json.load(json_file)\n", + " tires_data = json.load(json_file)\n", "with open(\"datasheets/rims.json\") as json_file:\n", - " rims_data = json.load(json_file)\n", + " rims_data = json.load(json_file)\n", + "\n", "\n", "battery = LegoComponent(\"battery\", batteries_data[\"8881-1\"])\n", "\n", @@ -161,34 +162,31 @@ "axle_side_1 = LegoComponent(\"axle side 1\", axles_data[\"50451\"])\n", "axles=[axle_side_1]\n", "for i in range (2,4):\n", - " cloned_axle=axle_side_1.clone(f\"axle_side_{i}\")\n", - " axles.append(cloned_axle)\n", + " cloned_axle=axle_side_1.clone(f\"axle_side_{i}\")\n", + " axles.append(cloned_axle)\n", "\n", "tire_1 = LegoComponent(\"tire 1\", tires_data[\"30699\"])\n", "tires=[tire_1]\n", "for i in range (2,5):\n", - " cloned_tire=tire_1.clone(f\"tire_{i}\")\n", - " tires.append(cloned_tire)\n", + " cloned_tire=tire_1.clone(f\"tire_{i}\")\n", + " tires.append(cloned_tire)\n", "\n", "rim_1 = LegoComponent(\"rim 1\", rims_data[\"56904\"])\n", "rims=[rim_1]\n", "for i in range (2,5):\n", - " cloned_rim=rim_1.clone(f\"rim_{i}\")\n", - " rims.append(cloned_rim)\n", + " cloned_rim=rim_1.clone(f\"rim_{i}\")\n", + " rims.append(cloned_rim)\n", "\n", "technic_bush_1 = LegoComponent(\"technic bush 1\", frame_data[\"32123\"])\n", "technich_bushes=[technic_bush_1]\n", "for i in range (2,7):\n", - " cloned_technich_bush=technic_bush_1.clone(f\"technic_bush_{i}\")\n", - " technich_bushes.append(cloned_technich_bush)\n", - "\n", - "\n", - "\n" + " cloned_technich_bush=technic_bush_1.clone(f\"technic_bush_{i}\")\n", + " technich_bushes.append(cloned_technich_bush)\n" ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "36f981df", "metadata": {}, "outputs": [], @@ -198,53 +196,13 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "da2d141c", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[LegoComponent(label='green base', **{'item number': 39790, 'item description': 'Technic, Liftarm, Modified Frame Thick 11 x 15 Open Center', 'category': 'frame', 'price [Euro]': 2.19, 'mass [g]': 12.96, 'environmental impact [kg CO2e /kg]': 11.93, 'delivery time [days]': 3, 'data source': 'https://www.bricklink.com/v2/catalog/catalogitem.page?P=39790', 'dimension [studs]': '11 x 15 x 1'})]\n", - "[LegoComponent(label='green base', **{'item number': 39790, 'item description': 'Technic, Liftarm, Modified Frame Thick 11 x 15 Open Center', 'category': 'frame', 'price [Euro]': 2.19, 'mass [g]': 12.96, 'environmental impact [kg CO2e /kg]': 11.93, 'delivery time [days]': 3, 'data source': 'https://www.bricklink.com/v2/catalog/catalogitem.page?P=39790', 'dimension [studs]': '11 x 15 x 1'}), LegoComponent(label='axle side 1', **{'item number': 50451, 'item description': 'Axle 16 studs', 'category': 'axle', 'price [Euro]': 0.75, 'mass [g]': 2.37, 'environmental impact [kg CO2e /kg]': 11.03, 'delivery time [days]': 3, 'data source': 'https://www.bricklink.com/v2/catalog/catalogitem.page?P=50451', 'dimension [studs]': 16}), LegoComponent(label='rim 1', **{'item number': 56904, 'item description': 'Wheel 30mm D. x 14mm', 'category': 'rim', 'related items': 30699, 'diameter [mm]': 30.0, 'price [Euro]': 0.01, 'mass [g]': 4.1, 'environmental impact [kg CO2e /kg]': 32.06, 'delivery time [days]': 5, 'data source': 'https://www.bricklink.com/v2/catalog/catalogitem.page?P=56904'}), LegoComponent(label='tire 1', **{'item number': 30699, 'item description': 'Tire 43.2 x 14 Solid', 'category': 'tire', 'related items': 56904, 'inner diameter [mm]': 30, 'outer diameter [mm]': 43.2, 'price [Euro]': 0.06, 'mass [g]': 8.25, 'environmental impact [kg CO2e /kg]': 8.97, 'delivery time [days]': 5, 'data source': 'https://www.bricklink.com/v2/catalog/catalogitem.page?P=30699'}), LegoComponent(label='rim_2', **{'item number': 56904, 'item description': 'Wheel 30mm D. x 14mm', 'category': 'rim', 'related items': 30699, 'diameter [mm]': 30.0, 'price [Euro]': 0.01, 'mass [g]': 4.1, 'environmental impact [kg CO2e /kg]': 32.06, 'delivery time [days]': 5, 'data source': 'https://www.bricklink.com/v2/catalog/catalogitem.page?P=56904'}), LegoComponent(label='tire_2', **{'item number': 30699, 'item description': 'Tire 43.2 x 14 Solid', 'category': 'tire', 'related items': 56904, 'inner diameter [mm]': 30, 'outer diameter [mm]': 43.2, 'price [Euro]': 0.06, 'mass [g]': 8.25, 'environmental impact [kg CO2e /kg]': 8.97, 'delivery time [days]': 5, 'data source': 'https://www.bricklink.com/v2/catalog/catalogitem.page?P=30699'}), LegoComponent(label='technic bush 1', **{'item number': 32123, 'item description': 'Technic Bush 1/2 Smooth', 'category': 'frame', 'price [Euro]': 0.01, 'mass [g]': 0.01, 'environmental impact [kg CO2e /kg]': 11.93, 'delivery time [days]': 3, 'data source': 'https://www.bricklink.com/v2/catalog/catalogitem.page?P=4265c', 'dimension [studs]': 1}), LegoComponent(label='axle_side_3', **{'item number': 50451, 'item description': 'Axle 16 studs', 'category': 'axle', 'price [Euro]': 0.75, 'mass [g]': 2.37, 'environmental impact [kg CO2e /kg]': 11.03, 'delivery time [days]': 3, 'data source': 'https://www.bricklink.com/v2/catalog/catalogitem.page?P=50451', 'dimension [studs]': 16}), LegoComponent(label='technic_bush_2', **{'item number': 32123, 'item description': 'Technic Bush 1/2 Smooth', 'category': 'frame', 'price [Euro]': 0.01, 'mass [g]': 0.01, 'environmental impact [kg CO2e /kg]': 11.93, 'delivery time [days]': 3, 'data source': 'https://www.bricklink.com/v2/catalog/catalogitem.page?P=4265c', 'dimension [studs]': 1}), LegoComponent(label='axle_side_2', **{'item number': 50451, 'item description': 'Axle 16 studs', 'category': 'axle', 'price [Euro]': 0.75, 'mass [g]': 2.37, 'environmental impact [kg CO2e /kg]': 11.03, 'delivery time [days]': 3, 'data source': 'https://www.bricklink.com/v2/catalog/catalogitem.page?P=50451', 'dimension [studs]': 16}), LegoComponent(label='rim_3', **{'item number': 56904, 'item description': 'Wheel 30mm D. x 14mm', 'category': 'rim', 'related items': 30699, 'diameter [mm]': 30.0, 'price [Euro]': 0.01, 'mass [g]': 4.1, 'environmental impact [kg CO2e /kg]': 32.06, 'delivery time [days]': 5, 'data source': 'https://www.bricklink.com/v2/catalog/catalogitem.page?P=56904'}), LegoComponent(label='tire_3', **{'item number': 30699, 'item description': 'Tire 43.2 x 14 Solid', 'category': 'tire', 'related items': 56904, 'inner diameter [mm]': 30, 'outer diameter [mm]': 43.2, 'price [Euro]': 0.06, 'mass [g]': 8.25, 'environmental impact [kg CO2e /kg]': 8.97, 'delivery time [days]': 5, 'data source': 'https://www.bricklink.com/v2/catalog/catalogitem.page?P=30699'}), LegoComponent(label='rim_4', **{'item number': 56904, 'item description': 'Wheel 30mm D. x 14mm', 'category': 'rim', 'related items': 30699, 'diameter [mm]': 30.0, 'price [Euro]': 0.01, 'mass [g]': 4.1, 'environmental impact [kg CO2e /kg]': 32.06, 'delivery time [days]': 5, 'data source': 'https://www.bricklink.com/v2/catalog/catalogitem.page?P=56904'}), LegoComponent(label='tire_4', **{'item number': 30699, 'item description': 'Tire 43.2 x 14 Solid', 'category': 'tire', 'related items': 56904, 'inner diameter [mm]': 30, 'outer diameter [mm]': 43.2, 'price [Euro]': 0.06, 'mass [g]': 8.25, 'environmental impact [kg CO2e /kg]': 8.97, 'delivery time [days]': 5, 'data source': 'https://www.bricklink.com/v2/catalog/catalogitem.page?P=30699'}), LegoComponent(label='axle input', **{'item number': 32073, 'item description': 'Axle 5 studs', 'category': 'axle', 'price [Euro]': 0.001, 'mass [g]': 0.66, 'environmental impact [kg CO2e /kg]': 11.03, 'delivery time [days]': 3, 'data source': 'https://www.bricklink.com/v2/catalog/catalogitem.page?P=32073', 'dimension [studs]': 5}), LegoComponent(label='Motor', **{'item number': '8883-1', 'item description': 'Power Functions M-Motor', 'category': 'motor', 'related items': '8881-1', 'idle current [mA]': 65, 'idle speed [rev per min]': 405, 'locking torque [Ncm]': 11, 'price [Euro]': 20, 'mass [g]': 35.0, 'environmental impact [kg CO2e /kg]': 15.84, 'delivery time [days]': 5, 'data source': 'https://www.bricklink.com/v2/catalog/catalogitem.page?S=8883-1', 'input voltage [V]': 9, 'dimensions [cm]': '13.8 x 11.9 x 2.3'})]\n" - ] - } - ], + "outputs": [], "source": [ "# aggregate components\n", - "\n", - "#wheel_1=LegoAssembly(AggregationLayer.SUBASSEMBLY, \"wheel 1\", assembly_method=\"join lego blocks\")\n", - "#wheel_1.add([rim_1,tire_1])\n", - "\n", - "wheels = []\n", - "\n", - "for i in range(4):\n", - " wheel = LegoAssembly(AggregationLayer.SUBASSEMBLY, f\"wheel_{i+1}\", assembly_method=\"join lego blocks\")\n", - " wheel.add([rims[i], tires[i]])\n", - " wheels.append(wheel)\n", - "\n", - "forefront_axle= LegoAssembly(AggregationLayer.ASSEMBLY, \"forefront axle\")\n", - "forefront_axle.add([wheels[0], axle_side_1, wheels[1]])\n", - "\n", - "mid_axle=LegoAssembly(AggregationLayer.ASSEMBLY, \"mid axle\")\n", - "mid_axle.add([technich_bushes[0], axles[2], technich_bushes[1]])\n", - "\n", - "tail_axle= LegoAssembly(AggregationLayer.ASSEMBLY, \"tail axle\")\n", - "tail_axle.add([wheels[2], axles[1], wheels[3]])\n", - "\n", - "drive_shaft=LegoAssembly(AggregationLayer.SUBASSEMBLY, \"driven shaft\")\n", - "drive_shaft.add([axle_input,motor])\n", - "\n", - "\n", - "\n", - "\n", - "auto=LegoAssembly(AggregationLayer.SYSTEM,\"auto\", manufacturer=\"LEGO\", comment=\"Speed of light\",)\n", - "auto.add([green_base,forefront_axle,mid_axle,tail_axle,drive_shaft])\n", - "\n", - "print(auto.get_component_list(max_depth=0))\n", - "# If it is set to -1 (default), all LegoComponents are listed:\n", - "print(auto.get_component_list())" + "\n" ] }, { @@ -298,43 +256,13 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "59eabafc", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "You called the test function.\n" - ] - }, - { - "ename": "TypeError", - "evalue": "unsupported operand type(s) for /: 'str' and 'float'", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[5], line 7\u001b[0m\n\u001b[1;32m 5\u001b[0m effort \u001b[38;5;241m=\u001b[39m calculation_rules\u001b[38;5;241m.\u001b[39mkpi_effort(auto)\n\u001b[1;32m 6\u001b[0m availability \u001b[38;5;241m=\u001b[39m calculation_rules\u001b[38;5;241m.\u001b[39mkpi_availability(auto)\n\u001b[0;32m----> 7\u001b[0m acceptance \u001b[38;5;241m=\u001b[39m \u001b[43mcalculation_rules\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mkpi_acceptance\u001b[49m\u001b[43m(\u001b[49m\u001b[43mauto\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 9\u001b[0m effort \u001b[38;5;241m=\u001b[39m kpi_effort(auto)\n\u001b[1;32m 10\u001b[0m availability \u001b[38;5;241m=\u001b[39m kpi_availability(auto)\n", - "File \u001b[0;32m~/work/quality-kpi/functions/calculation_rules.py:66\u001b[0m, in \u001b[0;36mkpi_acceptance\u001b[0;34m(system)\u001b[0m\n\u001b[1;32m 63\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(system, LegoAssembly):\n\u001b[1;32m 64\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mTipo no compatible \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mtype\u001b[39m(system)\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m pasado a kpi_acceptance()\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m---> 66\u001b[0m total_acceptance \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43msum\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m(\u001b[49m\u001b[43mc\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mproperties\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mdimension [studs]\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m/\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mc\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mproperties\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mprice [Euro]\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mc\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43msystem\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_component_list\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 67\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m total_acceptance\n", - "File \u001b[0;32m~/work/quality-kpi/functions/calculation_rules.py:66\u001b[0m, in \u001b[0;36m<genexpr>\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 63\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(system, LegoAssembly):\n\u001b[1;32m 64\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mTipo no compatible \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mtype\u001b[39m(system)\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m pasado a kpi_acceptance()\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m---> 66\u001b[0m total_acceptance \u001b[38;5;241m=\u001b[39m \u001b[38;5;28msum\u001b[39m((\u001b[43mc\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mproperties\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mdimension [studs]\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m/\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mc\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mproperties\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mprice [Euro]\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m) \u001b[38;5;28;01mfor\u001b[39;00m c \u001b[38;5;129;01min\u001b[39;00m system\u001b[38;5;241m.\u001b[39mget_component_list(\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m))\n\u001b[1;32m 67\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m total_acceptance\n", - "\u001b[0;31mTypeError\u001b[0m: unsupported operand type(s) for /: 'str' and 'float'" - ] - } - ], + "outputs": [], "source": [ "# calculate the KPIs for your car\n", - "\n", - "calculation_rules.test_function()\n", - "\n", - "effort = calculation_rules.kpi_effort(auto)\n", - "availability = calculation_rules.kpi_availability(auto)\n", - "acceptance = calculation_rules.kpi_acceptance(auto)\n", - "\n", - "effort = kpi_effort(auto)\n", - "availability = kpi_availability(auto)\n", - "acceptance = kpi_acceptance(auto)" + "\n" ] }, { @@ -344,11 +272,7 @@ "metadata": {}, "outputs": [], "source": [ - "# print your KPIs\n", - "\n", - "print(\"Total effort:\", effort)\n", - "print(\"Total availability:\", availability)\n", - "print(\"Total acceptance\", acceptance)" + "# print your KPIs\n" ] }, { -- GitLab