{
  "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": 4,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "LXlSRBeHtETj",
        "outputId": "6cadda27-573f-4af4-d83e-1856ff963c5f"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Collecting ezdxf\n",
            "  Downloading ezdxf-1.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (9.8 kB)\n",
            "Requirement already satisfied: pyparsing>=2.0.1 in /usr/local/lib/python3.12/dist-packages (from ezdxf) (3.2.3)\n",
            "Requirement already satisfied: typing_extensions>=4.6.0 in /usr/local/lib/python3.12/dist-packages (from ezdxf) (4.15.0)\n",
            "Requirement already satisfied: numpy in /usr/local/lib/python3.12/dist-packages (from ezdxf) (2.0.2)\n",
            "Requirement already satisfied: fonttools in /usr/local/lib/python3.12/dist-packages (from ezdxf) (4.59.1)\n",
            "Downloading ezdxf-1.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.8 MB)\n",
            "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m5.8/5.8 MB\u001b[0m \u001b[31m38.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hInstalling collected packages: ezdxf\n",
            "Successfully installed ezdxf-1.4.2\n",
            "Introduce el radio del hexágono en mm: 30\n",
            "Hexágono exportado exitosamente a hexagono.dxf\n"
          ]
        }
      ],
      "source": [
        "# Ejercicio Extra 3.1.3.\n",
        "\n",
        "!pip install ezdxf\n",
        "\n",
        "import math\n",
        "import ezdxf\n",
        "\n",
        "# Pedir al usuario el radio del hexágono\n",
        "radio = float(input(\"Introduce el radio del hexágono en mm: \"))\n",
        "\n",
        "# Calcular las coordenadas de los 6 vértices\n",
        "vertices = []\n",
        "for i in range(6):\n",
        "    angulo = math.radians(60 * i)  # Convertir a radianes\n",
        "    x = radio * math.cos(angulo)\n",
        "    y = radio * math.sin(angulo)\n",
        "    vertices.append((x, y))\n",
        "\n",
        "# Cerrar el hexágono repitiendo el primer vértice\n",
        "vertices.append(vertices[0])\n",
        "\n",
        "# Crear un nuevo archivo DXF\n",
        "doc = ezdxf.new(dxfversion='R2010')\n",
        "msp = doc.modelspace()\n",
        "\n",
        "# Dibujar el hexágono con una polilínea\n",
        "msp.add_lwpolyline(vertices, close=True)\n",
        "\n",
        "# Guardar el archivo\n",
        "archivo_dxf = \"hexagono.dxf\"\n",
        "doc.saveas(archivo_dxf)\n",
        "\n",
        "print(f\"Hexágono exportado exitosamente a {archivo_dxf}\")"
      ]
    }
  ]
}