Risultati da 1 a 9 di 9
  1. #1
    Utente Standard L'avatar di Davimont
    Iscritto dal
    2007
    Messaggi
    462
    Professione
    Disegnatore meccanico Fai da te.
    Regione
    Lombardia
    Software
    Solid Edge ST8

    Predefinito Uso di Spy for Solid Edge

    Ragazzi sono tre giorni che cerco di capire come usare il programma ma non ne vengo a capo.
    Sto modificando una macro esistente per arrivare a salvare un'elenco di file in una cartella.
    Seleziono la mia tabella in draft, vado in Spy e seleziono "ActiveDocument" "Properties" "Parent" e vedo il percorso dove risiede i mio dft.
    Non riesco a mettere quel percorso in una variabile
    Il percorso ha come puntatore "Path" che fa parte del membro "SolidEdgeDraft.DraftDocument" e quindi pensavo di poter scrivere
    Percorso=SolidEdgeDraft.DraftDocument.Path ma mi illudevo.

    Non mi serve avere il codice per fare un copia e incolla, vorrei capire come estrapolare quelle informazioni e elaborarle.

    Grazie.
    Imparare è un'esperienza; tutto il resto è solo informazione. A. Einstein

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

    Predefinito

    Citazione Originariamente Scritto da Davimont Visualizza Messaggio
    Ragazzi sono tre giorni che cerco di capire come usare il programma ma non ne vengo a capo.
    Sto modificando una macro esistente per arrivare a salvare un'elenco di file in una cartella.
    Seleziono la mia tabella in draft, vado in Spy e seleziono "ActiveDocument" "Properties" "Parent" e vedo il percorso dove risiede i mio dft.
    Non riesco a mettere quel percorso in una variabile
    Il percorso ha come puntatore "Path" che fa parte del membro "SolidEdgeDraft.DraftDocument" e quindi pensavo di poter scrivere
    Percorso=SolidEdgeDraft.DraftDocument.Path ma mi illudevo.

    Non mi serve avere il codice per fare un copia e incolla, vorrei capire come estrapolare quelle informazioni e elaborarle.

    Grazie.
    Ma nella tua macro SolidEdgeDraft è stato istanziato come ActiveDocument ?
    Francesco
    Cintura nera di solid edge

  3. #3
    Utente Standard L'avatar di Davimont
    Iscritto dal
    2007
    Messaggi
    462
    Professione
    Disegnatore meccanico Fai da te.
    Regione
    Lombardia
    Software
    Solid Edge ST8

    Predefinito

    Sono partito dalla macro di Vespa (spero non me ne voglia) per poi aggiungere o modificare altro codice. Ho preso qualche riga anche dal tuo Apri draft.

    All'inizio c'è
    Dim objApp 'As SolidEdgeFramework.Application
    Dim objDoc 'As SolidEdgeDraft.DraftDocument
    Dim objSel
    Intendi questo?
    Imparare è un'esperienza; tutto il resto è solo informazione. A. Einstein

  4. #4
    Utente Standard
    Iscritto dal
    2008
    Messaggi
    891
    Professione
    disegnatore
    Regione
    Romagna
    Software
    Solid Edge

    Predefinito

    "Chi ben comincia è già a metà dell'opera".
    Forse è meglio che resetti e riparti da zero, lascia stare indicazioni preecedenti strettamente dettagliate a un problema specifico.
    Apro un nuovo Thread, dopo che lo hai letto, esponi cosa stai usando e dove ti sei arenato.
    ok?

  5. #5
    Utente Standard L'avatar di Davimont
    Iscritto dal
    2007
    Messaggi
    462
    Professione
    Disegnatore meccanico Fai da te.
    Regione
    Lombardia
    Software
    Solid Edge ST8

    Predefinito

    Ciao a tutti.
    Continuando a parlare si Spy For SE,
    sto cercando di capire come funziona e giocandoci un pò qualcosa ho capito (poco poco )
    Sempre partendo dallo script di Vespa QUI arrivo al punto di processare le righe della tabella e per ogni riga voglio elaborare il campo "Titolo" del rispettivo componente.

    Per testare l'estrazione dei dati sto usando questo semplice codice sempre scritto da Vespa dove personalizzo ogni volta il valore di objDoc

    Dim objApp
    Dim objDoc
    Set objApp = GetObject(, "SolidEdge.Application")
    Set objDoc = objApp.Activeselectset.parent
    MsgBox( objDoc.caption )
    Set objApp = Nothing
    Set objDoc = Nothing

    Ho evidenziato un'elenco parti e avviato Spy. Ho girato per una buona mezzora senza venirne a capo.

    Non riesco ad estrarre il campo Titolo delle singole righe.

    Portate pazienza non riesco a capire l'iter da seguire.
    Imparare è un'esperienza; tutto il resto è solo informazione. A. Einstein

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

    Predefinito

    Citazione Originariamente Scritto da Davimont Visualizza Messaggio

    Non riesco ad estrarre il campo Titolo delle singole righe.
    La riga, a meno che non sia la prima non ha titolo, piuttosto ce l'ha la colonna.
    Detto questo devi andare a cercare il titolo della colonna in cui ti trovi.

    Ciao
    Francesco
    Cintura nera di solid edge

  7. #7
    Utente Standard L'avatar di Davimont
    Iscritto dal
    2007
    Messaggi
    462
    Professione
    Disegnatore meccanico Fai da te.
    Regione
    Lombardia
    Software
    Solid Edge ST8

    Predefinito

    Scusa, mi sono spiegato male.
    Mettiamo caso di avere un'elenco con una sola voce riferita al particolare "tappo penna.par"
    Il file par ha nelle sue proprietà del file il campo "Titolo" nel tab "Sommario"

    Io voglio che la macro, leggendo la riga della tabella in draft, vada a leggere il campo "Titolo" del file 3D.

    Tutto questo a fine didattico.
    Se poi ingrano ho in mente una macro da fare.
    Imparare è un'esperienza; tutto il resto è solo informazione. A. Einstein

  8. #8
    Utente Standard
    Iscritto dal
    2008
    Messaggi
    891
    Professione
    disegnatore
    Regione
    Romagna
    Software
    Solid Edge

    Predefinito

    Set objDoc = objApp.Activeselectset.parent
    non credo di averlo mai scritto.

    Procediamo per ordine.

    Hai un draft aperto e attivo, vuoi processare l'Elenco Parti per estrapolare per ogni riga alcune informazione del ripettivo file.

    Da programmazione per raggiungere l'oggetto Elenco Parti di tuo interessa hai almeno due strade, quindi dovrai immaginarti la situazione più ricorrente del tuo utente, quali passaggi preferirà fare o non fare, e scegliere ora su quale strada proseguire:

    1) metodo classico e lungo preferibile se presente un solo elenco presente nel draft, oppure per processare tutti gli elenchi presenti, no click dell'utente
    Cattura1.PNG
    Codice:
    Set objApp = GetObject(, "SolidEdge.Application") ' in Spy lo vedi come la radice "Application"
    Set objdoc = objApp.ActiveDocument
    Set Elenco = objdoc.PartLists.Item(1) ' se si vuole processare solo il primo elenco
    'se invece si vogliono processare tutti gli elenchi, uno per uno, l'ultima riga diventa:
    For Each Elenco in objdoc.PartLists
      ' ora il tuo oggetto Elenco è il part list in corso di elaborazione
      ' ...
    Next
    2) metodo alternativo che richiede all'utente di pre selezionare l'elenco (o gli elenchi) che mi interessano
    Cattura2.PNG
    Questa volta non mi interessa di istanziare l'objDoc cioè il draft, perchè da Spy si vede che la selezione corrente non è discentente (in senso stretto e univoco) del documento attivo.
    Codice:
    Set objApp = GetObject(, "SolidEdge.Application") ' in Spy lo vedi come la radice "Application"
    Set objSel = objApp.ActiveSelectSet
    	
    If objSel.Count = 0 Then
    	MsgBox "Non è stato selezionato nulla. Selezionare un Elenco Parte o più. Termino." , vbCritical , Title
    	Exit Sub
    End If
    
    For Each PezzoDiTabella In objSel
        msgbox TypeName(PezzoDiTabella) 
        If TypeName(PezzoDiTabella) = "TablePage" Then ' in questo modo filtro atri oggetti selezionati (quote, linee,...) che non mi interessano
            Set Elenco = PezzoDiTabella.Parent
            ' ora il tuo oggetto Elenco è il part list in corso di elaborazione
            ' ...
        End If
    Next
    3) ovviamente si possono concatenare i primi due metodi, puoi provarci a scopo didattico come versione v.2.0 : se ci sono più elenchi in un file allora verifica se ci sono degli oggetti selezionati, se l'oggetto selezionato è di tipo "Elenco Parti" .... eccetera.
    Oppure si scrive "Per ogni Elenco in PartLists esegui" . Per questo è importante analizzare il contesto iniziale.

    Nota riguardo al metodo 1) e 2) correlati all'uso di Spy.
    Mettiamo l'esempio che vuoi processare i richiami di proprietà, ma non sai in inglese come il programmatore li ha chiamati. NON riuscirai a trovarli con il metodo 1) se non conosci il nome. Se invece apri draft, selezioni un richiamo, poi con Spy vai a vedere cosa c'è in : Application/ActiveSelectSet/Item(1)
    trovi il tipo di oggetto scritto in verde. (Un Refresh in Spy non fa mai male) , che è ____ ? Rispondi tu :)

    Per quanto riguarda la seconda parte ("per ogni riga dell'elenco leggi la proprietà dal relativo file"), ti suggerisco di analizzare la macro che sopra hai citato, c'è tutto.

    L'unico gap dovrebbe essere che, come ho scritto su senza troppo commentare, quando selezioni con il mouse un elencoparti stai selezionando un "pezzo di tabella" di un elencoparti (infatti gli elenchi lunghi vengono divisi su più pezzi).
    Se si raggiunge l'elenco da Application/ActiveDocument/PartLists/Item(1) suppongo di no, ma è da verificare.

    Le Proprietà sono suddivise in varie Schede:
    Custom = Personalizzate
    SummaryInformation = Sommario
    eccetera,

    Per questo elenco apri in solidedge un 3D , con Spy fai un Refresh poi cerca la proprietà di tuo interesse partendo da Application/ActiveDocument/Proprieties ; mi ripeto: come documento attivo il 3D, non il draft di prima.

  9. Il seguente utente ha ringraziato vespa_83 per questo post

    Davimont (16-09-2016)

  10. #9
    Utente Standard L'avatar di Davimont
    Iscritto dal
    2007
    Messaggi
    462
    Professione
    Disegnatore meccanico Fai da te.
    Regione
    Lombardia
    Software
    Solid Edge ST8

    Predefinito

    Ciao Vespa
    la tua pazienza è ammirabile. Sono 2 ore che studio quello che hai scritto e faccio prove. Poco alla volta ci arrivo ma mi rendo conto che non è così facile.
    Grazie di nuovo per le info e i pezzi di codice.
    Imparare è un'esperienza; tutto il resto è solo informazione. A. Einstein


  • Discussioni Simili

    1. Risposte: 4
      Ultimo Messaggio: 15-06-2015, 18: 58
    2. Risposte: 36
      Ultimo Messaggio: 23-03-2010, 08: 48
    3. Risposte: 8
      Ultimo Messaggio: 01-07-2009, 11: 10
    4. Risposte: 2
      Ultimo Messaggio: 17-03-2008, 17: 42
    5. [Recuperato] Solid Works o Solid Edge ?Feature cam o Edge cam o Esprit?
      Di Oldwarper nel forum CAD meccanici a confronto
      Risposte: 3
      Ultimo Messaggio: 19-02-2008, 16: 53

    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