Buscar en este blog

lunes, 14 de mayo de 2012

Dibujo paramétrico (XVII)


2012 (2010+)
A lo largo de los últimos artículos de esta serie dedicada al dibujo paramétrico, en los que nos hemos centrado en el estudio de las Restricciones por cota, hemos hablado ya en varias ocasiones sobre la propiedad expresión con que cuentan este tipo de Parámetros.

La expresión es la propiedad definitoria de los Parámetros, su evaluación produce un valor dimensional (longitudinal o angular) que precisa la magnitud medida por el Parámetro y por ende la geometría que éste controla o restringe.

Según que la expresión de los Parámetros sea una constante o una fórmula, podemos hablar, respectivamente, de Parámetros constantes o de Parámetros calculados.

Sólo los Parámetros de restricción por cota y los Parámetros de usuario pueden ser calculados, ya que la expresión de los Parámetros de referencia es siempre una constante que coincide con el valor medido por la cota del Parámetro, y por lo tanto son siempre Parámetros constantes.

Los Parámetros constantes han sido ya ampliamente estudiados a lo largo de artículos precedentes. En esta ocasión vamos a centrarnos en los Parámetros calculados y en la sintaxis del lenguaje empleado en las fórmulas de cálculo utilizadas en sus expresiones.


Parámetros calculados

Los Parámetros calculados son aquellos en los que la Expresión contiene una fórmula o ecuación matemática cuya evaluación produce un Valor real, en el caso de los Parámetros de usuario, o un Valor que se corresponde con la longitud o el ángulo que restringen, en el caso de los Parámetros de restricción por cota.

La sintaxis del lenguaje utilizado por las fórmulas de los Parámetros, que es muy similar al empleado por las hojas de cálculo para definir celdas calculadas, consta de los siguientes elementos:
  • Constantes. Pueden ser explícitas, un número real o entero introducido en la fórmula directamente o constantes universales referenciadas por su nombre. AutoCAD dispone de las constantes e (2.71828183) y PI (3.141592653)
  • Variables. Hacen referencia a otros Parámetros por medio de su nombre, con la excepción de los Parámetros de referencia que no pueden ser referidos por otros parámetros. En el momento de su evaluación serán sustituidas internamente por su Valor.
  • Operadores. Permiten realizar operaciones comunes entre variables y/o constantes. Los operadores disponibles por orden de precedencia son:
    • Paréntesis [( )]. Modifican el orden de precedencia normal de los operadores mediante la agrupación de operaciones. Cuando una fórmula contiene pares de paréntesis, primero se evaluarán las expresiones contenidas en ellos, y en caso de estar anidados se comenzará por las expresiones de los paréntesis con mayor nivel de anidación (de dentro hacia fuera). Una vez evaluados todos los paréntesis de la fórmula, se continúa su evaluación en el siguiente nivel de precedencia.
      2*(2+3*(1+4)) ⇒ 2*(2+3*5) ⇒ 2*17 ⇒ 34
    • Negación unaria []. Cambia el signo de la constante o de la variable que le sigue.
      B*(-A) ⇒ -6 (siendo A=2 y B=3)
    • Exponenciación [^]. Es la operación que consiste en elevar una Base a un Exponente. En el caso de que ambos números sean enteros se denomina Potenciación. Su sintaxis es Base^Exponente.
      2.1^1.6 ⇒ 3.2776
    • Multiplicación [*], División [/] y Resto [%]. Operaciones para multiplicar dos números reales, dividir dos números reales, y obtener el resto (entero) de la división entre dos números enteros, respectivamente.
      11 % 4 ⇒ 3 (ya que 4*2+3=11)
    • Suma [+] y Resta []. Utilizadas para sumar o restar dos números reales respectivamente.
    Los operadores con el mismo nivel de precedencia son evaluados de izquierda a derecha en la fómula.
  • Funciones matemáticas. AutoCAD cuenta con una serie de funciones matemáticas comunes cuya sintaxis incluye el nombre de la función seguido por los argumentos entre paréntesis separados por el signo de puntuación ‘;‘ (punto y coma):
    Nombre (argumento1; argumento2…)
    Evidentemente, cada argumento de la función matemática puede ser, a su vez, una Constante, una Variable (referencia a otro Parámetro) o incluso otra Fórmula.

Las expresiones de los Parámetros no distinguen entre mayúsculas y minúsculas, lo que quiere decir que se pueden utilizar unas u otras indistintamente tanto para las Funciones matemáticas como para los nombres de Constantes y Variables (Parámetros).

Cuando la fórmula introducida en la expresión de un Parámetro de restricción por cota contiene exclusivamente Constantes, Operadores y/o Funciones matemáticas, es decir, no depende de otros Parámetros, su evaluación es constante y por lo tanto AutoCAD lo considera a todos los efectos como un Parámetro constante. Esto significa que podrá ser editado con pinzamientos de forma dinámica, como cualquier otro Parámetro constante, en cuyo caso la fórmula será inmediata e irreversiblemente sustituida por el valor real medido por la cota del Parámetro.

A continuación se describen brevemente las funciones matemáticas, agrupadas por tipos, de que dispone AutoCAD para las fórmulas de los Parámetros.

Funciones trigonométricas y angulares:
  • Coseno: cos(expresión). Calcula el coseno del ángulo.
    cos (45) ⇒ 0.70710678
  • Seno: sin(expresión) . Calcula el seno del ángulo.
    sin (30) ⇒ 0.50
  • Tangente: tan(expresión) . Calcula la tangente del ángulo.
    tan (45) ⇒ 1.0
  • Arco coseno: acos(expresión). Calcula el ángulo correspondiente al coseno pasado como argumento (expresión).
    acos (0.70710678) ⇒ 45
  • Arco seno: asin(expresión). Calcula el ángulo correspondiente al seno.
    asin (0.5) ⇒ 30
  • Arco tangente: atan(expresión) . Calcula el ángulo correspondiente a la tangente.
    atan (1.0) ⇒ 45
  • Coseno hiperbólico: cosh(expresión). Calcula el coseno hiperbólico del número real pasado como argumento (expresión). El resultado es siempre mayor o igual que 1 (uno).
    cosh (0.5) ⇒ 1.12762597
  • Seno hiperbólico: sinh(expresión). Calcula el seno hiperbólico del número real.
    sinh (1.0) ⇒ 1.17520119
  • Tangente hiperbólica: tanh(expresión). Calcula la tangente hiperbólica del número real. Devuelve un número real comprendido entre -1 y +1 ambos excluidos.
    tanh (1.5) ⇒ 0.90514825
  • Arco coseno hiperbólico: acosh(expresión). Es la función inversa del coseno hiperbólico. El argumento debe ser un número real mayor o igual que 1 (uno).
    acosh (1.0) ⇒ 0.0
    acosh (1.13) ⇒ 0.5045336
  • Arco seno hiperbólico: asinh(expresión). Es la función inversa del seno hiperbólico.
    asinh (1.0) ⇒ 0.88137359
    asinh (-1.0) ⇒ -0.88137359
  • Arco tangente hiperbólico: atanh(expresión). Es la función inversa de la tangente hiperbólica. El argumento debe ser un número real comprendido entre -1 y +1 ambos excluidos.
    atanh (0.50) ⇒ 0.54930614
  • Grados a radianes: d2r(expresión). Convierte grados (sexagesimales) en radianes. Es equivalente a multiplicar por PI (3.141592653) y dividir por 180.
    d2r (A) ⇒ -1.57079633 (siendo A = -90)
    d2r (60) ⇒ 1.04719755
  • Radianes a grados: r2d(expresión) Convierte radianes en grados (sexagesimales). Es equivalente a multiplicar por 180 y dividir por PI (3.141592653).
    R2d (PI) ⇒ 180
    r2d (pi/2) ⇒ 90

Funciones generales:
  • Raíz cuadrada: sqrt(expresión). Extrae la raíz cuadrada del número real.
    sqrt (2) ⇒ 1.414213
  • Función signo: sign(expresión). Devuelve -1, 0 ó 1 según que el número pasado como argumento sea menor, igual o mayor que cero respectivamente.
    sign (A) ⇒ -1 (siendo A = -90)
    sign (B) ⇒ 1 (siendo B = 6.5)
    sign (C) ⇒ 0 (siendo A = 0.0)
  • Valor absoluto: abs(expresión). Devuelve el valor absoluto del argumento.
    abs (A) ⇒ 90 (siendo A = -90)
    abs (B) ⇒ 6.5 (siendo B = 6.5)
  • Mayor elemento de matriz: max(expresión1;expresión2). Devuelve el mayor de los dos números pasados como argumentos.
    max (110; 90) ⇒ 110
  • Menor elemento de matriz: min(expresión1;expresión2). Devuelve el menor de los dos números pasados como argumentos.
    min (110; 90) ⇒ 90
  • Decimal aleatorio: Random(). Devuelve un número real aleatorio comprendido entre cero y uno. Es la única función sin argumentos, por lo que también se pueden omitir los paréntesis.
    Random () ⇒ 0.12154648
    random ⇒ 0.84573213

Funciones de exponenciación:
  • Logaritmo, base e: ln(expresión). Calcula el logaritmo en base e o Logaritmo Natural del número real positivo pasado como argumento.
    ln (15.5) ⇒ 2.74084002  [e^2.74084002=15.5]
  • Logaritmo, base 10: log(expresión) . Calcula el logaritmo en base 10 o Logaritmo Decimal del número real positivo pasado como argumento.
    log (1) ⇒ 0
    log (0.01) ⇒ -2
  • Nota: El logaritmo de un número, en una base determinada, es el exponente al que hay que elevar la base para obtener dicho número. Sólo está definido para números mayores que 0 (cero). Por ejemplo el logaritmo de 1000 en base 10 es 3 porque 10 elevado a 3 es igual a 1000. [log(1000)=3 ⇔ 10^3=1000]. Para calcular el logaritmo de un número N en una base B cualquiera, utilice una de las siguientes fórmulas: \[\large Lo{g_B}N = \frac{{\ln N}}{{\ln B}} = \frac{{\log N}}{{\log B}}\] Por ejemplo, el logaritmo de 512 en base 2 será:
    log (512) / log (2) ⇒ 9
    ln (512) / ln (2) ⇒ 9
  • Función potencial: pow(expresión1;expresión2). Es equivalente al operador ‘^’, ya que calcula la potencia de expresión1 (base) elevado a expresión2 (exponente).
    pow(2.1; 1.6) ⇒ 3.2776
  • Exponente, base e: exp(expresión). También denominada Función exponencial es la función inversa del Logaritmo natural y calcula e elevado al exponente pasado como argumento.
    exp(1) ⇒ 2.71828183 = e
  • Exponente, base 10: exp10(expresión). Es la función inversa del Logaritmo decimal y calcula 10 elevado al exponente pasado como argumento.
    exp10(2) ⇒ 100

Funciones de redondeo:
  • Redondear a entero más cercano: round(expresión). Redondea un número real al entero más cercano, de forma que:
    • Si el número es positivo y su parte fraccionaria es menor que 0,50 o el número es negativo y su parte fraccionaria en valor absoluto es mayor que 0,50, se redondeará al entero más cercano menor que el número dado.
      round(7.4) ⇒ 7
      round(-7.51) ⇒ -8
    • Si el número es positivo y su parte fraccionaria es mayor o igual que 0,50 o el número es negativo y su parte fraccionaria en valor absoluto es menor o igual que 0,50, se redondeará al entero más cercano mayor que el número dado.
      round(7.5) ⇒ 8
      round(-7.5) ⇒ -7
  • Redondear hacia abajo: floor(expresión). Redondea al entero más cercano menor que el número dado.
    floor(7.6) ⇒ 7
    floor(-7.3) ⇒ -8
  • Redondear hacia arriba: ceil(expresión) . Redondea al entero más cercano mayor que el número dado.
    ceil(7.3) ⇒ 8
    ceil(-7.6) ⇒ -7
  • Truncar decimal: trunc(expresión). Redondea un número real eliminando la parte fraccionaria del número.
    trunc(7.8) ⇒ 7
    trunc(-7.8) ⇒ -7
La tabla siguiente resume los distintos valores obtenidos mediante las funciones de redondeo para cuatro valores de ejemplo.

Expresión
7,50 7,49 -7,50 -7,51
Round 8 7 -7 -8
Floor 7 7 -8 -8
Ceil 8 8 -7 -7
Trunc 7 7 -7 -7

En el Administrador de Parámetros, la propiedad Expresión de cada Parámetro incluye en su menú contextual (al que se accede al hacer clic con el botón derecho del ratón cuando ésta se encuentra en modo edición), una opción etiquetada como Expresiones, que abre un submenú con la lista de funciones y constantes que se pueden utilizar en las fórmulas aplicables a esta propiedad. Hay que señalar que en este submenú sólo falta la función “Decimal aleatorio: Random()”.
En el próximo artículo de la serie veremos cómo afecta a los Parámetros el formato de las unidades de Longitud y de Ángulo configuradas como actuales en el dibujo y cómo introducir en las expresiones de los Parámetros valores en unidades distintas a éstas.

0 comentarios: