{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "provenance": []
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "language_info": {
      "name": "python"
    }
  },
  "cells": [
    {
      "cell_type": "code",
      "execution_count": 20,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 562
        },
        "id": "LXlSRBeHtETj",
        "outputId": "2ba97b7a-a049-4304-9578-575ad2100459"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Pieza compleja exportada a pieza_compleja.dxf\n"
          ]
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 800x600 with 1 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {}
        }
      ],
      "source": [
        "# Ejercicio Extra 3.1.10.\n",
        "\n",
        "#!pip install ezdxf\n",
        "# Si lo necesitas, elimina el # de la senencia anterior\n",
        "\n",
        "import math\n",
        "import numpy as np\n",
        "import matplotlib.pyplot as plt\n",
        "import ezdxf\n",
        "\n",
        "# -----------------------------\n",
        "# Parámetros de la pieza\n",
        "ancho_cuerpo = 120\n",
        "alto_cuerpo = 80\n",
        "radio_agujero_central = 15\n",
        "radio_taladro = 5\n",
        "num_taladros = 4\n",
        "radio_circulo_taladros = 40\n",
        "a_elipse = 50\n",
        "b_elipse = 30\n",
        "\n",
        "# -----------------------------\n",
        "# Crear archivo DXF\n",
        "doc = ezdxf.new(dxfversion='R2010')\n",
        "msp = doc.modelspace()\n",
        "\n",
        "# -----------------------------\n",
        "# 1. Cuerpo principal (rectángulo)\n",
        "cuerpo = [(0,0), (ancho_cuerpo,0), (ancho_cuerpo,alto_cuerpo), (0,alto_cuerpo), (0,0)]\n",
        "msp.add_lwpolyline(cuerpo, close=True)\n",
        "\n",
        "# -----------------------------\n",
        "# 2. Agujero central\n",
        "centro_x, centro_y = ancho_cuerpo/2, alto_cuerpo/2\n",
        "msp.add_circle((centro_x, centro_y), radius_agujero_central := radio_agujero_central)\n",
        "\n",
        "# -----------------------------\n",
        "# 3. Taladros circulares\n",
        "for i in range(num_taladros):\n",
        "    angulo = 2*math.pi*i/num_taladros\n",
        "    x = centro_x + radio_circulo_taladros * math.cos(angulo)\n",
        "    y = centro_y + radio_circulo_taladros * math.sin(angulo)\n",
        "    msp.add_circle((x, y), radius=radio_taladro)\n",
        "\n",
        "# -----------------------------\n",
        "# 4. Arco de elipse (curva cónica) en la parte superior\n",
        "t = np.linspace(0, np.pi, 50)\n",
        "x_elipse = a_elipse * np.cos(t) + centro_x\n",
        "y_elipse = b_elipse * np.sin(t) + alto_cuerpo\n",
        "elipse_points = list(zip(x_elipse, y_elipse))\n",
        "msp.add_lwpolyline(elipse_points)\n",
        "\n",
        "# -----------------------------\n",
        "# Guardar DXF\n",
        "archivo_dxf = \"pieza_compleja.dxf\"\n",
        "doc.saveas(archivo_dxf)\n",
        "print(f\"Pieza compleja exportada a {archivo_dxf}\")\n",
        "\n",
        "# -----------------------------\n",
        "# Visualización previa con matplotlib\n",
        "plt.figure(figsize=(8,6))\n",
        "# Cuerpo\n",
        "plt.plot([p[0] for p in cuerpo], [p[1] for p in cuerpo], 'b-')\n",
        "# Agujero central\n",
        "plt.gca().add_patch(plt.Circle((centro_x, centro_y), radio_agujero_central, color='r', fill=False))\n",
        "# Taladros\n",
        "for i in range(num_taladros):\n",
        "    angulo = 2*math.pi*i/num_taladros\n",
        "    x = centro_x + radio_circulo_taladros * math.cos(angulo)\n",
        "    y = centro_y + radio_circulo_taladros * math.sin(angulo)\n",
        "    plt.gca().add_patch(plt.Circle((x, y), radio_taladro, color='g', fill=False))\n",
        "# Arco de elipse\n",
        "plt.plot(x_elipse, y_elipse, 'm-')\n",
        "\n",
        "plt.gca().set_aspect('equal', adjustable='box')\n",
        "plt.grid(True)\n",
        "plt.title(\"Pieza compleja: vista previa\")\n",
        "plt.show()\n"
      ]
    }
  ]
}