Macro x PDF

Emanuele001

Utente poco attivo
Professione: disegnatore
Software: Solid Edge ST9
Regione: marche
#61
La Macro lancia per te il comando "Salva con nome" e si comporta come dalle relative Opzioni.
Quindi esegui manualmente un Salva con Nome in <pdf poi in dxf> e prima di confermare con Salva clicca sul pulsante Opzioni: troverai le tue impostazioni usate l'ultima volta (foglio corrente, tutti i fogli, bianco-neno / colori, eccetera)
Ma certo! Non mi era venuto in mente. Grazie Vespa, buona giornata.
 

andri.can

Utente Junior
Professione: Libero professionista
Software: ProEngineer WF/3-Solid Edge
Regione: Marche-(PU)
#62
Grazie vespa_83, non so perchè non riesco a ricevere gli mp; in passato li ricevevo. Comunque grazie mille per le dritte; proverò subito a fare come da te suggerito e ti farò sapere se riesco nell'intento.:finger:
grazie di nuovo
 

andri.can

Utente Junior
Professione: Libero professionista
Software: ProEngineer WF/3-Solid Edge
Regione: Marche-(PU)
#63
ciao vespa_83, ho provato ad inserire la macro come spiegato nelle prime pagine del 3d, ma non mi funziona; evidentemente sbaglio qualcosa. in pratica quando premo l'icona collegata all'eseguibile della macro "Salva+PDF", mi apre una finestra nera con il nome della macro e subito dopo si apre il file .vbs in notepad. non fa nient'altro, ne con la macro originale ne con quella modificata come da tue istruzioni per le mie esigenze.
 

vespa_83

Utente Standard
Professione: disegnatore
Software: Solid Edge
Regione: Romagna
#64
E' un problema che riguarda il sistema operativo. Quale versione di windows hai? è 64 bit?
Il Controllo Account Utente (UAC) come è?
Inoltre che versione di SolidEdge usi?

Prova a fare un doppio click sul file vbs da Esplora Risorse, se il comportamento è analogo, evidentemente è il sistema operativo.
Si può provare a risolvere in due modi a seconda delle tue conoscenze, del tuo sistema e versioni.
A) verifica e correggi: HKEY_CLASSES_ROOT\VBSFile\Shell\Open\Command
(Predefinito) = "%SystemRoot%\System32\WScript.exe" "%1" %*

oppure
B) crea un link: apri la cartella di "Save+PDF.vbs" , tasto destro nel vuoto, Nuovo / Collegamento, incolla:
Codice:
"%SystemRoot%\System32\WScript.exe" "Save+PDF.vbs"
cerca in qualche modo di aggiungere il link al nastro di solidEDge (Tipi di file = Tutti *.*)

WScript.exe è a 32bit e di solito va. Esiste anche una versione a 64bit in C:\Windows\SysWOW64\wscript.exe.

Il file vbs è un file di testo che contiene delle istruzioni. Il programma che le legge e le processa è WScript.exe preistallato su tutti i windows, normalmente associato all'azione di Open file per vbs wfs ecc.... Non mi meraviglierei se alcuni antivirus o programmi di protezione disabilitassero questa funzione.
 

vespa_83

Utente Standard
Professione: disegnatore
Software: Solid Edge
Regione: Romagna
#65
Con SolidEdge ST8 è ancora più facile (cambiano spesso i metodi, non ci sto più dietro)

VEDI IMMAGINE. RISPETTARE LE VIRGOLETTE:

SolidEdge ST8 inserire Macro.png
 

andri.can

Utente Junior
Professione: Libero professionista
Software: ProEngineer WF/3-Solid Edge
Regione: Marche-(PU)
#66
io ho W8.1 64 e SE18 e controllando come hai suggerito:
"A) verifica e correggi: HKEY_CLASSES_ROOT\VBSFile\Shell\Open\Command
(Predefinito) = "%SystemRoot%\System32\WScript.exe" "%1" %*"
risulta identico anche da me. mi ricordo però che la prima volta che ho provato la tua macro (scaricata ed installata) funzionava. poi dopo che l'ho aperta con notepad la prima volta...anche non spuntando la preferenza di associazione applicazione, non parte ma si apre in notepad. UAC è disattivato. l'opzione B non la provo appena ho un attimo.
Invece volevo installarla nell'azienda di un amico che usa ST9 ma non sono riuscito; con il tuo ultimo post mi hai nuovamente illuminato e proverò anche quello.
grazie vespa_83
 

