PrefSuite - Fórmulas en Puntos 2006.3/WhitePapers... · 3.1.2. Edición de fórmulas polares Para...

18
Fórmulas en Puntos WhitePaper Noviembre de 2006

Transcript of PrefSuite - Fórmulas en Puntos 2006.3/WhitePapers... · 3.1.2. Edición de fórmulas polares Para...

Page 1: PrefSuite - Fórmulas en Puntos 2006.3/WhitePapers... · 3.1.2. Edición de fórmulas polares Para editar la fórmula polar del punto seleccionado disponemos de la siguiente ventana

Fórmulas en Puntos WhitePaper Noviembre de 2006

Page 2: PrefSuite - Fórmulas en Puntos 2006.3/WhitePapers... · 3.1.2. Edición de fórmulas polares Para editar la fórmula polar del punto seleccionado disponemos de la siguiente ventana

Fórmulas en Puntos | WhitePaper | 2

Contenidos 1. Propósito _____________________________________________ 3

2. Introducción ___________________________________________ 4

2.1. Fórmulas cartesianas y polares______________________________________ 4

2.1.1. Sistema de coordenadas cartesianas __________________________________________ 4

2.1.2. Sistema de coordenadas polares ____________________________________________ 5

3. Editor de Fórmulas________________________________________ 7

3.1. Edición de fórmulas en los puntos ____________________________________ 8

3.1.1. Edición de fórmulas cartesianas _____________________________________________ 9

3.1.2. Edición de fórmulas polares ______________________________________________ 10

4. Variables de usuario _______________________________________ 11

4.1. Ventana de propiedades _________________________________________ 11

4.2. Eventos VBA_________________________________________________ 12

4.3. Escandallos _________________________________________________ 12

4.4. Restricciones ________________________________________________ 13

4.4.1. Sintaxis __________________________________________________________ 13

5. Ejemplos _____________________________________________ 15

5.1. Dar forma al contorno con fórmulas___________________________________ 15

5.2. Posicionar delimitadores con fórmulas _________________________________ 16

Page 3: PrefSuite - Fórmulas en Puntos 2006.3/WhitePapers... · 3.1.2. Edición de fórmulas polares Para editar la fórmula polar del punto seleccionado disponemos de la siguiente ventana

Fórmulas en Puntos | WhitePaper | 3

1. Propósito La acotación automática es insuficiente en muchos casos, sobre todo en modelos con formas o delimitadores no verticales ni horizontales.

Para ello, podemos utilizar la Edición de Formulas en Puntos. De esta forma, todos los puntos de nuestro modelo se comportarían exactamente en base a una fórmula matemática proporcionada por nosotros mismos.

El propósito de este documento es mostrar como podemos asociar fórmulas a nuestro modelo.

Va dirigido a aquellos usuarios que tengan que diseñar modelos con formas en los que la acotación automática y en ocasiones, incluso manual, no funciona.

Se desean conocimientos matemáticos básicos previos sobre sistemas de coordenadas cartesianos y polares, a parte de conocimientos de edición de modelos en PrefCad.

Page 4: PrefSuite - Fórmulas en Puntos 2006.3/WhitePapers... · 3.1.2. Edición de fórmulas polares Para editar la fórmula polar del punto seleccionado disponemos de la siguiente ventana

Fórmulas en Puntos | WhitePaper | 4

2. Introducción La acotación automática es limitada, no funciona con todas las formas de modelos. La acotación automática en PrefCad está garantizada en los modelos básicos que ofrece la galería de objetos.

En ocasiones, tampoco funciona la acotación manual con algunas formas de modelos. En estos casos, para redimensionar el modelo hay que utilizar las Fórmulas en los Puntos.

De esta forma, asociamos una fórmula matemática a cada punto del modelo, de manera que al regenerarse el mismo, el primer proceso consistirá en calcular el valor de cada punto dependiendo de su formula para reposicionar así el contorno y los delimitadores.

Cada punto del modelo tiene un nombre asociado de forma automática y secuencial. En el modo de Edición de puntos el nombre es visible para poder hacer referencia a ellos desde otros puntos.

Cada punto define 2 variables, una para su componente x y otra para su componente y. De esta forma, si tenemos el punto P3 tenemos dos variables asociadas al mismo: P3x y P3y. Estas dos variables pueden ser utilizadas desde la formula de cualquier otro punto.

Las formulas pueden ser utilizadas también para definir restricciones sobre los valores que pueden tomar las cotas del modelo, a partir de las variables de usuario.

2.1. Fórmulas cartesianas y polares PrefCad permite que un punto esté definido en cualquiera de estos sistemas de coordenadas: el sistema de coordenadas cartesiano y el sistema de coordenadas polar.

Vamos a explicar brevemente cada uno de estos sistemas de coordenadas.

2.1.1. Sistema de coordenadas cartesianas Las coordenadas cartesianas son un sistema de coordenadas formado por dos ejes en el plano, mutuamente perpendiculares que se cortan en el origen. En el plano, las coordenadas cartesianas o rectangulares x e y se denominan respectivamente abscisa y ordenada.

De este modo cada punto del plano se localiza mediante dos números, uno correspondiente a cada eje, dicho par de números se llaman coordenadas del punto.

Page 5: PrefSuite - Fórmulas en Puntos 2006.3/WhitePapers... · 3.1.2. Edición de fórmulas polares Para editar la fórmula polar del punto seleccionado disponemos de la siguiente ventana

Fórmulas en Puntos | WhitePaper | 5

Figura 1. Coordenadas cartesianas en el plano del punto P

2.1.2. Sistema de coordenadas polares El sistema de coordenadas polares es un sistema de coordenadas que define la posición de un punto en función de los ángulos directores y de la distancia al origen de referencia.

Este sistema se emplea en los casos en los que el conocimiento de los ángulos directores sea más práctico que las coordenadas cartesianas, cuando la figura o curva, a definir, esté definida más claramente por los ángulos sobre los ejes y la distancia al centro de coordenadas

Figura 2. Coordenadas polares en el plano

En el plano de ejes xy de la figura, y centro de coordenadas O, podemos definir un sistema de coordenadas polares de un punto M del plano, definidas por la distancia r al centro de coordenadas, y el ángulo θ del vector de posición sobre el eje x.

Conversión de coordenadas rectangulares a polares Dado un punto del plano por sus coordenadas rectangulares (x, y), tenemos que sus coordenadas polares son:

tan Θ = y / x

r = √x2+y2

Page 6: PrefSuite - Fórmulas en Puntos 2006.3/WhitePapers... · 3.1.2. Edición de fórmulas polares Para editar la fórmula polar del punto seleccionado disponemos de la siguiente ventana

Fórmulas en Puntos | WhitePaper | 6

Conversión de coordenadas polares a rectangulares Dado un punto en coordenadas polares por su ángulo sobre el eje x θ, y su distancia r al centro de coordenadas, tenemos que sus coordenadas cartesianas (x, y) son:

x = r cos Θ

y = r sin Θ

Page 7: PrefSuite - Fórmulas en Puntos 2006.3/WhitePapers... · 3.1.2. Edición de fórmulas polares Para editar la fórmula polar del punto seleccionado disponemos de la siguiente ventana

Fórmulas en Puntos | WhitePaper | 7

3. Editor de Fórmulas Se puede iniciar el modo de Edición de Puntos a través del menú ‘Modelo’ seleccionado la opción ‘Edición de Fórmulas’

Figura 3. Acceso al modo de edición de fórmulas

Una vez realizada esta acción, el aspecto del modelo sufrirá una leve modificación, apareciendo una especie de botón sobre cada uno de sus puntos, con el nombre en la parte superior.

Los puntos del modelo están dibujados con un botón en color naranja (puntos del contorno), rojo (centros de arcos) o azul (delimitadores), dependiendo del tipo de punto.

Figura 4. Imagen de un modelo en modo de Edición de fórmulas

Como se puede observar en la imagen, los puntos del contorno están dibujados fuera del mismo y los delimitadores en el interior del modelo, para prevenir que varios puntos estén en el mismo lugar y no se pueda seleccionar alguno de ellos.

Aún así, esta situación podría darse: para seleccionar el punto deseado, seleccionar previamente la línea a la que pertenece.

Page 8: PrefSuite - Fórmulas en Puntos 2006.3/WhitePapers... · 3.1.2. Edición de fórmulas polares Para editar la fórmula polar del punto seleccionado disponemos de la siguiente ventana

Fórmulas en Puntos | WhitePaper | 8

Si nos acercamos con el ratón a cada uno de estos puntos, una etiqueta de ayuda nos muestra el nombre del punto sobre el que nos hemos posicionado.

Otra ayuda que ofrece el sistema para hacer referencia a los puntos es en el momento en el que estamos escribiendo una formula, para añadir el nombre de un punto en la fórmula podemos pulsar doble clic con el botón derecho del ratón sobre el punto al que queremos hacer referencia.

