assegnazione materiale da macro

Barone_Birra

Utente registrato
Professione: Ingegnere
Software: solidedge
Regione: lombardia
#1
Buongiorno a tutti sono nuovo del forum, ho provato a cercare ma non ho trovato soluzione.
Da un file excel tramite macro VBA genero dei file .par (ogni riga è un file su cui stanno tutte le variabili che assegno al mio modello). per l'assegnazione delle variabili tutto ok, ora in una cella di excel ho il nome del materiale che corrisponde esatto alla libreria che uso in SE. Quale è l'istruzione VBA per assegnare il materiale al modello di SE?
 

Be_on_edge

Moderatore
Staff Forum
Professione: Progettazione
Software: Solid Edge
Regione: Emilia Romagna
#2
Ciao,

il metodo da chiamare è "ApplyMaterialToDoc" dell'oggetto MatTable.
Come argomenti devi passargli il documento, il nome del materiale e il nome della libreria che contiene il materiale.

esempio in vb.net
Codice:
        Dim objApp As SolidEdgeFramework.Application = Nothing
        Dim objDocument As SolidEdgePart.PartDocument = Nothing
        Dim objMatTable As SolidEdgeFramework.MatTable = Nothing
        
        Dim strLibrary As String = "Materials"
        Dim strMaterial As String = "Copper"

            ' Get SE handle
            objApp = GetObject("SolidEdge.Application")
            objDocument = objApp.ActiveDocument
            
            ' Get material table object handle
            objMatTable = objApp.GetMaterialTable()

            ' Set active document handle
            objMatTable.SetActiveDocument(objDocument)
            objMatTable.ApplyMaterialToDoc(objDocument, strMaterial, strLibrary)
 

Barone_Birra

Utente registrato
Professione: Ingegnere
Software: solidedge
Regione: lombardia
#3
Ciao,

il metodo da chiamare è "ApplyMaterialToDoc" dell'oggetto MatTable.
Come argomenti devi passargli il documento, il nome del materiale e il nome della libreria che contiene il materiale.

esempio in vb.net
Codice:
        Dim objApp As SolidEdgeFramework.Application = Nothing
        Dim objDocument As SolidEdgePart.PartDocument = Nothing
        Dim objMatTable As SolidEdgeFramework.MatTable = Nothing
       
        Dim strLibrary As String = "Materials"
        Dim strMaterial As String = "Copper"

            ' Get SE handle
            objApp = GetObject("SolidEdge.Application")
            objDocument = objApp.ActiveDocument
           
            ' Get material table object handle
            objMatTable = objApp.GetMaterialTable()

            ' Set active document handle
            objMatTable.SetActiveDocument(objDocument)
            objMatTable.ApplyMaterialToDoc(objDocument, strMaterial, strLibrary)
Grazie mille funziona perfettamente, unica cosa segnalo che ho dovuto scrivere "set" davanti alla riga del "getmaterialtable()"