Pagina 2 di 8 PrimaPrima 1234 ... UltimaUltima
Risultati da 11 a 20 di 73
  1. #11
    Utente Standard L'avatar di Catafratto
    Iscritto dal
    2011
    Messaggi
    809
    Professione
    Disegnatore/progettista
    Regione
    Veneto
    Software
    Inventor 2016

    Predefinito

    Prima di far partire la macro hai fatto il "salva copia con nome" nei vari formati dxf e dwg (ok, quest'ultimo a te inutile) manualmente come ti avevo indicato? L'operazione crea dei file di inizializzazione necessari per le esportazioni successive alla prima.
    Spesso astuzia ed intelligenza sono molto più efficaci dell'ottusa forza bruta: ma non ho proprio tempo di cercare qualcun alltro...

  2. #12
    Utente Standard L'avatar di Catafratto
    Iscritto dal
    2011
    Messaggi
    809
    Professione
    Disegnatore/progettista
    Regione
    Veneto
    Software
    Inventor 2016

    Predefinito

    Ecco la versione aggiornata, si può eliminare quello che non serve: è racchiuso tra i commenti (Es. DWG ... FINE DWG)

    La macro è "garantita" in quanto poco più di un copia incolla di quanto contenuto nell'help di Inventor stesso: se non funziona dev'essere per un particolare da poco, forse qualcun altro può fare un test (confermo che a me va tutto)

    P.S.
    La cartella di destinazione deve esistere già, ed il nome può cambiare da computer a computer: nella variabile sExportPath mettete quella che preferite.

    Codice:
    Public Sub PubblicaDXFDWGPDF()
        
        ' Obtain reference to drawing
        Dim oDoc As Document
        Set oDoc = ThisApplication.ActiveDocument
        
        
        ' DESTINATION FOLDER
        ' ---------------------------------------------------
        Dim sExportPath As String
        sExportPath = "C:\Users\Utente\Desktop\DWG-DXF-PDF\"
        ' ---------------------------------------------------
        
        If oDoc.DocumentType <> kDrawingDocumentObject Then
            MsgBox ("Deve essere aperta una tavola")
            Exit Sub
        End If
        
        ' Get the filename with no path
        Dim sFileName As String
        sFileName = sExportPath & IsolaNome(oDoc.FullFileName, True)
        
        ' Get the DWG translator Add-In.
        Dim DWGAddIn As TranslatorAddIn
        Set DWGAddIn = ThisApplication.ApplicationAddIns.ItemById("{C24E3AC2-122E-11D5-8E91-0010B541CD80}")
    
        ' Get the DXF translator Add-In.
        Dim DXFAddIn As TranslatorAddIn
        Set DXFAddIn = ThisApplication.ApplicationAddIns.ItemById("{C24E3AC4-122E-11D5-8E91-0010B541CD80}")
        
        ' Get the PDF translator Add-In.
        Dim PDFAddIn As TranslatorAddIn
        Set PDFAddIn = ThisApplication.ApplicationAddIns.ItemById("{0AC6FD96-2F4D-42CE-8BE0-8AEA580399E4}")
        
        Dim strIniFile As String
        
        
        ' Common init
        ' Create a Context object
        Dim oContext As TranslationContext
        Set oContext = ThisApplication.TransientObjects.CreateTranslationContext
        oContext.Type = kFileBrowseIOMechanism
          
        ' Create a NameValueMap object
        Dim oOptions As NameValueMap
        Set oOptions = ThisApplication.TransientObjects.CreateNameValueMap
    
        ' Create a DataMedium object
        Dim oDataMedium As DataMedium
        Set oDataMedium = ThisApplication.TransientObjects.CreateDataMedium
    
        ' ---------------------------------------------------------------------------
        ' DWG
        ' -------------------------------
        
        ' Check whether the translator has 'SaveCopyAs' options
        If DWGAddIn.HasSaveCopyAsOptions(oDoc, oContext, oOptions) Then
            ' File with exportation options
            strIniFile = "C:\tempDWGOut.ini"
            ' Create the name-value that specifies the ini file to use.
            oOptions.Value("Export_Acad_IniFile") = strIniFile
        End If
    
        'Set the destination file name
        oDataMedium.filename = sFileName & ".dwg"
    
    
        'Publish document.
        Call DWGAddIn.SaveCopyAs(oDoc, oContext, oOptions, oDataMedium)
        
        ' -------------------------------
        ' FINE DWG
        ' ---------------------------------------------------------------------------
        
        
        ' ---------------------------------------------------------------------------
        ' DXF
        ' -------------------------------
        
        ' Check whether the translator has 'SaveCopyAs' options
        If DXFAddIn.HasSaveCopyAsOptions(oDoc, oContext, oOptions) Then
        
            ' File with exportation options
            strIniFile = "C:\tempDXFOut.ini"
    
            ' Create the name-value that specifies the ini file to use.
            oOptions.Value("Export_Acad_IniFile") = strIniFile
        End If
    
        'Set the destination file name
        oDataMedium.filename = sFileName & ".dxf"
    
        'Publish document.
        Call DXFAddIn.SaveCopyAs(oDoc, oContext, oOptions, oDataMedium)
        ' -------------------------------
        ' FINE DXF
        ' ---------------------------------------------------------------------------
        
        
        ' ---------------------------------------------------------------------------
        ' PDF
        ' -------------------------------
    
        ' Check whether the translator has 'SaveCopyAs' options
        If PDFAddIn.HasSaveCopyAsOptions(oDoc, oContext, oOptions) Then
    
            ' Options for drawings...
    
            oOptions.Value("All_Color_AS_Black") = 0
    
            'oOptions.Value("Remove_Line_Weights") = 0
            'oOptions.Value("Vector_Resolution") = 400
            'oOptions.Value("Sheet_Range") = kPrintAllSheets
            'oOptions.Value("Custom_Begin_Sheet") = 2
            'oOptions.Value("Custom_End_Sheet") = 4
        End If
    
        'Set the destination file name
        oDataMedium.filename = sFileName & ".pdf"
    
    
        'Publish document.
        Call PDFAddIn.SaveCopyAs(oDoc, oContext, oOptions, oDataMedium)
        ' -------------------------------
        ' FINE PDF
        ' ---------------------------------------------------------------------------
    End Sub
    Spesso astuzia ed intelligenza sono molto più efficaci dell'ottusa forza bruta: ma non ho proprio tempo di cercare qualcun alltro...

  3. #13
    Utente Junior
    Iscritto dal
    2009
    Messaggi
    23
    Professione
    Progettista
    Regione
    Lombardia
    Software
    Inventor 2013

    Predefinito

    Boooh...
    Dunque apro un .idw
    vado in strumenti ->Editor di Visual Basic e seguo tutte le istruzioni che hai messo nel file "come copiare le macro.txt"
    Eseguo il salvataggio ed esco da VB
    Faccio una Salva copia con nome in DXF
    Faccio una Salva copia con nome in PDF

    Poi avvio la macro.

  4. #14
    Utente Junior
    Iscritto dal
    2009
    Messaggi
    23
    Professione
    Progettista
    Regione
    Lombardia
    Software
    Inventor 2013

    Predefinito

    E mi esce questo:
    Immagini Allegate Immagini Allegate

  5. #15
    Utente Standard L'avatar di Catafratto
    Iscritto dal
    2011
    Messaggi
    809
    Professione
    Disegnatore/progettista
    Regione
    Veneto
    Software
    Inventor 2016

    Predefinito

    In fondo alla macro "seconda versione" aggiungi questo, non l'avevo ricopiato:
    Fatto una volta il salva con nome non dovrebbe servire più.
    Codice:
    'Funzione che restituisce il nome del file togliendo il path ed il suffisso
    Public Function IsolaNome(ByVal NomeFile As String, Optional Trunc As Boolean) As String
        
        'toglie il .ipt
        If Trunc = True Then
            NomeFile = Strings.Left(NomeFile, Len(NomeFile) - 4)
        End If
        
        Dim pos As Integer
        'Ciclo che rimuove il path: trova "\" e tiene tutto a dx
        Do
            pos = InStr(NomeFile, "\")
            NomeFile = Strings.Right(NomeFile, Len(NomeFile) - pos)
        Loop Until pos = 0
        IsolaNome = NomeFile
    End Function
    Spesso astuzia ed intelligenza sono molto più efficaci dell'ottusa forza bruta: ma non ho proprio tempo di cercare qualcun alltro...

  6. #16
    Utente Junior
    Iscritto dal
    2012
    Messaggi
    13
    Professione
    Progettista
    Regione
    Lombardia
    Software
    Inventor / AutoCad

    Predefinito

    Ciao, la discussione interessa mooolto anche a me. ( ho 50.000 articoli da sincronizzare )

    Dunque, i punti sono questi: la macro VBA per l'esportazione in .pdf funziona , ma solo a livello di documento, cioè col codice iniettato nel documento, o nel template, siccome la mia necessità è quella di avere sincronizzato il .idw col .pdf ( per i fornitori), questa macro dovrebbe girare a livello di applicazione, globalmente, eseguendo il suo lavoro su tutti gli idw ( anche quelli vecchi ); per fare questo, bisognava dichiarare le variabili globali all'interno del file "devault.ivb" , eseguito a livello applicazione, purtroppo dico "bisognava" perchè dalla release 2013 autodesk ha deciso di non far girare macro a livello applicazione. ( il mio intento è quello di salvare in .pdf una copia, ogni volta che salvo in .idw)
    Ho provato ad associare ad un pulsante specifico la marco, e funziona, ma mi devo ricordare di schiacciare quel pulsante!! :) mentre se potessi modificare l'azione del pulsante "salva" tutto si risolverebbe, ma non ho trovato come fare.

    @aiq, per le operazioni pianificate, funzionano bene sui cambi di release (migra file), su tutte le stampe possibili, ma purtroppo non in pdf ! :(

    La mia domanda, è come andare a modificare l'azione globale intrapresa quando viene richiesto un salvataggio.

    Buon lavoro a tutti.

    Mario

  7. #17
    Utente Standard L'avatar di Catafratto
    Iscritto dal
    2011
    Messaggi
    809
    Professione
    Disegnatore/progettista
    Regione
    Veneto
    Software
    Inventor 2016

    Predefinito

    Citazione Originariamente Scritto da mario.bernardi Visualizza Messaggio
    purtroppo dico "bisognava" perchè dalla release 2013 autodesk ha deciso di non far girare macro a livello applicazione.
    ???
    A livello di applicazione tutto funziona benissimo (io faccio solo così e uso la 2014): quello che hanno fatto è stato togliere l'esecuzione automatica legata agli eventi (es. all'apertura, alla chiusura, ecc.)

    Puoi sempre collegare la macro ad un tasto e aggiungere la riga:

    oDoc.save()

    in modo che prima di fare le esportazioni ti salva il documento...
    Spesso astuzia ed intelligenza sono molto più efficaci dell'ottusa forza bruta: ma non ho proprio tempo di cercare qualcun alltro...

  8. #18
    Utente Junior
    Iscritto dal
    2009
    Messaggi
    23
    Professione
    Progettista
    Regione
    Lombardia
    Software
    Inventor 2013

    Predefinito

    A me da sempre problemi questa macro... boh.
    Anche aggiungendo in fondo l'ultima parte non mi funziona.

  9. #19
    Utente Standard L'avatar di Catafratto
    Iscritto dal
    2011
    Messaggi
    809
    Professione
    Disegnatore/progettista
    Regione
    Veneto
    Software
    Inventor 2016

    Predefinito

    Citazione Originariamente Scritto da lollo76 Visualizza Messaggio
    A me da sempre problemi questa macro... boh.
    Anche aggiungendo in fondo l'ultima parte non mi funziona.
    Con "non mi funziona" non posso aiutare oltre...
    Com "mi da' questo errore: [descrizione del problema]" darò molto volentieri ulteriori indicazioni.
    Spesso astuzia ed intelligenza sono molto più efficaci dell'ottusa forza bruta: ma non ho proprio tempo di cercare qualcun alltro...

  10. #20
    Utente Junior
    Iscritto dal
    2009
    Messaggi
    23
    Professione
    Progettista
    Regione
    Lombardia
    Software
    Inventor 2013

    Predefinito

    Citazione Originariamente Scritto da Catafratto Visualizza Messaggio
    Con "non mi funziona" non posso aiutare oltre...
    Com "mi da' questo errore: [descrizione del problema]" darò molto volentieri ulteriori indicazioni.

    Già hai ragione. Comunque copio la macro, salvo. Chiudo e apro un .idw. Lancio la macro e mi esce questo:
    Immagine.jpg

    Grazie


  • Pagina 2 di 8 PrimaPrima 1234 ... UltimaUltima

    Discussioni Simili

    1. Esportazione Modello FEM da CATIA a ".nas"
      Di SeM_Mario nel forum CAE/FEM/CFD forum generale
      Risposte: 0
      Ultimo Messaggio: 05-09-2014, 15: 32
    2. Risposte: 0
      Ultimo Messaggio: 17-04-2014, 02: 38
    3. Risposte: 7
      Ultimo Messaggio: 27-03-2013, 14: 32
    4. Risposte: 7
      Ultimo Messaggio: 28-02-2013, 00: 55
    5. quotatura "automatica"
      Di spider916 nel forum CATIA V5 CATDrawing
      Risposte: 6
      Ultimo Messaggio: 23-05-2011, 10: 01

    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