Risultati da 1 a 6 di 6
  1. #1
    Utente Standard
    Iscritto dal
    2013
    Messaggi
    135
    Professione
    Progettista
    Regione
    Marche
    Software
    Solid Edge ST8

    Predefinito Macro per compilare proprietÓ personalizzata con variabili

    Ciao, mi ricollego a una vecchia discussione ( http://www.cad3d.it/forum1/threads/7...=nome+progetto ) perchÚ devo fare qualcosa di analogo a ci˛ che si chiedeva; vorrei compilare in automatico una proprietÓ personalizzata combinando valori di variabili esposte ad altre propietÓ personalizzate e a stringhe di testo.

    Utilizzando questo codice:
    Citazione Originariamente Scritto da Be_on_edge Visualizza Messaggio
    Da codice:



    In questo esempio prendo la proprietÓ "Titolo" ci aggiungo "Lunghezza =" e inserisco il valore di una proprietÓ custom di nome "L".

    Quindi avendo:

    Titolo = Perno
    L = 49 mm

    Nome progetto sarÓ: Perno Lunghezza = 49mm

    Ciao
    sono arrivato a compilarla ma mi rimangono 2 problemi:

    1. eliminare dalle variabili esposte la virgola, i 2 decimali e l'unitÓ di misura
    2. fare in modo che la compilazione mi parta in automatico quando salvo il file (nel vecchio thread B_o_E diceva che si pu˛ fare, ma io non so come farlo!


    Qualcuno mi aiuta? Grazie.

    Matteo

  2. #2
    Moderatore L'avatar di Be_on_edge
    Iscritto dal
    2007
    Messaggi
    2758
    Professione
    Progettazione
    Regione
    Emilia Romagna
    Software
    Solid Edge

    Predefinito

    Non si vede il codice che utilizzi.

    Per eliminare i decimali puoi tagliare la stringa dalla posizione della "," in poi.

    Per far partire la compilazione in automatico devi intercettare l'evento "BeforeDocumentSave" di SolidEdge e ad ogni suo verificarsi fai eseguire il tuo codice.
    Francesco
    Cintura nera di solid edge

  3. #3
    Utente Standard
    Iscritto dal
    2013
    Messaggi
    135
    Professione
    Progettista
    Regione
    Marche
    Software
    Solid Edge ST8

    Predefinito

    Grazie della risposta.
    Il codice non si vede perchÚ non l'avevo messo

    Dim objApp As SolidEdgeFramework.Application
    Dim objDoc As SolidEdgePart.PartDocument
    Dim valore As String

    Sub Macro_prova()

    Set objApp = GetObject(, "SolidEdge.Application")
    Set objDoc = objApp.ActiveDocument

    valore = "Vite " + objDoc.Properties("Custom").Item("Tipo_vite").Valu e + " M" + objDoc.Properties("Custom").Item("d").Value + "x" + objDoc.Properties("Custom").Item("L").Value + " cl." + objDoc.Properties("Custom").Item("classe_vite").Va lue
    objDoc.Properties("Custom").Item("Descrizione").Va lue = valore
    End Sub
    come faccio a "tagliare" la stringhe delle variabili "d" e "L"?

  4. #4
    Moderatore L'avatar di Be_on_edge
    Iscritto dal
    2007
    Messaggi
    2758
    Professione
    Progettazione
    Regione
    Emilia Romagna
    Software
    Solid Edge

    Predefinito

    Esempio di come utilizzare gli eventi (ne ho messi solo alcuni)

    Codice:
    Dim objSE As SolidEdgeFramework.Application
    Dim WithEvents objAppEvents As SolidEdgeFramework.ApplicationEvents
    
    Private Sub Form_Load()
        Set objSE = GetObject(, "solidedge.application")
        Set objAppEvents = objSE.ApplicationEvents
    End Sub
    
    Private Sub objAppEvents_AfterCommandRun(ByVal theCommandID As Long)
        'fai quello che devi fare dopo l'esecuzione del comando "the CommandID"
    End Sub
    
    Private Sub objAppEvents_AfterDocumentOpen(ByVal theDocument As Object)
        'fai quello che devi fare dopo l'apertura del file
    End Sub
    
    Private Sub objAppEvents_BeforeDocumentSave(ByVal theDocument As Object)
        'fai quello che devi fare prima del salvataggio
    End Sub
    Francesco
    Cintura nera di solid edge

  5. #5
    Moderatore L'avatar di Be_on_edge
    Iscritto dal
    2007
    Messaggi
    2758
    Professione
    Progettazione
    Regione
    Emilia Romagna
    Software
    Solid Edge

    Predefinito

    Codice:
    d = objDoc.Properties("Custom").Item("d").Value
    L = objDoc.Properties("Custom").Item("L").Value
    
    d = Left(d, InStr(d, ",") - 1)
    L = Left(L, InStr(L, ",") - 1)
    con questo metodo per˛ tronchi via eventuali decimali

    forse la cosa migliore Ŕ utilizzare la funzione "Round" di VB ed arrotondare il valore


    Codice:
    d = objDoc.Properties("Custom").Item("d").Value
    L = objDoc.Properties("Custom").Item("L").Value
    
    d = Replace(d, " mm", "")
    L = Replace(L, " mm", "")
    
    d = Round(d, 0)
    L = Round(L, 0)
    Francesco
    Cintura nera di solid edge

  6. #6
    Utente Standard
    Iscritto dal
    2013
    Messaggi
    135
    Professione
    Progettista
    Regione
    Marche
    Software
    Solid Edge ST8

    Predefinito

    Ok per decimali e unitÓ di misura; modificata e funzionante.
    Per gli eventi a prima vista non ci ho capito niente, ma studier˛!

    Grazie mille, prezioso come sempre!


  • Discussioni Simili

    1. Macro personalizzata per distinta base su catia v5
      Di zippo73 nel forum CATIA V5 Programmazione
      Risposte: 0
      Ultimo Messaggio: 28-05-2014, 19: 33
    2. Risposte: 4
      Ultimo Messaggio: 07-02-2014, 10: 47
    3. ProprietÓ Personalizzata in bollatura
      Di Loutenr1 nel forum Solidworks
      Risposte: 2
      Ultimo Messaggio: 20-02-2013, 18: 21
    4. Risposte: 4
      Ultimo Messaggio: 01-06-2012, 14: 53
    5. Da distinta materiali a proprietÓ personalizzata
      Di AndreaL nel forum Solidworks
      Risposte: 19
      Ultimo Messaggio: 17-05-2011, 12: 28

    Segnalibri

    Segnalibri

    Permessi di Scrittura

    • Tu non puoi inviare nuove discussioni
    • Tu non puoi inviare risposte
    • Tu non puoi inviare allegati
    • Tu non puoi modificare i tuoi messaggi
    •  





    CAD3D.it - la community dei progettisti