Ejemplo n.º 1
0
def parseMaterialLibrary():
    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")

    sys.path.insert(0, MATERIALLIBINTERFACEPATH)
    import sitecustomize
    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)

    return LIBRARY_MANAGER
Ejemplo n.º 2
0
This file is a demo for the LibraryManager methods and
 demonstrates their usage. Many of the print statements
 are commented out, so that you can comment them back in
 and see what they do. 
"""

if __name__ == "__main__": #run only if main
    
    """
    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 
# following conditions:

# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Data.

# THE DATA IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS, SPONSORS, DEVELOPERS, CONTRIBUTORS, OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE DATA OR THE USE OR OTHER DEALINGS IN THE DATA.  

from MaterialLibraryInterface import LibraryManager
import getpass
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)
    username = raw_input("Username: "******"Password: ")
    matList = library_manager.checkVersion(username, password)
Ejemplo n.º 4
0
from MaterialLibraryInterface import LibraryManager
import getpass
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)
    username = raw_input("Username: "******"Password: ")
    matList = library_manager.updateJSON(username, password)
Ejemplo n.º 5
0
from MaterialLibraryInterface import LibraryManager
import getpass
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)
    username = raw_input("Username: "******"Password: ")
    matList = library_manager.updateJSON(username, password)
Ejemplo n.º 6
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)
    matList = library_manager.listAllMaterials()
    matList.sort()
    for material in matList:
        print material
    
Ejemplo n.º 7
0
from MaterialLibraryInterface import LibraryManager
import getpass
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)
    username = raw_input("Username: "******"Password: ")
    matList = library_manager.checkVersion(username, password)
Ejemplo n.º 8
0
"""
This file is a demo for the LibraryManager methods and
 demonstrates their usage. Many of the print statements
 are commented out, so that you can comment them back in
 and see what they do. 
"""

if __name__ == "__main__":  #run only if main
    """
    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)
# WITH THE DATA OR THE USE OR OTHER DEALINGS IN THE DATA.  

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:
Ejemplo n.º 10
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)
    matList = library_manager.listAllMaterials()
    matList.sort()
    for material in matList:
        print material
Ejemplo n.º 11
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
Ejemplo n.º 12
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

        """