Los ejes positivos de un sistema de coordenadas de imagen apuntan hacia la derecha y hacia abajo , mientras que apuntan hacia la derecha y hacia arriba en gerber, como ya escribiste.
Y una imagen tiene su origen en la parte superior izquierda, mientras que gerber también permite coordenadas negativas. Es decir. El origen puede estar en todas partes. Lo que es peor, normalmente conoce el ancho y el alto de una imagen, mientras que un archivo gerber no contiene ninguna información sobre los valores más altos y más bajos en x e y.
Por ejemplo, este es un archivo gerber de dos rectángulos dibujados en EAGLE, uno a la derecha y sobre el origen, el otro a la izquierda y abajo:
G01*
X000000Y000000D02*
D10*
X000500Y001000D02*
### draw first rectangle ###
X000500Y002000D01*
X001500Y002000D01*
X001500Y001000D01*
X000500Y001000D01*
X-001000Y-001000D02*
### draw second rectangle with negative coords ###
X-001000Y-002000D01*
X-002000Y-002000D01*
X-002000Y-001000D01*
X-001000Y-001000D01*
X000000Y000000D02*
M02*
Su primer paso es averiguar el rango de coordenadas de gerber que se muestra en su imagen, o al menos los valores más bajos para x e y. Esto puede ser complicado, ya que, por ejemplo, las coordenadas se pueden dar en relación con la última coordenada.
Una vez que tenga los valores más bajos \ $ x_ {bajo} \ $ y \ $ y_ {bajo} \ $, puede convertir determinados co-datos de xy en coordenadas de píxeles:
$$ x_ {pix} = (x-x_ {low}) \ cdot U \ cdot 600dpi $$
$$ y_ {pix} = ImageHeight - (y-y_ {low}) \ cdot U \ cdot 600dpi $$
\ $ U \ $ es el factor de conversión de la unidad a pulgada, es decir, 0.001 si el archivo gerber usa molinos, y 0.0393701 si usa mm.
Esto, por supuesto, supone que los valores xy en tu tabla se dan en el sistema de coordenadas del archivo gerber.
EDITAR, después de ver tus archivos gerber en los comentarios:
Aquí hay una captura de pantalla de su PCB "controlador de juego", dibujado con gerbv:
Laesquinainferiorizquierdadellímiteestáenalgúnlugaren1951/2900,¡muylejosdelorigen!Lascoordenadasquesemuestranenlaparteinferiorsonlascoordenadasdemimouse,apuntandohaciaelcentrodeC18.Coincidenbienconlascoordenadas2865/4040delarchivopick'n'place.Esobvioquetienequeajustarlascoordenadasdelaspartesaldesplazamiento.
Tambiénhaagregadounaimagendelaplaca,quenoesde600ppp(a1.25"el tamaño de la placa, debe tener aproximadamente 750px de ancho).
Su imagen gira 180 °, lo que tiene sentido para la legibilidad de las etiquetas. Pero eso no es lo que está en el archivo, y mi fórmula debe modificarse para esto.
Y la imagen revela que hay algunos píxeles de margen adicional en todo el PCB, por lo que las líneas amarillas no tocan el borde. Esto también debe tenerse en cuenta.
Agregasteotraplaca,la"PCB Nyx". Esta tiene la misma orientación que mi gerbv, tiene sentido otra vez. Esta placa también tiene compensaciones en xey, aunque son bastante pequeñas. Y la imagen también tiene un borde.