• このフォーラムは、www.cad3d.it/forum1 - イタリアのデザインコミュニティの機械翻訳です。いくつかの用語は正しく翻訳されていません。

エクスポート "自動" idw に pdf-dxf

  • Thread starter Thread starter lollo76
  • Start date Start date
e lo so... ma mi sembrava impossibile..

p.s. cmq gran cosa sta macro, mi ha risolto un sacco di casini..
quando devo inviare 50 pdf al fornitore sai che noia a crearli uno x uno...
 
salve a tutti! scusate l'intromissione.... ho letto il post e sono abbastanza interessato all'argomento!
io devo esportare in pdf un considerevole numero di file idw. l'operazione di stampa utilizzando l'utilità di programmazione operazioni è abbastanza lunga nel senso che, anche utilizzando una stampante pdf con poche impostazioni, ogni file che viene stampato necessita di aver specificato il percorso file, risoluzione e via così... il che ovviamente rende l'operazione ugualmente lunga. trovo strano che non ci sia la possibilità di esportare automaticamente in pdf, ancor più strano se si pensa che il programma in questione è l'inventor 2015. esiste un comando pubblica equivalente a quello dell'autocad che mi consenta di stampare alla stessa maniera tutti i presenti nella cartella??
grazie!
 
ovviamente devo prendere familiarità con il concetto di macro... cosa di cui non so nulla! però trovo strano che, visto l'utilizzo diffusissimo del formato pdf, i programmatori non abbiano previsto un sistema integrato di pubblicazione. come sempre autodesk ha pecche non da poco... prendetelo come uno sfogo, ma di certo i programmi in questione non brillano, né per intuitività né per semplicità... grazie comunque! :finger:
 
non sbagli, sono io sbadato e ho perso l'inizio della macro nel copia/incolla :redface:

- - - aggiornato - - -

... e premo invia risposta prima di aver finito la risposta :redface::redface:
Code:
public sub save_idwgwgpdf
    
    ' obtain reference to drawing
    dim odoc as document
    set odoc = thisapplication.activedocument
    
    if odoc.documenttype <> kdrawingdocumentobject then
        msgbox ("deve essere aperta una tavola")
        exit sub
    end if
    
    ' save the file with dependants
    odoc.save2
    
    dim fn as string
    dim dwgfn as string
    dim pdffn as string
    
    ' generate the file names
    fn = odoc.fullfilename
    dwgfn = strings.left(fn, len(fn) - 4) & ".dwg"
    pdffn = strings.left(fn, len(fn) - 4) & ".pdf"
    
    
    ' 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 = dwgfn


    'publish document.
    call dwgaddin.savecopyas(odoc, ocontext, ooptions, odatamedium)
    
    ' -------------------------------
    ' fine dwg
    ' ---------------------------------------------------------------------------
  
    
    ' ---------------------------------------------------------------------------
    ' 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 = pdffn


    'publish document.
    call pdfaddin.savecopyas(odoc, ocontext, ooptions, odatamedium)
    ' -------------------------------
    ' fine pdf
    ' ---------------------------------------------------------------------------
end sub

... stranissimo, la prima riga della macro non si copia/incolla... ho dovuto scriverla a mano. boh!
comunque a me sovrascrive se non lo fa... non saprei perchè!

sovrascrivi la vecchia macro



buongiorno a tutti .. volevo sapere se esiste già una macro per il salvataggio di file ipt in dxf da utilizzare in ambiente lamiera (file per taglio laser).. o se si può integrare sulla macro citata??
 
mi allaccio alla discussione...
la macro funziona.. l'unica cosa che non ho capito è come esportare una cartella intera :confused:

ho anche suddiviso la macro: una x i pdf e una x i dwg

potresti postare la macro solo per pdf?
grazie
 
fino a lunedì non rientro in ufficio...
comunque dal listato devi solo cancellare quello che c'è tra:
---
dwg
----

........
-----
fine dwg
------
 
buongiorno a tutti .. volevo sapere se esiste già una macro per il salvataggio di file ipt in dxf da utilizzare in ambiente lamiera (file per taglio laser).. o se si può integrare sulla macro citata??

ci riprovo ... c'è qualcuno che può essermi d'aiuto?
 
buongiorno...
la macro funziona alla grandissima ed e' utilissima...
una domanda...
avrei bisogno, per esigenze di ufficio, che il dwg sia esportato per autocad 2007...e' fattibile???

grazie mille!!!
e buon lavoro a tutti!
 
prova questo: ti compare una riga di input, inserisci il percorso della cartella dove vuoi fare il lavoro, apre ed esporta tutti gli idw che contiene: poichè ho buttato giù le cose in fretta fatti delle prove su cartelle copiate, prima, che non si sa mai :biggrin:! le numerose (= 1) prove che ho fatto funzionavano. non aggiungere il backslash a fine percorso al momento dell'input sennò non va.

la macro da lanciare è diridw

fammi sapere


Code:
public sub diridw()

    dim mydir as string
    dim myname as string
    
    ' richiede il percorso della cartella
    mydir = inputbox("inserisci il percorso dei disegni (termina senza \)", "richiesta percorso files")
    

    ' visualizza i nomi in c:\ che rappresentano directory.
    myname = dir(mydir & "\*.idw", vbnormal)   ' recupera la prima voce.
    debug.print "inizio ciclo"
    dim i as integer
    do while myname <> ""    ' avvia il ciclo.
        debug.print i, mydir & "\" & myname
        exportdirtodwg_pdf (mydir & "\" & myname)
        myname = dir    ' legge la voce successiva.
        i = i + 1
    loop

end sub


public sub exportdirtodwg_pdf(drawing as string)
    
    ' obtain reference to drawing
    dim odoc as document
    set odoc = thisapplication.documents.open(drawing)
    
    
    dim fn as string
    dim dwgfn as string
    dim pdffn as string
    
    ' generate the file names
    fn = odoc.fullfilename
    dwgfn = strings.left(fn, len(fn) - 4) & ".dwg"
    pdffn = strings.left(fn, len(fn) - 4) & ".pdf"
    
    
    ' 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 = dwgfn


    'publish document.
    call dwgaddin.savecopyas(odoc, ocontext, ooptions, odatamedium)
    
    ' -------------------------------
    ' fine dwg
    ' ---------------------------------------------------------------------------
  
    
    ' ---------------------------------------------------------------------------
    ' 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 = pdffn


    'publish document.
    call pdfaddin.savecopyas(odoc, ocontext, ooptions, odatamedium)
    ' -------------------------------
    ' fine pdf
    ' ---------------------------------------------------------------------------
    
    odoc.close (true)
end sub

la macro è perfetta, ti chiedo però se è possibile aggiungere una riga in modo da aprirti una finestra e chiedere dove destinare i file (come per l'apertura).
grazie
 
prova questo: ti compare una riga di input, inserisci il percorso della cartella dove vuoi fare il lavoro, apre ed esporta tutti gli idw che contiene: poichè ho buttato giù le cose in fretta fatti delle prove su cartelle copiate, prima, che non si sa mai :biggrin:! le numerose (= 1) prove che ho fatto funzionavano. non aggiungere il backslash a fine percorso al momento dell'input sennò non va.

la macro da lanciare è diridw

fammi sapere


Code:
public sub diridw()

    dim mydir as string
    dim myname as string
   
    ' richiede il percorso della cartella
    mydir = inputbox("inserisci il percorso dei disegni (termina senza \)", "richiesta percorso files")
   

    ' visualizza i nomi in c:\ che rappresentano directory.
    myname = dir(mydir & "\*.idw", vbnormal)   ' recupera la prima voce.
    debug.print "inizio ciclo"
    dim i as integer
    do while myname <> ""    ' avvia il ciclo.
        debug.print i, mydir & "\" & myname
        exportdirtodwg_pdf (mydir & "\" & myname)
        myname = dir    ' legge la voce successiva.
        i = i + 1
    loop

end sub


public sub exportdirtodwg_pdf(drawing as string)
   
    ' obtain reference to drawing
    dim odoc as document
    set odoc = thisapplication.documents.open(drawing)
   
   
    dim fn as string
    dim dwgfn as string
    dim pdffn as string
   
    ' generate the file names
    fn = odoc.fullfilename
    dwgfn = strings.left(fn, len(fn) - 4) & ".dwg"
    pdffn = strings.left(fn, len(fn) - 4) & ".pdf"
   
   
    ' 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 = dwgfn


    'publish document.
    call dwgaddin.savecopyas(odoc, ocontext, ooptions, odatamedium)
   
    ' -------------------------------
    ' fine dwg
    ' ---------------------------------------------------------------------------
 
   
    ' ---------------------------------------------------------------------------
    ' 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 = pdffn


    'publish document.
    call pdfaddin.savecopyas(odoc, ocontext, ooptions, odatamedium)
    ' -------------------------------
    ' fine pdf
    ' ---------------------------------------------------------------------------
   
    odoc.close (true)
end sub


grazie molto utile! l'unica cosa è che mi salva i file nella stessa directory....1.PNG
 
prova questo: ti compare una riga di input, inserisci il percorso della cartella dove vuoi fare il lavoro, apre ed esporta tutti gli idw che contiene: poichè ho buttato giù le cose in fretta fatti delle prove su cartelle copiate, prima, che non si sa mai :biggrin:! le numerose (= 1) prove che ho fatto funzionavano. non aggiungere il backslash a fine percorso al momento dell'input sennò non va.

la macro da lanciare è diridw

fammi sapere


Code:
public sub diridw()

    dim mydir as string
    dim myname as string
   
    ' richiede il percorso della cartella
    mydir = inputbox("inserisci il percorso dei disegni (termina senza \)", "richiesta percorso files")
   

    ' visualizza i nomi in c:\ che rappresentano directory.
    myname = dir(mydir & "\*.idw", vbnormal)   ' recupera la prima voce.
    debug.print "inizio ciclo"
    dim i as integer
    do while myname <> ""    ' avvia il ciclo.
        debug.print i, mydir & "\" & myname
        exportdirtodwg_pdf (mydir & "\" & myname)
        myname = dir    ' legge la voce successiva.
        i = i + 1
    loop

end sub


public sub exportdirtodwg_pdf(drawing as string)
   
    ' obtain reference to drawing
    dim odoc as document
    set odoc = thisapplication.documents.open(drawing)
   
   
    dim fn as string
    dim dwgfn as string
    dim pdffn as string
   
    ' generate the file names
    fn = odoc.fullfilename
    dwgfn = strings.left(fn, len(fn) - 4) & ".dwg"
    pdffn = strings.left(fn, len(fn) - 4) & ".pdf"
   
   
    ' 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 = dwgfn


    'publish document.
    call dwgaddin.savecopyas(odoc, ocontext, ooptions, odatamedium)
   
    ' -------------------------------
    ' fine dwg
    ' ---------------------------------------------------------------------------
 
   
    ' ---------------------------------------------------------------------------
    ' 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 = pdffn


    'publish document.
    call pdfaddin.savecopyas(odoc, ocontext, ooptions, odatamedium)
    ' -------------------------------
    ' fine pdf
    ' ---------------------------------------------------------------------------
   
    odoc.close (true)
end sub
2.PNG
 
ok, adesso ho capito... manca la richiesta della cartella di destinazione. appena ho un attimo sistemo
 
saluti a tutti e grazie per la macro, funziona benissimo! avrei anch'io ho una domanda, i file dwg tradotti in automatico con la macro si zippano automaticamente, c'è un modo per averli non zippati?
grazie mille a chi vorrà rispondermi.
 

Forum statistics

Threads
46,674
Messages
380,976
Members
2
Latest member
loop80
このフォーラムは、www.cad3d.it/forum1 - イタリアのデザインコミュニティの機械翻訳です。いくつかの用語は正しく翻訳されていません。

Members online

No members online now.
Back
Top