vespa_83

Utente Standard
Professione: disegnatore
Software: Solid Edge
Regione: Romagna
#67
io ho W8.1 64 e SE18
...
la prima volta che ho provato la tua macro (scaricata ed installata) funzionava. poi dopo che l'ho aperta con notepad la prima volta...anche non spuntando la preferenza di associazione applicazione
con la V18 non era possibile salvare direttamente in pdf, si doveva stampare su stampante pdf.
Per l'associazione file ti sei risposto da solo...

nb: non c'è bisogno di installare nulla, si lancia direttamente.
 

andri.can

Utente Junior
Professione: Libero professionista
Software: ProEngineer WF/3-Solid Edge
Regione: Marche-(PU)
#68
Aggiornamento: ho ripristinato il problema dell'apertura dei file .vbs con notepad, ed ora sulla V18 le macro funzionano entrambe; quella originale di vespa_83 e quella modificata con il percorso modificato per il salvataggio in altra cartella. però il file pdf che si crea non mi si apre in automatico. Aprendolo con pdf24 o altro reader risulta una pagina bianca ed appare un messaggio come quello allegato.
 

Allegati

vespa_83

Utente Standard
Professione: disegnatore
Software: Solid Edge
Regione: Romagna
#69
con la V18 non era possibile salvare direttamente in pdf, si doveva stampare su stampante pdf.

Probabilmente SE V18 salva una copia del dft semplicemente cambiando nome, se dft e pdf hanno la stessa dimensione è così.
 

ApeGana

Utente Standard
Professione: Progettista
Software: Solid Edge ST8
Regione: Marche
#70
Ho scaricato e personalizzato secondo le esigenze della mia azienda la macro di Vespa.
Funziona a meraviglia e volevo ringraziarlo :finger:

L'unica cosa che non capisco è come mai, nell'aggiunta di un tasto alla barra di accesso rapido (in ST8) per invocare la macro, come da finestra di dialogo nei post precedenti, finché nel primo campo non ho messo "wscript" (senza virgolette), non me la invocava (poi me lo ha spiegato Vespa in PM).
Pensavo quello fosse solo un campo per dare un nome identificativo alla macro, infatti in passato ne avevo inserita un'altra compilando il campo con un nome inventato e aveva funzionato (nello specifico Apri DFT).

Boh.... infatti ora passando col mouse sopra i due pulsanti, in uno compare il la scritta "Apri DFT" e nell'altro "wscript".

01.png 02.png

Per il resto tutto ok... e grazie ancora. :cool:
 

vespa_83

Utente Standard
Professione: disegnatore
Software: Solid Edge
Regione: Romagna
#71
Con "Definisci macro" viene messo un comando da lanciare sul sistema operativo Windows. Chi ha un minimo di dimestichezza con il prompt di comando DOS detto anche Terminale, Shell / riga di comando, sa che in windows da Start/Esegui: cmd si apre il terminale.

In S.E. "Definisci macro" va scritto qualcosa che riesce a fare il terminale di windows.
Se si mette un file (non .exe), questo viene aperto con il programma di default.

Correggo quindi il post così:

Macro: "C:\mio percorso\Save+PDF.vbs"
Parametro:
<lasciare vuoto>

L'immagine era in risposta ad un utente che si ritrovava delle impostazioni del sistema operativo windows tali che al doppio click sul file macro.vbs questo non veniva più aperto ed eseguito con wscript.exe (programma preinstallato in windows per la lettura e l'esecuzione di script) bensì il file vbs veniva aperto e visualizzato con notepad. Quindi si risolveva imponendo l'esecuzione di wscript.exe per processare il file macro.

 

ApeGana

Utente Standard
Professione: Progettista
Software: Solid Edge ST8
Regione: Marche
#72
Buongiorno a tutti.
Da qualche giorno sto utilizzando questa macro con successo, però ho notato un problemino.
In caso di draft medio complessi, in particolare con viste pittoriche, il tempo di elaborazione aumenta rapidamente.

Da qualche prova fatta ieri ho visto che il collodi bottiglia è il pdf:
  • tempo esecuzione macro = 1'03"
  • tempo salvataggio dft = 0'02"
  • tempo salvataggio in dxf = 0'02"
  • tempo salvataggio in pdf = 1'00"

