Stampare in PDF una tavola col nome del parametro "Codice"

The X

Utente Junior
Professione: Progettista-Gestionale
Software: Pro-E WF4 & PDMLink
Regione: Emilia Romagna
#1
Salve a tutti, a lavoro utilizzo WF4 e PDMLink 9.x ed è un sacco di tempo che vorrei riuscire ad automatizzare la stampa delle ns tavole in formato PDF facendo in modo che il file prodotto abbia in automatico il valore del parametro "Codice" che ogni ns parte e/o assieme possiede.

Di default il PDF generato ha il nome del file file .drw e quindi devo manualmente rinominare da Windows il PDF con il codice aziendale assegnato, col rischio di errori di battitura ecc ecc.

Ditemi che si può fare !!!!!!!!!

GRAZIE

P.S. Chi mi risolve questo mio grosso problema ha una birra pagata in romagna....ehheehhe :biggrin:
 

maxopus

Mod. Creo e Reverse Eng.
Staff Forum
Professione: Progettista meccanico
Software: Creo Parametric
Regione: Marche (PU)
#3
Salve a tutti, a lavoro utilizzo WF4 e PDMLink 9.x ed è un sacco di tempo che vorrei riuscire ad automatizzare la stampa delle ns tavole in formato PDF facendo in modo che il file prodotto abbia in automatico il valore del parametro "Codice" che ogni ns parte e/o assieme possiede.

Di default il PDF generato ha il nome del file file .drw e quindi devo manualmente rinominare da Windows il PDF con il codice aziendale assegnato, col rischio di errori di battitura ecc ecc.

Ditemi che si può fare !!!!!!!!!

GRAZIE

P.S. Chi mi risolve questo mio grosso problema ha una birra pagata in romagna....ehheehhe :biggrin:
Qui si usa un procedimento all'inverso, nel senso che il codice viene estratto dalla prima parte del nome componente
Come di seguito:
1234567801_descrizione_breve
Le prime otto cifre indicano il codice, le cifre in rosso indicano l'indice di revisione e la descrizione breve aiuta in qualche modo nella ricerca.
Nel componente viene inserita una relazione che estrae le due stringhe per il codice e l'indice di revisione.

Come si faccia a stampare il PDF e troncare il nome ... sinceramente non ci ho mai provato, vediamo se qualcuno ha una soluzione.
Se usi un PDM mi sa che il problema è di facile soluzione.

N.B.: altro che la birra devi pagare, qui vogliamo i soldi ... e in anticipo :)
 

The X

Utente Junior
Professione: Progettista-Gestionale
Software: Pro-E WF4 & PDMLink
Regione: Emilia Romagna
#4
DANI : Ho provato a spataccare con Distributed-Batch ma mi pare di capire che è un software per automatizzare una serie di opezioni....io la stampa la voglio fare uno per volta e cmq il file che mi stampa il Batch ha cmq sempre il nome della mia tavola...bisognerebbe capire se dentro i progetti .ttd si può impostare il nome del file di output pari al valore di una variabile o di un parametro...

maxopus : Nel mio file (es. 123456.prt) ho già creato un parametro, chiamato "codice" che io gli assegno a mano (es. BS312512) in base alla ns codifica aziendale.

Quello che vorrei fare è stampare il PDF, invece che come 123456.pdf come BS312512.pdf
 

DANI-3D

Utente Senior
Professione: PROGETTISTA MECCANICO
Software: PRO-E WF5
Regione: TOSCANA
#7
DANI : Ho provato a spataccare con Distributed-Batch ma mi pare di capire che è un software per automatizzare una serie di opezioni....io la stampa la voglio fare uno per volta e cmq il file che mi stampa il Batch ha cmq sempre il nome della mia tavola...bisognerebbe capire se dentro i progetti .ttd si può impostare il nome del file di output pari al valore di una variabile o di un parametro...
Purtroppo non conosco bene la procedura, mi sono limitato a segnalarti la vecchia discussione.
 

The X

Utente Junior
Professione: Progettista-Gestionale
Software: Pro-E WF4 & PDMLink
Regione: Emilia Romagna
#8
Se a qualcuno può tornare utile sono riuscito, tramite script bash, a creare una macro per fare l'operazione in oggetto :)
 

The X

Utente Junior
Professione: Progettista-Gestionale
Software: Pro-E WF4 & PDMLink
Regione: Emilia Romagna
#10
Domani sistemo la macro mettendoci qlc commento e poi ve la posto, perché essendo molto personalizzata un minimo dovrete adattarvela alla vs situazione :)
 

The X

Utente Junior
Professione: Progettista-Gestionale
Software: Pro-E WF4 & PDMLink
Regione: Emilia Romagna
#11
Eccomi qua, come promesso vi posto le mie 2 macro che con molta fatica sono riuscito a realizzare....

Premesse :

1) D:\Work_AreaWF4\dxf_stp_igs --> Directory di lavoro (dove vengono salvati i vari files esportati da Pro-E)
2) H:\\Standard\\macro --> Directory dove ho salvato gli script batch
3) Opzioni del config.pro da avere --> new_parameter_ui yes --> new_relation_ui yes
---------------------

--------------------------------------------------------------------
! -----------------
! MACRO PRINCIPALI
! -----------------
! Con il modello aperto (prt o asm) premendo questa macro si apre AUTOMATICAMENTE la messa in tavola associata ad esso,
! ovvero quella con lo stesso codice-file. (es. 123456.prt --> apre il 123456.drw)
!
mapkey apri_drw @MAPKEY_NAMEApri Drawind del 3D;@MAPKEY_LABELOD_3D;\
mapkey(continued) @MAPKEY_LABELApri Drawing del 3D;%exp_param_3d_prt;\
mapkey(continued) @SYSTEMH:\\Standard\\macro\\estrai_numero_file.bat;%esegui_trail;

! Con la messa in tavola aperta, premendo questa macro si esegue la stampa su file (nel mio caso nel formato hpgl) CON già il parametro "CODICE" (codice aziendale utilizzato per identificare univocamente un particolare prodotto) e il tipo di formato !!!
(es. aprendo il 123456.drw con dentro il parametro CODICE = BC-70123 in formato A4 --> mi crea il file BC-70123_A4.hpgl nella cartella di rete g:\hpgl)
!
mapkey stama_hpgl_a4 @MAPKEY_NAMEStampa Hpgl A4;@MAPKEY_LABELStampa Hpgl A4;\
mapkey(continued) %exp_param_asm;%exp_param_prt;\
mapkey(continued) @SYSTEMH:\\Standard\\macro\\estrai_codice_a4.bat;%esegui_trail;

