Macro interessanti per SolidWorks

Polymar

Utente Standard
Professione: CAD/CAM/CAE Senior Engineer
Software: ZW3D, SWX, ThinkDesign, Autodesk Moldflow
Regione: ER
#81
Ciao, ho appena fatto una prova utilizzando gli stili e devo dire che questa idea risolve già in parte la ... paranoia :) Fortunatamente è anche possibile selezionare più di una quota a cui applicare in una botta sola lo stile. bene bene. SWX comincia a piacermi. Voglio comunque approfondire il discorso delle macro perchè ricordo che, con Excel e Word, la programmazione VBA poteva risolvere quelle piccole seccature su operazioni ripetitive, e quotidiane. Quindi sono certo che pure con SWX un minimo di apprendimento delle macro possa essere tutt'altro che tempo perso. Gnite! ciao!
 
Professione: disegnatore
Software: autocad 2013; solidworks 2014
Regione: Friuli Venezia Giulia
#82
per le macro no ti possso proprio aiutare...
se questa cosa degli stili è un compromesso accettabile la puoi fare nel file di modello in modo che ad ogni nuovo disegno ce li hai già pronti senza neanche doverli caricare.
magari ci aggiungi anche altri testi come x45° x30° per gli smussi.
poi ogni ambito di lavoro ha le proprie necessità (un cliente che faceva strutture voleva che quotando le lunghezze dei trafilati ci fosse sempre scritta accanto alla quota il tipo, per esempio UPN200 - quota, così il commerciale faceva i calcoli delle quantità in un attimo)
 

fabiovello

Utente Junior
Professione: Progettista
Software: Visi - Cocreate - Solid Edge v20 & ST - OSM - SolidWorks 2016 - Inventor
Regione: Piemonte
#83
Ciao a tutti, vorrei porvi il mio quesito, sto utilizzando il comando $PRP:"SW-File Name" per recuperane il codice disegno nella tabella del property tab, vorrei però per comodità di ricerca aggiundere al nome file una descrizione, magari da utilizzare in un secondo campo proprietà esempio:

attuale file name: 123456789.sldprt
futuro file name: 123456789 - ALBERO.sldprt

Qualcuno ci ha mai provato e riuscito?

Grazie 1000 in anticipo!
 

jenuary

Utente Standard
Professione: Progettista e Programmatore VB.Net
Software: Solidworks
Regione: Veneto
#84
Non so se ho capito bene,
il nome del file si chiama 123456789.sldprt
e vorresti che si chiamasse 123456789 - ALBERO.sldprt ?

Se non gli dai il nome corretto subito (es. lo salvi part01.sldprt), hai due modi per rinominarlo
123456789 - ALBERO.sldprt

1) o mediante Pack and Go e magari metti la spunta della tavola, o Rinomina... dal tasto destro da Explorer
2) oppure mediante macro, che ti deve rinominare il file per esempio con il nome di una proprietà personalizzata

Il secondo metodo funziona con l'assieme aperto, ma bisogna allineare la tavola se il componente ne ha una, però se il componente è usato in altri assiemi che non sono aperti (es. altra commessa), questi altri assiemi non sentono il cambio di componente.

Io lo faccio di consueto ma dipende se utilizzi componenti di libreria o sono tutte parti indipendenti presenti solo in quella commessa.
 

fabiovello

Utente Junior
Professione: Progettista
Software: Visi - Cocreate - Solid Edge v20 & ST - OSM - SolidWorks 2016 - Inventor
Regione: Piemonte
#85
Non so se ho capito bene,
il nome del file si chiama 123456789.sldprt
e vorresti che si chiamasse 123456789 - ALBERO.sldprt ?

Se non gli dai il nome corretto subito (es. lo salvi part01.sldprt), hai due modi per rinominarlo
123456789 - ALBERO.sldprt

1) o mediante Pack and Go e magari metti la spunta della tavola, o Rinomina... dal tasto destro da Explorer
2) oppure mediante macro, che ti deve rinominare il file per esempio con il nome di una proprietà personalizzata

Il secondo metodo funziona con l'assieme aperto, ma bisogna allineare la tavola se il componente ne ha una, però se il componente è usato in altri assiemi che non sono aperti (es. altra commessa), questi altri assiemi non sentono il cambio di componente.

Io lo faccio di consueto ma dipende se utilizzi componenti di libreria o sono tutte parti indipendenti presenti solo in quella commessa.
Grazie per la risposta, io parlo prorprio solo della compilazione cartiglio dato che utilizzo le proprietà presneti in solid per farlo, una di esse è quella che ho citato sopra e che mi prende il nome del file e lo utilizza nel riempimento di un campo che nel mio caso è il codice componente, però per comodità di ricerca vorrei aggiungere una descrizione in modo che in fase di ricerca se seleziono in ricerca "ALBERO" mi propone già una serie di particolari, cosa che se uso olo codici numerici non riesco a fare.
 

jenuary

Utente Standard
Professione: Progettista e Programmatore VB.Net
Software: Solidworks
Regione: Veneto
#86
Grazie per la risposta, io parlo prorprio solo della compilazione cartiglio dato che utilizzo le proprietà presneti in solid per farlo, una di esse è quella che ho citato sopra e che mi prende il nome del file e lo utilizza nel riempimento di un campo che nel mio caso è il codice componente, però per comodità di ricerca vorrei aggiungere una descrizione in modo che in fase di ricerca se seleziono in ricerca "ALBERO" mi propone già una serie di particolari, cosa che se uso olo codici numerici non riesco a fare.
A questo punto basta che compili una proprietà es. "DESCRIZIONE" con il valore "ALBERO"
La tua proprietà "Futuro file name" sarà composta da variabili e cioè
$PRP:"SW-File Name" $PRP:"DESCRIZIONE"

Se il nome file si chiama per esempio 123456789.sldprt
il risultato nella proprietà "Futuro file name"
123456789 ALBERO
 

fabiovello

Utente Junior
Professione: Progettista
Software: Visi - Cocreate - Solid Edge v20 & ST - OSM - SolidWorks 2016 - Inventor
Regione: Piemonte
#87
A questo punto basta che compili una proprietà es. "DESCRIZIONE" con il valore "ALBERO"
La tua proprietà "Futuro file name" sarà composta da variabili e cioè
$PRP:"SW-File Name" $PRP:"DESCRIZIONE"

Se il nome file si chiama per esempio 123456789.sldprt
il risultato nella proprietà "Futuro file name"
123456789 ALBERO
Non penso di avere capito cosa intendi... so che se assegno valori ai campi essi si legano alla proprietà e vengono richiamati, io invece vorrei dal nome del file ricavare 2 proprietà e cioè le prime 10 cifre/lettere del nome compilano "file name" e le restanti "descrizione".

Grazie
 

jenuary

Utente Standard
Professione: Progettista e Programmatore VB.Net
Software: Solidworks
Regione: Veneto
#88
Ora ho capito,
quindi ti serve una macro che tagli il nome del file e ti restituisca due stringhe.
La prima deve andare dentro ad una proprietà "File name", la seconda dentro "descrizione".

Lunedì te la creo
 

jenuary

Utente Standard
Professione: Progettista e Programmatore VB.Net
Software: Solidworks
Regione: Veneto
#89
Allego la macro per tagliare il nome del file in 2 sezioni:
- la prima prende i primi 10 caratteri e li copia dentro alla proprietà personalizzata NOME FILE
- la seconda porzione inserisce la parte rimanente del nome del file e la inserisce dentro alla proprietà personalizzata DESCRIZIONE

Prerequisiti:
- File di parte aperto
- Il nome del file deve avere un numero di caratteri superiore a 10
 

Allegati

fabiovello

Utente Junior
Professione: Progettista
Software: Visi - Cocreate - Solid Edge v20 & ST - OSM - SolidWorks 2016 - Inventor
Regione: Piemonte
#90
Allego la macro per tagliare il nome del file in 2 sezioni:
- la prima prende i primi 10 caratteri e li copia dentro alla proprietà personalizzata NOME FILE
- la seconda porzione inserisce la parte rimanente del nome del file e la inserisce dentro alla proprietà personalizzata DESCRIZIONE

Prerequisiti:
- File di parte aperto
- Il nome del file deve avere un numero di caratteri superiore a 10
Ti ringrazio sei stato davvero gentile, mentre ci sono me ne approfitto.... e se io per abitudine di ufficio dovessi usare il nome file "1234567890 - Albero" ? si potrebbe impostare?

In ogni caso grazie ancora!
 

mdstudio

Utente poco attivo
Professione: Progettista
Software: SW,SE
Regione: Emilia-Romagna
#92
Ciao a tutti!

Spero di essere nel posto giusto!

Ho dato un occhiata in giro e ho fatto qualche ricerca ma non sono riuscito a trovare quello che cercavo..
Avrei bisogno di una macro che faccia questo:

data una parte

salva con nome della parte e del suo draw con altrettanti riferimenti.


Provo a spiegarmi meglio, se ho una parte con un disegno ed ho bisogno di averne un altra per un altro progetto che abbia un altro nome, vorrei fare in modo che non debba tutte le volte rifare la tavola.
Quindi mi piacerebbe che con una macro riuscissi a copiare la parte e la sua tavola con nome nuovo e i nuovi file (.SLDPRT e .DRAW) abbiano i riferimenti giusti tra di loro, non alla parte "vecchia".

Ho provato con alcune funzioni di salvataggio e utilizzando la registrazione macro ma senza risultati validi.

Qualcuno ha qualcosa di funzionante?

Grazie in anticipo a tutti
 

CIARLY

Utente Standard
Professione: Disegnatore
Software: SolidWorks 2014 sp4
Regione: Piemonte
#93
Ciao a tutti!

Spero di essere nel posto giusto!

Ho dato un occhiata in giro e ho fatto qualche ricerca ma non sono riuscito a trovare quello che cercavo..
Avrei bisogno di una macro che faccia questo:

data una parte

