jon85p / pyENL

Cross-platform engineering nonlinear equations systems solver [Under construction 🚧]
https://jon85p.github.io/pyENL/
MIT License
30 stars 6 forks source link

Duplicación de variables en tabla #47

Open jon85p opened 3 years ago

jon85p commented 3 years ago

Ejemplo: f = 5[cm] - 8 n = 2

Se duplica aparentemente la variable "n", cuando no se activa evento de escritura o cambio de pestaña (es decir copiar, pegar e inmediatamente después darle en Resolver)

Para que ocurra, tienen que ir unidades en el texto para que ocurra.

xmagor commented 3 years ago

Inicialmente cuando se ingresa a la función solve cuando se presiona el boton para resolver el sistema de eq, se crea el backup de la lista donde están los objetos de cada variable: https://github.com/jon85p/pyENL/blob/56e4298c79823a1484555fca67a3932800b06406/pyENL.py#L599

Luego dentro de solver.py en la función solver está la siguiente línea: https://github.com/jon85p/pyENL/blob/56e4298c79823a1484555fca67a3932800b06406/solver.py#L141

Se ordena pyENL_variables y esa variable es un puntero a self.variables, por lo que de ahí en adelante el orden de self.variables es diferente al orden del backup creado inicialmente

Ahora, como el sistema de ecuaciones planteado falla, entonces lo ultimo que se realiza es recuperar el backup de las variables:

https://github.com/jon85p/pyENL/blob/56e4298c79823a1484555fca67a3932800b06406/pyENL.py#L633-L635

Y ahí es donde está el inconveniente ya que el for barre las variables del backup pero internamente del for se valida con self.variables asumiendo que tienen el mismo orden que el backup!