Catafratto
Guest
ho provato a riavviare il pc... miracolo!! funziona!!
quanta innocenza... :3513:
in certe cose windows non è cambiato negli ultimi 20 anni :4410:
ho provato a riavviare il pc... miracolo!! funziona!!
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
ho anche suddiviso la macro: una x i pdf e una x i dwg
mi allaccio alla discussione...
la macro funziona.. l'unica cosa che non ho capito è come esportare una cartella intera![]()
http://www.cad3d.it/forum1/threads/...idw-to-pdf-dxf?p=351470&viewfull=1#post351470
qua trovi la macro diridw che esporta una cartella intera
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??
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
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
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
ma nello spazio con cursore lampeggiante non scrivi il percorso file desiderato?
beh certo... ma il problema è che nn mi salva i file in quella directory..ma nello spazio con cursore lampeggiante non scrivi il percorso file desiderato?