Ella y sus caprichos

Entiendo por qué los marinos tratan a la Mar de ella. En mi caso, la máquina de control numérico definitivamente también queda como ella. Caprichosa, voluble, desesperante…

La última ha sido con el armario de los nuevos dormitorios. Los costados tienen taladros en el canto, para poder unirlos a la base y al techo. El taladro para estos menesteres es bastante voluminoso y hay que bajarlo unos diez centímetros más allá del borde de la pieza, para que no roce.

Para que me sigáis, la bancada de la máquina mide unos tres metros de largo (eje X) por uno y pico de ancho (eje Y). El centro está en la esquina del fondo izquierda y es ahí, contra unos topes, donde acodamos las piezas que vamos a mecanizar. Los costados del armario miden dos metros de largo por algo más de 50 centímetros de ancho y los taladros horizontales se hacen en el lado corto. A la derecha no hay problemas, ya que queda algo más de un metro de bancada, pero a la izquierda toca trabajar con cotas negativas. El problema es que a la mínima nos podemos salir de los márgenes de la máquina y saltar un error de límites de ejes. Con una pieza de la cómoda, que casi cubría todo el eje Y, tuve problemas para sacar una herramienta especialmente voluminosa, ya que se salía de límites.

Hechas las presentaciones, ahora el problema: para posicionar el taladro horizontal en el lado izquierdo programo un movimiento rectilíneo rápido hasta la cota X-50 mediante la orden G00 (o sea, G00 X-50 Y-60). Lo siguiente es bajar el brazo, meter, sacar y repetir las veces necesarias. La máquina dice que no, que se sale de límites. Guay. Compruebo las coordenadas con las que usé en los costados de la mesita, la cómoda y el sinfonier. La cota de X-50 es correcta y funcionó entonces. Mal vamos.

Reviso línea a línea, teniendo especial cuidado en evitar órdenes incompatibles, de esas que ni siquiera vienen en el manual. Nada, aparentemente todo correcto. Sencillamente no quiere hacerlo. El manual no me da pistas.

Finalmente, tras día y medio de romperme la cabeza, me acuerdo de Naruto y lo intento aplicando pensamiento lateral. ¿Que no quiere ir a X-50? Pues que no vaya. Primero la mando a X100, digamos, y luego a X-50 (milímetros, claro). Vamos, que donde ponía:

G00 X-50

Ahora pone

G00 X100

G00 X-50

Y solucionado. Ya funciona. Si alguien sabe por qué, ruego me lo diga.

Aero sí, Aero no

En toda lista de supuestos trucos para agilizar Windows Vista está la de desactivar Aero. Yo no sé (aunque mis ideas tengo, carezco de pruebas) si es por mala fe o bien es que sacas a estos supuestos «expertos en trucos» de Windows XP y, si acaso, de Ubuntu y se encuentran más perdidos que Naruto en un examen teórico. Digo esto porque en Vista tenemos la misma opción para ajustar los efectos visuales con múltiples opciones desde el «todo arriba» al «todo quitado». De igual modo que en XP, si nuestro ordenador anda algo justito es una de las primeras opciones para darle un poquito más de alegría. Sin embargo, esta opción es extrañamente desconocida por los «expertos».

Sigue leyendo

Organización de la producción (II)

Seguimos con el armario…

El techo y la base del armario se sujetan a los costados mediante unos herrajes que necesitan, en los costados, de un taladro de 30mm de diámetro. Este herraje es la primera vez que se va a usar y ya están encargados.

Con los planos del armario ya hechos y los programas a medio crear, bajo a anotar qué herramienta me permite hacer ese taladro (vale, diréis algunos, una broca de 30; a mí eso me da, en principio, igual: yo necesito saber su número de herramienta y número de corrector). No hay, sólo de 25mm. Bueno, pues el taladro no podrá hacerse en la máquina de control numérico. Voy a preguntar quién va a hacer entonces el taladro.

La respuesta me deja frío: no hay broca de 30 en toda la fábrica, porque nunca ha hecho falta (los herrajes que siempre se han usado necesitaban una cazoleta de 25mm).

Respuesta del jefe: hazla de momento de 25mm.

Organización de la producción

Ayer: «Ponte mañana con la mesa y no lo dejes hasta que la tengas, que tengo un montón esperando». La «mesa» en cuestión es la tapa de una mesa extensible que hay que hacer en control numérico y para la cual hace falta una fresa de moldurar que nunca se ha empleado, por lo que hay que darla de alta en la máquina (aprende cómo, que no hay formación) y hacer una batería de pruebas.

Eso me ha ocupado media mañana. Cuando ya estoy listo para hacer las tapas y alas de la mesa:

Hoy: «¿Cómo llevas el armario?» «Para la semana que viene, cuando termine con la mesa.» «Imposible, tiene que estar ya, que tengo varios que entregar. Ponte con él y no lo dejes hasta que tengas todos los programas.»

El lunes me imagino que será de nuevo la mesa.

El armario también va lento porque no consigo que el responsable del mueble me dé los datos del mueble de una vez. Me dan las medidas. Luego, con suerte, consigo que me digan la posición de los rebajos, ranuras y algunos taladros. Cuando ya está el programa hecho vienen con que así no vale porque antes hay que chapar los cantos y llegan las piezas ya mecanizadas… En fin, el lunes, con suerte, conseguiré que me diga dónde van los taladros de los entrepaños, porque hoy he preguntado tres veces y los únicos que hay, de verdad de la buena, son los que unirán los costados a la base y el techo. Ya. Claro.

En fin, lo de siempre, hoy de informático, mañana de administrativo, pasado de ingeniero técnico industrial.

Otro “truco” para Vista erróneo: número de procesadores

Tras una temporada algo tranquila, vuelven los «trucos» para Windows Vista. Se lo han dejado colar en Win-Vista, aunque lleva bastante tiempo rulando por ahí, según veo. Nada más leer el susodicho «truco» hice lo normal: mirar en la Ayuda de Windows Vista a ver qué dice. Como también suele ser habitual en la ayuda de Windows, no encontré lo que buscaba (echo de menos el Centro de ayuda y soporte técnico de XP), así que terminé buscando en el sitio de Microsoft. 5 minutos para averiguar que el «truco» es erróneo, ya que la opción que se menciona en el mismo sirve, realmente, para reducir el número de procesadores que Windows empleará, para labores de depuración frente a posibles errores de aplicaciones, como puede leerse aquí, aquí y aquí, en la opción NumProc.

Por otra parte, también he leído hoy un buen artículo en Genbeta donde se comentan los famosos trucos sobre rendimiento de una forma bastante mejor y más completa que la mía. Entre tanta desinformación sobre Vista es bueno encontrar estos artículos. Es casi como encontrar petróleo.

Humo blanco

Esta mañana he tenido otro rato de trabajo de «mecánico informático», lo que, entre CNC y Visual Basic, viene bien. La historia ha incluido una nubecita de humo blanquecino y el entierro de un cadáver.

Nada fuera de lo habitual para quien trabaja todos los días destripando cacharros o tiene un parque de equipos grande, pero aquí ha sido toda una novedad: me llaman de centralita diciendo que el ordenador no saca imagen. Voy y, efectivamente, no hay señal. Lo apago, lo abro, lo cierro, me lo llevo a fábrica, le doy con el compresor para quitar mierda, vuelvo, enchufo y el ventilador de la gráfica, afectado por la crisis, en paro.

Me llevo el ordenador a mi equipo, para verlo mejor, vuelvo a encender y un hilillo de humito blanco que sale de la gráfica.

En fin, gráfica enterrada, gráfica puesta, viva la gráfica. Casi toda la mañana sin hacer nada más. Y, como suponía, estoy muy oxidado en el montaje de hardware. En fin…

El checkbox y yo

