pyENL
pyENL copied to clipboard
Asignación de unidades
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 )
@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?
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:
- Solo hay una variable en la ecuación.
- Solo hay 2 términos en la ecuación (validando el número de signos
+ -
sale ésta. - La variable no está repetida.
- 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?
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]
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?
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