You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm exploring this beautiful library, pushing the limits to get its limitations (if any). For the moment, I can achieve almost anything that I need, except this: using correctly the @handcalcs for functions.
I noted that the comments inside the function (and outside if indented) raise errors, but this can be easily solved by using ""'comments"'" (thanks @ernest505). On the other hand, if I check for exceptions (see below for an example), an error occurs:
Cell 1:
from handcalcs.decorator import handcalc
import handcalcs.render
import re
import forallpeople as si
si.environment('structural', top_level=False)
class WrongUnits(Exception):
"""Exception class for the "wrong units" error.
"""
pass
def checkSameUnits(a, b):
"""Return True if the two parameters have the same units.
@param a (float): First parameters with forallpeople units.
@param b (float): First parameters with forallpeople units.
@returns bool: Are the two parameters with the same units?
"""
regex_string = '(?<=Dimensions\()(.*?)(?=\))'
a_units_info = re.findall(regex_string, a.repr)[0]
b_units_info = re.findall(regex_string, b.repr)[0]
return a_units_info == b_units_info
@handcalc(jupyter_display=True)
def computeA_IShapeWithoutFillets(d, b_f, t_f, t_w):
"""Compute the area of a double symmetric I-profile section without fillets included in the calculation (simplification).
WARNING: foarallpeople required!
@param d (float): Depth
@param b_f (float): Flange's width
@param t_f (float): Flange's thickness
@param t_w (float): Web's thickness
@exception WrongUnits: d needs to be a length unit.
@exception WrongUnits: b_f needs to be a length unit.
@exception WrongUnits: t_f needs to be a length unit.
@exception WrongUnits: t_w needs to be a length unit.
@returns float: The area.
"""
if not checkSameUnits(d, si.m): raise WrongUnits()
if not checkSameUnits(b_f, si.m): raise WrongUnits()
if not checkSameUnits(t_f, si.m): raise WrongUnits()
if not checkSameUnits(t_w, si.m): raise WrongUnits()
A_IShape = b_f*t_f*2.0 + t_w*(d-2.0*t_f)
return A_IShape
A = computeA_IShapeWithoutFillets(d, b_f, t_f, t_w)
The error is quite long, so I guess it's easier to just replicate it.
It would be incredible, if the section of a function that is rendered could be controlled (by a flag maybe?), so that for example preliminary calculation are not included.
Any help or advice is appreciated, thanks!
The text was updated successfully, but these errors were encountered:
I'm exploring this beautiful library, pushing the limits to get its limitations (if any). For the moment, I can achieve almost anything that I need, except this: using correctly the @handcalcs for functions.
I noted that the comments inside the function (and outside if indented) raise errors, but this can be easily solved by using ""'comments"'" (thanks @ernest505). On the other hand, if I check for exceptions (see below for an example), an error occurs:
Cell 1:
Cell 2:
Cell 3:
The error is quite long, so I guess it's easier to just replicate it.
It would be incredible, if the section of a function that is rendered could be controlled (by a flag maybe?), so that for example preliminary calculation are not included.
Any help or advice is appreciated, thanks!
The text was updated successfully, but these errors were encountered: