Le macro di SolidWorks

jenuary

Utente Standard
Professione: Progettista e Programmatore VB.Net
Software: Solidworks
Regione: Veneto
Le macro di SolidWorks...:mixed:
E' da tempo che volevo aprire questa discussione, perchè sempre più spesso, all'interno del Forum, gli utenti necessitano di macro che gli possano
risolvere il "problema".
Abbiamo visto piu volte che i problemi sono abbastanza soggettivi, dettati da un sistema di lavoro alle volte improprio o poco flessibile, dove in realtà
una macro non è la soluzione migliore.
A parte queste situazioni, esistono dal mio punto di vista molte esigenze comuni, dove una macro potrebbe risolvere la situazione, con enormi risparmi di
tempo limitando anche l'errore.
Mi piacerebbe condividere con tutti voi, quali macro sarebbero piu utili rispetto ad altre, suddividendole magari per tipologia, come per esempio

-schizzi
-parti
-assiemi
-proprietà personalizzate

una volta creata un lista di priorità, sarebbe bello crearle insieme, secondo le proprie conoscenze, dando beneficio un po a tutti.
Magari i moderatori sapranno, se riterranno utile questa discussione, su come si potrà fare.

Sono convinto che, alcune richieste, potranno essere esaudite senza grossi sforzi, altre invece bisognerà lavorarci un pò, altre ancora invece potranno avere
una soluzione alternativa dentro i comandi di Solidworks.
Di certo a chi nutre interesse, questo gli permetterà di crescere sotto questo aspetto riuscendo a programmare un po quello che gli serve.

Buona giornata a tutti :finger:
 

-Mc-

Utente Standard
Professione: Progettista
Software: Solid Edge / Solid Works
Regione: Emilia Romagna
che voi sappiate, esiste un manuale di creazione delle macro in solidworks? ho acqusitato una guida Visual Basic applicata a Excel ed è molto simile a livello di comandi;
esiste qualcosa di simile in commercio?
grazie
 

CIARLY

Utente Standard
Professione: Disegnatore
Software: SolidWorks 2014 sp4
Regione: Piemonte
Le macro di SolidWorks...:mixed:
E' da tempo che volevo aprire questa discussione, perchè sempre più spesso, all'interno del Forum, gli utenti necessitano di macro che gli possano
risolvere il "problema".
Abbiamo visto piu volte che i problemi sono abbastanza soggettivi, dettati da un sistema di lavoro alle volte improprio o poco flessibile, dove in realtà
una macro non è la soluzione migliore.
A parte queste situazioni, esistono dal mio punto di vista molte esigenze comuni, dove una macro potrebbe risolvere la situazione, con enormi risparmi di
tempo limitando anche l'errore.
Mi piacerebbe condividere con tutti voi, quali macro sarebbero piu utili rispetto ad altre, suddividendole magari per tipologia, come per esempio

-schizzi
-parti
-assiemi
-proprietà personalizzate

una volta creata un lista di priorità, sarebbe bello crearle insieme, secondo le proprie conoscenze, dando beneficio un po a tutti.
Magari i moderatori sapranno, se riterranno utile questa discussione, su come si potrà fare.

Sono convinto che, alcune richieste, potranno essere esaudite senza grossi sforzi, altre invece bisognerà lavorarci un pò, altre ancora invece potranno avere
una soluzione alternativa dentro i comandi di Solidworks.
Di certo a chi nutre interesse, questo gli permetterà di crescere sotto questo aspetto riuscendo a programmare un po quello che gli serve.

Buona giornata a tutti :finger:

Discussione che trovo molto interessante, personalmente ho alcuni modelli che devo fare sovente in misure sempre diverse, mi sono creato dei fogli di Excell con macro incorporata e dopo aver impostato le varie misure nel folio lancio la macro che mi aggiorna l'assieme aperto.
Colgo comunque l'occasione per chiederti, visto che sei esperto in macro, come si fà ad esempio se di una parte che ha una configurazione ha crearne una nuova e impostare una quota con un valore diverso dalla configurazione 1.

Mi spiego meglio, riesco a creare la configurazione e avere la quota esatta se parto con una parte che ha già due configurazioni, e la quota è settata "per questa configurazione" invece se parto da una parte con una sola configurazione, quando creo la seconda e vado a modificare la quota questa sovrascrive anche la prima configurazione.

Questa cosa non succedeva con la 2008 e forse anche con la 2009.

Tu sai come si fà da macro a settare una quota "per questa configurazione"
 

CIARLY

Utente Standard
Professione: Disegnatore
Software: SolidWorks 2014 sp4
Regione: Piemonte
che voi sappiate, esiste un manuale di creazione delle macro in solidworks? ho acqusitato una guida Visual Basic applicata a Excel ed è molto simile a livello di comandi;
esiste qualcosa di simile in commercio?
grazie

In questo sito http://www.cadsharp.com/videos/ trovi del materiale a pagamento e altro libero.

Comuque in rete trovi parecchio se vuoi perdere un pò di tempo fai una ricerca su macro solidwoks e ti sbizzarisci.

Per il libro vedi se ti interessa http://books.google.it/books?id=SG6...tomating SolidWorks 2013 Using Macros&f=false
 

jenuary

Utente Standard
Professione: Progettista e Programmatore VB.Net
Software: Solidworks
Regione: Veneto
Discussione che trovo molto interessante, personalmente ho alcuni modelli che devo fare sovente in misure sempre diverse, mi sono creato dei fogli di Excell con macro incorporata e dopo aver impostato le varie misure nel folio lancio la macro che mi aggiorna l'assieme aperto.
Colgo comunque l'occasione per chiederti, visto che sei esperto in macro, come si fà ad esempio se di una parte che ha una configurazione ha crearne una nuova e impostare una quota con un valore diverso dalla configurazione 1.

Mi spiego meglio, riesco a creare la configurazione e avere la quota esatta se parto con una parte che ha già due configurazioni, e la quota è settata "per questa configurazione" invece se parto da una parte con una sola configurazione, quando creo la seconda e vado a modificare la quota questa sovrascrive anche la prima configurazione.

Questa cosa non succedeva con la 2008 e forse anche con la 2009.

Tu sai come si fà da macro a settare una quota "per questa configurazione"


Per la configurazione di una quota, il procedimento è molto semplice, parliamo per esempio di una parte che ha due configurazioni e ho una quota che deve avere valore diverso tra le due configurazioni:
- doppio click sulla quota per cambiarne il valore, e a fianco del valore ti trovi il bottoncino delle configurazione a cui applicare il cambiamento.

L'immagine allegata ti fa capire meglio come fare.

Per quanto riguarda il cambiamento della quota in quella specifica configurazione, il procedimento è molto semplice, ma il codice rimane "statico" e non dinamico, mi spiego meglio:
- per cambiare il valore ad una quota via Api, devi conoscere il l'ideantificativo della quota da cambiare (es.D2@[email protected])
- selezionarla
- e cambiarne il valore, specificando la configurazione che ti interessa, oppure tutte
- il codice della macro è il seguente:

Option Explicit

Dim swApp As SldWorks.SldWorks

Dim swModel As SldWorks.ModelDoc2

Dim swModelDocExt As SldWorks.ModelDocExtension

Dim swSelMgr As SldWorks.SelectionMgr

Dim swDim As SldWorks.Dimension

Dim dimValue As Variant

Dim boolstatus As Boolean

Dim longstatus As Long



Sub main()



Set swApp = Application.SldWorks

Set swModel = swApp.ActiveDoc

Set swSelMgr = swModel.SelectionManager

Set swModelDocExt = swModel.Extension



boolstatus = swModelDocExt.SelectByID2("D2@[email protected]", "DIMENSION", 0, 0, 0, False, 0, Nothing, swSelectOptionDefault)

Set swDim = swModel.Parameter("D2@Schizzo1")

dimValue = swDim.GetSystemValue3(swThisConfiguration, Empty)

dimValue(0) = dimValue(0) / 2

longstatus = swDim.SetSystemValue3(dimValue(0), swSetValue_InThisConfiguration, Empty)

swModel.EditRebuild3

End Sub


Ciao
 

Allegati

  • Configurazione quota.png
    Configurazione quota.png
    15.5 KB · Views : 148

jenuary

Utente Standard
Professione: Progettista e Programmatore VB.Net
Software: Solidworks
Regione: Veneto
che voi sappiate, esiste un manuale di creazione delle macro in solidworks? ho acqusitato una guida Visual Basic applicata a Excel ed è molto simile a livello di comandi;
esiste qualcosa di simile in commercio?
grazie


Come diceva CIARLY, in rete trovi parecchio, dopo però va modificata a piacere.
In commercio ci sono pochissimi libri e questi sono proprio terra terra, ti insegnano alcuni oggetti delle API, ma è piu semplice trovare qualcosa in rete.
La difficoltà ma ancjhe la strada giusta è seguire la scaletta degli oggetti Api che trovi nella Guida in Linea Api, dove capisci per quali oggetti devi passare per ottenere quello che ti serve.
Per esempio de devi ricavare il nome dello schizzo che ha generato Estrusione1, devi prima passare per l'oggetto della Feature Estrusione1 e ricavarne le Subfeature (lo schicco è una subfeature contenuta nella feature).

Se riesco a trovarti qualcosa lo posto volentieri

Ciao
 

CIARLY

Utente Standard
Professione: Disegnatore
Software: SolidWorks 2014 sp4
Regione: Piemonte
Scusa il tempo ma ho voluto prepararti un esempio di cosa intendevo, diciamo che le mie macro sono fatte un pò cosi.

Per la configurazione di una quota, il procedimento è molto semplice, parliamo per esempio di una parte che ha due configurazioni e ho una quota che deve avere valore diverso tra le due configurazioni:
- doppio click sulla quota per cambiarne il valore, e a fianco del valore ti trovi il bottoncino delle configurazione a cui applicare il cambiamento.

L'immagine allegata ti fa capire meglio come fare.

Fino quà ci sono.


Per quanto riguarda il cambiamento della quota in quella specifica configurazione, il procedimento è molto semplice, ma il codice rimane "statico" e non dinamico, mi spiego meglio:
- per cambiare il valore ad una quota via Api, devi conoscere il l'ideantificativo della quota da cambiare (es.D2@[email protected])
- selezionarla
- e cambiarne il valore, specificando la configurazione che ti interessa, oppure tutte
- il codice della macro è il seguente:

Mi piace sapere che è molto semplice ma non per tutti.

Nel file allegato vi è una parte di SW e un file di Excell.
Si apre il cubo in Solid works e il file di excell a questo punto si lancia la macro da excell.
Uso questo sistema perchè in un foglio di Excell posso fare tutti i calcoli che voglio e prelevare i valori da impostare sulle mie quote.


Come vedrai il mio problema é riuscire in questa macro a settare il valore della quota "per questa Configurazione"

Ho visto il tuo codice ma non sono riuscito a inserirlo nella macro.
 

Allegati

  • Cubo.zip
    59.3 KB · Views : 36

jenuary

Utente Standard
Professione: Progettista e Programmatore VB.Net
Software: Solidworks
Regione: Veneto
Ciao, ho testato la macro e modificata affinche funzionasse, dagli un occhiata e se qualcosa non risulta chiaro vediamo di approfondire.
Buon weekend :finger:
 

Allegati

  • Cubo_modificata.zip
    21 KB · Views : 49

CIARLY

Utente Standard
Professione: Disegnatore
Software: SolidWorks 2014 sp4
Regione: Piemonte
Ciao, ho testato la macro e modificata affinche funzionasse, dagli un occhiata e se qualcosa non risulta chiaro vediamo di approfondire.
Buon weekend :finger:

Innanzi tutto grazie infinite.

Ne approfitto.

1 Dalla macro ho tolto delle righe e aggiunto delle dimensioni, funziona, volevo sapere se secondo te e' corretta.
2 Per caso si possono fare delle porzioni di codice richiamabili in altre macro?

Mi spiego, la parte di codice che configura una parte si puo richiamare nelle macro di configurazione di assiemi diversi?
 

Allegati

  • Cubo_A.zip
    61.8 KB · Views : 29

jenuary

Utente Standard
Professione: Progettista e Programmatore VB.Net
Software: Solidworks
Regione: Veneto
Il codice è Ok, ti consiglio di inserire sempre una descrizione nel gruppo di codice, es. "Qui recupero la quota e gli passo il nuovo valore", questo perchè anche se fra un anno la riprendi in mano , sei immediato nelle modifiche, senza riprendere in mano tutto.
Per la domanda del punto 2, bisogna vedere caso per caso, perchè la selezione SelectById richiede che gli passi il percorso completo della tua selezione, nel tuo caso una quota, che però si trova dentro ad una parte che a sua volta è dentro un assieme.

Fai una prova e vedi subito il risultato.

Ciao
 

CIARLY