Me las traigo con algunos controles en Visual Basic. La última pelea ha sido con el chekbox. El motivo, controlar que no se pueda marcar o desmarcar la opción cuando estoy en modo «Ver datos». Con los demás controles (todos textboxes, maskedtextboxes, comboboxes y listboxes) lo había hecho controlando el evento Enter del GroupBox en el que se encuentran, de forma que, en modo «Ver datos», todos los intentos de acceder a un control dentro del GroupBox eran desviado a otro control, en este caso un listbox, podía haber sido un botón de navegación, etc. El problema surgió porque al marcar o desmarcar un checkbox no se pasa por el evento Enter, ni del chekbox ni del control que lo contiene. Lo mismo pasa con el numericupdown o el datetimepicker, pero con esos no he conseguido aún dar con la tecla (tampoco he tenido que usarlos de un tiempo a esta parte).

Sigue leyendo

Pesadillas con una cómoda

Otra semana más y otra semana que, creo, voy a hablar más de la máquina de Control Numérico que de informática. Estas cosas pasas cuando no tienes un profesional cualificado para el puesto y, al que pones, no le das formación.

La mesita, bien, gracias.

El problema lo ha dado la cómoda. Al igual que la mesita, al final las piezas entran a la medida exacta en la máquina CNC. Lo de «exactas» es un decir, pues siempre bailan entre medio y un milímetro a causa del canto chapado. La cómoda es bastante más grande que la mesita (Perogrullo dixit), llegando al metro de ancho la tapa media y la base. Por razones operativas (debido a que la tapa media llevaba taladros pasantes y a la colocación de las ventosas que sujetan la pieza), la tapa media la he tenido que poner con el lado largo según el eje Y de la máquina, que es el lado corto de la bancada. Esto me ha supuesto algún problema a la hora de hacer las «rutas de salida» de las herramientas, ya que me encontraba muy cerca de los límites del eje Y, y en un par de intentos me ha dado error de fuera de límites. En fin.

El problema, muy puñetero, ha sido el siguiente: una desviación de unos dos milímetros en el eje X por cada metro en el eje Y. Toma ya. Lío. La ranura es más profunda por un lado que por otro (tres y uno, respectivamente). El rebajo para la trasera es más profundo por un lado que por el otro. Previsiblemente, los taladros están descuadrados. La pieza no es válida.

Lo curioso es que esta desviación no se producía en los costados, que llevan el lado corto apoyado en Y y el lado largo según X, así que me imagino que debe de ser un problema de los pistones contra los que se apoya la pieza. Me explico: la bancada tiene en la esquina correspondiente al punto 0 una serie de pistones que hacen de tope para colocar la pieza. En el eje Y tiene dos, que son móviles y, dado cómo se produce el descuadre de la pieza, me imagino que es el segundo pistón, el más alejado, el que me está dando problemas.

En resumen: que la pieza sale descuadrada al no poder hacerla entera en la máquina. Consultando el manual (¡qué bien me vendría un puñetero curso, pero el jefe no se da por aludido!) resulta que puedo girar los ejes mediante una orden (ROT,ángulo). Calculando en AutoCAD y luego por el simple método de prueba y error, con una rotación antihoraria de 0,12º parece que cuadra.

El problema siguiente ha sido que Y0 no parece estar donde debería, en el borde de la pieza, sino un milímetro y pico más allá. Normalmente, cuando la pieza se cuadra en la máquina, trabajamos con unos ejes para la pieza por lo que esta desviación no se da. Mi duda ahora es si esa desviación se da en el centro absoluto del mandrino principal o también se va a dar en el centro absoluto de los taladros, disco y taladros horizontales (sí, cada uno tiene el suyo; lo averigüe el día que hice un agujero en la bancada con una broca horizontal que usaba el centro absoluto del mandrino principal).

Todo esto ocurre porque la cómoda y la mesita tienen unas ranuras y rebajos decorativos que obligan a que la pieza ya vaya chapada. Si hubieran decidido hacer una moldura (algo más lógico a mi ver, ya que estamos hablando de dormitorio tirando a clásico) toda la pieza se habría mecanizado en la máquina CNC y hace una semana y media que ya estarían hechos los dormitorios. Y yo podría dedicarme a dos programas en Visual Basic que estoy haciendo y que también corren su prisa.

Ains…

Y todavía queda la tapa, el xinfonier y el armario.

Viva la organización

Llevan unas tres semanas detrás mía para que haga los programas de Control Numérico de la nueva colección de dormitorios. Llevo una semana liado con los dichosos programas, concretamente con la mesita. Son cuatro piezas las que se van a hacer en la máquina CNC: los costados grandes, la base, la tapa y una tapa a media altura, que separa los cajones inferiores del cajón superior.

Después de hablar con el responsable de la serie, de tomar medidas de los prototipos en la sala de pintura y barnizado (con el consiguiente colocón), medidas que no se corresponden con las piezas de serie, sea dicho de paso, hacer las piezas en CAD y comprobar que encajan, hacer y deshacer los programas, de tener al jefe (y a sus hijos) encima porque cincuenta mesitas tenían que estar hechas para ayer, después de todo eso y cuando ya tengo los programas terminados, ocurre que:

  1. El zócalo de las mesitas no ha llegado (y con la huelga de transportes, ya veremos cuando llegan, que aunque el transporte sea propio, los piquetes no discriminan y masacran por igual). Sin todas las piezas, ya me contarán cómo hacemos las mesitas para ayer.

  2. Como no hay zócalo, ni siquiera una muestra, las dimensiones de la base y de los rebajos para encajar con los zócalos no son firmes y, por lo tanto, no se pueden hacer las bases.

  3. <>El resto de las piezas resulta que llevan los cantos chapados (son de DM, ya nadie fabrica en madera maciza, es DM o aglomerado chapado). Esto supone que los programas que he hecho no valen, ya que partían de la pieza en bruto, que es un poco más grande que la pieza terminada, con las caras superior e inferior ya chapadas. Perfilaba la pieza para dejarla en sus medidas exactas y luego taladraba, ranuraba, rebajaba y cualquier otra cosa que hiciera falta. Ahora se debe perfilar y chapar y luego hacer el resto. Esto supone que la pieza entra ahora en la máquina CNC con las medidas exactas, con lo que, si no está perfectamente alineada con los ejes de la máquina, tendremos pieza defectuosa. Lo gracioso es que si la tapa llevara una moldura, sería mucho más fácil de trabajar, ya que lo hace la propia máquina de CNC.

Para rematar, tengo que hacer «para mañana» una base de datos de clientes, las visitas que han hecho lo viajantes y representantes a esos clientes, así como los muebles nuestros que tienen en exposición. Por supuesto, con sus formularios de entrada de datos, un par de consultas, etc.

Y eso, el lunes

TableAdapterManager

Entre unas cosas y otras tengo ambos blogs casi abandonados: ando muy liado en el curro (inventario, programas de CNC y una aplicación para fábrica), voy a comprarme un coche y los últimos fines de semana (cuando más escribo) no los he pasado en casa. Tengo una entrada casi terminada sobre un par de cositas sobre Visual Basic 2008 y mi aplicación Colección Anime, pero antes he tenido que solucionar un problema que me ha llevado cuatro horas entender y 10 minutos corregir. Lo posteo por si a alguien le pasa y pudiera encontrarlo útil.

Visual Basic 2008 trae un nuevo componente de acceso a datos llamado TableAdapterManager. En teoría debe simplificarnos el actualizar una base de datos partiendo de un dataset tipado con varias tablas relacionadas. El TableAdapterManager tiene un método, UpdateAll, que guarda los datos de todas las tablas del dataset (filas añadidas, modificadas y eliminadas) en el orden correcto, respetando las relaciones. En teoría debería simplificarnos las operaciones de guardado de datos en estos casos. En la práctica no es tan simple y me he encontrado con una serie de problemas. La documentación es bastante escasa, así que me ha tocado descifrar el código y ver qué hace realmente el dichoso componente.

Sigue leyendo