salva con nome della parte e del suo draw con altrettanti riferimenti.


Provo a spiegarmi meglio, se ho una parte con un disegno ed ho bisogno di averne un altra per un altro progetto che abbia un altro nome, vorrei fare in modo che non debba tutte le volte rifare la tavola.
Quindi mi piacerebbe che con una macro riuscissi a copiare la parte e la sua tavola con nome nuovo e i nuovi file (.SLDPRT e .DRAW) abbiano i riferimenti giusti tra di loro, non alla parte "vecchia".

Ho provato con alcune funzioni di salvataggio e utilizzando la registrazione macro ma senza risultati validi.

Qualcuno ha qualcosa di funzionante?

Grazie in anticipo a tutti[/QUOTE

Guarda per fare quello che dici basta il "Pack and Go" di solidworks lo trovi nel menu file e anche nel menu costestuale di explora risorse, se fai tasto dx sul file da copiare, sia esso una parte o un assieme selezioni slidworks ti dà quattro optzioni, selezioni il "pack and Go" ti siapre un menù nel quale per prima cosa devi selezionare includi disegni, dopo decidi di cambiare nome al file, dove salvarlo e altre cose, e questo ti tiene aggiornati iriferimenti.
Lo stesso lo fai con solidexplorer, provali e perdici um pò di tempo che ne vale la pena.
 

mdstudio

Utente poco attivo
Professione: Progettista
Software: SW,SE
Regione: Emilia-Romagna
#94
Ciao Carlo,

Altri metodi per fare questo procedimento li conosco,

il fatto è che volevo evitare di fare clic superflui, se con una macro facesse tutto sarebbe molto meglio!

- - - Aggiornato - - -

Ciao a tutti!

Spero di essere nel posto giusto!

Ho dato un occhiata in giro e ho fatto qualche ricerca ma non sono riuscito a trovare quello che cercavo..
Avrei bisogno di una macro che faccia questo:

data una parte

salva con nome della parte e del suo draw con altrettanti riferimenti.


Provo a spiegarmi meglio, se ho una parte con un disegno ed ho bisogno di averne un altra per un altro progetto che abbia un altro nome, vorrei fare in modo che non debba tutte le volte rifare la tavola.
Quindi mi piacerebbe che con una macro riuscissi a copiare la parte e la sua tavola con nome nuovo e i nuovi file (.SLDPRT e .DRAW) abbiano i riferimenti giusti tra di loro, non alla parte "vecchia".

Ho provato con alcune funzioni di salvataggio e utilizzando la registrazione macro ma senza risultati validi.

Qualcuno ha qualcosa di funzionante?

Grazie in anticipo a tutti[/QUOTE

Guarda per fare quello che dici basta il "Pack and Go" di solidworks lo trovi nel menu file e anche nel menu costestuale di explora risorse, se fai tasto dx sul file da copiare, sia esso una parte o un assieme selezioni slidworks ti dà quattro optzioni, selezioni il "pack and Go" ti siapre un menù nel quale per prima cosa devi selezionare includi disegni, dopo decidi di cambiare nome al file, dove salvarlo e altre cose, e questo ti tiene aggiornati iriferimenti.
Lo stesso lo fai con solidexplorer, provali e perdici um pò di tempo che ne vale la pena.
 

jenuary

Utente Standard
Professione: Progettista e Programmatore VB.Net
Software: Solidworks
Regione: Veneto
#95
Il file copia della parte e della tavola va salvato nella stessa directory della parte di partenza?
E' una cosa che fai dall'assieme o dal documento parte aperto?
 

mdstudio

Utente poco attivo
Professione: Progettista
Software: SW,SE
Regione: Emilia-Romagna
#96
Il file copia della parte e della tavola va salvato nella stessa directory della parte di partenza?
E' una cosa che fai dall'assieme o dal documento parte aperto?
Il file copia può essere salvato in entrambe, comunque parte e tavola insieme nella stessa cartella che può essere identica o differente. Pensavo di utilizzare il codice "getfolder" per dare la possibilità di scegliere la cartella di destinazione..

Il documento di partenza è il documento parte aperto.
 

jenuary

Utente Standard
Professione: Progettista e Programmatore VB.Net
Software: Solidworks
Regione: Veneto
#97
Ciao te lo chiedevo apposta,
per evitare di scegliere sempre il direttorio, ma capisco che non è detto sia sempre nel direttorio del padre.
Io utilizzerei le Api di Windows mediante
File Save Dialog

Mi sembra di capire che probabilmente te ne intendi, io se fossi in te creerei
l'architettura della macro in questo modo:
- Faccio apparire a video File Save Dialog che mi chiede il nome del file (come copia)
- Salvo copia del file e verifico se esiste una tavola con lo stesso nome
- Se esiste copio il file tavola, gli cambio il nome e mediante l'api ReplaceReferencedDocument rimpiazzo i riferimenti alle viste e il gioco è fatto.

Vedrai che funziona, io rinomino i file dentro all'assieme con la sua tavola di riferimento da dentro l'assieme più o meno in questo modo.