{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "ce1204dd-7916-4b17-a70d-61857cb0a2ca", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhMAAAIjCAYAAAC52ZmJAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAO89JREFUeJzt3Xd4lFX+/vF7QkIKJDQpRnpAAqigNAUUkKZEKf5AFJQEEQEBC0jJ6kpZUMQoKioiSFnXiIo0UdGIFFGWoqiIwIJLEIjSCYGEEJLz+8NvZhnSJhwyySTv13XlupjznOeZzxym3HOeMg5jjBEAAMBl8insAgAAgHcjTAAAACuECQAAYIUwAQAArBAmAACAFcIEAACwQpgAAABWCBMAAMAKYQIAAFghTCBHUVFRql27dp794uPj5XA4tGDBggKvqaSYOHGiW2N/udauXSuHw6HFixdfsW0uWLBADodD8fHxzrb27durffv2V+w+4J0mTpwoh8NR2GVcMefPny/sEoocwkQxtG/fPo0YMULXXnutgoKCFBQUpEaNGmn48OH6+eefC7u8bJ05c0YZGRmXvX5qaqrGjRun0NBQBQYGqlWrVoqLi3N7/UOHDunee+9V+fLlFRISoh49eui///1vlvsYOXKkKleurOrVq2vKlClZtnPw4EGVLVtW33777WU/Flye1atX66GHHnI+7+vWrauHH35Yf/zxxxW9nxUrVuimm25SQECAatasqQkTJujChQv53s57770nh8OhsmXLurRnZGRowYIF6t69u2rUqKEyZcrouuuu05QpU3Tu3Lkr9TBKlLS0NDVq1EgOh0MxMTEuyzK/DGX3t2jRIpe+586dU79+/VSmTBlVrVpVH374oScfRpHmW9gF4MpauXKl+vbtK19fX/Xv319NmjSRj4+Pdu3apSVLlmjWrFnat2+fatWqlee25syZY/UBnxtjjBYvXqz58+dr/fr1Onv2rPz8/NSgQQPdd999GjlypEJCQtzeXlRUlBYvXqwnnnhC9evX14IFC9StWzetWbNGbdu2zXXdM2fOqEOHDkpMTNTf/vY3+fn5acaMGWrXrp1+/PFHVapUSZL04osv6p///KeefvppJSUlafLkyQoLC9P999/v3NaYMWPUvXt3tWnT5vIGBpdt3LhxOnHihPr06aP69evrv//9r15//XWtXLlS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GUlm+vTpzrYLFy6YW2+91a3dHHv37jW+vr5m27ZtzrZJkyaZMmXKGEmmdevWZt68ec77TE1NNdWqVTNffvllrttt3Lixuf3227O079ixw0gyb731Vo7rHj161EgykydPzrLsjTfeMJLMrl27jDHGHDhwwDRu3NhIMpLMrbfeapKSksypU6dM5cqVzaJFi3KtMz9sdnPMmDHDSDJHjx7NsU/mbo6GDRua1NRUZ/urr75qJJnt27cbY4zJyMgw9evXN127djUZGRnOfsnJyaZOnTqmc+fOzjZ3dnP06NHDNG7cONf6M2tz5+/i+8rOP/7xDyPJrF69OtvlK1asML6+vqZv377m3Llz5s477zQBAQFm7dq1Wfq++OKLRlK2uwlbtGhhbr755lxrMcaYlStXGl9fX7Njxw5jzF+vsUt3c+SkU6dOJiQkJMddM3m5+HWf6fnnnzcOh8Ps37/f2Zb5nnDpa+LGG280zZo1c97++OOPjSTzyiuvONvS09PN7bffnuX94NLdHPHx8aZUqVJm6tSpLvexfft24+vr69KeuW5ef5e+XjIyMkzLli3N/fffb4zJeXfG/v37TZcuXcysWbPMihUrzCuvvGJq1qxpfHx8zMqVK7OMWWpqqtm6dauJj4/PsqwkY2aimDh9+rQkZTkyXPrr9LyffvrJefvFF1/UU0895dIn89tGbj777DP5+vq69C1VqpRGjhypb775Js/1ly5dqtatW6tp06bO25MmTdLo0aPVpk0bffPNN3rsscecBzyWLl1ad955p9auXavOnTvnuN2UlBT5+/tnaQ8ICHAuz21dSW6tn/ntc8eOHSpdurTCw8Pl4+OjUaNGqUGDBurbt682bNig0aNHKyEhQb169VJMTIzLt1tPyPxGt3z5cg0cODDXb+4DBw50qe/WW2+VJP33v//Vddddpx9//FF79uzRM888o+PHj7us27FjR7377rvKyMjI9T4ure3gwYPasmWLy26lizVp0sTtM3FyO6hy/fr1mjRpku69917dfvvt2fa5++67NW/ePEVGRmrjxo1KSEjQxx9/rHbt2mXpm9dzJfM1mJPz58/rySef1NChQ9WoUaNc+17queee01dffaU333zT+f+bX4GBgc5/nz17VikpKWrdurWMMdq2bVuWgwiHDh3qcvvWW2/Vu+++67y9atUq+fn5afDgwc42Hx8fDR8+XF9//XWutSxZskQZGRm69957dezYMWd7tWrVVL9+fa1Zs8a5W27AgAF5HkR96eOT/jpVefv27XnufqpZs6a++OILl7YHH3xQjRo10ujRoxUREeGyrHTp0mrWrFme9ZQ0hIliInOXwZkzZ7Ismz17tpKSknT48OFs9xv6+vq6tZ9///79uvrqq7MElgYNGrhV4/fff68OHTo4b8+ZM0eRkZGaPn26JKlHjx46duyY1q5d6+xTtWpVHT16NNftBgYGKjU1NUt75ml0l77JXLquJLfX9/Pzc4YhSdq1a5fefPNNfffddzpx4oQiIiI0fvx4dejQQQMHDtTUqVM1adKkXOu/0vr27au5c+fq4Ycf1vjx49WxY0fdc8896t27d5YP/Us/QDKniU+ePCnpr/37knKduk5MTMwyvZyTcePG6auvvlLLli1Vr149denSRf369XM5+6VChQrq1KmTW9vLya5du9SrVy9dd911mjt3bq59H3zwQc2dO1fr169X9+7d1b1792z75fVcye15JkkzZszQsWPH8v18+OCDD/TMM89o0KBBboX+nPz+++969tlntWLFCuf/b6ZLdysFBASocuXKLm0VKlRwWS/z/eDS3aLuHEOwZ88eGWNUv379bJf7+fk5/123bl3VrVs3z21e7PTp04qOjtaYMWNy3MWZm4oVK2rgwIGaNm2aDh48WCSOgyrqCBPFRLly5XT11Vfrl19+ybIs8xiKiy8mdDF/f3+3v1naOH78uEJDQ5234+Pjdffdd7v0admypUuYOHDgQJ5vBldffbUOHTqUpT3z+gIX3+elKlasKH9//2yvReDO+k8++aQeeOAB3XTTTXr33XdVsWJFRUdHS5LGjh1bKGEiMDBQ69ev15o1a/Tpp59q1apV+uCDD3T77bfryy+/VKlSpZx9L/73xYwxkuQ8NfjFF190CVEXy242LCcNGzbU7t27tXLlSq1atUoff/yx3nzzTT377LPOcTp//rxOnDjh1vYqV66c5TEcOHBAXbp0Ubly5fTZZ585g3ZOxo0bp/Xr16tLly5asWKFpk2bpvHjx2fpl3lQ8x9//JHlOfnHH3/keuxIYmKipkyZokcffVSnT592zmKcOXNGxhjFx8crKChIVapUcVkvLi5OAwYMUEREhN56661cH0du0tPT1blzZ504cULjxo1TeHi4ypQpo0OHDikqKirLKeA5PS+ulIyMDDkcDn3++efZ3tfFz6nM417yUqpUKWcAiomJ0fnz59W3b1/n+97Bgwcl/RWU4+PjFRoamuusYeb/8YkTJwgTbiBMFCMRERGaO3euNm/enK+D4txVq1YtrV69WmfOnHF5se/evdut9UNCQly+AVWrVk2//fabS5+LLxR15MgRLV++XMuWLct1u02bNtWaNWt0+vRpl4MwMw8izOlDUPprWvb666/P9qyRTZs2qW7dujl+GK1cuVLfffed89t7QkKCy1k0oaGh2YYcT/Dx8VHHjh3VsWNHvfzyy3ruuef09NNPa82aNfn61h8WFibpr/8729mCTGXKlFHfvn3Vt29fnT9/Xvfcc4+mTp2q6OhoBQQE6LvvvnOZwcrNvn37XM44On78uLp06aLU1FStXr0627OaLvbCCy9o+vTpmjx5sv7+97/rySefVHR0tCpWrOhydpD0v+fR1q1bXV5fCQkJOnjwYJb+Fzt58qTOnDmj6dOnO2fiLlanTh316NHD5bm+adMm9erVS82bN9eHH36Y7Zkf7tq+fbv+85//aOHChRowYICzPT8XdrtUrVq1tGbNGiUnJ7vMTmR3NtClwsLCZIxRnTp1dO211+baNyYmxq1AXqtWLWdw+P3333Xy5Ek1btw4S7/nnntOzz33nLZt25bre0Pme9GlMzTIHmGiGBk7dqxiY2P10EMPafXq1apatarL8sxvm5erW7duevvttzVr1iznWQvp6emaOXOmW+s3bNjQ5SyBXr16KTo6WjfddJPatGmj7777Tm+//bbKlSunL774QqNGjVLbtm3VsWPHXLfbu3dvxcTE6O2333YeC5Kamqr58+erVatWLt8if//9dyUnJzuPxs5cf/z48dq6davzSP3du3fr66+/znJsSabz589r1KhReuaZZ5zfJqtWraq9e/fqwoUL8vX11c6dO6/IhZLy68SJE6pYsaJLW+abZnZT9Llp1qyZwsLCFBMTo379+mWZhTh69Gi+3myPHz/uPCZG+mv/c6NGjfT5558rLS1NAQEBl33MxNmzZ9WtWzcdOnRIa9asyXEKPdOcOXM0fvx4Pfnkk/r73/8uSXr55Zd16tQpDRs2TOXLl9e9997r7N+4cWOFh4fr7bff1pAhQ5zfqGfNmiWHw6HevXs7+yYmJuqPP/7Q1Vdf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nTppx44dqly5ckHVBQAAvITbYeKOO+7Q5s2b9frrr2vAgAEFWRMAAPAiboeJ9PR0/fzzz6pevXpB1gMAALyM22EiLi6uIOsAAABeistpAwAAK4QJAABghTABAACsECYAAIAVwgQAALBCmAAAAFYIEwAAwAphAgAAWCFMAAAAK4QJAABghTABAACsECYAAIAVwgQAALBCmAAAAFYIEwAAwAphAgAAWCFMAAAAK4QJAABghTABAACsECYAAIAVwgQAALBCmAAAAFYIEwAAwAphAgAAWCFMAAAAK4QJAABghTABAACsECYAAIAVwgQAALBCmAAAAFYIEwAAwAphAgAAWCFMAAAAK4QJAABghTABAACsECYAAIAVwgQAALBCmAAAAFYIEwAAwAphAgAAWCFMAAAAK4QJAABghTABAACsECYAAIAVwgQAALBCmAAAAFYIEwAAwAphAgAAWCFMAAAAK4QJAABghTABAACsECYAAIAVwgQAALBCmAAAAFYIEwAAwAphAgAAWCFMAAAAK4QJAABghTABAACsECYAAIAVwgQAALDiFWEiPj5egwYNUp06dRQYGKiwsDBNmDBB58+fL+zSAAAo8XwLuwB37Nq1SxkZGZo9e7bq1aunX375RYMHD9bZs2cVExNT2OUBAFCieUWYuOOOO3THHXc4b9etW1e7d+/WrFmzCBMAABQyrwgT2UlMTFTFihVz7ZOamqrU1FTn7dOnT0uSfAP95OfwK9D6LkdaWlqu7Tktx5XFeHseY+5ZjLdnuTvefoFF73NJRlJK3t0cxhhT4MVcYXv37lWzZs0UExOjwYMH59hv4sSJmjRpUpb22NhYBQUFFWSJAAB4veTkZPXr10+JiYkKCQnJsV+hhonx48frhRdeyLXPzp07FR4e7rx96NAhtWvXTu3bt9fcuXNzXTe7mYkaNWqoU2DvIjkzsfzUwmzb09LSFBcXp86dO8vPr+jVXdww3p7HmHsW4+1Z7o53j/KRHqzKPWkmTV+lLM4zTBTqbo7Ro0crKioq1z5169Z1/jshIUEdOnRQ69at9fbbb+e5fX9/f/n7+2dpv5CSJjnyXW6By+tF7efnxwvfgxhvz2PMPYvx9qy8xjstpejtdrpg3KupUMNE5cqVVblyZbf6Hjp0SB06dFCzZs00f/58+fh4xVmtAAAUe15xAOahQ4fUvn171apVSzExMTp69KhzWbVq1QqxMgAA4BVhIi4uTnv37tXevXtVvXp1l2VeePwoAADFilfsK4iKipIxJts/AABQuLwiTAAAgKKLMAEAAKwQJgAAgBXCBAAAsEKYAAAAVggTAADACmECAABYIUwAAAArhAkAAGCFMAEAAKwQJgAAgBXCBAAAsEKYAAAAVggTAADACmECAABYIUwAAAArhAkAAGCFMAEAAKwQJgAAgBXCBAAAsEKYAAAAVggTAADACmECAABYIUwAAAArhAkAAGCFMAEAAKwQJgAAgBXCBAAAsEKYAAAAVggTAADACmECAABYIUwAAAArhAkAAGCFMAEAAKwQJgAAgBXCBAAAsEKYAAAAVggTAADACmECAABYIUwAAAArhAkAAGCFMAEAAKwQJgAAgBXCBAAAsEKYAAAAVggTAADACmECAABYIUwAAAArhAkAAGCFMAEAAKwQJgAAgBXCBAAAsEKYAAAAVggTAADACmECAABYIUwAAAArhAkAAGCFMAEAAKwQJgAAgBXCBAAAsEKYAAAAVggTAADACmECAABYIUwAAAArhAkAAGCFMAEAAKwQJgAAgBXCBAAAsEKYAAAAVggTAADACmECAABYIUwAAAArhAkAAGCFMAEAAKwQJgAAgBXCBAAAsEKYAAAAVggTAADACmECAABYIUwAAAArhAkAAGCFMAEAAKx4XZhITU1V06ZN5XA49OOPPxZ2OQAAlHheFybGjh2r0NDQwi4DAAD8H68KE59//rm+/PJLxcTEFHYpAADg//gWdgHuOnz4sAYPHqxly5YpKCjIrXVSU1OVmprqvH369GlJkm+gn/wcfgVSp420tLRc23NajiuL8fY8xtyzGG/Pcne8/QKL3ueSjKSUvLs5jDGmwIuxZIxRt27d1KZNGz3zzDOKj49XnTp1tG3bNjVt2jTH9SZOnKhJkyZlaY+NjXU7kAAAUFIlJyerX79+SkxMVEhISI79CnVmYvz48XrhhRdy7bNz5059+eWXSkpKUnR0dL62Hx0drVGjRjlvnz59WjVq1NC8QUuK5MzE8lMLs21PS0tTXFycOnfuLD+/old3ccN4ex5j7lmMt2e5O949ykd6sCr3pBn3Zq8KNUyMHj1aUVFRufapW7euvv76a23cuFH+/v4uy5o3b67+/ftr4cLsP4T9/f2zrCNJF1LSJMdll11g8npR+/n58cL3IMbb8xhzz2K8PSuv8U5LKXq7nS54Q5ioXLmyKleunGe/1157TVOmTHHeTkhIUNeuXfXBBx+oVatWBVkiAADIg1ccgFmzZk2X22XLlpUkhYWFqXr16oVREgAA+D9edWooAAAoerxiZuJStWvXlhechAIAQInglWGiuOrs0yfbdr9APw2J7ase5SOL5AE6xQ3j7XmMuWcx3p5VEsab3RwAAMAKYQIAAFghTAAAACuECQAAYIUwAQAArBAmAACAFcIEAACwQpgAAABWCBMAAMAKYQIAAFghTAAAACuECQAAYIUwAQAArBAmAACAFcIEAACwQpgAAABWCBMAAMAKYQIAAFghTAAAACuECQAAYIUwAQAArBAmAACAFcIEAACwQpgAAABWCBMAAMAKYQIAAFghTAAAACuECQAAYIUwAQAArBAmAACAFcIEAACwQpgAAABWCBMAAMAKYQIAAFghTAAAACuECQAAYIUwAQAArPgWdgGeZIyRJF1QmmQKuZj8MFJycrLSTJoumLTCrqb4Y7w9jzH3LMbbs7x4vC/or3ozPz9z4jB59ShGDh48qBo1ahR2GQAAeJUDBw6oevXqOS4vUWEiIyNDCQkJCg4OlsPhKOxy3Hb69GnVqFFDBw4cUEhISGGXU+wx3p7HmHsW4+1Z3jzexhglJSUpNDRUPj45HxlRonZz+Pj45JqsirqQkBCveyJ6M8bb8xhzz2K8Pctbx7tcuXJ59uEATAAAYIUwAQAArBAmvIC/v78mTJggf3//wi6lRGC8PY8x9yzG27NKwniXqAMwAQDAlcfMBAAAsEKYAAAAVggTAADACmECAABYIUx4qdTUVDVt2lQOh0M//vhjYZdTbMXHx2vQoEGqU6eOAgMDFRYWpgkTJuj8+fOFXVqx8cYbb6h27doKCAhQq1attHnz5sIuqdh6/vnn1aJFCwUHB6tKlSrq2bOndu/eXdhllRjTpk2Tw+HQE088UdilXHGECS81duxYhYaGFnYZxd6uXbuUkZGh2bNna8eOHZoxY4beeust/e1vfyvs0oqFDz74QKNGjdKECRP0ww8/qEmTJuratauOHDlS2KUVS+vWrdPw4cP173//W3FxcUpLS1OXLl109uzZwi6t2NuyZYtmz56tG264obBLKRgGXuezzz4z4eHhZseOHUaS2bZtW2GXVKJMnz7d1KlTp7DLKBZatmxphg8f7rydnp5uQkNDzfPPP1+IVZUcR44cMZLMunXrCruUYi0pKcnUr1/fxMXFmXbt2pnHH3+8sEu64piZ8DKHDx/W4MGD9e677yooKKiwyymREhMTVbFixcIuw+udP39e33//vTp16uRs8/HxUadOnbRx48ZCrKzkSExMlCSezwVs+PDhioiIcHmuFzcl6oe+vJ0xRlFRURo6dKiaN2+u+Pj4wi6pxNm7d69mzpypmJiYwi7F6x07dkzp6emqWrWqS3vVqlW1a9euQqqq5MjIyNATTzyhNm3a6LrrrivscoqtRYsW6YcfftCWLVsKu5QCxcxEETB+/Hg5HI5c/3bt2qWZM2cqKSlJ0dHRhV2y13N3zC926NAh3XHHHerTp48GDx5cSJUDV8bw4cP1yy+/aNGiRYVdSrF14MABPf7443rvvfcUEBBQ2OUUKC6nXQQcPXpUx48fz7VP3bp1de+99+qTTz6Rw+Fwtqenp6tUqVLq37+/Fi5cWNClFhvujnnp0qUlSQkJCWrfvr1uvvlmLViwQD4+5HBb58+fV1BQkBYvXqyePXs62yMjI3Xq1CktX7688Ior5kaMGKHly5dr/fr1qlOnTmGXU2wtW7ZMvXr1UqlSpZxt6enpcjgc8vHxUWpqqssyb0aY8CK///67Tp8+7bydkJCgrl27avHixWrVqpWqV69eiNUVX4cOHVKHDh3UrFkz/etf/yo2L/6ioFWrVmrZsqVmzpwp6a+p95o1a2rEiBEaP358IVdX/BhjNHLkSC1dulRr165V/fr1C7ukYi0pKUn79+93aRs4cKDCw8M1bty4YrV7iWMmvEjNmjVdbpctW1aSFBYWRpAoIIcOHVL79u1Vq1YtxcTE6OjRo85l1apVK8TKiodRo0YpMjJSzZs3V8uWLfXKK6/o7NmzGjhwYGGXViwNHz5csbGxWr58uYKDg/Xnn39KksqVK6fAwMBCrq74CQ4OzhIYypQpo0qVKhWrICERJoBcxcXFae/evdq7d2+WwMaknr2+ffvq6NGjevbZZ/Xnn3+qadOmWrVqVZaDMnFlzJo1S5LUvn17l/b58+crKirK8wWh2GA3BwAAsMJRZAAAwAphAgAAWCFMAAAAK4QJAABghTABAACsECYAAIAVwgQAALBCmAAAAFYIEwAK1O7du1WtWjUlJSV5/L5XrVqlpk2bKiMjw+P3DZQkhAkAuUpPT1fr1q11zz33uLQnJiaqRo0aevrpp3NdPzo6WiNHjlRwcHBBlpmtO+64Q35+fnrvvfc8ft9AScLltAHk6T//+Y+aNm2qOXPmqH///pKkAQMG6KefftKWLVucP9V+qd9//1316tXTvn37dM0113iyZKc33nhDCxYs0JYtWwrl/oGSgJkJAHm69tprNW3aNI0cOVJ//PGHli9frkWLFumf//xnjkFCkj788EM1adLEJUgsWLBA5cuX18qVK9WgQQMFBQWpd+/eSk5O1sKFC1W7dm1VqFBBjz32mNLT053r1a5dW1OmTNGAAQNUtmxZ1apVSytWrNDRo0fVo0cPlS1bVjfccIO2bt3qUsPdd9+trVu36rfffrvyAwNAEmECgJtGjhypJk2a6MEHH9QjjzyiZ599Vk2aNMl1nW+++UbNmzfP0p6cnKzXXntNixYt0qpVq7R27Vr16tVLn332mT777DO9++67mj17thYvXuyy3owZM9SmTRtt27ZNERERevDBBzVgwAA98MAD+uGHHxQWFqYBAwa4/KJrzZo1VbVqVX3zzTdXZiAAZMFPkANwi8Ph0KxZs9SwYUNdf/31Gj9+fJ7r7N+/P9swkZaWplmzZiksLEyS1Lt3b7377rs6fPiwypYtq0aNGqlDhw5as2aN+vbt61yvW7duGjJkiCTp2Wef1axZs9SiRQv16dNHkjRu3DjdcsstOnz4sKpVq+ZcLzQ0VPv377d6/AByxswEALfNmzdPQUFB2rdvnw4ePJhn/5SUFAUEBGRpDwoKcgYJSapatapq166tsmXLurQdOXLEZb0bbrjBZbkkXX/99VnaLl0vMDBQycnJedYL4PIQJgC45bvvvtOMGTO0cuVKtWzZUoMGDVJex29fddVVOnnyZJZ2Pz8/l9sOhyPbtktP6by4j8PhyLHt0vVOnDihypUr51orgMtHmACQp+TkZEVFRWnYsGHq0KGD3nnnHW3evFlvvfVWruvdeOON+vXXXz1UZfbOnTun3377TTfeeGOh1gEUZ4QJAHmKjo6WMUbTpk2T9NeZFTExMRo7dqzi4+NzXK9r167auHGjy1kZnvbvf/9b/v7+uuWWWwqtBqC4I0wAyNW6dev0xhtvaP78+QoKCnK2DxkyRK1bt851d8edd94pX19fffXVV54qN4v3339f/fv3d6kdwJXFRasAFKg33nhDK1as0BdffOHx+z527JgaNGigrVu3qk6dOh6/f6Ck4NRQAAVqyJAhOnXqlJKSkjx+Se34+Hi9+eabBAmggDEzAQAArHDMBAAAsEKYAAAAVggTAADACmECAABYIUwAAAArhAkAAGCFMAEAAKwQJgAAgBXCBAAAsPL/Aeu1PnFzMAANAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "==== Grid Infill 0.0% ====\n", "Total Area = 31.1879 mm²\n", "Shell Area = 31.1879 mm²\n", "Infill Area = 0.0000 mm²\n", "I_x = 440.0430\n", "I_y = 440.0430\n", "I_xy = -0.0000\n", "Polar moment, J = 880.0860\n", "\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhMAAAIjCAYAAAC52ZmJAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAR1NJREFUeJzt3XmcjXXj//H3MGMWxr5n35eyZCsSFRF3aJGiDEnIki9lue/uLC0qUykJLZa6TZSI3IpRUlopWig3boPsKjOYMY6Z6/eH35zbcWY5Z85yXdc5r+fj4cG5znXO+czlOtd5zXVd55wIwzAMAQAAFFIRswcAAADsjZgAAAA+ISYAAIBPiAkAAOATYgIAAPiEmAAAAD4hJgAAgE+ICQAA4BNiAgAA+ISYgCRp0KBBqlWrVoHzpaSkKCIiQosWLQr4mOCuVq1amjp1asDuf9CgQSpRooRf77Nz587q3Lmz8zLrEHLUqlVLgwYNMnsYfpOZmWn2EExDTNjcvn37NGrUKDVo0EBxcXGKi4tTkyZNNHLkSP30009mDy9XZ86cUXZ2dqFvO2XKFHXv3l1ly5bN90Vp0KBBioiIcPvTqFEjjx9v9erVuvrqqxUTE6MaNWpoypQpunDhgss8O3fuVMeOHRUfH6/WrVvr66+/drufF154QU2bNnW7LQIrPT1dc+bM0c0336wqVaooPj5eLVu21Ny5c5WVleW3x8nMzNTEiRNVtWpVxcbGql27dkpOTi7UfXXt2lUREREaNWqUy/SDBw9q2rRpatu2rcqUKaPy5curc+fO2rBhgz9+hLC0efNm53bh5MmTLtdNnTo11+1HTEyM2/388MMPatSokWJjY9WxY0cdPHgwWD+CZUSaPQAU3po1a9SvXz9FRkZqwIABat68uYoUKaLffvtNK1as0Ny5c7Vv3z7VrFmzwPt6/fXXC/0CXxDDMLR8+XItXLhQn3/+uc6ePauoqCg1bNhQd999t0aPHq2SJUt6dF8nT57U9OnTVaNGDTVv3lyfffZZvvNHR0frjTfecJlWqlQpjx7ro48+Up8+fdS5c2fNnj1bP//8s5588kkdP35cc+fOlSRlZWXp9ttvV9myZTVz5kytXr1avXv31p49e5w/0/HjxzV9+nS9++67iozkKRdM//3vfzV69GjddNNNGjdunEqWLKl169bpoYce0jfffKPFixf75XEGDRqk5cuXa+zYsapfv74WLVqkHj16aOPGjbruuus8vp8VK1bkGqOStGrVKj377LPq06ePEhISdOHCBb311lvq2rWrFixYoMGDB/vlZwkX2dnZGj16tIoXL66zZ8/mOd/cuXNd9tYVLVrUbZ67775bN954o5577jktXrxYw4YN09q1awMybssyYEt79uwxihcvbjRu3Ng4fPiw2/UOh8N46aWXjAMHDuR7P2fOnPHqcfft22dIMhYuXOjR/MePHzc6duxoREVFGX379jXmz59v/Pvf/zaSkpKMRx991LjiiiuMK664wti0aZNH93fu3DnjyJEjhmEYxpYtW/IdS0JCglG8eHGP7jc3TZo0MZo3b244HA7ntH/84x9GRESE8euvvxqGYRi//vqrIcnYv3+/YRiGcfbsWSM2Ntb4+OOPnbcZMmSIceuttxZ6HJeqWbOmMWXKFL/cV258XWa56dSpk9GpUyfnZW/XIV+cOHHC+OWXX9ymDx482JBk7N6922X6uXPnjLfeeivP+1u9erVx9OhRl2nffvutIcmYOXOmc1pGRoZRt25d49prr/V4rBkZGUatWrWM6dOnG5KMkSNHulz/yy+/GCdOnHAbb6NGjYxq1ap5/DhWUrNmTSMhIcGUx547d65Rrlw54+GHHzYkuS3bKVOm5Dr9cidOnDDKlCnjvHzq1CmjRIkSARmzlXGYw6aee+45nT17VgsXLlSVKlXcro+MjNSYMWNUvXp157Sc4+F79+5Vjx49FB8frwEDBjivu/yciVOnTmnQoEEqVaqUSpcurYSEBJ06dcrjMZ4+fVqdOnVSamqqduzYoXfffVcPPvigevTooXvuuUfPPfecdu/erb59+6pnz57aunVrgfcZHR2typUrezwG6eLeg7S0NK9us3PnTu3cuVMPPvigy96Ehx56yLmnRZIyMjIkSWXKlJEkxcXFKTY2Vunp6ZIu7v5csmSJXnjhBa8ePxAcDoemTZum+vXrKyYmRuXKldN1112X6+74Q4cOqU+fPipRooQqVKigRx55xO2wQHZ2tmbNmqWmTZsqJiZGlSpV0rBhw/TXX395PbajR49q8ODBqlatmqKjo1WlShX17t1bKSkphf1xJUnly5dX06ZN3abfdtttkqRff/3VZfry5cs1cOBAvfzyy263Wbdune644w49//zzbrcpWrSo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bt26zsvNmjVTyZIl9d///lfSxb1aGzZs0G233aaqVas656tXr55uueUWffjhh/mO5b333lPHjh1VpkwZl/WqS5cueuaZZ/T55587D80uWbKkwGUrXdyzcKkxY8bolltu0c0335zv7R5++GGXy3fccYfatm2rAQMG6NVXX9WkSZNcri9fvrzbnq5wQkzYUM4hgzNnzrhdN3/+fJ0+fVrHjh3LdcMbGRmpatWqFfgY+/fvV5UqVdw2ng0bNvRojN9//71uuOEG5+XXX39dCQkJeu655yRJvXv31smTJ13ejVGpUiWdOHHCo/svrP/7v//TP//5T23YsCHfmMjZwOb2vvFz58657YouU6aMrrnmGuflGTNmqGLFiho8eLAWLFigefPmacmSJUpJSVG/fv20c+fOoB/6mD59unr37q0GDRroyiuvVPfu3XXfffepWbNmLvPFxMS47ZIuU6aMy7kQu3fvVmpqqipWrJjrYx0/ftzjcUVHR+vZZ5/V+PHjValSJV1zzTX629/+poEDB7qcH9OkSRM1adLE4/vNzcyZM/X666/riSeeUI8ePfKcLyoqSi+99JIaN26s48ePa968ec7wvVxsbGye60nO9Xm5cOGCxowZo/vuu09t2rTx+OfIysrS3XffrZ07d+qjjz5yeeH21po1a/Tkk09q+/btLj9Hbuc31KhRw23apevG8ePHlZGRkeu67cn6vnv3bv300095HhK5dL3q0KFDgfd3uWXLlumrr77SL7/84vVtJal///4aP368NmzY4BYT4Y6YsKFSpUqpSpUquT4hcs6hyOvEtejoaL+ek5CXP/74w2UDl5KSoltvvdVlnrZt27rExMGDBws8tuyr2NhYlStXTn/++We+8+Wc1HrkyBG3MR05csR5PDw3KSkpev7557V+/XoVKVJE77zzjoYNG6Ybb7xRkrR48WItXbpUjz32mI8/jXeuv/567d27V6tWrdL69ev1xhtv6MUXX9S8efP0wAMPOOfL7a1vl8vOzlbFihW1ZMmSXK/35Pj4pcaOHatbb71VH3zwgdatW6d//vOfmjFjhj799FO1bNlSkpSamurRb6LFihVznhR3qUWLFmnixIkaPnx4gcv+jz/+UJ8+fVS+fHlVrlxZQ4cOVcOGDXONmSpVqujQoUNu048cOSJJ+b7Qv/XWW9q1a5fmz5/v9pw9ffq0UlJSVLFiRbdj/kOHDtWaNWu0ZMkS53pVGF988YV69eql66+/Xq+++qqqVKmiqKgoLVy4UElJSW7z57VuGHmcnOit7Oxsde3aVRMmTMj1+gYNGjj/feLECY/OmShRooTzl6JHH31Uffv2VbFixZzLO+ek8oMHD+r8+fMFhln16tUL3H6EI2LCpnr27Kk33nhD3333Xb4vbIVVs2ZNffLJJzpz5ozL3oldu3Z5dPuSJUsqNTXVebly5crau3evyzw5u0ali79xrFq1Sh988IFvAy/A6dOndfLkyQJf7HIOz2zdutVl+R4+fFi///67y5n7l3vkkUfUq1cv5+cLHD582GUDVbVq1VxffIKhbNmyGjx4sAYPHqwzZ87o+uuv19SpU11iwhN169bVhg0b1KFDB69PGMzvPsePH6/x48dr9+7datGihZ5//nn961//knRxt7MnnwvRqVMnt88fWbVqlR544AHdfvvtmjNnTr63P3PmjHr06KHDhw9r06ZNqlKliq677jp17dpVX375pdu7nlq0aKGNGzcqLS3N5STMnMMWOetSbg4cOCCHw5Hrb9lvvfWW3nrrLa1cuVJ9+vRxTn/00Ue1cOFCzZo1S/fcc0++P0tB3n//fcXExGjdunUuh2oWLlxYqPurWLGiYmJitGfPHrfrcpt2ubp16+rMmTPq0qVLgfO2adNG+/fvL3C+KVOmOD819uDBg0pKSso1lK6++mo1b95c27dvz/O+DMNQSkqKM3DxP8SETU2YMEFJSUm6//779cknn7icXSz5/ptCjx499Nprr2nu3Ll69NFHJV3ctTp79myPbt+4cWOXY8C33XabJk+erKuvvlodOnTQV199pddee02lSpXSunXrNG7cOF133XW66aabfBp3jnPnzsnhcDgPCeV44oknZBiGunfv7pzmcDi0d+9e5x4f6eLb8Bo1aqTXXntNw4YNc/5GNnfuXEVEROjOO+/M9XE3btyotWvX6rfffnNOq1SpksvlX3/91ZRzJv744w+XXfUlSpRQvXr1CvVpfXfddZdeffVVPfHEE3r66addrrtw4YLOnDlT4FvucqSnp6tIkSIunyxYt25dxcfHu+x2L+w5E59//rnuvvtuXX/99VqyZEm+e+YyMzPVu3dv7dixQ8nJyc5DQMnJyc6g+OKLL1wOv9x5551KTEzUa6+95jw/KTMz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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "==== Grid Infill 15.0% ====\n", "Total Area = 41.5764 mm²\n", "Shell Area = 31.1879 mm²\n", "Infill Area = 10.3885 mm²\n", "I_x = 507.1439\n", "I_y = 507.1439\n", "I_xy = -0.0000\n", "Polar moment, J = 1014.2879\n", "\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhMAAAIjCAYAAAC52ZmJAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAVFJJREFUeJzt3Xl4E+XaBvC7paULLfsue9lBFtkUZDtSQJBFAVE4UBCxIIscUBaPyiIqQtlEBFzA6qGioCxyECgIKK6g4AKIwKGAIFAX2kJrCe18f/AlNk3SLJOZed+Z+3ddXJpkkjzJPPP2zsybSYiiKAqIiIiIAhRqdAFEREQkN4YJIiIiUoVhgoiIiFRhmCAiIiJVGCaIiIhIFYYJIiIiUoVhgoiIiFRhmCAiIiJVGCaIiIhIFYYJAgCMGDECtWrV8rpcWloaQkJC8Oabb2peE7mqVasWZs2apdnjjxgxAjExMUF9zC5duqBLly6Oy+whsqtVqxZGjBhhdBlBk5uba3QJhmGYkNzp06cxfvx41K9fH9HR0YiOjkbjxo0xbtw4fP/990aX59bVq1eRn58f0H2PHDmCQYMGoU6dOoiOjkb58uXRqVMnfPjhh26XP3bsGHr27ImYmBiULVsWw4YNQ3p6us/Pt2XLFtx2222IjIxEjRo1MHPmTNy4ccNpmaNHj6Jjx46IjY1F69at8cUXX7g8zqJFi9CkSROX+5K2srOzsXz5cnTv3h1VqlRBbGwsWrZsiRUrViAvLy9oz5Obm4tp06ahatWqiIqKQrt27ZCamhrQY8XHxyMkJATjx493uv7cuXOYPXs22rZtizJlyqB8+fLo0qULdu3aFYyXYEn79+9HSEgIQkJC8NtvvzndNmvWLMdtBf9FRka6PM63336Lhg0bIioqCh07dsS5c+f0egnCYJiQ2NatW9G0aVO8/fbb6NatGxYvXoylS5fi7rvvxrZt29CiRQucOXPGp8d67bXXcPz4cU3qVBQF69evR69evRATE4PY2FhERkbi1ltvxXPPPYfMzEyfH+vMmTPIyspCQkICli5diqeffhoA0LdvX7z66qtOy/7yyy/o1KkTTp48ieeffx6PP/44/vvf/yI+Ph7Xr1/3+lwfffQR+vfvj9KlS2PZsmXo378/5s6diwkTJjiWycvLw3333Ye8vDwsWLAAFStWRL9+/Zxe0+XLlzFnzhwsXrwYYWFhPr9WUu9///sfJkyYAEVRMHnyZCQlJaF27dp49NFH8dBDDwXteUaMGIFFixZh6NChWLp0KYoVK4ZevXph//79fj3OBx984DaMAsDmzZvx4osvom7dupg7dy6efvppZGVlIT4+HmvWrAnGy7CU/Px8TJgwASVKlChyuRUrVuDtt992/HP3Xj/wwAPo0qULNm3ahIoVKyIxMVGrssWlkJROnjyplChRQmnUqJFy4cIFl9ttNpuydOlS5ezZs0U+ztWrV/163tOnTysAlDVr1vi0/OXLl5WOHTsq4eHhyqBBg5RVq1Yp//3vf5WUlBTliSeeUG655RbllltuUfbt2+dXHQXduHFDad68udKgQQOn68eOHatERUUpZ86ccVyXmpqqAFBWrVrl9XEbN26sNG/eXLHZbI7r/v3vfyshISHKsWPHFEVRlGPHjikAHM9x7do1JSoqStm+fbvjPqNGjVL69OkT8OsrqGbNmsrMmTOD8ljuJCQkKCVKlAjqY3bu3Fnp3Lmz47K/PaRGenq68uOPP7pcP3LkSAWAcuLECafr//rrL+Wtt97y+HhbtmxRLl686HTdV199pQBQFixY4LguJydHiYuLU+644w6fa83JyVFq1aqlzJkzRwGgjBs3zun2H3/8UUlPT3ept2HDhkq1atV8fh6R1KxZU0lISDDkuVesWKGUK1dOeeyxxxQALu/tzJkz3V5fWHp6ulKmTBnH5StXrigxMTGa1Cwy7pmQ1Pz583Ht2jWsWbMGVapUcbk9LCwMEydORPXq1R3X2Y+Hnzp1Cr169UJsbCyGDh3quK3wnIkrV65gxIgRKFWqFEqXLo2EhARcuXLF5xqzsrLQuXNnZGRk4MiRI3jvvffwyCOPoFevXnjwwQcxf/58nDhxAoMGDULv3r1x8ODBgN6LYsWKoXr16i61vf/++7jnnntQo0YNx3XdunVD/fr18d577xX5mEePHsXRo0fxyCOPOO1NePTRR6EoCjZs2AAAyMnJAQCUKVMGABAdHY2oqChkZ2cDuLn7c+3atVi0aFFAry2YbDYbZs+ejXr16iEyMhLlypXDnXfe6XZ3/Pnz59G/f3/ExMSgQoUKePzxx10OC+Tn52PJkiVo0qQJIiMjUalSJSQmJuLPP//0u7aLFy9i5MiRqFatGiIiIlClShX069cPaWlpgb5cAED58uXRpEkTl+vvvfdeADcPgxW0YcMGDB8+HC+99JLLfXbs2IEBAwZg4cKFLvcpVqwYHnnkEcd1kZGRGDVqFL744gufd3nPnz8f+fn5ePzxx93e3qRJE5QvX97puoiICPTq1Qu//PILsrKyfHqewpKSktC+fXuUK1cOUVFRaNWqlaO/C7Ifetm0aROaNm2KiIgINGnSBNu3b3dZdu/evWjdujUiIyMRFxeHVatWOQ4beHPlyhVMmjQJ1atXR0REBOrWrYsXX3wx4EOj7vzxxx946qmnMGfOHJQuXbrIZRVFQWZmJhQPP7BdtmxZAMArr7yC06dPY8GCBahXr17QapUF97lKauvWrahbty7atWvn1/1u3LiBHj164M4770RSUhKio6PdLqcoCvr164f9+/djzJgxaNSoETZu3IiEhASfn2vSpEkICwvD/v37ERsbC+DmYYHc3FxER0fDZrPhr7/+wuLFi1G8eHEkJCTghx9+QGio94x77do15OTkICMjA1u2bMFHH32EwYMHO24/f/48Ll++jNatW7vct23btti2bVuRj3/o0CEAcLl/1apVUa1aNcft9evXR6lSpTBr1ixMnDgR7733HjIzM3HbbbcBACZOnIjx48ejbt26Xl+T1mbNmoUXXngBDz/8MNq2bYvMzEwcPHgQ3377LeLj4x3L5eXloUePHmjXrh2SkpKwa9cuLFy4EHFxcRg7dqxjucTERLz55psYOXIkJk6ciNOnT+Pll1/GoUOH8NlnnyE8PNzn2gYMGIAjR45gwoQJqFWrFi5fvozU1FScPXvWEXKvXr2Kv/76y+tjhYeHo1SpUkUuc/HiRQBw+eM8dOhQfP7555g0aRJKly6N4cOHAwA+//xz3HfffejYsSOeffZZp/scOnQI9evXR8mSJZ2ub9u2LQDg8OHDTqHenbNnz2LevHlYvXo1oqKivL7Gwq/FPl8qEEuXLkXfvn0xdOhQXL9+HevWrcOgQYOwdetW9O7d22nZ/fv344MPPsCjjz6K2NhYvPTSSxgwYADOnj2LcuXKAbj5fvTs2RNVqlTB7NmzkZeXhzlz5qBChQpea8nOzkbnzp1x/vx5JCYmokaNGvj8888xY8YM/Prrr1iyZIlj2T///NOneS/u3punn34alStXRmJiosv6LKxOnTq4evUqSpQogf79+2PhwoWoVKmS4/bQ0FAsX74cI0eOxLhx41CuXDls2bLFa12mY+yOEQpERkaGAkDp37+/y21//vmnkp6e7viXnZ3tuC0hIUEBoEyfPt3lfgkJCUrNmjUdlzdt2qQAUObPn++47saNG0rHjh192kV98uRJJSwsTDl06JDjutmzZyslSpRQACjt27dXVq9e7XjO3NxcpXLlysrOnTt9eg8SExMVAAoAJTQ0VBk4cKDyxx9/OG4/cOCAAsDtLusnnnhCAaD89ddfHh9/wYIFCgC3h4natGmj3H777Y7LKSkpSlRUlAJAKVasmJKUlKQoiqKsXbtWqVSpkpKRkeHTa/KFmsMczZs3V3r37l3kMvYemTNnjtP1LVu2VFq1auW4/OmnnyoAlLVr1zott337dpfrvR3m+PPPP10OExRVm7d/BZ/LndzcXKVx48ZK7dq1nQ5h2eXl5SkPPvigEhYWpmzevFn5/vvvlTJlyiht2rRRsrKyXJZv0qSJ8o9//MPl+iNHjigAlJUrVxZZj6IoysCBA5X27ds7LsPNYQ53Tpw4oURGRirDhg3zuqwnBccIRVGU69evK02bNnV5TQCU4sWLKydPnnRc99133ykAlGXLljmu69OnjxIdHa2cP3/eqc6wsDCl8J+cwoc5nn32WaVEiRLKzz//7LTc9OnTlWLFijltjzVr1vSpHwpvL999951SrFgxZceOHYqieD6csWTJEmX8+PHK2rVrlQ0bNiiPPfaYEhYWptSrV8/tNp2enq58+eWXSmZmpsttVsA9ExKyT+5z9xW+Ll264LvvvnNcXrBggctu04KfLj3Ztm0bwsLCnJYtVqwYJkyYgE8//dTr/Tdu3Ij27dujRYsWjsuzZ8/GlClT0KFDB3z66aeYOHGi49NM8eLFcffdd2Pv3r1On5I9mTRpEgYOHIgLFy7gvffeQ15entOkSvvhh4iICJf72mdj5+TkuL3dl/sXnGD54IMPomfPnjh+/Dhq166NSpUqITs7G9OmTcNzzz2HmJgYzJ49G8nJyY7/t+9m11Pp0qVx5MgRnDhxwutu2DFjxjhd7tixI95++23H5fXr16NUqVKIj493mgXfqlUrxMTEYM+ePRgyZIhPdUVFRaF48eLYu3cvRo0a5ThkVNjUqVPxz3/+0+vjebq/3fjx43H06FH897//dTshNjQ0FMnJybhy5QoGDx6MkiVLonLlyvjoo4/cbnOe+qhgnxVlz549eP/99/HVV18VuVxh2dnZGDRoEKKiojBv3jy/7ltQwT0h9k/7HTt2xDvvvOOybLdu3RAXF+e43KxZM5QsWRL/+9//ANzcq7Vr1y7ce++9qFq1qmO5unXr4u677/b4rSu79evXo2PHjihTpoxTX3Xr1g3z5s3DJ5984jg0u3btWq/vLXBzz0JBEydOxN13343u3bsXeb/HHnvM6fKAAQPQtm1bDB06FK+88gqmT5/udHv58uVd9nRZCcOEhOyHDK5evepy26pVq5CVlYVLly65HXjDwsJQrVo1r89x5swZVKlSxWXwbNCggU81fvPNN+jatavj8muvvYaEhATMnz8fANCvXz/89ttv2Lt3r2OZSpUq+fy1zYYNG6Jhw4YAgOHDh6N79+7o06cPvvrqK4SEhDgGSHff+7bvKi9qd7K3+xe+b5kyZXD77bc7Lr/wwguoWLEiRo4cidWrV2PlypVYu3Yt0tLSMHjwYBw9elT3Qx9z5sxBv379UL9+fTRt2hQ9e/bEsGHD0KxZM6flIiMjXXZJlylTxmkuxIkTJ5CRkYGKFSu6fa7Lly/7XFdERARefPFFTJkyBZUqVcLtt9+Oe+65B8OHD0flypUdyzVu3BiNGzf2+XHdWbBgAV577TU8++yz6NWrl8flwsPDsXTpUjRq1AiXL1/GypUrHcG3sKioqID77MaNG5g4cSKGDRuGNm3a+Pw68vLy8MADD+Do0aP46KOPnP5w+2vr1q2YO3cuDh8+7PQ63M1vKDj/yK5gb1y+fBk5OTlue9uXfj9x4gS+//57j4dECvZVhw4dvD5eYe+++y4+//xz/Pjjj37fFwCGDBmCKVOmYNeuXS5hwuoYJiRUqlQpVKlSxe0GYZ9D4WniWkREhE9zEtT6/fffnQa4tLQ09OnTx2mZtm3bOoWJc+fOeT227MnAgQORmJiIn3/+GQ0aNHBMSv31119dlv31119RtmxZj3slADjdv3BNv/76q+N4uDtpaWlYuHAhdu7cidDQULzzzjtITEzEP/7xDwBAcnIy1q1bh6eeesrv16lGp06dcOrUKWzevBk7d+7E66+/jsWLF2PlypV4+OGHHcsVK1bM62Pl5+ejYsWKWLt2rdvbfTk+XtCkSZPQp08fbNq0CTt27MDTTz+NF154AR9//DFatmwJAMjIyPDpk2jx4sUdk+IKevPNNzFt2jSMGTPG63v/+++/o3///ihfvjwqV66M0aNHo0GDBm7DTJUqVXD+/HmX6+29V9Qf+rfeegvHjx/HqlWrXLbZrKwspKWloWLFii7H/EePHo2tW7di7dq1jr4KxKeffoq+ffuiU6dOeOWVV1ClShWEh4djzZo1SElJcVneU28oHiYn+is/Px/x8fGYOnWq29vr16/v+P/09HSf5kzExMQ4PhQ98cQTGDRoEIoXL+54v+0Tt8+dO4fr1697DWbVq1fHH3/84cOrsRaGCUn17t0br7/+Or7++usi/7AFqmbNmti9ezeuXr3qtHfC13NRlCxZEhkZGY7LlStXxqlTp5yWse8aBW5+4ti8eTM2bdoUUL32PzL257zllltQoUIFt98Q+frrrx2HXzyx337w4EGn9/fChQv45ZdfnGbuF/b444+jb9++uPPOOx33KThAVa1a1e0fHz2ULVsWI0eOxMiRI3H16lV06tQJs2bNcgoTvoiLi8OuXbvQoUMHvycMFvWYU6ZMwZQpU3DixAm0aNECCxcuxH/+8x8AN3c7Jycne32czp07O4VU4OY5Gh5++GHcd999WL58eZH3v3r1Knr16oULFy5g3759qFKlCu68807Ex8fjs88+c/nWU4sWLbBnzx5kZmY6TcK0H7YoqtfOnj0Lm83m9lP2W2+9hbfeegsbN25E//79Hdc/8cQTWLNmDZYsWYIHH3ywyNfizfvvv4/IyEjs2LHDKVwHet6KihUrIjIyEidPnnS5zd11hcXFxeHq1avo1q2b12XbtGnj03l0Zs6c6Thr7Llz55CSkuI2KN12221o3rw5Dh8+7PGxFEVBWlqaI+DS3xgmJDV16lSkpKTgoYcewu7du51mFwPqPyn06tULr776KlasWIEnnngCwM1dq8uWLfPp/o0aNXI6BnzvvfdixowZuO2229ChQwd8/vnnePXVV1GqVCns2LEDkydPxp133om77rqryMe9fPmyy651m82Gt956C1FRUU6fHAcMGIDk5GSnPR67d+/Gzz//jH/9619O9z916pRjjw9w82t4DRs2xKuvvorExETHJ7IVK1YgJCQEAwcOdFvfnj17sG3bNvz000+O6ypVquR0+dixY4bMmfj999+ddtXHxMSgbt26AZ2t7/7778crr7yCZ599Fs8//7zTbTdu3MDVq1e9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I8dmdDmmx/dbf3zP9cX3W18yv983YMN+bHP8/fTEUmHCfmgjDOEIC5EnTISHhCM6OhrhIeEAj85oju+3/vie64vvt76kfr////ue3qYGcAImERERqcIwQURERKowTBAREZEqDBNERESkCsMEERERqcIwQURERKowTBAREZEqDBNERESkCsMEERERqcIwQURERKowTBAREZEqDBNERESkCsMEERERqcIwQURERKowTBAREZEqDBNERESkCsMEERERqcIwQURERKowTBAREZEqDBNERESkCsMEERERqcIwQURERKowTBAREZEqDBNERESkCsMEERERqcIwQURERKowTBAREZEqDBNERESkCsMEERERqcIwQURERKowTBAREZEqDBNERESkCsMEERERqcIwQURERKowTBAREZEqYUYXQOql5q8P+mPGhw4K+mN6okX9athsNmzbtg2bryQjPDzc6HI0oef6BbyvY3/ec9Fql5HoPS77+KN3j4qAeyZMINiNK/uGTERy03NckHn8FAnDhEkEq4EZJKwhNX+9lAO23v3JHjUO+1MuDBMmoraRGSSsR+8BO9AeU3PfQLA/xSBToLBykAAkDhPz5s1DSEgIJk2aZHQpQgmkoTlQW5ve68PfXuMcCWuTIfBaPUgAkoaJAwcOYNWqVWjWrJnRpQhJ5MbmQC0mrpeb+D6ISeT1IvJ4qyfpwsTVq1cxdOhQvPbaayhTpozR5QjL1wbnHgmyE3GXMvuT7Kzen6KT7quh48aNQ+/evdGtWzfMnTu3yGVzc3ORm5vruJyZmQkACIsKR3iIeF+H8iQ8Kszpv77qVWIINl9J9nh7v9IJCI/S533YfCUZNptNl+dSy16nLPUG07bcFPQrnaDLc/UqMQSAc2/Y/2uvgf2pDVl7XO/+DNb4GegYLgQFQI73xUIURVE0LyZI1q1bh+eeew4HDhxAZGQkunTpghYtWmDJkiVul581axZmz57tcn1KSgqio6M1rpaIiEhu2dnZGDJkCDIyMlCyZEmPy0kTk86dO4fHHnsMqampiIyM9Ok+M2bMwOTJkx2XMzMzUb16dawe9YF0eyYeemMAVo96H7acGwE9RsGErVeyL/y8srDZbEhNTUV8fLyQJ/TRi559siH9dcd7PrDCw7o9r4z9GQxm6HGjxrFAnjcYY7hRbIpve6+kCRPffPMNLl++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x7///e8i7z9jxgxMmDABsbGxWpbpVs+ePREeHo61a9fq/txEVsLTaRORVz///DNatGiB1157DUOHDgUADB8+HN999x0OHDjg+Kn2ws6ePYu6devi9OnTuOWWW/Qs2WH58uV48803ceDAAUOen8gKuGeCiLyqX78+5s2bhwkTJuDXX3/F5s2bsW7dOrz11lsegwQAvPfee2jevLlTkHjzzTdRunRpbN26FQ0aNEB0dDQGDhyI7OxsJCcno1atWihTpgwmTpyIvLw8x/1q1aqFuXPnYvjw4YiJiUHNmjWxZcsWpKeno1+/foiJiUGzZs1w8OBBpxr69OmDgwcP4tSpU8F/Y4gIAMMEEflowoQJaN68OYYNG4ZHHnkEzzzzDJo3b17kfT799FO0bt3a5frs7Gy89NJLWLduHbZv3469e/fi3nvvxbZt27Bt2za8/fbbWLVqFTZs2OB0v8WLF6NDhw44dOgQevfujWHDhmH48OH45z//iW+//RZxcXEYPny40y+61qhRA5UqVcKnn34anDeCiFzwJ8iJyCchISFYsWIFGjVqhFtvvRXTp0/3ep8zZ864DRM2mw0rVqxAXFwcAGDgwIF4++23cenSJcTExKBx48bo2rUr9uzZg8GDBzvu16tXLyQmJgIAnnnmGaxYsQJt2rTBoEGDAADTpk3DHXfcgUuXLqFy5cqO+1WtWhVnzpxR9fqJyDPumSAin61evRrR0dE4ffo0fvnlF6/L5+TkIDIy0uX66OhoR5AAgEqVKqFWrVqIiYlxuu7y5ctO92vWrJnT7QBw6623ulxX+H5RUVHIzs72Wi8RBYZhgoh88vnnn2Px4sXYunUr2rZti1GjRsHb/O3y5cvjzz//dLk+PDzc6XJISIjb6wp/pbPgMiEhIR6vK3y/P/74AxUqVCiyViIKHMMEEXmVnZ2NESNGYOzYsejatSveeOMNfP3111i5cmWR92vZsiWOHj2qU5Xu/fXXXzh16hRatmxpaB1EZsYwQURezZgxA4qiYN68eQBufrMiKSkJU6dORVpamsf79ejRA1988YXTtzL09uWXXyIiIgJ33HGHYTUQmR3DBBEVad++fVi+fDnWrFmD6Ohox/WJiYlo3759kYc77r77boSFhWHXrl16levinXfewdChQ51qJ6Lg4kmriEhTy5cvx5YtW7Bjxw7dn/u3335DgwYNcPDgQdSuXVv35yeyCn41lIg0lZiYiCtXriArK0v3U2qnpaXhlVdeYZAg0hj3TBAREZEqnDNBREREqjBMEBERkSoME0RERKQKwwQRERGpwjBBREREqjBMEBERkSoME0RERKQKwwQRERGpwjBBREREqvwfRoyXhvMF+mwAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "==== Grid Infill 30.0% ====\n", "Total Area = 52.1754 mm²\n", "Shell Area = 31.1879 mm²\n", "Infill Area = 20.9874 mm²\n", "I_x = 567.1050\n", "I_y = 567.1050\n", "I_xy = 0.0000\n", "Polar moment, J = 1134.2101\n", "\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhMAAAIjCAYAAAC52ZmJAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAZCRJREFUeJzt3Xl4VEXaNvA7ISEkbAFEEEFAUPZFQVzQFxAQhVdQEFBAgvIqyiaDg8i4ADMqLiiODmJAQcYxiiKKg4hEXFFUVndUFFxgZFGSAIkhkPr+8OuedNLdqe4+feqp0/fvurg0ne4+93lOVeXp01uSUkqBiIiIKErJpgMQERGR3dhMEBERUUzYTBAREVFM2EwQERFRTNhMEBERUUzYTBAREVFM2EwQERFRTNhMEBERUUzYTBAREVFM2EwQAGDMmDFo1qxZpdfbtWsXkpKS8NRTT8U9E1UU79r37NkT7du3d/Q+mzVrhjFjxvh/fvvtt5GUlIS3337b0e2QfZKSkjBr1izTMRxTXFxsOoIxbCYst3PnTkycOBGnn346MjIykJGRgbZt22LChAn49NNPTccL6vDhwygtLY3pPrZs2YKBAweibt26yMjIQPv27fHII49UuN4HH3yA888/HxkZGWjYsCEmT56Mw4cPa2/nySefRJs2bVCtWjWcdtppePTRRytc5/3338eZZ56JmjVromfPnti+fXuF60yePBn9+vWLbCcpZr/++iseeOAB/M///A/q16+PzMxMnHPOOVi2bJmj28nLy8P111+P+vXro3r16ujVqxe2bNkS8f2UlJSgbdu2SEpKwty5cwN+t337dtxyyy3o3LkzatasiZNOOgkDBgzApk2bnNqNhPPMM88gKSkJNWrUqPC7MWPGICkpqcK/1q1bV7ju2rVr0bhxY1SvXh0DBw5EXl6eC+llSTEdgKK3atUqDB8+HCkpKRg5ciQ6deqE5ORkbN++HStWrMCCBQuwc+dONG3atNL7WrRoUcx/4ENRSmH58uVYsmQJ3n33XRw5cgSpqalo1aoVrrzySkyaNAm1atXSvr+1a9fi0ksvxRlnnIE77rgDNWrUwHfffYeff/454Hrbtm1D79690aZNGzz00EP4+eefMXfuXHz77bd47bXXKt1OdnY2brjhBgwZMgRTp07Fe++9h8mTJ6OwsBDTp08HAOTn52PQoEE455xzcP311+Opp57CkCFD8Omnn6JKlSoAgC+++AKLFi3C5s2bI6gaOWHDhg247bbb0L9/f9x+++1ISUnBiy++iCuvvBJffvklZs+eHfM2SktLMWDAAHzyySeYNm0aTjjhBDz22GPo2bMnNm/ejNNOO037vh599FH8+OOPQX/3xBNP4Mknn8SQIUMwfvx45OfnIzs7G+eccw7WrFmDPn36xLwvieTw4cO45ZZbUL169ZDXSUtLwxNPPBFwWe3atSvcz1VXXYXx48ejS5cumDdvHv7yl7/gsccei0tusRRZaceOHap69eqqTZs2as+ePRV+X1JSov7+97+rH3/8Mez9HD58OKLt7ty5UwFQS5Ys0br+vn371AUXXKBSU1PV0KFDVXZ2tnr11VdVTk6OmjZtmjr55JPVySefrN555x2t+8vPz1cNGjRQl19+uTp+/HjY615yySXqpJNOUvn5+f7LFi1apACo119/PextCwsLVb169dSAAQMCLh85cqSqXr26+u2335RSSr322msqIyNDFRUVKaX+W5/t27f7b9OnTx81adIkrf2rTCS1j0aPHj1Uu3btHL3Ppk2bqqysLP/Pb731lgKg3nrrLUe3E8z333+vdu3aFXBZaWmpuvDCC1VaWlqF8f/bb7+pF198MeT95eTkVLjNsmXLFAD1wgsv+C/bt2+fyszMVFdddZV21r1796ratWurv/71rwqAeuCBBwJ+v2nTJnXo0KGAyw4cOKDq16+vunfvrr0dSQComTNnGtn29OnTVatWrfxzurysrKygl5e3ceNG1blzZ//P27ZtU+3bt3c0qw3YTFjq+uuvVwDUhx9+qH0b3+TYsWOHuuSSS1SNGjXUoEGD/L9r2rRpwPUPHjyosrKyVK1atVTt2rXV6NGj1datW7X/oBUUFKg2bdqojh07qm+++SbodQoLC9WUKVNUjRo11MaNGyu9zwULFigA6ssvv1RK/dEMBWsq8vPzVUpKipo2bVrA5cXFxapGjRpq7NixYbfz6quvKgDq1VdfDbj8gw8+UADU008/rZRSasWKFapu3boB2wWgtmzZopRS6qWXXlL16tXzNx+xiqWZKCgoUDfddJNq2rSpqlq1qqpfv77q06eP2rx5s/86vmbiiy++UD179lTp6emqUaNG6r777qtwf7///ru68847VYsWLVTVqlVV48aN1bRp09Tvv/8ecD2dZuKbb75RgwcPVg0aNFBpaWnq5JNPVsOHD1d5eXlR7WtlHnnkEQVAffrppwGX33XXXapKlSpqxYoVFW7zxBNPKABq/vz5AZcPHTpUNWjQoMI4vP7661VGRkaFeoRyzTXXqG7duqnvv/8+aDMRyuDBgwPGYCSKi4vVHXfcoc4880xVq1YtlZGRoc4//3z15ptvBlzP1yQ/8MADKjs7W5166qmqatWqqmvXrurjjz+ucL/PP/+8atOmjUpLS1Pt2rVTK1asCLrGBGsmfv75Z3XNNdeoE088UVWtWlW1bdtWPfnkk1HtXyjffPONqlq1qnr11VdDNg2+y48dOxbwgKS8vXv3qurVq6vnn39e7dixQ1177bXq8ssvdzSvDfg0h6VWrVqFli1b4uyzz47odseOHUO/fv1w/vnnY+7cucjIyAh6PaUUBg0ahPXr1+OGG25AmzZt8NJLLyErK0t7W1OmTEFKSgrWr1+PmjVrAgCOHz+O4uJiZGRkoKSkBL///jvmzZuHqlWrIisrC5999hmSk0O/lOeNN95ArVq1sHv3blx22WX45ptvUL16dVx99dWYN28eqlWrBgD47LPPcOzYMXTt2jXg9lWrVkXnzp2xdevWsNl9vy9/+y5duiA5ORlbt27FqFGjcMYZZyA/Px8PPvggrrjiCjz88MOoXbs2WrVqheLiYtx8882YPXs26tSpo123eLnhhhuwfPlyTJw4EW3btsWvv/6K9evX46uvvsKZZ57pv97Bgwdx8cUXY/DgwRg2bBiWL1+O6dOno0OHDrjkkksA/HFqf+DAgVi/fj2uv/56tGnTBp999hnmzZuHb775Bi+//LJ2rqNHj6Jfv34oLi7GpEmT0LBhQ+zevRurVq1CXl6e/7Ryfn4+SkpKKr2/atWqBX0OvKxffvkFAHDCCScEXD59+nR8/PHHuOqqq/Dqq6+id+/eAIAVK1Zg3LhxGDVqFG688caA22zduhVnnnlmhXHbrVs3LFy4EN988w06dOgQNs/HH3+MpUuXYv369UhKSqp0H8vvS/n90FVQUIAnnngCV111Fa677jocOnQITz75JPr164ePP/4YnTt3Drh+Tk4ODh06hHHjxiEpKQn3338/Bg8ejO+//x6pqakAgFdffRXDhw9Hhw4dMGfOHBw8eBBjx47FySefXGmevXv34pxzzkFSUhImTpyI+vXr47XXXsPYsWNRUFCAKVOm+K974MABrX2sWbMm0tLSAi6bMmUKevXqhf79++P5558PedvCwkLUqlULhYWFqFOnDq666ircd999AePrxBNPxKxZs3DllVeitLQUTZs2xdq1a7WyeYrpboYi53v0e9lll1X43cGDB9X+/fv9/woLC/2/y8rKUgDUrbfeWuF25R81vPzyywqAuv/++/2XHTt2TF1wwQVaj4537NihUlJS1NatW/2XzZ49W1WvXl0BUOedd55avHixf5vFxcWqYcOGau3atWHvt2PHjiojI0NlZGSoSZMmqRdffFFNmjRJAVBXXnml/3ovvPCCAqDefffdCvcxdOhQ1bBhw7DbmTBhgqpSpUrQ39WvXz9gWw888ICqUqWKAqDS09NVTk6OUkqpu+++W7Vv314dO3Ys7LYioVP7UGrXrq0mTJgQ9jo9evRQANQ///lP/2W+YzNkyBD/ZU8//bRKTk5W7733XsDtH3/8cQVAvf/++/7LKjsz4TvbVfZpgnDZKvtXdlvB/Prrr+rEE09UF1xwQdDfFxUVqR49eqgaNWqoDz/8UL3xxhsqLS1N/e///q8qKSmpcP3q1aura6+9tsLlvrNba9asCZuntLRUdevWzf+USNmzAJV59913VVJSkrrjjjsqvW4wx44dU8XFxQGXHTx4UDVo0CBgn3yZyp9lW7lypQKg/v3vf/sv69Chg2rcuHHAUzJvv/22AlDpmYmxY8eqk046SR04cCDgeldeeaWqXbt2wHqmMxaCzZdVq1aplJQU9cUXXyilQj+dceutt6rp06erZcuWqWeffda/fnbv3j3oOPj555/Vxx9/7H/KM9HwzISFCgoKACDoo6+ePXvik08+8f/8wAMP4M9//nPAdco/sgpm9erVSElJCbhulSpVMGnSJLz33nuV3v6ll17Ceeed539k89JLL2H27Nm4+eab0b17d/+LGevVqwfgjzMGl1xyCd5++2307ds35P0ePnwYhYWFuOGGG/zv3hg8eDCOHj2K7Oxs/PWvf8Vpp52GoqIiAKjwiAT445Gr7/ehFBUVoWrVqkF/V/72f/7zn3H11Vdj586daNWqFerUqYM9e/Zgzpw5ePnll3Hs2DFMmTIFK1euRMOGDTFv3jx079497PbjITMzEx999BH27NmDRo0ahbxejRo1MGrUKP/PVatWRbdu3fD999/7L3vhhRfQpk0btG7dOuAR4oUXXggAeOutt3Deeedp5fKdeXj99dfRv3//kGfLHnzwQRw8eLDS+wu3b6WlpRg5ciTy8vKCvjMH+OP4vvLKK/5HrkePHsXZZ5+N559/HikpFZfMoqKikOPM9/twnnrqKXz22WdYvnx52OuVt2/fPowYMQLNmzfHLbfcEtFtfapUqeJ/oXBpaSny8vJQWlqKrl27Bn03yvDhwwPOsl1wwQUA4B8be/bswWeffYa//OUvAetTjx490KFDB//aFYxSCi+++CKGDRsGpVTAuOrXrx+ee+45bNmyxT93cnNztfaxXbt2/v8/evQo/vSnP+GGG25A27Ztw95uzpw5AT9feeWVOP3003Hbbbdh+fLluPLKKwN+f/LJJ2udffEqNhMW8j1lEOwtjtnZ2Th06BD27t0b8AfBJyUlBY0bN650Gz/88ANOOumkCg1Lq1attDJu3rwZvXr18v+8aNEiZGVl4f777wcADBo0CAcOHAj4rIEGDRpg//79Ye83PT0dAHDVVVcFXD5ixAhkZ2djw4YNOO200/zXC/a+799//93/+3DbOXr0aNDfBbt9gwYN0KBBA//P06dPR+/evdG7d2/cfvvtWLduHZYtW4a33noLAwYMwK5du5CZmRk2g9Puv/9+ZGVloUmTJujSpQv69++P0aNH49RTTw24XuPGjSucaq9Tp07AW42//fZbfPXVV6hfv37Qbe3bt087V/PmzTF16lQ89NBDeOaZZ3DBBRdg4MCBGDVqVMAr57t06aJ9n6FMmjQJa9aswT//+U906tQp5PVq1aqFuXPn+pujhx9+OOSYSU9PDznOfL8PpaCgADNmzMC0adPQpEkT7f04cuQI/vd//xeHDh3C+vXrK31aJ5ylS5fiwQcfxPbt2wOeRmrevHmF655yyikBP/saC1+T98MPPwAAWrZsWeG2LVu2DPt22f379yMvLw8LFy7EwoULg16n7LiK5t0r8+bNw4EDB6J+F8+f/vQn3HHHHXjjjTcqNBOJjs2EhWrXro2TTjoJn3/+eYXf+V5DsWvXrqC3TUtLC/uaBKf8+uuvAY8Qd+3ahUsvvTTgOt26dQtoJn766adKF9RGjRrhiy++CPjDDfzxvCXw30XtpJNOAgD85z//qXAf//nPf8I+evXd/vjx49i3b5//voE/HtmU37fyPvzwQyxfvtx/fJ599lnccccdOPfcc3HuueciOzsbq1atCtrsxdOwYcNwwQUX4KWXXsLatWvxwAMP4L777sOKFSv8r4UA4H+kWp5Syv//paWl6NChAx566KGg143kDyPwx1mHMWPGYOXKlVi7di0mT56MOXPm4MMPP/Q3v7/99lvIBq+s9PT0Cm/fA4DZs2fjsccew7333ourr7467H18//33GDlyJFq3bo2ioiIMGTIE77//vn9clXXSSSeFHGdA+DMlc+fOxdGjRzF8+HD/nPW9xfngwYPYtWsXGjVqFHCW7OjRoxg8eDA+/fRTvP766zF9yNi//vUvjBkzBpdddhmmTZuGE088EVWqVMGcOXPw3XffVbi+ztiIlu+t6aNGjQr52qyOHTv6/9/3upfK1K5dG+np6cjPz8ddd92F8ePHo6CgwH+W5PDhw1BKYdeuXcjIyAiY7+Wlp6ejXr16+O2333R3K2GwmbDUgAED8MQTT+Djjz9Gt27dHL//pk2bYt26dTh8+HDAo56vv/5a6/a1atVCfn6+/+eGDRtWWJzKnjbft28fVq5cWekL97p06YLc3Fzs3r074CzJnj17AMD/SLl9+/ZISUnBpk2bMGzYMP/1jh49im3btgVcFozv6ZlNmzahf//+/ss3bdqE0tLSCi9M81FKYfLkybjpppvQokULf7ayf1AaNWqE3bt3h91+vJx00kkYP348xo8fj3379uHMM8/E3XffHdBM6GjRogU++eQT9O7dO+IXDIbSoUMHdOjQAbfffjs++OADdO/eHY8//jjuuusuAH88nfXOO+9Uej9ZWVkVPiV0/vz5mDVrFqZMmeL/jJBQ/vOf/6Bv375ITU1Fbm4uioqKcP755+Oiiy7CO++8g7p16wZcv3PnznjvvfdQWloa0Kh/9NFHyMjIwOmnnx5yWz/++CMOHjwYcCre55577sE999yDrVu3+sdbaWkpRo8ejXXr1uH5559Hjx49KqlGeMuXL8epp56KFStWBBzHmTNnRnV/vs+02bFjR4XfBbusrPr166NmzZo4fvy41lmHYI1dMEuWLMGYMWNw8OBBHD58GPfff7//DGlZzZs3x6BBg8KuQYcOHcKBAwdCnpFLZGwmLHXLLbcgJycH1157LdatW1fhkXqsjxT69++PhQsXYsGCBZg2bRqAP96JEep55vLa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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "==== Grid Infill 60.0% ====\n", "Total Area = 71.9147 mm²\n", "Shell Area = 31.1879 mm²\n", "Infill Area = 40.7268 mm²\n", "I_x = 671.7147\n", "I_y = 671.7147\n", "I_xy = -0.0000\n", "Polar moment, J = 1343.4294\n", "\n" ] }, { "data": { "image/png": "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Y8fq4YcfVrNmzZx6fflp06ZNCgsLU+nSpeXv76/q1atr4MCBmfZ97733VLNmTfn6+qp58+bauHFjhj47d+5Ujx49VLJkSfn5+alZs2b6/PPPr6u2BQsWqGnTpgoKClJwcLDq16+vN99887r2dbVWrVo5nK2SpJtvvln16tXTn3/+6dCefmagY8eOGS6bXbp0Sd27d9fgwYMd1sXHxys2NlaPPvqow5m4fv36qVixYg7vyeycPXtWzz33nF588UUVL1480z7t2rXL0Na9e3dJyvBanPXrr78qIiJCNWrUkJ+fn0JDQzVw4ECdOXPGod/EiRNls9m0Z88eRUREqHjx4goJCdGAAQMc3u/Sle+JkSNHqnTp0goKClLXrl115MgR2Ww2TZw4Mceavv76a91xxx0KDAxUUFCQwsPDtWPHjut6fVmZPHmy0tLS9K9//SvHvklJSfrnn3+yXF+jRg199NFH2r59u9avX6/PP//cfuayIOIyhwf48ssvddNNN+X69Njly5cVFhamNm3aaMqUKQoICMi0n2VZuv/++7Vu3ToNHTpUderU0dKlS9W/f3+njzV69Gh5e3tr3bp1CgoKkiSlpqYqOTlZAQEBSklJ0T///KM33nhDRYsWVf/+/fXbb7/Jy8s8zx45ckQnT57M9BdzixYttHz5cvvy1q1bFRgYqDp16mTol76+TZs2WR5r69atatKkSYa6W7Rooffee0+7d+9W/fr11bx5c02fPl09e/ZUYGCgZsyYoVatWkmSYmNj9f333+f59fnrcfLkSXXs2FFlypTRuHHjVLx4ce3fv19LlizJ0DcmJkYJCQkaMmSIbDabJk+erAceeEB///23fHx8JEk7duxQ69atVbFiRY0bN06BgYH65JNP1K1bNy1evNj+S84ZsbGxeuSRR3T33Xfrtddek3Tll+OPP/6oUaNGSbryi/7s2bNO7S8kJMReZ2Ysy9KJEydUr149h3YvLy999tlnuuOOOxQWFqbVq1crODhYqamp6t27t9asWaNly5apTJky9m1+++03Xb58OcN7smjRomrUqJG2bt3qVM3PP/+8QkNDNWTIEP3f//2fU9tI0vHjxyVJpUuXdnqbq8XGxurvv//WgAEDFBoaqh07dui9997Tjh07tH79+gwTfh966CFVr15dr776qrZs2aL3339fZcuWtX/dpCsfYj75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JWtZliTZbzf+17/+pbCwsEz7OvPLI13ZsmW1bds2rVixQl9//bW+/vprzZ49W/369bOHrtTUVKdDacmSJTNMuoyLi9O9996r8+fPa+3atTl+/aOjozVv3jzdc889+u677xQZGano6OgM/XJ6T+Z0nKeeeko9e/ZU0aJF7d/f6ROiDx06pEuXLmXYx/bt29W1a1fdeuutWrRokby9r//H+0MPPaSffvpJTz31lBo1aqRixYopLS1NnTp1yvS28pzeGybSjzd//vxMJ2Rf/TqTkpIyDTuZSd/XvHnztGvXLs2YMSPDz9KEhATt379fZcuWzXLOmST7zzJn5+8URIQJDxAeHq73339fGzZssE8UzEtVq1bVypUrdeHCBYdfHrt27XJq++DgYIdv4NDQUO3du9ehT/qpcOnKp9Nly5bps88+Myv8fypWrKgyZcpkeofIhg0b7JdfJKlRo0Z6//339eeffzqcNUg/vXl138w0atRIa9euVVpamsMv/V9++UUBAQG65ZZbMt1u+/btmjVrljZv3ixJOnr0qEqUKGG/PFKhQgVdunRJp06dUrly5Zx63Xnptttu02233aaXX35ZMTEx6tOnjxYsWKDHHnvM6X3UqFFDkuTj42N8tiBd0aJF1aVLF3Xp0kVpaWl64oknNGPGDD3//PO66aabdOjQoQyfdrOyatUqhzsf/vnnH3Xp0kW7d+/Wd9995/B+yMyCBQs0fPhwDRo0SO+//77efPNNjR49WiVKlNArr7zi0PfWW2+Vt7e3Nm3apIceesjefunSJW3bts2hLTOHDh1STExMpg80a9KkiRo2bKht27bZ2/bu3atOnTqpbNmyWr58eaaXRZ117tw5rVy5UlFRUXrhhRfs7elnCK5H1apVlZaWpn379jlcetmzZ0+O29asWVPSlXCZ0/tq4cKFGjBggFM1pQedgwcPKiUlRa1bt87QZ968eZo3b56WLl2qbt26Zbmv9J9vV0/CLWwIEx7g6aefVkxMjAYOHKiVK1dm+GVjmv47d+6s9957T9HR0XrqqackXfnE9/bbbzu1fZ06dRyuNXbv3l3jx49XkyZN1Lp1a/3000967733FBISohUrVmjMmDFq06aN7r77bqO6r/bggw9q7ty5Dmc8Vq5cqd27d+vJJ5+097v//vv15JNPavr06Zo2bZqkK+P37rvvqmLFivY7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4jFnJjKzevVqd5cAAEChx5kJAABghDABAACMECYAAIARwgQAADBCmAAAAEYIEwAAwAhhAgAAGCFMAAAAI4QJAABghDABAACMECYAAIARwgQAADBCmAAAAEYIEwAAwAhhAgAAGCFMAAAAI4QJAABghDABAACMECYAAIARwgQAADBCmAAAAEYIEwAAwAhhAgAAGCFMAAAAI4QJAABghDABAACMECYAAIARwgQAADBCmAAAAEYIEwAAwAhhAgAAGCFMAAAAI4QJAABghDABAACMECYAAIARwgQAADBCmAAAAEYIEwAAwAhhAgAAGCFMAAAAI4QJAABghDABAACMECYAAIARwgQAADBCmAAAAEYIEwAAwAhhAgAAGCFMAAAAI4QJAABghDABAACMECYAAIARwgQAADBCmAAAAEYIEwAAwAhhAgAAGCFMAAAAI4QJAABghDABAACMECYAAIARwgQAADBCmAAAAEYIEwAAwAhhAgAAGCFMAAAAI4QJAABghDABAACMECYAAIARwgQAADBCmAAAAEYIEwAAwAhhAgAAGCFMAAAAI4QJAABghDABAACMECYAAIARwgQAADBCmAAAAEYIEwAAwAhhAgAAGCFMAAAAI4QJAABgxGPCxKuvvqrmzZsrKChIZcuWVbdu3bRr1y53lwUAQKHnMWFizZo1ioyM1Pr16xUbG6uUlBR17NhRFy9edHdpAAAUat7uLsBZ33zzjcPynDlzVLZsWW3evFl33nmnm6oCAAAeEyauFRcXJ0kqWbJkln2Sk5OVnJxsX46Pj5ckefv7yMfmk78F5iEff2+H/yJ/Md6ux5i7FuPtWh493pakpJy72SzLsvK9mDyWlpamrl276vz581q3bl2W/SZOnKioqKgM7TExMQoICMjPEgEA8HiJiYnq3bu34uLiFBwcnGU/jwwTw4YN09dff61169apUqVKWfbL7MxE5cqV1cG/h8edmRj4wYOaNWixUpIuu7ucAo/xdj3G3LUYb9fy5PFOsVL0XdKiHMOEx51zGT58uL788kv98MMP2QYJSfL19ZWvr2+G9stJKZItvyrMPylJl5WSlOLuMgoNxtv1GHPXYrxdyxPH+7LlXL0eEyYsy9KIESO0dOlSrV69WtWrV3d3SQAAQB4UJiIjIxUTE6Nly5YpKChIx48flySFhITI39/fzdUBAFB4ecxzJqKjoxUXF6d27dqpfPny9n8LFy50d2kAABRqHnNmwgPniQIAUCh4zJkJAABwYyJMAAAAI4QJAABghDABAACMECYAAIARwgQAADBCmAAAAEYIEwAAwAhhAgAAGCFMAAAAI4QJAABghDABAACMECYAAIARwgQAADBCmAAAAEYIEwAAwAhhAgAAGCFMAAAAI4QJAABghDABAACMECYAAIARwgQAADBCmAAAAEYIEwAAwAhhAgAAGCFMAAAAI4QJAABghDABAACMECYAAIARwgQAADBCmAAAAEYIEwAAwAhhAgAAGCFMAAAAI4QJAABghDABAACMECYAAIARwgQAADBCmAAAAEYIEwAAwAhhAgAAGCFMAAAAI4QJAABghDABAACMECYAAIARwgQAADBCmAAAAEYIEwAAwAhhAgAAGCFMAAAAI4QJAABghDABAACMECYAAIARwgQAADBCmAAAAEYIEwAAwAhhAgAAGCFMAAAAI4QJAABghDABAACMECYAAIARwgQAADBCmAAAAEa8c7tBcnKyfvnlFx04cECJiYkqU6aMGjdurOrVq+dHfQAA4AbndJj48ccf9eabb+qLL75QSkqKQkJC5O/vr7Nnzyo5OVk1atTQ448/rqFDhyooKCg/awYAADcQpy5zdO3aVb169VK1atX07bffKiEhQWfOnNHhw4eVmJiov/76S88995xWrlypW265RbGxsfldNwAAuEE4dWYiPDxcixcvlo+PT6bra9SooRo1aqh///76448/dOzYsTwtEgAA3LicChNDhgxxeod169ZV3bp1r7sgAADgWXI9AfNqFy5cUFpamkNbcHCwUUEAAMCz5PrW0H379ik8PFyBgYEKCQlRiRIlVKJECRUvXlwlSpTIjxoBAMANLNdnJh599FFZlqVZs2apXLlystls+VEXAADwELkOE9u3b9fmzZtVq1at/KgHAAB4mFxf5mjevLkOHTqUH7UAAAAPlOszE++//76GDh2qI0eO6NZbb81wu2iDBg3yrDgAAHDjy3WYOHXqlPbu3asBAwbY22w2myzLks1mU2pqap4WCAAAbmy5DhMDBw5U48aN9fHHHzMBEwAA5D5MHDhwQJ9//rluuumm/KgHAAB4mFxPwLzrrru0ffv2/KgFAAB4oFyfmejSpYuefPJJ/fbbb6pfv36GCZhdu3bNs+IAAMCNL9dhYujQ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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "==== Grid Infill 100.0% ====\n", "Total Area = 100.2505 mm²\n", "Shell Area = 31.1879 mm²\n", "Infill Area = 69.0625 mm²\n", "I_x = 837.5117\n", "I_y = 837.5117\n", "I_xy = -0.0000\n", "Polar moment, J = 1675.0235\n", "\n" ] } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "# ------------------------------\n", "# Geometry utilities\n", "# ------------------------------\n", "\n", "def _dist_mod(u, spacing):\n", " \"\"\"Distance to nearest line center in a periodic family with pitch=spacing.\"\"\"\n", " r = np.mod(u, spacing)\n", " return np.minimum(r, spacing - r)\n", "\n", "def _rectilinear_mask(XX, YY, spacing, line_width, angle_deg=0.0, phase=0.0):\n", " \"\"\"\n", " Rectilinear (parallel lines) mask at angle_deg, with true line width.\n", " Lines are centered where (x cos + y sin + phase) is a multiple of spacing.\n", " \"\"\"\n", " th = np.deg2rad(angle_deg)\n", " # Coordinate along the line-normal direction (u-axis)\n", " u = XX * np.cos(th) + YY * np.sin(th)\n", " dist = _dist_mod(u + phase, spacing)\n", " # Render a line of width 'line_width' around the center => half width threshold\n", " return dist <= (line_width / 2.0)\n", "\n", "def _spacing_for_grid_density(line_width, f):\n", " \"\"\"\n", " For a two-axis grid (two orthogonal families of rectilinear lines with true width 'w'),\n", " the area fraction is f = 2r - r^2 where r = w/s.\n", " Solve for s: r = 1 - sqrt(1 - f) => s = w / r.\n", " \"\"\"\n", " f = float(np.clip(f, 0.0, 1.0))\n", " if f <= 0.0:\n", " return np.inf\n", " if f >= 1.0:\n", " return line_width # centers are one line_width apart for a \"solid\" raster\n", " r = 1.0 - np.sqrt(1.0 - f)\n", " return line_width / r\n", "\n", "# ------------------------------\n", "# Area & inertia on a raster mask\n", "# ------------------------------\n", "\n", "def compute_area_moments(XX, YY, mask):\n", " x_vals = XX[mask]\n", " y_vals = YY[mask]\n", "\n", " if x_vals.size == 0:\n", " return {\"A\": 0.0, \"x_c\": 0.0, \"y_c\": 0.0, \"I_x\": 0.0, \"I_y\": 0.0, \"I_xy\": 0.0, \"J\": 0.0}\n", "\n", " dx = XX[0, 1] - XX[0, 0]\n", " dy = YY[1, 0] - YY[0, 0]\n", " dA = dx * dy\n", "\n", " A = x_vals.size * dA\n", " x_c = float(np.mean(x_vals))\n", " y_c = float(np.mean(y_vals))\n", "\n", " x_shift = x_vals - x_c\n", " y_shift = y_vals - y_c\n", "\n", " I_x = float(np.sum(y_shift**2) * dA)\n", " I_y = float(np.sum(x_shift**2) * dA)\n", " I_xy = float(np.sum(x_shift * y_shift) * dA)\n", " J = I_x + I_y\n", "\n", " return {\"A\": A, \"x_c\": x_c, \"y_c\": y_c, \"I_x\": I_x, \"I_y\": I_y, \"I_xy\": I_xy, \"J\": J}\n", "\n", "# ------------------------------\n", "# Main: Prusa-style rectilinear/grid with shells\n", "# ------------------------------\n", "\n", "def prusa_style_grid_or_rectilinear(\n", " width, height,\n", " infill_fraction,\n", " line_width=0.42,\n", " shell_layers=2,\n", " base_infill_angle_deg=45.0,\n", " grid=True, # True = \"Grid\" (two passes 90° apart in same layer). False = Rectilinear (one pass).\n", " z_height=0.0, # used for optional phase shift if desired\n", " phase_per_mm=0.0, # set >0 to phase-shift infill vs Z (like alternating)\n", " N=800,\n", " plot=True,\n", " verbose=True\n", "):\n", " \"\"\"\n", " width, height: mm, outer dimensions of a rectangle (centered at origin)\n", " infill_fraction: 0..1\n", " line_width: true extrusion width (mm)\n", " shell_layers: number of perimeters (each line_width wide)\n", " base_infill_angle_deg: angle of first rectilinear pass\n", " grid: True => add a second pass at +90° (Prusa \"Grid\"); False => single rectilinear pass\n", " z_height: current Z (mm)\n", " phase_per_mm: optional phase (mm) added along 'u' per mm Z (0 disables shifting)\n", " \"\"\"\n", "\n", " # Grid for rasterization\n", " xs = np.linspace(-width/2, width/2, N)\n", " ys = np.linspace(-height/2, height/2, N)\n", " XX, YY = np.meshgrid(xs, ys)\n", "\n", " # ----- Shells as true lines (perimeter loops), centered inside by 0.5*w\n", " shell_mask = np.zeros_like(XX, dtype=bool)\n", " for i in range(shell_layers):\n", " off = (i + 0.5) * line_width # center each perimeter inside the outline\n", "\n", " # vertical walls: x = -W/2+off, x = +W/2-off\n", " shell_mask |= np.abs(XX - (-width/2 + off)) <= (line_width / 2)\n", " shell_mask |= np.abs(XX - ( +width/2 - off)) <= (line_width / 2)\n", "\n", " # horizontal walls: y = -H/2+off, y = +H/2-off\n", " shell_mask |= np.abs(YY - (-height/2 + off)) <= (line_width / 2)\n", " shell_mask |= np.abs(YY - ( +height/2 - off)) <= (line_width / 2)\n", "\n", " # Inner rectangle where infill is allowed\n", " inner_offset = shell_layers * line_width\n", " inner_rect = (\n", " (np.abs(XX) <= (width/2 - inner_offset)) &\n", " (np.abs(YY) <= (height/2 - inner_offset))\n", " )\n", "\n", " # ----- Infill\n", " if infill_fraction <= 0.0:\n", " infill_mask = np.zeros_like(XX, dtype=bool)\n", " spacing = np.inf\n", " elif infill_fraction >= 1.0:\n", " # \"solid\" raster in both directions\n", " spacing = line_width\n", " masks = []\n", " angles = [base_infill_angle_deg] + ([base_infill_angle_deg + 90.0] if grid else [])\n", " phase = phase_per_mm * z_height\n", " for a in angles:\n", " masks.append(_rectilinear_mask(XX, YY, spacing, line_width, angle_deg=a, phase=phase))\n", " infill_mask = np.logical_or.reduce(masks) & inner_rect\n", " else:\n", " spacing = _spacing_for_grid_density(line_width, infill_fraction) if grid \\\n", " else line_width / infill_fraction # 1-axis rectilinear density\n", " masks = []\n", " angles = [base_infill_angle_deg] + ([base_infill_angle_deg + 90.0] if grid else [])\n", " phase = phase_per_mm * z_height\n", " for a in angles:\n", " masks.append(_rectilinear_mask(XX, YY, spacing, line_width, angle_deg=a, phase=phase))\n", " infill_mask = np.logical_or.reduce(masks) & inner_rect\n", "\n", " final_mask = shell_mask | infill_mask\n", "\n", " # ----- Plot\n", " if plot:\n", " plt.figure(figsize=(6, 6))\n", " img = np.where(final_mask, 1.0, np.nan)\n", " plt.imshow(img, origin='lower',\n", " extent=[-width/2, width/2, -height/2, height/2],\n", " interpolation='nearest')\n", " title = \"Grid\" if grid else \"Rectilinear\"\n", " plt.title(f\"{title} @ {infill_fraction*100:.1f}% | shells={shell_layers}×{line_width:.2f} angle={base_infill_angle_deg:.0f}°\")\n", " plt.xlabel(\"X (mm)\")\n", " plt.ylabel(\"Y (mm)\")\n", " plt.gca().set_aspect('equal', 'box')\n", " plt.grid(True)\n", " plt.show()\n", "\n", " # ----- Numbers\n", " if verbose:\n", " total = compute_area_moments(XX, YY, final_mask)\n", " shells = compute_area_moments(XX, YY, shell_mask)\n", " A_infill = total[\"A\"] - shells[\"A\"]\n", " print(f\"==== {('Grid' if grid else 'Rectilinear')} Infill {infill_fraction*100:.1f}% ====\")\n", " print(f\"Total Area = {total['A']:.4f} mm²\")\n", " print(f\"Shell Area = {shells['A']:.4f} mm²\")\n", " print(f\"Infill Area = {A_infill:.4f} mm²\")\n", " print(f\"I_x = {total['I_x']:.4f}\")\n", " print(f\"I_y = {total['I_y']:.4f}\")\n", " print(f\"I_xy = {total['I_xy']:.4f}\")\n", " print(f\"Polar moment, J = {total['J']:.4f}\")\n", " print()\n", "\n", " return final_mask # boolean raster of the slice\n", "\n", "# ------------------------------\n", "# Demo\n", "# ------------------------------\n", "if __name__ == \"__main__\":\n", " W = 10.0\n", " H = 10.0\n", " shells = 2\n", " wline = 0.42\n", "\n", " # Try a few densities like a slicer preview\n", " for f in [0.00, 0.15, 0.30, 0.60, 1.00]:\n", " prusa_style_grid_or_rectilinear(\n", " width=W, height=H,\n", " infill_fraction=f,\n", " line_width=wline,\n", " shell_layers=shells,\n", " base_infill_angle_deg=45.0, # typical default\n", " grid=True, # True => \"Grid\", False => single rectilinear\n", " z_height=0.0, # set >0 and phase_per_mm>0 to shift with Z\n", " phase_per_mm=0.0,\n", " N=800,\n", " plot=True,\n", " verbose=True\n", " )\n" ] }, { "cell_type": "code", "execution_count": 12, "id": "9514c26c-f86b-475a-98cb-68aa20f27ac5", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Infill max area: 30.99 mm² at z = 0.00 mm\n", "Infill min area: 30.99 mm² at z = 0.00 mm\n", "Shell area (at min): 30.84 mm²\n", "Infill area ratio: 0.00 %\n", "Total area ratio: 0.00 %\n" ] }, { "data": { "image/png": "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/67t27frlVdeueVcxMfH6/z58+na4+Li0rVl9X1nZObMmerbt68effRRDRgwQMeOHVObNm2UP39+a+C63ttvvy0XFxcNGjRI0dHRmjhxorp06aJdu3ZJkoYPH67o6Gj9888/1tPFM7sGOiAgQJ988oneeustxcXFacKECZKkcuXKyTAMPf7449q8ebN69uypqlWr6ttvv9XgwYP177//pjsVfdOmTVq+fLn69u2rQoUKZRr00/z000/6+OOPtW3btlveVKt///5q0KCBWrZsqeXLl9+07/V+/vlnVa9eXS4utscVHnzwQc2ZM0d//vmnKlWqpAceeEAzZszQU089JW9vb82ePVsPP/ywpNTtaNOmTfrzzz+zvF5J+uKLLyTpln9QyEifPn0UEBCgkSNH6vLly5n2GzlypMaNG6eWLVuqZcuW2rdvn5o2bZruenR73Wobmzp1qhYtWqTVq1dr5syZ8vHxUeXKlW9rnQBwzzAAAPesPXv2GJKMDRs2GIZhGCkpKUaxYsWMV155xabf0aNHDUmGn5+fcfbsWZtljRo1MipVqmTEx8db21JSUoyHH37YKF26tLUtPj7eSE5OTjeup6enMXbs2JvWeejQIUOS8f7779u09+nTx/Dx8TGuXLliGIZhvPLKK4afn59x7dq1rE3AdSTd8rF792673/fmzZsNScbmzZsNwzCMhIQEo2DBgsYDDzxgJCUlWfstXLjQkGTUq1cv3WvLlStnJCQkWNunTZtmSDIOHDhgbWvVqpURGhqa5fdbr149o0KFCjZta9asMSQZ48aNs2lv166dYbFYjMOHD9vMl4uLi3Hw4MEsrS8lJcV48MEHjU6dOhmG8d82NWnSpHR9v/zyS8PNzc06drdu3Qxvb+8srcfb29t49tln07V/9dVXhiTjm2++MQzDMGJiYow6depYP9sKFSoY//zzj5GUlGSUL1/eePvtt7O0vutVq1bNyJcvX7r2uLg449y5c9ZHdHS0ddmCBQsMSUadOnXSbbdpy44ePWoYhmGcPXvW8PDwMFq1amWkpKRY+73++uuGJKNbt263rFGS8dJLL1mf27ONjRo1ypBknDt3zmbMevXq2Wy3aZ/tggUL0r0WAO5FnF4OAPewxYsXKzAw0HrqtsViUYcOHbR06dIMrzsNDw9XQECA9fnFixe1adMmtW/fXrGxsTp//rzOnz+vCxcuqFmzZvrrr7/077//SpI8PT2tRx+Tk5N14cIF+fj4qEyZMunuLH2j+++/X1WrVtWyZcusbcnJyVq5cqVat26tPHnySEq91vTy5cvasGFDtubjiSee0IYNG9I9Bg8ebNPPnvd9oz179ujChQvq1auXzWnTXbp0sTnd+Xo9evSwuW720UcflZR69oAjff3113J1ddXLL79s0/7qq6/KMAytW7fOpr1evXoqX758lsZeuHChDhw4YD0DITOJiYkaMGCAXnjhhSyPfb2rV69meOOxtGvNr169Kkny9fXV1q1bdfDgQUVERCgiIkJFixbVjBkzlJCQoAEDBui3335TgwYNVLRoUT399NOKiYm56bpjYmIyPMNg+PDhCggIsD4yujFbr169bnn99nfffafExET169fP5kyBrN4872bu1DYGAPciQjcA3KOSk5O1dOlSNWjQQEePHtXhw4d1+PBh1apVS2fOnNHGjRvTvSYsLMzm+eHDh2UYhkaMGGETKgICAqzXf6bdfCklJUVTpkxR6dKl5enpqUKFCikgIED79+9XdHT0Levt0KGDtm/fbg2zW7Zs0dmzZ9WhQwdrnz59+uj+++9XixYtVKxYMT377LNZus44TbFixdS4ceN0jxvDnz3v+0bHjx+XpHR3iHdzc8v09OzixYvbPE8L55cuXcrye8uK48ePKzg4WL6+vjbt5cqVsy6/3o3bQ2ZiYmI0bNgwDR48WCEhITftO2XKFJ0/f15jxoyxo/L/5MmTx3rd9vXi4+Oty9O4uLiofPnyqlKlitzc3HT+/HmNHj1akydPlsVi0WOPPaZKlSrp888/V2RkpPr163fTdfv6+mZ4KUKfPn2sf8AJDAzM8LVZmcu0+U+7A3uagICATP9gk1V3ahsDgHsR13QDwD1q06ZNOnXqlJYuXaqlS5emW7548WI1bdrUpu36wCKlBmlJGjRokJo1a5bhetLC5fjx4zVixAg9++yzevPNN1WgQAG5uLiof//+1nFupkOHDho2bJhWrFih/v37a/ny5fL391fz5s2tfQoXLqyIiAh9++23WrdundatW6cFCxbomWee0ccff3zLdWSVPe/bETI7AmrccHOzO+3G7SEzkydPVmJiojp06GC9Kdg///wjKTXUHTt2TMHBwbp69arGjRunPn36KCYmxnpkOS4uToZh6NixY8qbN68KFy6c6bqKFCmiU6dOpWtPa7vZvQNGjBih6tWrq02bNvrhhx906tQpTZw4UV5eXhozZoyaN2+uBQsWpLtePE3ZsmUVERGhf//9V0WLFrW233///br//vslKdO7u2d1Ls1yt25jAJAbELoB4B61ePFiFS5cWB9++GG6ZatWrdLq1as1a9asm4aBkiVLSpLc3d3VuHHjm65v5cqVatCggebNm2fTHhUVpUKFCt2y3rCwMD344INatmyZ+vbtq1WrVqlNmzbpTiX28PBQ69at1bp1a6WkpKhPnz6aPXu2RowY4bAgbM/7vlFoaKik1KPl19+R/dq1azp27Fi2b051qxuTZbW27777TrGxsTZHu//44w/r8uyIjIzUpUuXVKFChXTLxo8fr/Hjx+vnn39Wvnz5FBcXp4kTJ2rixInp+oaFhemJJ5646deHVa1aVT/88INSUlJswvGuXbuUN29ea/i90S+//KL58+dr7969kqSTJ08qf/781pAcHBysxMREnTt3LtOj1Y899piWLl2qxYsXa8iQIZnWmF1p8//XX39Zt0FJOnfuHEekAeAuxunlAHAPunr1qlatWqXHHntM7dq1S/fo27evYmNj03391Y0KFy6s+vXra/bs2RkeXTx37pz1Z1dX13RHzVasWJHptc8Z6dChg3bu3Kn58+fr/PnzNqeWS9KFCxdsnru4uFhDbEanHGeXPe/7RjVr1lTBggU1d+5cXbt2zdq+ePHi2wpO3t7eWTpN/2Zatmyp5ORkffDBBzbtU6ZMkcVisfmqK3u8/PLLWr16tc1j9uzZkqTu3btr9erVCgsLU+HChdP1W716tRo0aCAvLy+tXr3a+j3aUurR6z/++ENJSUnWtnbt2unMmTNatWqVte38+fNasWKFWrduneH13pL0yiuv6LnnnlPFihUlSYGBgTp37pwuXrwoKfUu+G5ubjf9A1H79u1Vvnx5vfnmm9q5c2eGfW7nyHHjxo3l7u6u999/32acqVOnZntMAID5ONINAPegtWvXKjY2Vo8//niGyx966CEFBARo8eLF6YLtjT788EPVqVNHlSpVUq9evVSyZEmdOXNGO3bs0D///GP9Hu7HHntMY8eOVY8ePfTwww/rwIEDWrx4sc0Ru1tp3769Bg0apEGDBqlAgQLpjjI/99xzunjxoho2bKhixYrp+PHjev/991W1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HDigt956S5988olq1qyZYb+0YDt58uQ7XOF/lixZoqlTpzpt/Y6yZcsWWSwWrVy5MsPl3bt3l4+Pzx2uyj7O3GYB4F5A6AYAmMrLy0tLlixJ175161b9888/8vT0dEJV5nFWgLl69ap27Nihnj17qm/fvnr66adVrFixO15HVmUWukNDQ3X16lV17dr1zhd1l3njjTd09epV09dD6AYAcxG6AQCmatmypVasWKFr167ZtC9ZskQ1atRQUFCQkyrLXc6dOydJypcvn3MLuYXLly/fdLnFYpGXl5dcXV3vUEV3Lzc3N3l5eTm7DADAbSJ0AwBM1alTJ124cEEbNmywtiUmJmrlypXq3Llzhq+5fPmyXn31VYWEhMjT01NlypTR5MmTZRiGTT+LxaK+fftqxYoVKl++vPLkyaPatWvrwIEDkqTZs2frvvvuk5eXl+rXr69jx46lW9euXbvUvHlz+fv7K2/evKpXr562b99u0yft+tjDhw+re/fuypcvn/z9/dWjRw9duXLFpp7Lly/r448/tp5a3717d0lSbGys+vfvrxIlSsjT01OFCxdWkyZNtG/fvlvO4c8//6wWLVrIz89PPj4+atSokXbu3GlTX2hoqCRp8ODBslgsKlGixC3HvV7a5QDbt2/XwIEDFRAQIG9vbz355JPWQH+9devW6dFHH5W3t7d8fX3VqlUrHTx40KZP2qnVR44cUcuWLeXr66suXbqofv36+uqrr3T8+HHrPKXVm9E13fv371f37t1VsmRJeXl5KSgoSM8++6wuXLhw0/d05swZubm5acyYMemWHTp0SBaLRR988IEkKSkpSWPGjFHp0qXl5eWlggULqk6dOjbbrSNlZf4yuqb76tWrevnll1WoUCH5+vrq8ccf17///iuLxaLRo0enW09UVFS2t1kAgGO4ObsAAEDuVqJECdWuXVuffvqpWrRoISk1cERHR6tjx46aPn26TX/DMPT4449r8+bN6tmzp6pWrapvv/1WgwcP1r///qspU6bY9P/hhx+0du1avfTSS5KkCRMm6LHHHtOQIUM0Y8YM9enTR5cuXdLEiRP17LPPatOmTdbXbtq0SS1atFCNGjU0atQoubi4aMGCBWrYsKF++OEHPfjggzbrat++vcLCwjRhwgTt27dPH330kQoXLqx33nlHkvTJJ5/oueee04MPPqjevXtLkkqVKiVJeuGFF7Ry5Ur17dtX5cuX14ULF7Rt2zb9/vvvql69eqbzd/DgQT366KPy8/PTkCFD5O7urtmzZ6t+/fraunWratWqpbZt2ypfvnwaMGCAOnXqpJYtW2b7OuJ+/fopf/78GjVqlI4dO6apU6eqb9++WrZsmbXPJ598om7duqlZs2Z65513dOXKFc2cOVN16tTRzz//bBP4r127pmbNmqlOnTqaPHmy8ubNq6CgIEVHR+uff/6xfp43q3fDhg36+++/1aNHDwUFBengwYOaM2eODh48qJ07d2Z6s7HAwEDVq1dPy5cv16hRo2yWLVu2TK6urnrqqackpQbcCRMmWD+/mJgY7dmzR/v27VOTJk1uOW+xsbEZ3rQsISEhXZs983ej7t27a/ny5erataseeughbd26Va1atcq0/+1sswAABzEAADDBggULDEnG7t27jQ8++MDw9fU1rly5YhiGYTz11FNGgwYNDMMwjNDQUKNVq1bW161Zs8aQZIwbN85mvHbt2hkWi8U4fPiwtU2S4enpaRw9etTaNnv2bEOSERQUZMTExFjbhw0bZkiy9k1JSTFKly5tNGvWzEhJSbH2u3LlihEWFmY0adLE2jZq1ChDkvHss8/a1PTkk08aBQsWtGnz9vY2unXrlm4+/P39jZdeeulmU5ahNm3aGB4eHsaRI0esbSdPnjR8fX2NunXrWtuOHj1qSDImTZp0yzEz6pv2eTVu3NhmPgYMGGC4uroaUVFRhmEYRmxsrJEvXz6jV69eNmOePn3a8Pf3t2nv1q2bIcl47bXX0tXQqlUrIzQ0NNPaFixYYG1L226u9+mnnxqSjO+///6m7zVtezhw4IBNe/ny5Y2GDRtan1epUsVmO8yqzZs3G5Ju+vD29rb2t2f+0ra7NHv37jUkGf3797d5bffu3Q1JxqhRo9K99na2WQCAY3B6OQDAdO3bt9fVq1f15ZdfKjY2Vl9++WWmp5Z//fXXcnV11csvv2zT/uqrr8owDK1bt86mvVGjRjZHBmvVqiVJCg8Pl6+vb7r2v//+W5IUERGhv/76S507d9aFCxd0/vx5nT9/XpcvX1ajRo30/fffKyUlxWZdL7zwgs3zRx99VBcuXFBMTMwt5yBfvnzatWuXTp48ecu+aZKTk7V+/Xq1adNGJUuWtLYXKVJEnTt31rZt27K0bnv07t3b5sjxo48+quTkZB0/flxS6lHnqKgoderUyTpn58+fl6urq2rVqqXNmzenG/PFF1+8rZry5Mlj/Tk+Pl7nz5/XQw89JEm3PD2/bdu2cnNzszlS/+uvv+q3335Thw4drG358uXTwYMH9ddff2WrxpEjR2rDhg3pHk2bNrXpl535S/PNN99Ikvr06WPT3q9fv0xfczvbLADAMTi9HABguoCAADVu3FhLlizRlStXlJycrHbt2mXY9/jx4woODrYJzJJUrlw56/LrFS9e3Oa5v7+/JCkkJCTD9kuXLkmSNVx169Yt07qjo6OVP3/+TNeVtuzSpUvy8/PLdBxJmjhxorp166aQkBDVqFFDLVu21DPPPGMTpm907tw5XblyRWXKlEm3rFy5ckpJSdGJEydUoUKFm67bHjd7j9J/89awYcMMX3/jPLi5ud32XdQvXryoMWPGaOnSpTp79qzNsujo6Ju+tlChQmrUqJGWL1+uN998U1LqqeVubm5q27attd/YsWP1xBNP6P7771fFihXVvHlzde3aVZUrV85SjZUqVVLjxo3Ttf/f//2fzXN75+96x48fl4uLi8LCwmza77vvvkxfczvbLADAMQjdAIA7onPnzurVq5dOnz6tFi1aOOwu25nd5TqzduN/N2NLO4o9adIkVa1aNcO+N15nfKsxb6Z9+/Z69NFHtXr1aq1fv16TJk3SO++8o1WrVlmvdb8bZHXePvnkkwzvPO/mZvu/Fp6ennJxub0T69q3b68ff/xRgwcPVtWqVeXj46OUlBQ1b9483dkIGenYsaN69OihiIgIVa1aVcuXL1ejRo1UqFAha5+6devqyJEj+vzzz7V+/Xp99NFHmjJlimbNmqXnnnvutuq/nr3zd7tuZ5sFADgGoRsAcEc8+eSTev7557Vz506bU31vFBoaqu+++06xsbE2R7v/+OMP63JHSLtZlJ+fX4ZHKLMrs5t6Samnhffp00d9+vTR2bNnVb16db311luZhu6AgADlzZtXhw4dSrfsjz/+kIuLS7oj+mZLm7fChQvf1rzdbJ6ud+nSJW3cuFFjxozRyJEjre32nAbepk0bPf/889bt7s8//9SwYcPS9StQoIB69OihHj16KC4uTnXr1tXo0aMdGrpvZ/5CQ0OVkpKio0ePqnTp0tb2w4cP31ZNWf0sAADZwzXdAIA7wsfHRzNnztTo0aPVunXrTPu1bNlSycnJ1q9ySjNlyhRZLBaHHRWuUaOGSpUqpcmTJysuLi7d8oy+JisrvL29FRUVZdOWnJyc7jTowoULKzg4OMO7W6dxdXVV06ZN9fnnn9t83dmZM2e0ZMkS1alT546fItysWTP5+flp/PjxSkpKSrc8q/Pm7e19y1PDpf+O1N54ZHbq1KlZWo+Uer12s2bNtHz5ci1dulQeHh5q06aNTZ8bv37Mx8dH9913300/n+y4nflr1qyZJGnGjBk27e+///5t1ZTRNgsAcByOdAMA7pibXT+dpnXr1mrQoIGGDx+uY8eOqUqVKlq/fr0+//xz9e/f32FfZ+Ti4qKPPvpILVq0UIUKFdSjRw8VLVpU//77rzZv3iw/Pz998cUXdo9bo0YNfffdd3rvvfcUHByssLAwlSlTRsWKFVO7du1UpUoV+fj46LvvvtPu3bv17rvv3nS8cePGacOGDapTp4769OkjNzc3zZ49WwkJCZo4cWJ23362+fn5aebMmeratauqV6+ujh07KiAgQJGRkfrqq6/0yCOPpPuDSUZq1KihZcuWaeDAgXrggQfk4+OT4R9j/Pz8VLduXU2cOFFJSUkqWrSo1q9fr6NHj9pVd4cOHfT0009rxowZatasWbrLG8qXL6/69eurRo0aKlCggPbs2WP9ijdHup35q1GjhsLDwzV16lRduHDB+pVhf/75p6TsH7HOaJtNu/EgAOD2EboBAHcVFxcXrV27ViNHjtSyZcu0YMEClShRQpMmTdKrr77q0HXVr19fO3bs0JtvvqkPPvhAcXFxCgoKUq1atfT8889na8z33ntPvXv31htvvKGrV6+qW7dumjNnjvr06aP169dr1apVSklJ0X333acZM2bc8s7eFSpU0A8//KBhw4ZpwoQJSklJUa1atfR///d/TgtGnTt3VnBwsN5++21NmjRJCQkJKlq0qB599FH16NEjS2P06dNHERERWrBggaZMmaLQ0NBMz4BYsmSJ+vXrpw8//FCGYahp06Zat26dgoODs1zz448/rjx58ig2NtbmruVpXn75Za1du1br169XQkKCQkNDNW7cOA0ePDjL68iq25m/RYsWKSgoSJ9++qlWr16txo0ba9myZSpTpoy8vLyyVU9G2yyhGwAcx2JwJw0AAIAcKyIiQtWqVdP//d//qUuXLs4uBwBwA67p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RqEOqXeV77//Xg8//LDblg8AuLdwTjcAAEXgwoUL6t69ux5++GE99dRTSkxMzPW4/srct2vKlClauXKlpk2bph9++EFHjhzRRx99pEmTJuUb37dvX9ntdg0ZMkRHjhzRli1btGDBAklyqimuWrWqTp48qUOHDunChQvKyMjIN+6RRx5RamqqfvjhB+dfnEnS0tJ04MABdejQwW05AADuLTTdAAAUgc8//1ynTp3Spk2bFB4enufRrFmzO15Gx44dtXHjRm3dulXNmjVTixYt9Prrr6tKlSr5xgcGBmrDhg06dOiQGjVqpFdeecVxhXBnDkfv2bOnOnXqpEceeUT33Xef1qxZk29c2bJl9fjjj2vVqlXOvziTfPbZZ6pcubJ+97vfuS0HAMC9xWIYhuHuJAAAQPGwatUqDRw4UJcvXy7wKuR34ttvv1X79u114sQJlSpVyvT530qLFi30wgsvqG/fvkW+bADAvYlzugEAuIetXLlS1apVU4UKFXT48GGNHz9evXr1cknDLV27Svm8efN08uTJXFcnLwoXLlxQjx499OSTTxbpcgEA9zb2dAMAcA+bP3++3nrrLSUmJio8PFzdu3fXrFmz8txeDAAA3B6abgAAAAAAXIQLqQEAAAAA4CI03QAAAAAAuAhNNwAAAAAALkLTDQAAAACAi9B0AwAAAADgIjTdAAAAAAC4CE03AAAAAAAuQtMNAAAAAICL0HQDAAAAAOAi/x9hwBK9FuJSlwAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# --- Analysis block: Area & Moments vs Height for Prusa-style Grid ---\n", "\n", "from scipy.signal import argrelextrema\n", "\n", "# Parameters\n", "width = 10.0\n", "height = 10.0\n", "infill_fraction = 0.44\n", "shell_layers = 2\n", "line_thickness = 0.42\n", "base_infill_angle_deg = 45.0\n", "use_grid = True # True => Grid (two passes 90° apart in same layer)\n", "phase_per_mm = 0.0 # set >0 to shift infill vs Z; 0 keeps pattern fixed\n", "N = 1000 # raster resolution (match function call)\n", "\n", "z_heights = np.linspace(0, 20, 100)\n", "\n", "# Utility: rebuild the *same* shell mask used by the generator\n", "def build_shell_line_mask(XX, YY, width, height, line_width, shell_layers):\n", " shell_mask = np.zeros_like(XX, dtype=bool)\n", " for i in range(shell_layers):\n", " off = (i + 0.5) * line_width # center each perimeter inside the outline\n", "\n", " # vertical walls: x = -W/2+off, x = +W/2-off\n", " shell_mask |= np.abs(XX - (-width/2 + off)) <= (line_width / 2)\n", " shell_mask |= np.abs(XX - ( +width/2 - off)) <= (line_width / 2)\n", "\n", " # horizontal walls: y = -H/2+off, y = +H/2-off\n", " shell_mask |= np.abs(YY - (-height/2 + off)) <= (line_width / 2)\n", " shell_mask |= np.abs(YY - ( +height/2 - off)) <= (line_width / 2)\n", " return shell_mask\n", "\n", "areas = []\n", "shell_areas = []\n", "infill_areas = []\n", "I_xs = []\n", "I_ys = []\n", "Js = []\n", "\n", "for z in z_heights:\n", " # Generate the infill/shell mask for this Z (plot/verbose disabled)\n", " mask = prusa_style_grid_or_rectilinear(\n", " width=width, height=height,\n", " infill_fraction=infill_fraction,\n", " line_width=line_thickness,\n", " shell_layers=shell_layers,\n", " base_infill_angle_deg=base_infill_angle_deg,\n", " grid=use_grid,\n", " z_height=z,\n", " phase_per_mm=phase_per_mm,\n", " N=N,\n", " plot=False,\n", " verbose=False\n", " )\n", "\n", " # Rebuild the *same* raster grid used inside the function (match mask shape)\n", " Ny, Nx = mask.shape\n", " xs = np.linspace(-width / 2, width / 2, Nx)\n", " ys = np.linspace(-height / 2, height / 2, Ny)\n", " XX, YY = np.meshgrid(xs, ys)\n", "\n", " # Build the *same* shell-line mask for correct shell area\n", " shell_mask = build_shell_line_mask(XX, YY, width, height, line_thickness, shell_layers)\n", "\n", " # Area/moments\n", " mtot = compute_area_moments(XX, YY, mask)\n", " mshell = compute_area_moments(XX, YY, shell_mask)\n", "\n", " A_total = mtot[\"A\"]\n", " A_shell = mshell[\"A\"]\n", " A_infill = A_total - A_shell\n", "\n", " areas.append(A_total)\n", " shell_areas.append(A_shell)\n", " infill_areas.append(A_infill)\n", " I_xs.append(mtot[\"I_x\"])\n", " I_ys.append(mtot[\"I_y\"])\n", " Js.append(mtot[\"J\"])\n", "\n", "# Convert to NumPy for analysis\n", "z_np = np.asarray(z_heights)\n", "areas_np = np.asarray(areas)\n", "\n", "# Local maxima/minima (may be empty if phase_per_mm=0 gives flat lines)\n", "max_indices = argrelextrema(areas_np, np.greater)[0]\n", "min_indices = argrelextrema(areas_np, np.less)[0]\n", "\n", "# Global max/min\n", "i_max = int(np.argmax(areas_np))\n", "i_min = int(np.argmin(areas_np))\n", "print(f\"Infill max area: {infill_areas[i_max]:.2f} mm² at z = {z_np[i_max]:.2f} mm\")\n", "print(f\"Infill min area: {infill_areas[i_min]:.2f} mm² at z = {z_np[i_min]:.2f} mm\")\n", "print(f\"Shell area (at min): {shell_areas[i_min]:.2f} mm²\")\n", "\n", "infill_peak_area_ratio = (infill_areas[i_max] / max(infill_areas[i_min], 1e-12) - 1) * 100\n", "print(f\"Infill area ratio: {infill_peak_area_ratio:.2f} %\")\n", "\n", "total_peak_area_ratio = (areas_np[i_max] / max(areas_np[i_min], 1e-12) - 1) * 100\n", "print(f\"Total area ratio: {total_peak_area_ratio:.2f} %\")\n", "\n", "# -------------------\n", "# Plotting\n", "# -------------------\n", "fig, axs = plt.subplots(2, 1, figsize=(10, 8), sharex=True)\n", "\n", "# Area plot\n", "axs[0].plot(z_np, areas_np, label=\"Total Area\", linewidth=2)\n", "axs[0].plot(z_np, shell_areas, label=\"Shell Area\", linestyle='--')\n", "axs[0].plot(z_np, infill_areas, label=\"Infill Area\", linestyle='-.')\n", "\n", "# Scatter markers (if any)\n", "if max_indices.size:\n", " axs[0].scatter(z_np[max_indices], areas_np[max_indices], color='red', label=\"Local Max\", zorder=5)\n", "if min_indices.size:\n", " axs[0].scatter(z_np[min_indices], areas_np[min_indices], color='blue', label=\"Local Min\", zorder=5)\n", "\n", "axs[0].set_ylabel(\"Area (mm²)\")\n", "axs[0].legend()\n", "title_name = \"Grid\" if use_grid else \"Rectilinear\"\n", "axs[0].set_title(f\"Area vs Height for {infill_fraction*100:.1f}% {title_name} Infill\")\n", "\n", "# Moments plot\n", "axs[1].plot(z_np, I_xs, label=\"I_x\", linewidth=2)\n", "axs[1].plot(z_np, I_ys, label=\"I_y\", linestyle='--')\n", "axs[1].plot(z_np, Js, label=\"Polar moment J\", linestyle='-.')\n", "axs[1].set_xlabel(\"Z Height (mm)\")\n", "axs[1].set_ylabel(\"Moment of Inertia\")\n", "axs[1].legend()\n", "axs[1].set_title(\"Moments of Inertia vs Height\")\n", "\n", "plt.tight_layout()\n", "axs[1].tick_params(axis='x', labelrotation=0, labelsize=10)\n", "axs[1].set_xticks(np.linspace(z_np.min(), z_np.max(), 11))\n", "plt.grid(True)\n", "plt.show()\n" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.13.3" } }, "nbformat": 4, "nbformat_minor": 5 }