Merge branch 'uccnc_postprocessor' of https://github.com/papaathome/FreeCAD into uccnc_postprocessor
This commit is contained in:
4
lgtm.yml
4
lgtm.yml
@@ -12,12 +12,16 @@ path_classifiers:
|
||||
- "src/CXX/"
|
||||
template:
|
||||
- "src/Tools/examplePy2wiki.py"
|
||||
- "src/Mode/TemplatePyMod/"
|
||||
unmaintained:
|
||||
- "src/Mod/Robot/"
|
||||
- "src/Mod/Ship/"
|
||||
legacy:
|
||||
- "src/Mod/Assembly/"
|
||||
- "src/Mod/Drawing/"
|
||||
- "src/Mod/Raytracing/"
|
||||
- "src/Mod/Spreadsheet/App/Spreadsheet_legacy.py"
|
||||
- "src/Mod/OpenSCAD/prototype.py"
|
||||
|
||||
extraction:
|
||||
javascript:
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>400</width>
|
||||
<height>439</height>
|
||||
<height>475</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
@@ -41,14 +41,14 @@
|
||||
<item row="1" column="1">
|
||||
<widget class="QComboBox" name="cb_dimension"/>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="l_max">
|
||||
<property name="text">
|
||||
<string>Max element size (0.0 = Auto):</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<item row="3" column="1">
|
||||
<widget class="Gui::InputField" name="if_max">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
@@ -85,14 +85,14 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="l_min">
|
||||
<property name="text">
|
||||
<string>Min element size (0.0 = Auto):</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<item row="4" column="1">
|
||||
<widget class="Gui::InputField" name="if_min">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
@@ -129,6 +129,16 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QComboBox" name="cb_order"/>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="I_order">
|
||||
<property name="text">
|
||||
<string>Mesh order</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
@@ -153,6 +163,13 @@
|
||||
</property>
|
||||
<item row="1" column="1">
|
||||
<layout class="QGridLayout" name="gl_actions">
|
||||
<item row="0" column="0">
|
||||
<widget class="QTextEdit" name="te_output">
|
||||
<property name="lineWrapMode">
|
||||
<enum>QTextEdit::NoWrap</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<widget class="QLabel" name="l_time">
|
||||
<property name="font">
|
||||
@@ -165,26 +182,6 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QTextEdit" name="te_output">
|
||||
<property name="lineWrapMode">
|
||||
<enum>QTextEdit::NoWrap</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="0">
|
||||
<widget class="QPushButton" name="pb_get_gmsh_version">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Gmsh version</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="0">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
@@ -198,7 +195,20 @@
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
<item row="7" column="0">
|
||||
<widget class="QPushButton" name="pb_get_gmsh_version">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Gmsh version</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
|
||||
@@ -231,7 +231,7 @@ class SmallListView(QtGui.QListView):
|
||||
|
||||
class GeometryElementsSelection(QtGui.QWidget):
|
||||
|
||||
def __init__(self, ref, eltypes=[], multigeom=True):
|
||||
def __init__(self, ref, eltypes=[], multigeom, showHintEmptyList):
|
||||
super(GeometryElementsSelection, self).__init__()
|
||||
# init ui stuff
|
||||
FreeCADGui.Selection.clearSelection()
|
||||
@@ -240,6 +240,7 @@ class GeometryElementsSelection(QtGui.QWidget):
|
||||
self.obj_notvisible = []
|
||||
self.initElemTypes(eltypes)
|
||||
self.allow_multiple_geom_types = multigeom
|
||||
self.showHintEmptyList = showHintEmptyList
|
||||
# print(self.allow_multiple_geom_types)
|
||||
self.initUI()
|
||||
# set references and fill the list widget
|
||||
@@ -276,11 +277,20 @@ class GeometryElementsSelection(QtGui.QWidget):
|
||||
# label
|
||||
self._helpTextLbl = QtGui.QLabel()
|
||||
self._helpTextLbl.setWordWrap(True)
|
||||
self._helpTextLbl.setText(self.tr(
|
||||
'Click on "Add" and select geometric elements to add them to the list. '
|
||||
"If no geometry is added to the list, all remaining ones are used. "
|
||||
"The following geometry elements are allowed to select: "
|
||||
) + self.sel_elem_text)
|
||||
helpTextPart1 = self.tr('Click on "Add" and select geometric elements to add them to the list.')
|
||||
helpTextPart2 = self.tr("The following geometry elements are allowed to select: ") + self.sel_elem_text
|
||||
helpTextPart3 = self.tr("If no geometry is added to the list, all remaining ones are used.")
|
||||
if self.showHintEmptyList is True:
|
||||
self._helpTextLbl.setText(
|
||||
helpTextPart1 + "\n" +
|
||||
helpTextPart2 + "\n" +
|
||||
helpTextPart3
|
||||
)
|
||||
else:
|
||||
self._helpTextLbl.setText(
|
||||
helpTextPart1 + "\n" +
|
||||
helpTextPart2
|
||||
)
|
||||
# list
|
||||
self.list_References = QtGui.QListWidget()
|
||||
# radiobutton down the list
|
||||
|
||||
@@ -101,6 +101,8 @@ class GmshTools():
|
||||
self.algorithm2D = "7"
|
||||
elif algo2D == "DelQuad":
|
||||
self.algorithm2D = "8"
|
||||
elif algo2D == "Packing Parallelograms":
|
||||
self.algorithm2D = "9"
|
||||
else:
|
||||
self.algorithm2D = "2"
|
||||
|
||||
@@ -114,14 +116,12 @@ class GmshTools():
|
||||
self.algorithm3D = "2"
|
||||
elif algo3D == "Frontal":
|
||||
self.algorithm3D = "4"
|
||||
elif algo3D == "Frontal Delaunay":
|
||||
self.algorithm3D = "5"
|
||||
elif algo3D == "Frontal Hex":
|
||||
self.algorithm3D = "6"
|
||||
elif algo3D == "MMG3D":
|
||||
self.algorithm3D = "7"
|
||||
elif algo3D == "R-tree":
|
||||
self.algorithm3D = "9"
|
||||
elif algo3D == "HXT":
|
||||
self.algorithm3D = "10"
|
||||
else:
|
||||
self.algorithm3D = "1"
|
||||
|
||||
@@ -803,7 +803,7 @@ class GmshTools():
|
||||
)
|
||||
geo.write(
|
||||
"// 2D mesh algorithm (1=MeshAdapt, 2=Automatic, "
|
||||
"5=Delaunay, 6=Frontal, 7=BAMG, 8=DelQuad)\n"
|
||||
"5=Delaunay, 6=Frontal, 7=BAMG, 8=DelQuad, 9=Packing Parallelograms)\n"
|
||||
)
|
||||
if len(self.bl_setting_list) and self.dimension == 3:
|
||||
geo.write("Mesh.Algorithm = " + "DelQuad" + ";\n") # Frontal/DelQuad are tested
|
||||
@@ -811,7 +811,7 @@ class GmshTools():
|
||||
geo.write("Mesh.Algorithm = " + self.algorithm2D + ";\n")
|
||||
geo.write(
|
||||
"// 3D mesh algorithm (1=Delaunay, 2=New Delaunay, 4=Frontal, "
|
||||
"5=Frontal Delaunay, 6=Frontal Hex, 7=MMG3D, 9=R-tree)\n"
|
||||
"7=MMG3D, 9=R-tree, 10=HTX)\n"
|
||||
)
|
||||
geo.write("Mesh.Algorithm3D = " + self.algorithm3D + ";\n")
|
||||
geo.write("\n")
|
||||
|
||||
@@ -48,17 +48,17 @@ class MeshGmsh(base_fempythonobject.BaseFemPythonObject):
|
||||
"Delaunay",
|
||||
"Frontal",
|
||||
"BAMG",
|
||||
"DelQuad"
|
||||
"DelQuad",
|
||||
"Packing Parallelograms"
|
||||
]
|
||||
known_mesh_algorithm_3D = [
|
||||
"Automatic",
|
||||
"Delaunay",
|
||||
"New Delaunay",
|
||||
"Frontal",
|
||||
"Frontal Delaunay",
|
||||
"Frontal Hex",
|
||||
"MMG3D",
|
||||
"R-tree"
|
||||
"R-tree",
|
||||
"HXT"
|
||||
]
|
||||
|
||||
def __init__(self, obj):
|
||||
@@ -67,6 +67,9 @@ class MeshGmsh(base_fempythonobject.BaseFemPythonObject):
|
||||
|
||||
def onDocumentRestored(self, obj):
|
||||
self.add_properties(obj)
|
||||
# refresh the list of known 3D algorithms for existing meshes
|
||||
# since some algos are meanwhile deprecated and new algos are available
|
||||
obj.Algorithm3D = MeshGmsh.known_mesh_algorithm_3D
|
||||
|
||||
def add_properties(self, obj):
|
||||
if not hasattr(obj, "MeshBoundaryLayerList"):
|
||||
|
||||
@@ -55,7 +55,9 @@ class _TaskPanel:
|
||||
# geometry selection widget
|
||||
self.selectionWidget = selection_widgets.GeometryElementsSelection(
|
||||
obj.References,
|
||||
["Face"]
|
||||
["Face"],
|
||||
False,
|
||||
False
|
||||
)
|
||||
|
||||
# form made from param and selection widget
|
||||
|
||||
@@ -61,7 +61,9 @@ class _TaskPanel:
|
||||
# geometry selection widget
|
||||
self.selectionWidget = selection_widgets.GeometryElementsSelection(
|
||||
obj.References,
|
||||
["Face"]
|
||||
["Face"],
|
||||
False,
|
||||
False
|
||||
)
|
||||
|
||||
# form made from param and selection widget
|
||||
|
||||
@@ -232,7 +232,10 @@ class _TaskPanel:
|
||||
|
||||
# geometry selection widget
|
||||
self.selectionWidget = selection_widgets.GeometryElementsSelection(
|
||||
obj.References, ["Edge"]
|
||||
obj.References,
|
||||
["Edge"],
|
||||
False,
|
||||
True
|
||||
)
|
||||
|
||||
# form made from param and selection widget
|
||||
|
||||
@@ -91,7 +91,9 @@ class _TaskPanel:
|
||||
# geometry selection widget
|
||||
self.selectionWidget = selection_widgets.GeometryElementsSelection(
|
||||
obj.References,
|
||||
["Edge"]
|
||||
["Edge"],
|
||||
False,
|
||||
True
|
||||
)
|
||||
|
||||
# form made from param and selection widget
|
||||
|
||||
@@ -60,7 +60,9 @@ class _TaskPanel:
|
||||
# geometry selection widget
|
||||
self.selectionWidget = selection_widgets.GeometryElementsSelection(
|
||||
obj.References,
|
||||
["Face"]
|
||||
["Face"],
|
||||
False,
|
||||
True
|
||||
)
|
||||
|
||||
# form made from param and selection widget
|
||||
|
||||
@@ -61,7 +61,9 @@ class _TaskPanel:
|
||||
# geometry selection widget
|
||||
self.selectionWidget = selection_widgets.GeometryElementsSelection(
|
||||
obj.References,
|
||||
["Edge"]
|
||||
["Edge"],
|
||||
False,
|
||||
True
|
||||
)
|
||||
|
||||
# form made from param and selection widget
|
||||
|
||||
@@ -192,7 +192,8 @@ class _TaskPanel:
|
||||
self.selectionWidget = selection_widgets.GeometryElementsSelection(
|
||||
obj.References,
|
||||
["Solid", "Face", "Edge"],
|
||||
False
|
||||
False,
|
||||
True
|
||||
) # start with Solid in list!
|
||||
|
||||
# form made from param and selection widget
|
||||
|
||||
@@ -72,7 +72,9 @@ class _TaskPanel:
|
||||
# start with Solid in list!
|
||||
self.selectionWidget = selection_widgets.GeometryElementsSelection(
|
||||
obj.References,
|
||||
["Solid", "Face", "Edge", "Vertex"]
|
||||
["Solid", "Face", "Edge", "Vertex"],
|
||||
True,
|
||||
False
|
||||
)
|
||||
|
||||
# form made from param and selection widget
|
||||
|
||||
@@ -77,6 +77,11 @@ class _TaskPanel:
|
||||
QtCore.SIGNAL("activated(int)"),
|
||||
self.choose_dimension
|
||||
)
|
||||
QtCore.QObject.connect(
|
||||
self.form.cb_order,
|
||||
QtCore.SIGNAL("activated(int)"),
|
||||
self.choose_order
|
||||
)
|
||||
QtCore.QObject.connect(
|
||||
self.Timer,
|
||||
QtCore.SIGNAL("timeout()"),
|
||||
@@ -92,6 +97,10 @@ class _TaskPanel:
|
||||
mesh_gmsh.MeshGmsh.known_element_dimensions
|
||||
)
|
||||
|
||||
self.form.cb_order.addItems(
|
||||
mesh_gmsh.MeshGmsh.known_element_orders
|
||||
)
|
||||
|
||||
self.get_mesh_params()
|
||||
self.get_active_analysis()
|
||||
self.update()
|
||||
@@ -126,11 +135,13 @@ class _TaskPanel:
|
||||
self.clmax = self.mesh_obj.CharacteristicLengthMax
|
||||
self.clmin = self.mesh_obj.CharacteristicLengthMin
|
||||
self.dimension = self.mesh_obj.ElementDimension
|
||||
self.order = self.mesh_obj.ElementOrder
|
||||
|
||||
def set_mesh_params(self):
|
||||
self.mesh_obj.CharacteristicLengthMax = self.clmax
|
||||
self.mesh_obj.CharacteristicLengthMin = self.clmin
|
||||
self.mesh_obj.ElementDimension = self.dimension
|
||||
self.mesh_obj.ElementOrder = self.order
|
||||
|
||||
def update(self):
|
||||
"fills the widgets"
|
||||
@@ -138,6 +149,8 @@ class _TaskPanel:
|
||||
self.form.if_min.setText(self.clmin.UserString)
|
||||
index_dimension = self.form.cb_dimension.findText(self.dimension)
|
||||
self.form.cb_dimension.setCurrentIndex(index_dimension)
|
||||
index_order = self.form.cb_order.findText(self.order)
|
||||
self.form.cb_order.setCurrentIndex(index_order)
|
||||
|
||||
def console_log(self, message="", color="#000000"):
|
||||
if (not isinstance(message, bytes)) and (sys.version_info.major < 3):
|
||||
@@ -168,6 +181,12 @@ class _TaskPanel:
|
||||
self.form.cb_dimension.setCurrentIndex(index)
|
||||
self.dimension = str(self.form.cb_dimension.itemText(index)) # form returns unicode
|
||||
|
||||
def choose_order(self, index):
|
||||
if index < 0:
|
||||
return
|
||||
self.form.cb_order.setCurrentIndex(index)
|
||||
self.order = str(self.form.cb_order.itemText(index)) # form returns unicode
|
||||
|
||||
def get_gmsh_version(self):
|
||||
from femmesh import gmshtools
|
||||
version, full_message = gmshtools.GmshTools(self.mesh_obj, self.analysis).get_gmsh_version()
|
||||
|
||||
@@ -66,7 +66,9 @@ class _TaskPanel:
|
||||
# start with Solid in list!
|
||||
self.selectionWidget = selection_widgets.GeometryElementsSelection(
|
||||
obj.References,
|
||||
["Solid", "Face", "Edge", "Vertex"]
|
||||
["Solid", "Face", "Edge", "Vertex"],
|
||||
True,
|
||||
False
|
||||
)
|
||||
|
||||
# form made from param and selection widget
|
||||
|
||||
@@ -61,7 +61,9 @@ class _TaskPanel:
|
||||
# start with Solid in list!
|
||||
self.selectionWidget = selection_widgets.GeometryElementsSelection(
|
||||
obj.References,
|
||||
["Solid", "Face", "Edge", "Vertex"]
|
||||
["Solid", "Face", "Edge", "Vertex"],
|
||||
True,
|
||||
False
|
||||
)
|
||||
|
||||
# form made from param and selection widget
|
||||
|
||||
@@ -26,9 +26,9 @@ Mesh.ElementOrder = 2;
|
||||
Mesh.SecondOrderLinear = 0; // Second order nodes are created by linear interpolation instead by curvilinear
|
||||
|
||||
// mesh algorithm, only a few algorithms are usable with 3D boundary layer generation
|
||||
// 2D mesh algorithm (1=MeshAdapt, 2=Automatic, 5=Delaunay, 6=Frontal, 7=BAMG, 8=DelQuad)
|
||||
// 2D mesh algorithm (1=MeshAdapt, 2=Automatic, 5=Delaunay, 6=Frontal, 7=BAMG, 8=DelQuad, 9=Packing Parallelograms)
|
||||
Mesh.Algorithm = 2;
|
||||
// 3D mesh algorithm (1=Delaunay, 2=New Delaunay, 4=Frontal, 5=Frontal Delaunay, 6=Frontal Hex, 7=MMG3D, 9=R-tree)
|
||||
// 3D mesh algorithm (1=Delaunay, 2=New Delaunay, 4=Frontal, 7=MMG3D, 9=R-tree, 10=HTX)
|
||||
Mesh.Algorithm3D = 1;
|
||||
|
||||
// meshing
|
||||
|
||||
@@ -25,16 +25,114 @@ SET (MaterialLib_Files
|
||||
StandardMaterial/None.FCMat
|
||||
StandardMaterial/ABS-Generic.FCMat
|
||||
StandardMaterial/Acrylic-Glass-Generic.FCMat
|
||||
StandardMaterial/AlMg3F24.FCMat
|
||||
StandardMaterial/AlMgSi1F31.FCMat
|
||||
StandardMaterial/Aluminum-6061-T6.FCMat
|
||||
StandardMaterial/AlZn4-5Mg1F35.FCMat
|
||||
StandardMaterial/CalculiX-Steel.FCMat
|
||||
StandardMaterial/Concrete-Generic.FCMat
|
||||
StandardMaterial/Glass-E-GlassFibre.FCMat
|
||||
StandardMaterial/Glass-Generic.FCMat
|
||||
StandardMaterial/Glass-S2-GlassFibre.FCMat
|
||||
StandardMaterial/PA6-Generic.FCMat
|
||||
StandardMaterial/PET-Generic.FCMat
|
||||
StandardMaterial/PLA-Generic.FCMat
|
||||
StandardMaterial/PP-Generic.FCMat
|
||||
StandardMaterial/PTFE-Generic.FCMat
|
||||
StandardMaterial/PVC-Generic.FCMat
|
||||
StandardMaterial/Reinforcement-FIB-B500.FCMat
|
||||
StandardMaterial/Steel-15CrNi6.FCMat
|
||||
StandardMaterial/Steel-17CrNiMo6.FCMat
|
||||
StandardMaterial/Steel-1C22.FCMat
|
||||
StandardMaterial/Steel-1C35.FCMat
|
||||
StandardMaterial/Steel-1C45.FCMat
|
||||
StandardMaterial/Steel-1C60.FCMat
|
||||
StandardMaterial/Steel-20NiCrMo2.FCMat
|
||||
StandardMaterial/Steel-28Mn6.FCMat
|
||||
StandardMaterial/Steel-2C10.FCMat
|
||||
StandardMaterial/Steel-30CrNiMo8.FCMat
|
||||
StandardMaterial/Steel-34CrNiMo6.FCMat
|
||||
StandardMaterial/Steel-36CrNiMo4.FCMat
|
||||
StandardMaterial/Steel-36NiCrMo16.FCMat
|
||||
StandardMaterial/Steel-3C15.FCMat
|
||||
StandardMaterial/Steel-3C22.FCMat
|
||||
StandardMaterial/Steel-3C35.FCMat
|
||||
StandardMaterial/Steel-3V45.FCMat
|
||||
StandardMaterial/Steel-C10.FCMat
|
||||
StandardMaterial/Steel-C15.FCMat
|
||||
StandardMaterial/Steel-C22E.FCMat
|
||||
StandardMaterial/Steel-C25E.FCMat
|
||||
StandardMaterial/Steel-C30E.FCMat
|
||||
StandardMaterial/Steel-C40E.FCMat
|
||||
StandardMaterial/Steel-C50E.FCMat
|
||||
StandardMaterial/Steel-C55E.FCMat
|
||||
StandardMaterial/Steel-C60E.FCMat
|
||||
StandardMaterial/Steel-E295-GC.FCMat
|
||||
StandardMaterial/Steel-E295.FCMat
|
||||
StandardMaterial/Steel-E335-GC.FCMat
|
||||
StandardMaterial/Steel-E335.FCMat
|
||||
StandardMaterial/Steel-E360-GC.FCMat
|
||||
StandardMaterial/Steel-E360.FCMat
|
||||
StandardMaterial/Steel-EN-GJL-100.FCMat
|
||||
StandardMaterial/Steel-EN-GJL-150.FCMat
|
||||
StandardMaterial/Steel-EN-GJL-200.FCMat
|
||||
StandardMaterial/Steel-EN-GJL-250.FCMat
|
||||
StandardMaterial/Steel-EN-GJL-300.FCMat
|
||||
StandardMaterial/Steel-EN-GJL-350.FCMat
|
||||
StandardMaterial/Steel-EN-GJMB-350-10.FCMat
|
||||
StandardMaterial/Steel-EN-GJMB-550-4.FCMat
|
||||
StandardMaterial/Steel-EN-GJMB-650-2.FCMat
|
||||
StandardMaterial/Steel-EN-GJMW-350-4.FCMat
|
||||
StandardMaterial/Steel-EN-GJMW-360-12.FCMat
|
||||
StandardMaterial/Steel-EN-GJMW-400-5.FCMat
|
||||
StandardMaterial/Steel-EN-GJMW-450-7.FCMat
|
||||
StandardMaterial/Steel-EN-GJS-400-15.FCMat
|
||||
StandardMaterial/Steel-EN-GJS-500-7.FCMat
|
||||
StandardMaterial/Steel-EN-GJS-600-3.FCMat
|
||||
StandardMaterial/Steel-EN-GJS-700-2.FCMat
|
||||
StandardMaterial/Steel-EN-GJS-800-1.FCMat
|
||||
StandardMaterial/Steel-G16Mn5.FCMat
|
||||
StandardMaterial/Steel-G200.FCMat
|
||||
StandardMaterial/Steel-G20Mn5.FCMat
|
||||
StandardMaterial/Steel-G230.FCMat
|
||||
StandardMaterial/Steel-G260.FCMat
|
||||
StandardMaterial/Steel-G300.FCMat
|
||||
StandardMaterial/Steel-G30Mn5.FCMat
|
||||
StandardMaterial/Steel-Generic.FCMat
|
||||
StandardMaterial/Steel-S185.FCMat
|
||||
StandardMaterial/Steel-S235JO.FCMat
|
||||
StandardMaterial/Steel-S235JR.FCMat
|
||||
StandardMaterial/Steel-S235JRG1.FCMat
|
||||
StandardMaterial/Steel-S260NC.FCMat
|
||||
StandardMaterial/Steel-S275JO.FCMat
|
||||
StandardMaterial/Steel-S275JR.FCMat
|
||||
StandardMaterial/Steel-S275N.FCMat
|
||||
StandardMaterial/Steel-S335JO.FCMat
|
||||
StandardMaterial/Steel-S335JR.FCMat
|
||||
StandardMaterial/Steel-S335N.FCMat
|
||||
StandardMaterial/Steel-S340MC.FCMat
|
||||
StandardMaterial/Steel-S355J2G3.FCMat
|
||||
StandardMaterial/Steel-S380MC.FCMat
|
||||
StandardMaterial/Steel-S420MC.FCMat
|
||||
StandardMaterial/Steel-S420N.FCMat
|
||||
StandardMaterial/Steel-S460MC.FCMat
|
||||
StandardMaterial/Steel-S460N.FCMat
|
||||
StandardMaterial/Steel-S500MC.FCMat
|
||||
StandardMaterial/Steel-S550MC.FCMat
|
||||
StandardMaterial/Steel-S690MC.FCMat
|
||||
StandardMaterial/Steel-St-37-2K.FCMat
|
||||
StandardMaterial/Steel-St-E-255.FCMat
|
||||
StandardMaterial/Steel-St-E-315.FCMat
|
||||
StandardMaterial/Steel-St-E-380.FCMat
|
||||
StandardMaterial/Steel-St-E-460.FCMat
|
||||
StandardMaterial/Steel-St-E-500.FCMat
|
||||
StandardMaterial/Steel-X2CrNiMoN17-13-3.FCMat
|
||||
StandardMaterial/Steel-X2CrNiN24-4.FCMat
|
||||
StandardMaterial/Steel-X39CrMo17-1.FCMat
|
||||
StandardMaterial/Steel-X3CrNiMo13-14.FCMat
|
||||
StandardMaterial/Steel-X5CrNi18-10.FCMat
|
||||
StandardMaterial/Steel-X5CrNiMo17-12-2.FCMat
|
||||
StandardMaterial/Steel-X6CrNiTi18-10.FCMat
|
||||
StandardMaterial/TEMPLATE.FCMat
|
||||
StandardMaterial/Wood-Generic.FCMat
|
||||
StandardMaterial/Readme.txt
|
||||
|
||||
Reference in New Issue
Block a user