Ejemplo n.º 1
0
     call it "library_manager" so that we know what it is. 
    The parameter passed to it is the location of the .json
     document.
    """
    
    library_manager = LibraryManager()
    

    """
    This class has a number of methods we'll demonstrate. The first
     method of importance is the materialData method, which takes as
     a parameter a string representing the name of the material for
     which you need data. 
    """
    
    steelData = library_manager.materialData("steel_stainless_316_l")
    
    """
    The steelData variable now contains all the data about the 
     steel_stainless_316_l material. As it stands, it isn't 
     incredibly useful to us. We need to iterate through the 
     data structure to extract the useful information.
    """
    #pprint(steelData)
    #pprint(steelData["density"])
    
    #This assumes list is only one level deep for compound properties
    for keys in steelData:
        unit = ""
        if "unit" in steelData[keys]:
            unit = steelData[keys]["unit"]
Ejemplo n.º 2
0
    """
    First, we need to create a LibraryManager object. We'll
     call it "library_manager" so that we know what it is. 
    The parameter passed to it is the location of the .json
     document.
    """

    library_manager = LibraryManager()
    """
    This class has a number of methods we'll demonstrate. The first
     method of importance is the materialData method, which takes as
     a parameter a string representing the name of the material for
     which you need data. 
    """

    steelData = library_manager.materialData("steel_stainless_316_l")
    """
    The steelData variable now contains all the data about the 
     steel_stainless_316_l material. As it stands, it isn't 
     incredibly useful to us. We need to iterate through the 
     data structure to extract the useful information.
    """
    #pprint(steelData)
    #pprint(steelData["density"])

    #This assumes list is only one level deep for compound properties
    for keys in steelData:
        unit = ""
        if "unit" in steelData[keys]:
            unit = steelData[keys]["unit"]
        #print keys + " = " + str(steelData[keys]["value"]) + " " + unit
Ejemplo n.º 3
0
from MaterialLibraryInterface import LibraryManager
import uuid
import ctypes
import os

if __name__ == "__main__": #run only if main
    
    #get path to public documents
    path = ctypes.c_wchar_p(chr(0x00) * 256)
    FOLDERID_Documents = ctypes.c_char_p(uuid.UUID("ED4824AF-DCE4-45A8-81E2-FC7965083634").bytes_le)
    ctypes.windll.shell32.SHGetKnownFolderPath(FOLDERID_Documents, 0, None, ctypes.byref(path))
    libraryLocation = os.path.join(path.value, "META Documents", "MaterialLibrary", "material_library.json")
    
    library_manager = LibraryManager(libraryLocation)
    mySet = set()
    for material in library_manager.data:
        materialData = library_manager.materialData(material)
        for keys in materialData:
            
            unit = ""
            if "unit" in materialData[keys]:
                unit = materialData[keys]["unit"]
            propTuple = keys, unit
            mySet.add(propTuple)
               
           
    propList = list(mySet)
    propList.sort()
    for prop in propList:
        propName, unit = prop
        print propName + ": " + unit
from MaterialLibraryInterface import LibraryManager
import uuid
import ctypes
import os

if __name__ == "__main__": #run only if main
    
    #get path to public documents
    path = ctypes.c_wchar_p(chr(0x00) * 256)
    FOLDERID_Documents = ctypes.c_char_p(uuid.UUID("ED4824AF-DCE4-45A8-81E2-FC7965083634").bytes_le)
    ctypes.windll.shell32.SHGetKnownFolderPath(FOLDERID_Documents, 0, None, ctypes.byref(path))
    libraryLocation = os.path.join(path.value, "META Documents", "MaterialLibrary", "material_library.json")
    
    library_manager = LibraryManager(libraryLocation)
    mySet = set()
    for material in library_manager.data:
        materialData = library_manager.materialData(material)
        for keys in materialData:
            
            unit = ""
            if "unit" in materialData[keys]:
                unit = materialData[keys]["unit"]
            propTuple = keys, unit
            mySet.add(propTuple)
               
           
    propList = list(mySet)
    propList.sort()
    for prop in propList:
        propName, unit = prop
        print propName + ": " + unit
Ejemplo n.º 5
0
def get_props_from_material_library(in_material_names_list,
                                    out_material_lib_props_dict):  # AnalysisMaterialProperties dictionary

    function_name = "get_props_from_material_library"

    # Open the material library
    try:
        with _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, r'Software\META', 0, _winreg.KEY_READ | _winreg.KEY_WOW64_32KEY) as key:
            META_PATH = _winreg.QueryValueEx(key, 'META_PATH')[0]

        materialLibInterfacePath = os.path.join(META_PATH, "bin", "Python27", "Lib", "site-packages", "material_library")

        sys.path.insert(0, materialLibInterfacePath)

        from MaterialLibraryInterface import LibraryManager

        path = ctypes.c_wchar_p(chr(0x00) * 256)
        FOLDERID_Documents = ctypes.c_char_p(uuid.UUID("ED4824AF-DCE4-45A8-81E2-FC7965083634").bytes_le)
        ctypes.windll.shell32.SHGetKnownFolderPath(FOLDERID_Documents, 0, None, ctypes.byref(path))
        materialLibPath = os.path.join(path.value, "META Documents", "MaterialLibrary", "material_library.json")

        library_manager = LibraryManager(materialLibPath)

    except Exception as e:
        raise CADExcep.CADError("Error, Function: " + function_name + ", Message: " + \
                                "Failed to locate/open the material library. Locate/open Error:  " + \
                                e.message)


    for material_name in in_material_names_list:
        out_material_lib_props_dict[material_name] = AnalysisMaterialProperties(material_name)
        try:
            material_data = library_manager.materialData(material_name)
        except Exception as e:
            raise CADExcep.CADError("Error, Function: " + function_name + ", Message: " +
                        "Failed to locate material " + material_name + " in material library. Error:  " +
                        e.message)


        """
        #replace zzz with the material property (e.g. replace zzz mechanical__ratio_poissons)
        # zzz
        if "zzz" in material_data:
            if ( material_data["zzz"]["value"]!="None" ):
                out_material_lib_props_dict[material_name].zzz = material_data["zzz"]["value"]
                if ("unit" in material_data["zzz"]):
                    out_material_lib_props_dict[material_name].zzz_unit = material_data["zzz"]["unit"]
                else:
                    out_material_lib_props_dict[material_name].zzz_unit = unit_utils.MECHANICAL_UNIT_NONE
                out_material_lib_props_dict[material_name].zzz_defined = True
        """

        # density
        if "density" in material_data:
            if (material_data["density"]["value"]!="None"):
                out_material_lib_props_dict[material_name].density = material_data["density"]["value"]
                if ("unit" in material_data["density"]):
                    out_material_lib_props_dict[material_name].density_unit = material_data["density"]["unit"]
                else:
                    out_material_lib_props_dict[material_name].density_unit = unit_utils.MECHANICAL_UNIT_NONE
                out_material_lib_props_dict[material_name].density_defined = True


        # mechanical__modulus_elastic
        if "mechanical__modulus_elastic" in material_data:
            if (material_data["mechanical__modulus_elastic"]["value"]!="None"):
                out_material_lib_props_dict[material_name].mechanical__modulus_elastic = material_data["mechanical__modulus_elastic"]["value"]
                if ("unit" in material_data["mechanical__modulus_elastic"]):
                    out_material_lib_props_dict[material_name].mechanical__modulus_elastic_unit = material_data["mechanical__modulus_elastic"]["unit"]
                else:
                    out_material_lib_props_dict[material_name].mechanical__modulus_elastic_unit = unit_utils.MECHANICAL_UNIT_NONE
                out_material_lib_props_dict[material_name].mechanical__modulus_elastic_defined = True
        

        # mechanical__ratio_poissons
        if "mechanical__ratio_poissons" in material_data:
            if (material_data["mechanical__ratio_poissons"]["value"]!="None"):
                out_material_lib_props_dict[material_name].mechanical__ratio_poissons = material_data["mechanical__ratio_poissons"]["value"]
                if ("unit" in material_data["mechanical__ratio_poissons"]):
                    out_material_lib_props_dict[material_name].mechanical__ratio_poissons_unit = material_data["mechanical__ratio_poissons"]["unit"]
                else:
                    out_material_lib_props_dict[material_name].mechanical__ratio_poissons_unit = unit_utils.MECHANICAL_UNIT_NONE
                out_material_lib_props_dict[material_name].mechanical__ratio_poissons_defined = True

        # mechanical__strength_tensile_yield
        if "mechanical__strength_tensile_yield" in material_data:
            if (material_data["mechanical__strength_tensile_yield"]["value"]!="None"):
                out_material_lib_props_dict[material_name].mechanical__strength_tensile_yield = material_data["mechanical__strength_tensile_yield"]["value"]
                if ("unit" in material_data["mechanical__strength_tensile_yield"]):
                    out_material_lib_props_dict[material_name].mechanical__strength_tensile_yield_unit = material_data["mechanical__strength_tensile_yield"]["unit"]
                else:
                    out_material_lib_props_dict[material_name].mechanical__strength_tensile_yield_unit = unit_utils.MECHANICAL_UNIT_NONE
                out_material_lib_props_dict[material_name].mechanical__strength_tensile_yield_defined = True

        # mechanical__strength_tensile_ultimate
        if "mechanical__strength_tensile_ultimate" in material_data:
            if (material_data["mechanical__strength_tensile_ultimate"]["value"]!="None"):
                out_material_lib_props_dict[material_name].mechanical__strength_tensile_ultimate = material_data["mechanical__strength_tensile_ultimate"]["value"]
                if ("unit" in material_data["mechanical__strength_tensile_ultimate"]):
                    out_material_lib_props_dict[material_name].mechanical__strength_tensile_ultimate_unit = material_data["mechanical__strength_tensile_ultimate"]["unit"]
                else:
                    out_material_lib_props_dict[material_name].mechanical__strength_tensile_ultimate_unit = unit_utils.MECHANICAL_UNIT_NONE
                out_material_lib_props_dict[material_name].mechanical__strength_tensile_ultimate_defined = True

        # mechanical__strength_bearing_yield
        if "mechanical__strength_bearing_yield" in material_data:
            if (material_data["mechanical__strength_bearing_yield"]["value"]!="None"):
                out_material_lib_props_dict[material_name].mechanical__strength_bearing_yield = material_data["mechanical__strength_bearing_yield"]["value"]
                if ("unit" in material_data["mechanical__strength_bearing_yield"]):
                    out_material_lib_props_dict[material_name].mechanical__strength_bearing_yield_unit = material_data["mechanical__strength_bearing_yield"]["unit"]
                else:
                    out_material_lib_props_dict[material_name].mechanical__strength_bearing_yield_unit = unit_utils.MECHANICAL_UNIT_NONE
                out_material_lib_props_dict[material_name].mechanical__strength_bearing_yield_defined = True
            
            
        # mechanical__strength_bearing_ultimate
        if "mechanical__strength_bearing_ultimate" in material_data:
            if (material_data["mechanical__strength_bearing_ultimate"]["value"]!="None"):
                out_material_lib_props_dict[material_name].mechanical__strength_bearing_ultimate = material_data["mechanical__strength_bearing_ultimate"]["value"]
                if ("unit" in material_data["mechanical__strength_bearing_ultimate"]):
                    out_material_lib_props_dict[material_name].mechanical__strength_bearing_ultimate_unit = material_data["mechanical__strength_bearing_ultimate"]["unit"]
                else:
                    out_material_lib_props_dict[material_name].mechanical__strength_bearing_ultimate_unit = unit_utils.MECHANICAL_UNIT_NONE
                out_material_lib_props_dict[material_name].mechanical__strength_bearing_ultimate_defined = True
            
        # mechanical__strength_shear
        if "mechanical__strength_shear" in material_data:
            if (material_data["mechanical__strength_shear"]["value"]!="None"):
                out_material_lib_props_dict[material_name].mechanical__strength_shear = material_data["mechanical__strength_shear"]["value"]
                if ("unit" in material_data["mechanical__strength_shear"]):
                    out_material_lib_props_dict[material_name].mechanical__strength_shear_unit = material_data["mechanical__strength_shear"]["unit"]
                else:
                    out_material_lib_props_dict[material_name].mechanical__strength_shear_unit = unit_utils.MECHANICAL_UNIT_NONE
                out_material_lib_props_dict[material_name].mechanical__strength_shear_defined = True
            
        # mechanical__strength_fatigue
        if "mechanical__strength_fatigue" in material_data:
            if (material_data["mechanical__strength_fatigue"]["value"]!="None"):
                out_material_lib_props_dict[material_name].mechanical__strength_fatigue = material_data["mechanical__strength_fatigue"]["value"]
                if ("unit" in material_data["mechanical__strength_fatigue"]):
                    out_material_lib_props_dict[material_name].mechanical__strength_fatigue_unit = material_data["mechanical__strength_fatigue"]["unit"]
                else:
                    out_material_lib_props_dict[material_name].mechanical__strength_fatigue_unit = unit_utils.MECHANICAL_UNIT_NONE
                out_material_lib_props_dict[material_name].mechanical__strength_fatigue_defined = True

        # mechanical__strength_fatigue_cycles
        if "mechanical__strength_fatigue_cycles" in material_data:
            if (material_data["mechanical__strength_fatigue_cycles"]["value"]!="None"):
                out_material_lib_props_dict[material_name].mechanical__strength_fatigue_cycles = material_data["mechanical__strength_fatigue_cycles"]["value"]
                if ("unit" in material_data["mechanical__strength_fatigue_cycles"]):
                    out_material_lib_props_dict[material_name].mechanical__strength_fatigue_cycles_unit = material_data["mechanical__strength_fatigue_cycles"]["unit"]
                else:
                    out_material_lib_props_dict[material_name].mechanical__strength_fatigue_cycles_unit = unit_utils.MECHANICAL_UNIT_CYCLE
                out_material_lib_props_dict[material_name].mechanical__strength_fatigue_cycles_defined = True

        # thermal__coefficient_expansion_linear
        if "thermal__coefficient_expansion_linear" in material_data:
            if (material_data["thermal__coefficient_expansion_linear"]["value"]!="None"):
                out_material_lib_props_dict[material_name].thermal__coefficient_expansion_linear = material_data["thermal__coefficient_expansion_linear"]["value"]
                if ("unit" in material_data["thermal__coefficient_expansion_linear"]):
                    out_material_lib_props_dict[material_name].thermal__coefficient_expansion_linear_unit = material_data["thermal__coefficient_expansion_linear"]["unit"]
                else:
                    out_material_lib_props_dict[material_name].thermal__coefficient_expansion_linear_unit = unit_utils.MECHANICAL_UNIT_NONE
                out_material_lib_props_dict[material_name].thermal__coefficient_expansion_linear_defined = True

        # thermal__conductivity
        if "thermal__conductivity" in material_data:
            if (material_data["thermal__conductivity"]["value"]!="None"):
                out_material_lib_props_dict[material_name].thermal__conductivity = material_data["thermal__conductivity"]["value"]
                if ("unit" in material_data["thermal__conductivity"]):
                    out_material_lib_props_dict[material_name].thermal__conductivity_unit = material_data["thermal__conductivity"]["unit"]
                else:
                    out_material_lib_props_dict[material_name].thermal__conductivity_unit = unit_utils.MECHANICAL_UNIT_NONE
                out_material_lib_props_dict[material_name].thermal__conductivity_defined = True

        # thermal__capacity_specific_heat
        if "thermal__capacity_specific_heat" in material_data:
            if (material_data["thermal__capacity_specific_heat"]["value"]!="None"):
                out_material_lib_props_dict[material_name].thermal__capacity_specific_heat = material_data["thermal__capacity_specific_heat"]["value"]
                if ("unit" in material_data["thermal__capacity_specific_heat"]):
                    out_material_lib_props_dict[material_name].thermal__capacity_specific_heat_unit = material_data["thermal__capacity_specific_heat"]["unit"]
                else:
                    out_material_lib_props_dict[material_name].thermal__capacity_specific_heat_unit = unit_utils.MECHANICAL_UNIT_NONE
                out_material_lib_props_dict[material_name].thermal__capacity_specific_heat_defined = True

        """