Poi andando a vedere nello specifico, per quale motivo ci mettesse tanto, ho visto che il problema sta in questa spunta delle opzioni:

Opzioni salva come PDF.png

Togliendo la spunta il tempo di elaborazione diventa brevissimo, ma le viste pittoriche si sovrappongono :frown:

Ho poi provato a generare il pdf con PDF Creator (prima di installare la macro utilizzavamo sempre tale stampante virtuale): pochi secondi e oltretutto in background rispetto a solid edge, senza problemi di sovrapposizioni.

Tirando le somme vedo 3 possibilità: 1. si aspetta con pazienza; 2. si toglie quella spunta dalle opzioni e si fa attenzione a comporre i dft senza sovrapporre le viste; 3. si modifica la macro in modo che la creazione del pdf venga attuata con stampante virtuale anziché con "salva con nome".

La prima e la seconda ipotesi non mi piacciono tanto, la terza non sono in grado di metterla in pratica, a meno che qualcuno più bravo non mi dia qualche imbeccata :tongue:

Voi avete notato la cosa? Che ne pensate?

Ape
 

Davimont

Utente Standard
Professione: Disegnatore meccanico Fai da te.
Software: Solid Edge ST10
Regione: Lombardia
#73
Purtroppo anche io avevo notato questo allungamento dei tempi con la spunta abilitata e se la toglievo mi ritrovavo le viste sovrapposte o che andavano a coprire il cartiglio.
Ho da tempo abbandonato quel comando e tutti i miei pdf li genero con "doPDF" molto più veloce di "pdf creator".
 

vespa_83

Utente Standard
Professione: disegnatore
Software: Solid Edge
Regione: Romagna
#74
Purtroppo la programmazione di macro è sempre piena di insidie e bug, alcuni comandi se lanciati con uno script vbs non funzionano proprio, penso che le funzioni avanzate di stampa siano una di queste. Si dovrebbe quindi o compilare con un IDE, perdendo l'attuale facilità di personalizzazione, oppure provare ad ingannare windows, impostando prima come stampante predefinita quella per i pdf, fare una stampa semplice, poi reimpostare l'originaria...

Dovreste quindi aprire una segnalazione presso i vostri rivenditori (non c'è bisogno di nominare l'uso di macro, non sarebbe preso come richiesta di miglioramento). Segnalare che con un Salva con nome in PDF in presenza di viste ombreggiate e il check su "sfondi trasparenti per la vista di disegno" S.E. impiega troppo tempo (1 minuto), eseguire una stampa su stampante pdf come molte freeware basate su Ghostscript (PDFCreator) richiede solo qualche secondo.

Infatti in realtà SolidEdge per salvare in pdf, utilizza la libreria opensource GhostScript (gs) ovvero esegue un processo di stampa proprio come fa PDFCreator o altre stampanti virtuali che usano Ghostscript.
Questo significa che visto che tutti usano GhostScript ma arrivano a risultati accettabili e apparentemente uguali con tempi molto più brevi, la differenza sta nei parametri interni che i programmi usano per interfacciarsi con Ghostscript, ovvero si può pretendere che SolidEdge ci metta lo stesso tempo che impiega un freeware che usa gli stessi strumenti di base (Ghostscript).

In ultimo vorrei far presente che io non la uso questa macro (uso un PDM commerciale con processo di Vidimazione e produzione del pdf, non è una procedura corta ma è funzionale) quindi non è nel mio interesse impiegare tempo su questo, infatti è a sorgente aperta per spronare chi se la sente ad approfondire il mondo della programmazione che se pur molto stressante qualche soddisfazione la da.

Saluti
 

ApeGana

Utente Standard
Professione: Progettista
Software: Solid Edge ST8
Regione: Marche
#75
In ultimo vorrei far presente che io non la uso questa macro (uso un PDM commerciale con processo di Vidimazione e produzione del pdf, non è una procedura corta ma è funzionale) quindi non è nel mio interesse impiegare tempo su questo, infatti è a sorgente aperta per spronare chi se la sente ad approfondire il mondo della programmazione che se pur molto stressante qualche soddisfazione la da.
Non c'è problema, certo. Non volevo "pretendere" niente, ci mancherebbe altro. E non era neanche una lamentela.
Sei già stato gentilissimo a metterla in condivisione.

Questo significa che visto che tutti usano GhostScript ma arrivano a risultati accettabili e apparentemente uguali con tempi molto più brevi, la differenza sta nei parametri interni che i programmi usano per interfacciarsi con Ghostscript, ovvero si può pretendere che SolidEdge ci metta lo stesso tempo che impiega un freeware che usa gli stessi strumenti di base
Oltretutto il freeware in questione nel tempo di elaborazione non blocca Solid Edge, che appena inviato il comando di stampa torna subito disponibile.
 

vespa_83

Utente Standard
Professione: disegnatore
Software: Solid Edge
Regione: Romagna
#76
Salva ed Esporta v.1.0
In Part e SheetMetal: Salva file corrente ed Esporta in stp[SUP]1[/SUP]
In Draft: Salva file corrente ed Esporta in pdf [SUP]1[/SUP], attivando l'impostazione "esporta3D"[SUP]2[/SUP] vengono esportati i 3D impaginati nel draft in stp[SUP]1[/SUP]

[SUP]1[/SUP] Per altri formati è molto facile editare il codice sorgente.
[SUP]2[/SUP] Aprire il codice sorgente in Notepad++ e sostituire "esporta3D = False" con "esporta3D = True" (riga 53 o lì vicino)

Sono riportati esempi su come usare percorsi relativi e comandi post generazione (apri pdf, apri cartella di destinazione e seleziona il file).

Aggiornare?
Se usavi Save+PDF ed avevi personalizzato percosi e comandi, ti suggerisco di non aggiornare oppure metti in conto di riadattare a mano le modifiche.
Ho cambiato in nome del file perchè ora è più generico, funziona anche in Part e Sheet Metal (>stp), ma il nome è rinominabile se preferisci non perdere i collegamenti esistenti.
 

Allegati

sbronzo79

Utente Junior
Professione: disegnatore
Software: Solid EDGE ST9
Regione: Lombardia
#77
Qualcuno l'ha testato?
Ho provato a verificare la macro facendola partire con il file EXE...
Compare una finestrella DOS di carica ma si richiude immediatamente senza processare nulla...
 

sbronzo79

Utente Junior
Professione: disegnatore
Software: Solid EDGE ST9
Regione: Lombardia
#79
Codice:
ElseIf  objApp.ActiveEnvironment = "Part" Or objApp.ActiveEnvironment = "SheetMetal"  Or objApp.ActiveEnvironment = "Assembly" Then
	'=== Se sei in Part o SheetMetal
		' è possibile inserire qui le righe di personalizzazione del percorso esportazione 3D
		' verifica e crea il percorso se necessario
		' percorso di default, se vuoto salva nella stessa cartella del 3D
		percorso = "" 	'esempio: "C:\Mia Cartella"
		If percorso="" Then
		'percorso = curPath
		percorso = curPath + "\..\STP"
		End If
		fullfilepath3Dexported = percorso + "" + nome + "." + "stp"
		Call objDoc.SaveAs( fullfilepath3Dexported )	' salva con nome, con una estensione supportata da SolidEdge
		End If
Ciao Vespa,
la macro funziona perfettamente.
Mi piacerebbe inserite all'interno di quella parte di codice la funzione per esportare anche una immagine JPG con il comando salva come immagine.
Ma non capisco dove sbaglio, magari non è possibile farlo...


Codice:
		If percorso="" Then
		'percorso = curPath
		percorso = curPath + "\..\STP"
		End If
		fullfilepath3DIMG = percorso + "" + nome + "." + "jpg"
		Call objDoc.SaveAsIMG (nome, 3000, 1688, , 600, 24, seImageQualityHigh, False) ( fullfilepath3DIMG )
		' è possibile ripetere in atri formati
 

Be_on_edge

Moderatore
Staff Forum
Professione: Progettazione
Software: Solid Edge
Regione: Emilia Romagna
#80
Nei miei programmi per salvare una immagine utilizzo questa routine:

Codice:
Dim objApp As SolidEdgeFramework.Application
Dim objDoc As Object
Dim objView As SolidEdgeFramework.View

Set objApp = GetObject(, "SolidEdge.Application")
Set objDoc = objApp.ActiveDocument
Set objView = objDoc.Windows(1).View

Call objView.SaveAsImage(nome, 318, , , , , seImageQualityHigh) '318 è la larghezza che mi serve, l'altezza viene di conseguenza