¿Cómo hacer un hexágono en Eagle?

0

Quiero hacer un PCB que sea hexagonal y tenga unos lados de 51 mm. He intentado insertar un archivo .svg en Eagle, pero no funcionó, también he intentado usar la herramienta de polígonos pero no sé cómo hacer que los lados tengan un tamaño específico.
¿Puede alguien ayudarme por favor?

    
pregunta Lost Night

2 respuestas

4

Realmente no hay una manera de hacerlo fácilmente, especialmente porque EAGLE no sabe algo como las formas.

El enfoque más simple es calcular primero las coordenadas de los bordes:

$$ x_i = 51 \ cdot \ cos \ left (\ frac {\ pi} {180} \ cdot \ alpha_i \ right) $$ $$ y_i = 51 \ cdot \ sin \ left (\ frac {\ pi} {180} \ cdot \ alpha_i \ right) $$

con \ $ \ alpha_i = 0; 60; 120; ...; 360 \ $

y luego escriba estas líneas en un archivo con la extensión *.scr :

CHANGE LAYER 20;
GRID MM;
SET WIRE_BEND 2;
WIRE 0 (51.000 0.000) (25.500 44.167) (-25.500 44.167) (-51.000 0.000) (-25.500 -44.167) (25.500 -44.167) (51.000 0.000);

Layer 20 es la capa de dimensión. El fabricante de PCB cortará el PCB siguiendo las líneas dibujadas allí. WIRE_BEND define cómo EAGLE conecta dos puntos. Quieres una sola línea recta aquí. Y el único 0 del comando WIRE es el ancho de línea.

El archivo puede ejecutarse mediante Archivo > ejecutar script ...

También puede pegar esta línea en el campo de texto justo encima del área de distribución.

Nota: Para mover el hexágono, primero debes seleccionar las seis líneas. Si ya tiene algunos componentes en su diseño, agregue un desplazamiento a las coordenadas, para que el hexágono se dibuje en cierta distancia. Puede seleccionar todas las líneas fácilmente y moverlas a donde desee.

    
respondido por el sweber
1

Siguiendo con la respuesta de sweber , aquí hay un programa Python para calcular las coordenadas de los vértices hexagonales:

#!/usr/bin/env python
from math import pi, sin, cos

angles = [n*2*pi/6 for n in range(0, 6)]

def hexagon_coords(theta, r):
    digits = 6
    x = round(r * cos(theta), digits)
    y = round(r * sin(theta), digits)
    return (x, y)

radius = 3.2

for angle in angles:
    coords = hexagon_coords(angle, radius)
    print(coords)
    
respondido por el Adam F

Lea otras preguntas en las etiquetas