--------------------------------------------------------------------
! -----------------
! SOTTO-MACRO
! -----------------
mapkey exp_param_prt @MAPKEY_NAMEEsporta Lista Parametri;\
mapkey(continued) @MAPKEY_LABELEsporta lista parametri;~ Command `ProCmdDwgParameters` ;\
mapkey(continued) ~ Open `relation_dlg` `OMContext`;~ Close `relation_dlg` `OMContext`;\
mapkey(continued) ~ Select `relation_dlg` `OMContext`1 `part`;\
mapkey(continued) ~ Select `main_dlg_cur` `PHTLeft.AssyTree`1 `node0`;\
mapkey(continued) ~ Select `relation_dlg` `MenuBar1`1 `File`;\
mapkey(continued) ~ Select `relation_dlg` `CascadeExport`;~ Close `relation_dlg` `MenuBar1`;\
mapkey(continued) ~ Close `relation_dlg` `CascadeExport`;\
mapkey(continued) ~ Activate `relation_dlg` `PBExportTXT`;\
mapkey(continued) ~ Trail `UI Desktop` `UI Desktop` `DLG_PREVIEW_POST` `file_open`;\
mapkey(continued) ~ Select `file_open` `Location Browser`;\
mapkey(continued) ~ Close `file_open` `Location Browser`;\
mapkey(continued) ~ Activate `file_open` `M_pfafs:drives`;\
mapkey(continued) ~ Close `file_open` `Location Browser`;\
mapkey(continued) ~ Select `file_open` `Ph_list.Filelist`1 `d:`;\
mapkey(continued) ~ Activate `file_open` `Ph_list.Filelist`1 `d:`;\
mapkey(continued) ~ Select `file_open` `Ph_list.Filelist`1 `Work_AreaWF4`;\
mapkey(continued) ~ Activate `file_open` `Ph_list.Filelist`1 `Work_AreaWF4`;\
mapkey(continued) ~ Select `file_open` `Ph_list.Filelist`1 `dxf_stp_igs`;\
mapkey(continued) ~ Activate `file_open` `Ph_list.Filelist`1 `dxf_stp_igs`;\
mapkey(continued) ~ Activate `file_open` `Open`;\
mapkey(continued) ~ FocusIn `relation_dlg` `ParamsPHLay.ParTable`;\
mapkey(continued) ~ Activate `relation_dlg` `PB_Cancel`;

mapkey exp_param_asm @MAPKEY_NAMEEsporta Lista Parametri;\
mapkey(continued) @MAPKEY_LABELEsporta lista parametri;~ Command `ProCmdDwgParameters` ;\
mapkey(continued) ~ Open `relation_dlg` `OMContext`;~ Close `relation_dlg` `OMContext`;\
mapkey(continued) ~ Select `relation_dlg` `OMContext`1 `assembly`;\
mapkey(continued) ~ Select `main_dlg_cur` `PHTLeft.AssyTree`1 `node0`;\
mapkey(continued) ~ Open `relation_dlg` `OMContext`;~ Close `relation_dlg` `OMContext`;\
mapkey(continued) ~ Select `relation_dlg` `MenuBar1`1 `File`;\
mapkey(continued) ~ Select `relation_dlg` `CascadeExport`;~ Close `relation_dlg` `MenuBar1`;\
mapkey(continued) ~ Close `relation_dlg` `CascadeExport`;\
mapkey(continued) ~ Activate `relation_dlg` `PBExportTXT`;\
mapkey(continued) ~ Trail `UI Desktop` `UI Desktop` `DLG_PREVIEW_POST` `file_open`;\
mapkey(continued) ~ Select `file_open` `Location Browser`;\
mapkey(continued) ~ Close `file_open` `Location Browser`;\
mapkey(continued) ~ Activate `file_open` `M_pfafs:drives`;\
mapkey(continued) ~ Close `file_open` `Location Browser`;\
mapkey(continued) ~ Select `file_open` `Ph_list.Filelist`1 `d:`;\
mapkey(continued) ~ Activate `file_open` `Ph_list.Filelist`1 `d:`;\
mapkey(continued) ~ Select `file_open` `Ph_list.Filelist`1 `Work_AreaWF4`;\
mapkey(continued ~ Activate `file_open` `Ph_list.Filelist`1 `Work_AreaWF4`;\
mapkey(continued) ~ Select `file_open` `Ph_list.Filelist`1 `dxf_stp_igs`;\
mapkey(continued) ~ Activate `file_open` `Ph_list.Filelist`1 `dxf_stp_igs`;\
mapkey(continued) ~ Activate `file_open` `Open`;\
mapkey(continued) ~ FocusIn `relation_dlg` `ParamsPHLay.ParTable`;\
mapkey(continued) ~ Activate `relation_dlg` `PB_Cancel`;

mapkey exp_param_3d_prt @MAPKEY_NAMEEsporta Lista Parametri in 3D;\
mapkey(continued) @MAPKEY_LABELEsporta lista parametri in 3D;~ Command `ProCmdMmParams` ;\
mapkey(continued) ~ Select `relation_dlg` `MenuBar1`1 `File`;\
mapkey(continued) ~ Select `relation_dlg` `CascadeExport`;~ Close `relation_dlg` `MenuBar1`;\
mapkey(continued) ~ Close `relation_dlg` `CascadeExport`;\
mapkey(continued) ~ Activate `relation_dlg` `PBExportTXT`;\
mapkey(continued) ~ Trail `UI Desktop` `UI Desktop` `DLG_PREVIEW_POST` `file_open`;\
mapkey(continued) ~ Select `file_open` `Location Browser`;\
mapkey(continued) ~ Close `file_open` `Location Browser`;\
mapkey(continued) ~ Close `file_open` `SAB_wtws:||PDMLink|Modus_new`;\
mapkey(continued) ~ Select `file_open` `Location Browser`;\
mapkey(continued) ~ Close `file_open` `Location Browser`;\
mapkey(continued) ~ Activate `file_open` `M_pfafs:drives`;\
mapkey(continued) ~ Close `file_open` `Location Browser`;\
mapkey(continued) ~ Select `file_open` `Ph_list.Filelist`1 `d:`;\
mapkey(continued) ~ Activate `file_open` `Ph_list.Filelist`1 `d:`;\
mapkey(continued) ~ Select `file_open` `Ph_list.Filelist`1 `Work_AreaWF4`;\
mapkey(continued) ~ Activate `file_open` `Ph_list.Filelist`1 `Work_AreaWF4`;\
mapkey(continued) ~ Select `file_open` `Ph_list.Filelist`1 `dxf_stp_igs`;\
mapkey(continued) ~ Activate `file_open` `Ph_list.Filelist`1 `dxf_stp_igs`;\
mapkey(continued) ~ Activate `file_open` `Open`;\
mapkey(continued) ~ FocusIn `relation_dlg` `ParamsPHLay.ParTable`;\
mapkey(continued) ~ Activate `relation_dlg` `PB_Cancel`;

mapkey esegui_trail @MAPKEY_NAMEEsegui Trail;@MAPKEY_LABELEsegui Trail;\
mapkey(continued) ~ Command `ProCmdUtilTrailTrain` ;\
mapkey(continued) ~ Trail `UI Desktop` `UI Desktop` `DLG_PREVIEW_POST` `file_open`;\
mapkey(continued) ~ Select `file_open` `Location Browser`;\
mapkey(continued) ~ Close `file_open` `Location Browser`;\
mapkey(continued) ~ Activate `file_open` `M_pfafs:drives`;\
mapkey(continued) ~ Close `file_open` `Location Browser`;\
mapkey(continued) ~ Select `file_open` `Ph_list.Filelist`1 `d:`;\
mapkey(continued) ~ Activate `file_open` `Ph_list.Filelist`1 `d:`;\
mapkey(continued) ~ Select `file_open` `Ph_list.Filelist`1 `Work_AreaWF4`;\
mapkey(continued) ~ Activate `file_open` `Ph_list.Filelist`1 `Work_AreaWF4`;\
mapkey(continued) ~ Select `file_open` `Ph_list.Filelist`1 `dxf_stp_igs`;\
mapkey(continued) ~ Activate `file_open` `Ph_list.Filelist`1 `dxf_stp_igs`;\
mapkey(continued) ~ Select `file_open` `Ph_list.Filelist`1 `esegui_trail.txt`;\
mapkey(continued) ~ Activate `file_open` `Ph_list.Filelist`1 `esegui_trail.txt`;\
mapkey(continued) @SYSTEMH:\\Standard\\macro\\ripulisci.bat;
 

The X

Utente Junior
Professione: Progettista-Gestionale
Software: Pro-E WF4 & PDMLink
Regione: Emilia Romagna
#12
e questi sono i fondamentali script batch (windows- ms dos-batch) che eseguono l'estrazione del dato richiesto

-------------------
estrai_numero_file.bat :
-------------------

@echo off

set /A counter=1
for /f "tokens=1 delims=_" %%c in ('dir /B D:\Work_AreaWF4\dxf_stp_igs\*_par.txt') do call :loop %%c
goto end

:loop
rem echo %counter%
if %counter%==1 call :writetrail %1
set /A counter=counter+1
goto end

:writetrail
echo !Pro/ENGINEER TM Wildfire 4.0 (c) 2008 by Parametric Technology Corporation All Rights Reserved >>D:\Work_AreaWF4\dxf_stp_igs\esegui_trail.txt
echo ~ Command `ProCmdModelOpen` >>D:\Work_AreaWF4\dxf_stp_igs\esegui_trail.txt
echo ~ Trail `UI Desktop` `UI Desktop` `DLG_PREVIEW_POST` `file_open` >>D:\Work_AreaWF4\dxf_stp_igs\esegui_trail.txt
echo ~ Open `file_open` `Type`;~ Close `file_open` `Type` >>D:\Work_AreaWF4\dxf_stp_igs\esegui_trail.txt
echo ~ Select `file_open` `Type`1 `db_4` >>D:\Work_AreaWF4\dxf_stp_igs\esegui_trail.txt
echo ~ Input `file_open` `Inputname` `%1.drw` >>D:\Work_AreaWF4\dxf_stp_igs\esegui_trail.txt
echo ~ Update `file_open` `Inputname` `%1.drw` >>D:\Work_AreaWF4\dxf_stp_igs\esegui_trail.txt
echo ~ Activate `file_open` `Open` >>D:\Work_AreaWF4\dxf_stp_igs\esegui_trail.txt
goto end

:end

-------------------
estrai_codice_a0.bat :
-------------------

@echo off

set /A counter=1
for /f "tokens=1 delims=_" %%c in ('dir /B D:\Work_AreaWF4\dxf_stp_igs\*_par.txt') do call :loop %%c
find "CODICE" <D:\Work_AreaWF4\dxf_stp_igs\%codice_file%_par.txt |sort >D:\Work_AreaWF4\dxf_stp_igs\codice_temp.nfo
set /A counter=1
for /f "tokens=2 delims= " %%c in (D:\Work_AreaWF4\dxf_stp_igs\codice_temp.nfo) do call :loop2 %%c
set /A counter=1
for /f "tokens=1" %%c in (D:\Work_AreaWF4\dxf_stp_igs\codice_finale.nfo) do call :loop3 %%c
del D:\Work_AreaWF4\dxf_stp_igs\*.nfo
goto end

:loop
rem echo %counter%
if %counter%==1 set codice_file=%1
set /A counter=counter+1
goto end

:loop2
rem echo %counter%
if %counter%==1 echo %1 >D:\Work_AreaWF4\dxf_stp_igs\codice_finale.nfo
set /A counter=counter+1
goto end

:loop3
rem echo %counter%
if %counter%==1 call :writetrail %1
set /A counter=counter+1
goto end

:writetrail
echo !Pro/ENGINEER TM Wildfire 4.0 (c) 2008 by Parametric Technology Corporation All Rights Reserved >>D:\Work_AreaWF4\dxf_stp_igs\esegui_trail.txt
echo ~ Command `ProCmdModelPrint` >>D:\Work_AreaWF4\dxf_stp_igs\esegui_trail.txt
echo ~ Select `print` `CascadeButton1`;~ Close `print` `CascadeButton1` >>D:\Work_AreaWF4\dxf_stp_igs\esegui_trail.txt
echo ~ Activate `print` `hpgl`;~ Close `print` `CascadeButton1 >>D:\Work_AreaWF4\dxf_stp_igs\esegui_trail.txt
echo ~ Activate `print` `OK` >>D:\Work_AreaWF4\dxf_stp_igs\esegui_trail.txt
echo ~ Update `Print_file` `Filename` \ >>D:\Work_AreaWF4\dxf_stp_igs\esegui_trail.txt
echo `g:\\hpgl\\%1_A0.hpgl` >>D:\Work_AreaWF4\dxf_stp_igs\esegui_trail.txt
echo ~ Activate `Print_file` `OK` >>D:\Work_AreaWF4\dxf_stp_igs\esegui_trail.txt
goto end

:end

-------------------
ripulisci.bat
-------------------
del D:\Work_AreaWF4\dxf_stp_igs\*.txt
 

dema

Utente Standard
Professione: Disegnatore meccanico
Software: Tutti
Regione: Emilia Romagna
#13
Ti chiedo scusa, ammetto che non ho letto accuratamente tutta la macro che hai scritto, volevo chiederti solo una cosa:

Funziona anche avendo diverse cartelle?
Mi sembra di capire che tu imposti un percorso in cui cercare le messe in tavola.
 

The X

Utente Junior
Professione: Progettista-Gestionale
Software: Pro-E WF4 &amp; PDMLink
Regione: Emilia Romagna
#14
@Dema : non ho capito cosa mi vuoi chiedere..... :(

Le 2 macro funzionano in sintesi così :

1) Estraggo in un file txt i parametri a partire dal 3D o dalla messa in tavola
2) Estraggo dal file txt il parametro a me necessario (es. codice) o in alternativa ricavo dal nome del file txt il nome del file aperto in 3d (es. se mi viene generato 123456_par.txt allora 123456 è il nome del mio file)
3) Creo un file di trail con la macro che voglio eseguire, utilizzando il nome del file appena ricavato (a me servivano le macro "apri drawing" e "stampa in hpgl" ma voi potete sbizzarvi come volete)
4) Faccio eseguire alla macro l'esecuzione del file di trail.

FINE
 

dema

Utente Standard
Professione: Disegnatore meccanico
Software: Tutti
Regione: Emilia Romagna
#15
1) D:\Work_AreaWF4\dxf_stp_igs --> Directory di lavoro (dove vengono salvati i vari files esportati da Pro-E)
2) H:\\Standard\\macro --> Directory dove ho salvato gli script batch
3) Opzioni del config.pro da avere --> new_parameter_ui yes --> new_relation_ui yes
---------------------
Funziona anche avendo diverse cartelle?
Mi sembra di capire che tu imposti un percorso in cui cercare le messe in tavola.
@Dema : non ho capito cosa mi vuoi chiedere..... :(
devo cambiare questo percorso D:\Work_AreaWF4\dxf_stp_igs??? perché se devo scrivere il percorso in cui lui cerca i disegni io cambio cartella più volte al giorno.
 

dema

Utente Standard
Professione: Disegnatore meccanico
Software: Tutti
Regione: Emilia Romagna
#16
devo cambiare questo percorso D:\Work_AreaWF4\dxf_stp_igs??? perché se devo scrivere il percorso in cui lui cerca i disegni io cambio cartella più volte al giorno.
scusa ma tu lavori con un PDM se si allora noi che non lo usiamo non possiamo usare le tue macro...

Grazie lo stesso
 

The X

Utente Junior
Professione: Progettista-Gestionale
Software: Pro-E WF4 &amp; PDMLink
Regione: Emilia Romagna
#17
ah ecco, se cambi cartella di lavoro ogni giorno utilizzare una macro del genere diventa scomoda...
 

The X

Utente Junior
Professione: Progettista-Gestionale
Software: Pro-E WF4 &amp; PDMLink
Regione: Emilia Romagna
#19
eh capisco....anche noi lavoriamo anche con commesse MA avendo PDMLink la ns directory di lavoro su FileSystem l'abbiamo fissata su D: