Ahora he entendido cuando decías que en vuestro comando, se va a pedir la escala y el formato del papel(DINA0, DINA1,...).
Yo pensaba que seleccionando un rectángulo dibujado en el espacio modelo era suficiente para determinar el tamaño de papel y la escala, pero no es así porque ofrece 2 soluciones, ejemplo:
Si tengo dibujado un rectángulo cuyo lado mayor mide 297mm, o bien puede ser un DIN-A4 a escala 1:1000, o bien un DIN-A2, a escala 1:500
Un DIN-A0, no sería puesto que su lado mayor, a escala 1:500 es 420mm.
Así pues, al haber 2 soluciones, es indeterminado y hay que pedir escala y formato papel al usuario.
No obstante, en mi rutina, voy a poner un botón llamado "Consulta Escala ò Formato", luego pedirá si se quiere consultar o bien la escala, o bien el Formato.
Si se selecciona, <strong>consultar escala</strong>, pide el formato de papel (A0,A1,....A4) con lo que supuestamente está dibujado un rectángulo en el espacio modelo que representaría los bordes del papel.
Luego pide seleccionar un rectángulo del dibujo (el programa aquí calcularía la longitud de los 2 lados y se quedaría con la del lado mayor)
O bien, que el usuario pique 2 puntos en pantalla, siempre que esos 2 puntos determinen el lado mayor.
En el programa, tendría un doubleCollection, con el valor en mm del lado mayor de cada formato ,es decir:
[1189,841,594,420,297] que iría desde el DIN-A0 hasta el DIN-A4.
Si se ha indicado, por ejemplo, el formato DIN-A3, y el lado mayor del rectángulo midiera 840,entonces, tenemos que :
Escala=(840/420)=1000=2000 --->E:1:2000
que sería:
Escala= (medición / tamaño en escala 1:1000)*2000
Si se le dijo de consultar <strong>Formato</strong>, se le pide al usuario la escala con la que supuestamente se ha hecho el rectángulo que representa los bordes de papel.
Si se le dice escala : 2000 (que sería 1:2000), se le pide al usuario seleccionar el rectángulo, aquí el programa también calcula el lado mayor del rectángulo.
Pongamos de ejemplo, que mide el lado mayor 594.
En el programa, tendría un doubleCollection, con el valor en mm del lado mayor de cada formato ,es decir:
[1189,841,594,420,297] que iría desde el DIN-A0 hasta el DIN-A4.
Al ser escala 2000, será el doble, es decir, multiplicamos x 2 el doubleCollection = [ 2378,1682,1188,840,594).
Luego busca dicho valor (del lado mayor medido en el dibujo) en la lista y su índice, sería el formato.
índice 4=formato A4
Esto resulta práctico porque a veces te dibujan en el espacio modelo, el borde del papel y uno tiene que ir haciendo estos cálculos porque o no sabe la escala o no sabe exactamente el tamaño de papel(pero sí sabe la escala).