Utente Standard
Professione: Disegnatore
Software: SolidWorks 2014 sp4
Regione: Piemonte
Il codice è Ok, ti consiglio di inserire sempre una descrizione nel gruppo di codice, es. "Qui recupero la quota e gli passo il nuovo valore", questo perchè anche se fra un anno la riprendi in mano , sei immediato nelle modifiche, senza riprendere in mano tutto.
Per la domanda del punto 2, bisogna vedere caso per caso, perchè la selezione SelectById richiede che gli passi il percorso completo della tua selezione, nel tuo caso una quota, che però si trova dentro ad una parte che a sua volta è dentro un assieme.

Fai una prova e vedi subito il risultato.

Ciao

Riesumo questa vecchia discussione, per chiedere a Jenuary, visto che le macro le mastica molto bene.

In solidwoks, esiste una chiamata che ritorni, il valore della ripetizione piatta in un file di lamiera?

Grazie anticipate
 

jenuary

Utente Standard
Professione: Progettista e Programmatore VB.Net
Software: Solidworks
Regione: Veneto
Ciao CIARLY,
per valore della ripetizione piatta intendi le dimensioni minime del box di ingombro del corpo di lamiera?
 

jenuary

Utente Standard
Professione: Progettista e Programmatore VB.Net
Software: Solidworks
Regione: Veneto
Si esatto, mi piacerebbe aggiungere al file una proprieta personalizzata con questo valore.

Allego la macro richiesta con una parte in lamiera su cui ho fatto i test.
Non è necessario che la ripetizione piatta sia attiva per ricavare il box piano.
 

Allegati

  • Dimensioni Lamiera Piana.rar
    106.5 KB · Views : 25

CIARLY

Utente Standard
Professione: Disegnatore
Software: SolidWorks 2014 sp4
Regione: Piemonte
Allego la macro richiesta con una parte in lamiera su cui ho fatto i test.
Non è necessario che la ripetizione piatta sia attiva per ricavare il box piano.


Grazie infinite della macro.

Ti volevo chiedere i valori messi fuori se sono decimali, scrive una dozzina di cifre dopo la virgola si possono tagliare in qualche modo?
 

jenuary

Utente Standard
Professione: Progettista e Programmatore VB.Net
Software: Solidworks
Regione: Veneto
Certo, ne mettiamo al massimo 3, che ne dici? così Lunedi mattina te la aggiorno.
 

CIARLY

Utente Standard
Professione: Disegnatore
Software: SolidWorks 2014 sp4
Regione: Piemonte
Certo, ne mettiamo al massimo 3, che ne dici? così Lunedi mattina te la aggiorno.

Secondo il mio parere visto che è una lamiera e queste vanno quasi sempre piegate, la tolleranza è ampia e una cifra è sufficente.

Piuttosto se la lamiera avesse più configurazioni, cosa succede? ne viene processata una sola?

A questo punto come vedi quando si dà una mano ti viene subito preso il braccio, non vorrei approfittare troppo del tuo tempo, Grazie
 

jenuary

Utente Standard
Professione: Progettista e Programmatore VB.Net
Software: Solidworks
Regione: Veneto
Ciao Ciarly,
per me è indifferente, se vuoi postiamo un duplicato che va a scrivere nella proprietà di configurazione.
Hai qualche preferenza per il nome della proprietà visto che sei tu l'apri pista per questa macro?
 

CIARLY

Utente Standard
Professione: Disegnatore
Software: SolidWorks 2014 sp4
Regione: Piemonte
Ciao Ciarly,
per me è indifferente, se vuoi postiamo un duplicato che va a scrivere nella proprietà di configurazione.
Hai qualche preferenza per il nome della proprietà visto che sei tu l'apri pista per questa macro?

No il nome va bene, anche perchè basta modificarlo nella macro.

Piuttosto se alla fine, sospende di nuovo la ripetizione piatta, lascerebbe la lamiera piegata come era in partenza.

Per il duplicato, questo riesce a tirare fuori i valori delle diverse cofigurazioni? sarebbe eccezionale.
 

Byron

Utente Junior
Professione: Progettista
Software: Solidworks 2019 Sp.5 ; Caddy++ 2013
Regione: Toscana
Io invece sto cercando una macro per solidworks 2016 che,in automatico, quando salvo un file di parte (o di assieme) mi generi una tavola di disegno contenente la vista prospettica e la salvi col nome dell file generante. Tu tto quewsto mi servirebbe per tenere legato col pdm standard di solidworks i pezzi alle tavole fin datta prima creazione delle matematiche. Sapete se ne esiste una che faccia all'incirca quello che cerco?
 

Statistiche forum

Discussioni
58,043
Messaggi
494,379
Utenti registrati
102,637
Ultimo utente registrato
cima

Staff online

Top