Figura 5. Tooltip con el nombre del punto

3.1. Edición de fórmulas en los puntos Al seleccionar un punto podemos editarlo en la ventana de edición de fórmulas que aparece en la parte inferior de PrefCad.

Por defecto, para cada punto se crea una fórmula cartesiana, aunque PrefCad también permite definir fórmulas polares.

Si tenemos un punto con una fórmula cartesiana y queremos asociarle una fórmula polar (o viceversa), seleccionaremos el punto y pulsaremos el botón derecho del ratón sobre él. Aparecerá un menú que nos permitirá cambiar el tipo de fórmula asociada al punto.

Figura 6. Cambiar el tipo de fórmula de cartesiana a polar o viceversa

A continuación explicaremos como utilizar las ventanas de edición del punto en sus dos formas: cartesiana y polar.

Page 9: PrefSuite - Fórmulas en Puntos 2006.3/WhitePapers... · 3.1.2. Edición de fórmulas polares Para editar la fórmula polar del punto seleccionado disponemos de la siguiente ventana

Fórmulas en Puntos | WhitePaper | 9

3.1.1. Edición de fórmulas cartesianas Para editar la fórmula cartesiana del punto seleccionado disponemos de la siguiente ventana en PrefCad:

Figura 7. Ventana de edición de fórmulas cartesianas

En la parte superior izquierda del diálogo (redondeado en rojo) aparece información del punto que estamos editando (el punto seleccionado en ese momento).

En los campos señalados como Fórmula tenemos que escribir la fórmula de cada una de las componentes del punto (x, y).

Para escribir una fórmula disponemos de:

• Funciones matemáticas: Disponemos de las funciones matemáticas habituales (suma, resta, multiplicación, división, seno, coseno, tangente, …). Para ayudar con la sintaxis, el programa tiene las funciones asociadas a botones que aparecen en la parte derecha del diálogo.

• Variables del modelo: Como variables en el modelo tenemos todas las definidas por el usuario en la ventana de propiedades (ver punto 4) y dos variables para cada punto, una para su componente x y otra para su componente y. De esta forma, si tenemos el punto Pn tenemos dos variables asociadas al mismo: Pnx y Pny.

• Variables locales a esa fórmula: En ocasiones, la fórmula de un punto será demasiado larga para definirla de forma cómoda en el campo asociado. También puede ocurrir que parte de la fórmula se repita en la misma, o en la fórmula de los dos componentes.

Para cualquiera de estos casos disponemos de las variables locales a esa fórmula. Puede definir tantas variables locales como quiera, pero sólo podrá hacer referencia a ellas dentro de esta ventana. Para insertar una nueva variable pulse la tecla ‘insert’ en la grid.

Para hacer referencia a ellas tendrá que escribir el nombre entre corchetes [‘NombreVariable’].

Supongamos que queremos asociar las siguientes fórmulas al punto P2:

P2x = P0x + (P1x - P0x) / 2

P2y = P0y + (P1x – P0x) /2

Como podemos ver, parte de la fórmula de ambas componentes se repite, por lo que podríamos definir las fórmulas de la siguiente forma:

Page 10: PrefSuite - Fórmulas en Puntos 2006.3/WhitePapers... · 3.1.2. Edición de fórmulas polares Para editar la fórmula polar del punto seleccionado disponemos de la siguiente ventana

Fórmulas en Puntos | WhitePaper | 10

Figura 8. Uso de las variables locales a un punto

3.1.2. Edición de fórmulas polares Para editar la fórmula polar del punto seleccionado disponemos de la siguiente ventana en PrefCad:

Figura 9. Ventana de edición de fórmulas polares

Salvo los campos para editar la fórmula, el resto de elementos de la ventana es igual a la ventana de edición de fórmulas cartesianas.

Los campos para editar la fórmula son los siguientes:

• Origen: Fórmulas para definir el punto cartesiano que define el origen del sistema polar.

• Distancia: Fórmula para establecer la distancia al origen en el ángulo del sistema. En el caso de un delimitador, hay ocasiones en que esta distancia no es necesaria, pues el delimitador va a ajustar su tamaño al tamaño del contorno. En este caso, pondremos un valor entero (100, por ejemplo), y el delimitador ajustará su tamaño al del contorno.

• Angulo: Formula para calcular el ángulo director del punto respecto al origen. El valor de la fórmula del ángulo tiene que dar como resultado un valor en radianes.

Page 11: PrefSuite - Fórmulas en Puntos 2006.3/WhitePapers... · 3.1.2. Edición de fórmulas polares Para editar la fórmula polar del punto seleccionado disponemos de la siguiente ventana

Fórmulas en Puntos | WhitePaper | 11

4. Variables de usuario El modelo puede contener una serie de variables definidas por el usuario. Cada variable tendrá un nombre de variable y un valor asociado. También puede tener definida una restricción.

Estas variables pueden ser utilizadas en las fórmulas de los puntos del modelo, para establecer la forma del mismo.

Una cota puede estar asociada a una variable, de forma que, si esa cota cambia su valor implica que cambia el valor de esa variable en lugar de tener el comportamiento usual.

4.1. Ventana de propiedades Para dar de alta o modificar el valor de una variable, el usuario tendrá que ir a la solapa ‘Variables’ de la página ‘Globales’ de la ventana de propiedades:

Figura 10. Variables

En esa grid el usuario puede añadir una nueva variable (pulsando la tecla ‘insert’ para añadir una nueva línea) o modificar el valor de las variables ya existentes, o cambiar la restricción de alguna de las variables.

Estas variables pueden ser asociadas a una cota o subcota, de forma que, si la cota cambia de valor, implica que la cota cambiará el valor de la variable y dejará de tener su comportamiento habitual que es mover los puntos.

Para asociar una cota a una variable, existe una nueva columna en la grid de cotas de la solapa ‘Cotas’ de la página ‘Globales’ de la ventana de propiedades. Esa columna es una lista con todas las variables disponibles en el modelo.

Page 12: PrefSuite - Fórmulas en Puntos 2006.3/WhitePapers... · 3.1.2. Edición de fórmulas polares Para editar la fórmula polar del punto seleccionado disponemos de la siguiente ventana

Fórmulas en Puntos | WhitePaper | 12

Figura 11. Asociar una variable a una cota

Si las fórmulas en los puntos de un modelo impiden que esa cota pueda ser modificada y la cota no está asociada a ninguna variable, la celda que contiene el valor de esa cota aparece como deshabilitada para que el usuario no pueda modificar su valor (ver Figura 11).

4.2. Eventos VBA Cuando el usuario cambia el valor de una variable se disparan 2 eventos VBA:

• OnBeforeVariableChange(ByVal model As IDualModelo, ByVal VariableName As String, ByVal NewValue As Double, Apply As Boolean)

• OnAfterVariableChange(ByVal model As IDualModelo, ByVal VariableName As String, ByVal NewValue As Double)

Para que el usuario pueda realizar las acciones oportunas cuando una variable cambia su valor, como comprobar que el valor introducido cumple un determinado intervalo, por ejemplo.

4.3. Escandallos Podemos establecer el valor de una variable de usuario en un escandallo si está asociado por vínculo constructivo con la instrucción de asignación de valor a variables:

SEA Nombre_Variable = [Expresión];

Por ejemplo:

SEA MiVariable = [150];

Esta instrucción en el escandallo también disparará los eventos VBA comentados en el punto anterior.

Page 13: PrefSuite - Fórmulas en Puntos 2006.3/WhitePapers... · 3.1.2. Edición de fórmulas polares Para editar la fórmula polar del punto seleccionado disponemos de la siguiente ventana

Fórmulas en Puntos | WhitePaper | 13

4.4. Restricciones Una restricción es una expresión booleana para definir los posibles valores de una variable.

Si definimos una restricción en una variable e introducimos posteriormente un valor no permitido, el valor no será aplicado.

Figura 12. Asociar una restricción a una variable

Si definimos una restricción y el valor actual no es permitido, el valor no cambiará pero la restricción se mostrará en rojo para avisarnos de esta situación.

De la misma manera, si la restricción tiene una sintaxis no permitida se mostrará en rojo.

Figura 13. Restricción con valor actual no permitido o sintaxis incorrecta

Estas restricciones no pueden ser modificadas por el usuario final en PrefGest.

4.4.1. Sintaxis Los siguientes operadores lógicos son validos en las expresiones:

= Igual

#, <> Distinto

< Menos

> Mayor

<= Menor o igual

Page 14: PrefSuite - Fórmulas en Puntos 2006.3/WhitePapers... · 3.1.2. Edición de fórmulas polares Para editar la fórmula polar del punto seleccionado disponemos de la siguiente ventana

Fórmulas en Puntos | WhitePaper | 14

>= Mayor o igual

AND Y

OR O

Por ejemplo, si deseamos comprobar que el valor de la variable H1 está en el rango [200, 500] y su valor sea distinto a la variable H2, la restricción correcta sería la siguiente:

(H1 <= 200) AND (H1 >= 500) AND (H1 # H2)

Page 15: PrefSuite - Fórmulas en Puntos 2006.3/WhitePapers... · 3.1.2. Edición de fórmulas polares Para editar la fórmula polar del punto seleccionado disponemos de la siguiente ventana

Fórmulas en Puntos | WhitePaper | 15

5. Ejemplos

5.1. Dar forma al contorno con fórmulas Dado el siguiente modelo:

Figura 14. Modelo Ejemplo

Queremos que su contorno cumpla las siguientes proporciones:

• Solo debe haber dos dimensiones de entrada que se corresponderán con la altura del arco y con la distancia en y del modelo hasta el arco (A1 en el modelo).

• La distancia entre el lado izquierdo hasta el comienzo del arco coincidirá con la altura del mismo.

• La distancia entre el lado derecho hasta el fin del arco coincidirá con la altura del mismo.

Los pasos a seguir para conseguir la forma del modelo son los siguientes:

1. Crearemos una variable D para asociar con la altura del arco y los lados rectos que hay a derecha e izquierda del mismo. Como valor inicial la estableceremos con valor igual a 200.

2. Insertaremos las fórmulas de los puntos como siguen:

a. Centro del arco, P4x = P5x + (P3x - P5x) / 2

b. P4y = P3y

c. P1y = P0y

d. P2x = P1x

Page 16: PrefSuite - Fórmulas en Puntos 2006.3/WhitePapers... · 3.1.2. Edición de fórmulas polares Para editar la fórmula polar del punto seleccionado disponemos de la siguiente ventana

Fórmulas en Puntos | WhitePaper | 16

e. P3x = P2x - D

f. P5x = P3x - (D*2)

g. P6x = P5x – D

h. P0x = P6x

3. Asociaremos la cota ‘A2’ a la variable ‘D’. Podremos ver que la cota ‘L’ se hace no modificable dado que su valor está calculado en función de la variable ‘D’ y no puede cambiar de forma independiente.

5.2. Posicionar delimitadores con fórmulas Dado el siguiente modelo:

Figura 15. Modelo Ejemplo

Queremos que los delimitadores cumplan las siguientes proporciones:

• El delimitador vertical tiene que estar posicionado en el centro del contorno

• El delimitador en V siempre tendrá un ángulo entre 45 y 180 grados introducido por el usuario

Los pasos a seguir para conseguir la forma del modelo son los siguientes:

1. Crearemos una variable Alpha para poder asociar el ángulo de apertura del delimitador en V. Como valor inicial le asociaremos 90 grados.

2. Crearemos una restricción para que el ángulo esté en el rango [45-180] :

Page 17: PrefSuite - Fórmulas en Puntos 2006.3/WhitePapers... · 3.1.2. Edición de fórmulas polares Para editar la fórmula polar del punto seleccionado disponemos de la siguiente ventana

Fórmulas en Puntos | WhitePaper | 17

3. Asociaremos las fórmulas del delimitador vertical:

a. P7x = P0x + (P1x - P0x) / 2

b. P8x = P7x

4. Asociaremos la fórmula central del delimitador en V:

a. P5x = P8x

b. P5y = P8y

5. Asociaremos las fórmulas de los lados de la V como fórmulas polares ya que en este caso queremos posicionar los puntos a razón de un ángulo introducido por el usuario.

En ambos puntos el origen del sistema polar será el punto P5 y la distancia no será relevante porque son delimitadores y siempre ajustan su tamaño al tamaño del hueco padre, por lo que insertaremos un valor arbitrario de 100.

En el punto P6 el ángulo se corresponderá con PI/2 – Alpha/2

En el caso del punto P4 el ángulo se corresponderá con PI/2 + Alpha / 2

De esta forma las fórmulas de los puntos P6 y P4 quedarían como siguen:

Page 18: PrefSuite - Fórmulas en Puntos 2006.3/WhitePapers... · 3.1.2. Edición de fórmulas polares Para editar la fórmula polar del punto seleccionado disponemos de la siguiente ventana

Fórmulas en Puntos | WhitePaper | 18

6. Podemos asociar la variable Alpha a una cota angular para poder cambiar el valor del ángulo desde la ventana de cotas del modelo:

7. De esta forma si cambiamos las cotas del modelo este se reposiciona correctamente: