pyENL icon indicating copy to clipboard operation
pyENL copied to clipboard

Asignación de unidades

Open xmagor opened this issue 4 years ago • 5 comments

Hacer amigable la asignación de unidades ( permitir colocar una unidad a múltiples variables por ejemplo; Para asignaciones directas donde el usuario coloque la unidad, automáticamente asignar esa unidad a la variable )

xmagor avatar Apr 26 '20 04:04 xmagor

@jon85p ando pensado dónde hacer la asignación de la unidad, tengo cómo tentativo en la función: https://github.com/jon85p/pyENL/blob/4f7aec0b0f62719bee78e7efe46b6d96dfd3ee63/pyENL.py#L593

Pero no estoy seguro; por otro lado aparte de asignar la unidad podríamos asignar el guess también, cuando revisaba el proceso de calculo de los bloques, a veces daba mucho rodeo en encontrar el valor de algo como T = 50. Bueno lo otro es identificar que una ecuación cumple la condición de "asignación directa" .

Qué opina?

xmagor avatar May 10 '20 03:05 xmagor

Por ahora he pensado en cómo detectar una función constante (ya que solo a esas se les va a asignar automaticamente la unidad si el usuario la escribe en la caja de texto); la ecuación debería cumplir las siguientes condiciones:

  1. Solo hay una variable en la ecuación.
  2. Solo hay 2 términos en la ecuación (validando el número de signos + - sale ésta.
  3. La variable no está repetida.
  4. La variable no tiene ningún factor diferente de 1 acompañandola.

Esas 4 condiciones se podrían implementa en : https://github.com/jon85p/pyENL/blob/56e4298c79823a1484555fca67a3932800b06406/utils.py#L245

ya que ahí ud tiene un bucle que barre ecuación por ecuación.

Pero la verdad me parecen muchas condiciones, alguna idea de cómo identificar esas funciones constantes despejadas?

xmagor avatar Dec 28 '20 22:12 xmagor

Para la primera beta se asignaran automaticamente las unidades de las funciones constantes que estén asignadas directamente:

a = 5 [cm] -a = 15*8 [m2]

xmagor avatar Jan 01 '21 22:01 xmagor

Sería bueno que no se cambiara las unidades de una variable si el usuario ya la definió, es decir que sea dimensionless. Me pasó con un ejercicio, que tenía `v = 5[km/h]

d = 10[km]

d = v*t` Y en la tabla de unidades tenía d en metros, t en s y v en m/s. Al calcular me cambió la velocidad a km/h

¿Qué opina?

jon85p avatar Jan 26 '21 02:01 jon85p

Estoy de acuerdo; que el usuario pueda colocar la unidad a su gusto es una carácteristica del solucionador, se me pasó por alto eso, se podría hacer que se tome la unidad de la caja de texto solamente cuando en la tabla de unidades la variable se encuentre adimensional

xmagor avatar Jan 26 '21 03:01 xmagor