NaxToPy 1.5.3__tar.gz → 1.5.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {NaxToPy-1.5.3/src/NaxToPy.egg-info → NaxToPy-1.5.4}/PKG-INFO +7 -1
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/README.md +6 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/pyproject.toml +1 -1
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy/Core/Classes/N2PLoadCase.py +2 -2
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy/Core/Classes/N2PModelInputData.py +1 -1
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy/Core/Classes/N2PResult.py +51 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy/Core/Constants/Constants.py +1 -1
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy/Core/Errors/N2PLog.py +43 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy/Core/N2PModelContent.py +8 -0
- NaxToPy-1.5.4/src/NaxToPy/Modules/Fasteners/N2PUpdateFastener.py +906 -0
- NaxToPy-1.5.4/src/NaxToPy/Modules/Fasteners/__init__.py +1 -0
- NaxToPy-1.5.4/src/NaxToPy/Modules/__init__.py +1 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4/src/NaxToPy.egg-info}/PKG-INFO +7 -1
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy.egg-info/SOURCES.txt +2 -0
- NaxToPy-1.5.3/src/NaxToPy/Modules/__init__.py +0 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/LICENSE +0 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/setup.cfg +0 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/setup.py +0 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy/Core/Classes/AllClasses.py +0 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy/Core/Classes/N2PComponent.py +0 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy/Core/Classes/N2PConnector.py +0 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy/Core/Classes/N2PCoord.py +0 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy/Core/Classes/N2PElement.py +0 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy/Core/Classes/N2PFreeBody.py +0 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy/Core/Classes/N2PIncrement.py +0 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy/Core/Classes/N2PMaterial.py +0 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy/Core/Classes/N2PNode.py +0 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy/Core/Classes/N2PProperty.py +0 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy/Core/Classes/N2PReport.py +0 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy/Core/Classes/N2PSection.py +0 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy/Core/Classes/N2PSet.py +0 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy/Core/Classes/ProgresBar.py +0 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy/Core/Classes/__init__.py +0 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy/Core/Constants/__init__.py +0 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy/Core/Constants/librerias.py +0 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy/Core/Errors/N2PColors.py +0 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy/Core/Errors/N2PFileHandler.py +0 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy/Core/Errors/__init__.py +0 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy/Core/Reference_Finder/__Reference_Finder.py +0 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy/Core/Reference_Finder/__init__.py +0 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy/Core/_AuxFunc/_NetToPython.py +0 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy/Core/_AuxFunc/__init__.py +0 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy/Core/__init__.py +0 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy/Modules/N2PEnvelope/N2PEnvelope.py +0 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy/Modules/N2PEnvelope/__init__.py +0 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy/Modules/N2PtoEXE/N2PtoEXE.py +0 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy/Modules/N2PtoEXE/__init__.py +0 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy/NaxToPy.ico +0 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy/__init__.py +0 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy/user_functions.txt +0 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy.egg-info/dependency_links.txt +0 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy.egg-info/requires.txt +0 -0
- {NaxToPy-1.5.3 → NaxToPy-1.5.4}/src/NaxToPy.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: NaxToPy
|
|
3
|
-
Version: 1.5.
|
|
3
|
+
Version: 1.5.4
|
|
4
4
|
Summary: Package for postprocessing FEM results in Python
|
|
5
5
|
Home-page: https://www.idaerosolutions.com/Home/NaxToPy
|
|
6
6
|
Download-URL: https://apps.microsoft.com/detail/XP9MMH0KDKGRJN?hl=en-US&gl=US
|
|
@@ -241,6 +241,12 @@ To see previous version see the pre-release versions in https://test.pypi.org/pr
|
|
|
241
241
|
1. Bug fix for the EXE generation.
|
|
242
242
|
2. Updates in the log messages.
|
|
243
243
|
|
|
244
|
+
### v.1.5.4
|
|
245
|
+
1. Bug Fix: After calling the method get_load_cases(), the new derived cases weren't found. Now they does.
|
|
246
|
+
2. N2PLoadCase has now two properties for the ID: OriginalID, that was in the files readed and ID that is the one that is used in NaxToPy. Usually, they are the same.
|
|
247
|
+
3. New method new_derived_component() in the class N2PResult that allows to create new N2PComponent based on the original components.
|
|
248
|
+
4. New module N2PUpdateFastener. This module updates the stiffness of the CBUSH and CFAST acordint to their properties and shells properties.
|
|
249
|
+
|
|
244
250
|
# Documentation
|
|
245
251
|
|
|
246
252
|
**NaxToPy** is a package developed by Idaero Solutions© as a part of the **NaxTo** software.
|
|
@@ -117,6 +117,12 @@ To see previous version see the pre-release versions in https://test.pypi.org/pr
|
|
|
117
117
|
1. Bug fix for the EXE generation.
|
|
118
118
|
2. Updates in the log messages.
|
|
119
119
|
|
|
120
|
+
### v.1.5.4
|
|
121
|
+
1. Bug Fix: After calling the method get_load_cases(), the new derived cases weren't found. Now they does.
|
|
122
|
+
2. N2PLoadCase has now two properties for the ID: OriginalID, that was in the files readed and ID that is the one that is used in NaxToPy. Usually, they are the same.
|
|
123
|
+
3. New method new_derived_component() in the class N2PResult that allows to create new N2PComponent based on the original components.
|
|
124
|
+
4. New module N2PUpdateFastener. This module updates the stiffness of the CBUSH and CFAST acordint to their properties and shells properties.
|
|
125
|
+
|
|
120
126
|
# Documentation
|
|
121
127
|
|
|
122
128
|
**NaxToPy** is a package developed by Idaero Solutions© as a part of the **NaxTo** software.
|
|
@@ -74,13 +74,13 @@ class N2PLoadCase:
|
|
|
74
74
|
|
|
75
75
|
# Metodo para obtener el numero de identificacion interno del caso de carga ----------------------------------------
|
|
76
76
|
@property
|
|
77
|
-
def
|
|
77
|
+
def ID(self) -> int:
|
|
78
78
|
return(int(self.__id__))
|
|
79
79
|
# ------------------------------------------------------------------------------------------------------------------
|
|
80
80
|
|
|
81
81
|
# Metodo oara obtener el numero de identificacion original del caso de carga ---------------------------------------
|
|
82
82
|
@property
|
|
83
|
-
def
|
|
83
|
+
def OriginalID(self) -> int:
|
|
84
84
|
return(int(self.__idoriginal__))
|
|
85
85
|
# ------------------------------------------------------------------------------------------------------------------
|
|
86
86
|
|
|
@@ -164,7 +164,7 @@ class N2PModelInputData:
|
|
|
164
164
|
"""Method that writes the solver input file with the same file structure that was read in the folder is specified
|
|
165
165
|
|
|
166
166
|
Args:
|
|
167
|
-
folder: str -> Path of the
|
|
167
|
+
folder: str -> Path of the folder where the file or files will be writen
|
|
168
168
|
"""
|
|
169
169
|
self.__inputfiledata.RebuildFile(folder)
|
|
170
170
|
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
from NaxToPy.Core.Classes.N2PComponent import N2PComponent
|
|
2
2
|
from NaxToPy.Core.Errors.N2PLog import N2PLog
|
|
3
|
+
from VizzerClasses import N2Component
|
|
4
|
+
from System.Collections.Generic import List
|
|
3
5
|
|
|
4
6
|
|
|
5
7
|
# Clase Result de Python --------------------------------------------------------------------------
|
|
@@ -124,6 +126,55 @@ class N2PResult:
|
|
|
124
126
|
N2PLog.Error.E216()
|
|
125
127
|
# ---------------------------------------------------------------------------------------------
|
|
126
128
|
|
|
129
|
+
def new_derived_component(self, name: str, formula: str) -> N2PComponent:
|
|
130
|
+
"""Generate a new N2PComponent combination of n components from N2PResult.
|
|
131
|
+
|
|
132
|
+
These combinations can be obtained later with the method `get_derived_component()`.
|
|
133
|
+
|
|
134
|
+
To define the combination, pass a string with the result and component names, along with the arithmetic commands as strings.
|
|
135
|
+
The name of the new derived component must be set. To add a component to the formula, it must start with `CMPT_`
|
|
136
|
+
followed by the Result name (the result must be the same) if it is an original component, and with `CMPTD` (only that),
|
|
137
|
+
then `:` and finally the Component name.
|
|
138
|
+
|
|
139
|
+
The `Result|Component` must have this structure: `<CMPT_Result:Component>` or `<CMPTD:Component>`.
|
|
140
|
+
|
|
141
|
+
Examples:
|
|
142
|
+
- formula = "<0.5*CMPT_DISPLACEMENTS:MAGNITUDE_D>+2*<CMPT_DISPLACEMENTS:MAGNITUDE_R>"
|
|
143
|
+
- formula = "(<CMPTD:Example>-2*<CMPT_DISPLACEMENTS:MAGNITUDE_R>)^2"
|
|
144
|
+
- formula = "sqrt(<CMPT_STRESSES:XX>^2+<CMPT_STRESSES:YY>^2-<CMPT_STRESSES:XX>*<CMPT_STRESSES:YY>+3*<CMPT_STRESSES:XY>^2)"
|
|
145
|
+
|
|
146
|
+
Args:
|
|
147
|
+
name (str): The name of the component.
|
|
148
|
+
formula (str): String containing the Result:Component intended to be used and the arithmetic operations.
|
|
149
|
+
|
|
150
|
+
Returns:
|
|
151
|
+
N2PComponent: Derived load case.
|
|
152
|
+
"""
|
|
153
|
+
|
|
154
|
+
# Recuperamos la instancia N2ModelModelContent
|
|
155
|
+
mc = self.__loadCase_father__.__modelFather__._N2PModelContent__vzmodel
|
|
156
|
+
|
|
157
|
+
# Llamada al constructor de N2Component de VizzerClasses
|
|
158
|
+
new_d_comp = N2Component(mc, name, formula)
|
|
159
|
+
|
|
160
|
+
# Se incluye en la lista de compornentes derivadas de vizzerclasses. Para ello tengo que comprobar que existe
|
|
161
|
+
# dicha lista. Si no existe la tengo que crear como lista de C#
|
|
162
|
+
if not mc.DerivedComponents:
|
|
163
|
+
mc.DerivedComponents = List[N2Component]()
|
|
164
|
+
|
|
165
|
+
# Now I add the new derived component to the list
|
|
166
|
+
mc.DerivedComponents.Add(new_d_comp)
|
|
167
|
+
|
|
168
|
+
# Call the method that recalculate the data.
|
|
169
|
+
new_d_comp.RecalculateCMPTInfo2Formule()
|
|
170
|
+
|
|
171
|
+
# The N2PComponent is instanced and added to the dictionary of derived loadcases:
|
|
172
|
+
self.__derived_comps__[new_d_comp.Name] = N2PComponent(new_d_comp.Name, new_d_comp.Sections, self)
|
|
173
|
+
|
|
174
|
+
return self.__derived_comps__[new_d_comp.Name]
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
|
|
127
178
|
# # Metodo para obtener los resultados de todas las componentes del resultado como DataFrame ----
|
|
128
179
|
# def get_results_dataframe(self, sections=None, aveSections=-1, cornerData=False, aveNodes=-1,
|
|
129
180
|
# variation=100, realPolar=0) -> DataFrame:
|
|
@@ -152,6 +152,40 @@ class N2PLog(ABC):
|
|
|
152
152
|
message = f"The parallel processing has been set to {parallel}"
|
|
153
153
|
N2PLog._N2PLog__logger.debug(message)
|
|
154
154
|
|
|
155
|
+
@staticmethod
|
|
156
|
+
def D500(current_time,tinit) -> None:
|
|
157
|
+
""" Information given for the extraction time.
|
|
158
|
+
"""
|
|
159
|
+
message = f"D500: Extraction time: {current_time-tinit} s"
|
|
160
|
+
N2PLog._N2PLog__logger.info(message)
|
|
161
|
+
|
|
162
|
+
@staticmethod
|
|
163
|
+
def D501(current_time,tinit) -> None:
|
|
164
|
+
""" Information given for computation time of elastic modulus.
|
|
165
|
+
"""
|
|
166
|
+
message = f"D501: Elastic modulus calculation time: {current_time-tinit} s"
|
|
167
|
+
N2PLog._N2PLog__logger.info(message)
|
|
168
|
+
|
|
169
|
+
@staticmethod
|
|
170
|
+
def D502(current_time,tinit) -> None:
|
|
171
|
+
""" Information given for computation time of set intersection
|
|
172
|
+
"""
|
|
173
|
+
message = f"D502: Set intersection computation time: {current_time-tinit} s"
|
|
174
|
+
N2PLog._N2PLog__logger.info(message)
|
|
175
|
+
|
|
176
|
+
@staticmethod
|
|
177
|
+
def D503(current_time,tinit) -> None:
|
|
178
|
+
""" Information given for computation time of fastener update
|
|
179
|
+
"""
|
|
180
|
+
message = f"D503: Fastener update computation time: {current_time-tinit} s"
|
|
181
|
+
N2PLog._N2PLog__logger.info(message)
|
|
182
|
+
|
|
183
|
+
@staticmethod
|
|
184
|
+
def D504(current_time,tinit) -> None:
|
|
185
|
+
""" Information given for loading time of the model
|
|
186
|
+
"""
|
|
187
|
+
message = f"D504: Model loading time: {current_time-tinit} s"
|
|
188
|
+
N2PLog._N2PLog__logger.info(message)
|
|
155
189
|
# ------------------------------------------------------------------------------------------------------------------
|
|
156
190
|
|
|
157
191
|
############################################ INFO ################################################################
|
|
@@ -295,6 +329,8 @@ own information message. Use the following structure as a standard message (I +
|
|
|
295
329
|
message = f"I203: Executing N2PEnvelope..."
|
|
296
330
|
N2PLog._N2PLog__logger.info(message)
|
|
297
331
|
|
|
332
|
+
|
|
333
|
+
|
|
298
334
|
# ------------------------------------------------------------------------------------------------------------------
|
|
299
335
|
|
|
300
336
|
########################################### WARNING ##############################################################
|
|
@@ -828,6 +864,13 @@ own information message. Use the following structure as a standard message (I +
|
|
|
828
864
|
N2PLog._N2PLog__logger.error(message)
|
|
829
865
|
# ------------------------------------------------------------------------------------------------------------------
|
|
830
866
|
|
|
867
|
+
@staticmethod
|
|
868
|
+
def E311(propID) -> None:
|
|
869
|
+
''' Error raised when young modulus is not found.
|
|
870
|
+
'''
|
|
871
|
+
message = f"E311: YOUNG MODULUS COULD NOT BE FOUND FOR PROPERTY {propID}"
|
|
872
|
+
N2PLog._N2PLog__logger.error(message)
|
|
873
|
+
|
|
831
874
|
########################################### CRITICAL #############################################################
|
|
832
875
|
class Critical:
|
|
833
876
|
"""Class with all the critical errors.
|
|
@@ -1108,6 +1108,10 @@ class N2PModelContent:
|
|
|
1108
1108
|
# Se añade el case de carga de python a N2PModelContent
|
|
1109
1109
|
self.__load_cases__.append(py_lc)
|
|
1110
1110
|
|
|
1111
|
+
# Se añade al diccionario si este ya existe
|
|
1112
|
+
if self.__LCs_by_ID__:
|
|
1113
|
+
self.__LCs_by_ID__[py_lc.ID] = py_lc
|
|
1114
|
+
|
|
1111
1115
|
return py_lc
|
|
1112
1116
|
|
|
1113
1117
|
def new_envelope_loadcase(self, name: str, formula: str, criteria: str="ExtremeMax") -> N2PLoadCase:
|
|
@@ -1175,6 +1179,10 @@ class N2PModelContent:
|
|
|
1175
1179
|
# Se añade el case de carga de python a N2PModelContent
|
|
1176
1180
|
self.__load_cases__.append(py_lc)
|
|
1177
1181
|
|
|
1182
|
+
# Se añade al diccionario si este ya existe
|
|
1183
|
+
if self.__LCs_by_ID__:
|
|
1184
|
+
self.__LCs_by_ID__[py_lc.ID] = py_lc
|
|
1185
|
+
|
|
1178
1186
|
return py_lc
|
|
1179
1187
|
# ------------------------------------------------------------------------------------------------------------------
|
|
1180
1188
|
|