Blues de codificación de barras

Un script de Visual Basic puede generar códigos de barras para ingresar instrucciones CNC. 10 de abril de 2005
Pregunta
He escrito una aplicación en Visual Basic que generará el código para fresar mis piezas para marcos frontales con cuentas. El problema es que, si bien el código se genera en un abrir y cerrar de ojos, cargar un promedio de 100 archivos individuales en el control es más tedioso que nunca.

La respuesta obvia es el código de barras. Desafortunadamente, no tengo ni idea de cómo proceder, así que pido ayuda. Los programas están escritos utilizando Alpha CAM Advanced Router. La máquina en sí es una SUP Anderson Stratos con un control Fanuc 210i (frontal de PC) que está conectado en red a la oficina. Gracias de antemano. Respuestas del foro
(Foro CNC) Del colaborador A:

Stiles tiene un nuevo producto llamado Scan Manager que parece que podría hacer el trabajo por usted.


Del colaborador B:

Dado que ha utilizado VB para crear su mecanizado, puede probar este fragmento de VBA para crear códigos de barras.

Opción Comparar base de datos 'Usar orden de base de datos para comparaciones de cadenas

Opción explícita

Función MD_Barcode39(Ctrl como control, Rpt como informe)

En caso de error, vaya a ErrorTrap_BarCode39

Dim Nbar como único, Wbar como único, Qbar como único, NextBar como único

Atenuar CountX como único, CountY como único, CountR como único

Atenuar partes como una sola, Foto como una sola, Color tan largo, Sello de barra como variante

Rayas tenues como cadena, OneStripe como cadena, CÓDIGO DE BARRAS como cadena

Dim Mx Como Sencillo, my Como Sencillo, Sx Como Sencillo, Sy Como Sencillo

Blanco constante = 16777215:
Negro constante = 0

Ratio constante = 20, Ratio = 55, Ratio = 35

Sx = Ctrl.Izquierda:
Sy = Ctrl.Arriba:
Mx = Ctrl.Ancho:
mi = Ctrl.Alto

CÓDIGO DE BARRAS = Ctrl

Partes = (Len(CÓDIGO DE BARRAS) + 2) * ((6 * Nratio) + (3 * Wratio) + (1 * Qratio))

Foto = (Mx / Partes):

Nbar = (20 * Pix):
Wbar = (55 * Pix):
Qbar = (35 * Pix)

Barra siguiente = Sx

Color = Blanco

Para CountX = 1 a Len (BarStamp)

Rayas = MD_BC39(Mid$(BarStamp, CountX, 1))

Para CountY = 1 a 9

OneStripe = Medio$(Rayas, CountY, 1)

Si Color = Blanco Entonces Color = Negro De lo contrario Color = Blanco

Seleccione Caso OneStripe

Rpt.Line (NextBar, Sy) -Step(Wbar, my), Color, BF

BarraSiguiente = BarraSiguiente + Wbar 'Barra ancha

Rpt.Line (NextBar, Sy)-Step(Nbar, my), Color, BF

BarraSiguiente = BarraSiguiente + Nbar 'BarraEstrecha

Finalizar selección

Próximo recuento

Si Color = Blanco Entonces Color = Negro De lo contrario Color = Blanco

Rpt.Line (NextBar, Sy)-Step(Qbar, my), Color, BF

NextBar = NextBar + Qbar 'Barra silenciosa intermedia

Siguiente recuentoX

Salir_BarCode39:

Función de salida

ErrorTrap_BarCode39:

Reanudar Salida_BarCode39

Función final

Función Impresión por lotes()

DoCmd.SetWarnings Falso

DoCmd.SetWarnings Verdadero

Función final

Función MD_BC39 (CharCode como cadena) como cadena

En caso de error, vaya a ErrorTrap_BC39

ReDim BC39(90)

MD_BC39 = BC39(Asc(Código de caracteres))

Salida_BC39:

Función de salida

ErrorTrap_BC39:

Reanudar salida_BC39

Función final


Del interrogador original:

Al colaborador B:
¡Guau! Gracias. Ése es otro aspecto del proceso que sabía que tendría que afrontar. ¡Probaré tu función cuando llegue a la tienda el lunes por la mañana! Al colaborador A:
Gracias por la noticia sobre Stiles. Su precio es un poco elevado:
$ 2500 y, por supuesto, tengo que pagarle a un tipo para que venga y los conecte por mí. Si no lo encuentro más barato, se lo compraré a ellos.