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