Macro interessanti per SolidWorks

GDavideVR

Utente poco attivo
Professione: PhD Student
Software: SolidWorks 2018
Regione: veneto
Buonasera a tutti gli utenti del forum!

Mi trovo a scrivere per chiedere il vostro aiuto in ambito macro di SW, leggendo i consigli che sono stati dati ad altri utenti prima di me, credo di essere nel posto giusto!

Per prima cosa vorrei chiedere se siete a conoscenza dell'esistenza di una macro in grado di esportare le coordinate dei punti di uno schizzo in un file Excel in modo ordinato. Mi spiego meglio, sul web ho trovato delle macro in grado di esportare le coordinate ma non danno la possibilità di ordinare i punti, per esempio di un contorno, in senso orario o antiorario. Tale necessità deriva dal fatto che devo poi inserire questi punti in Matlab e plottare il contorno. Qualcuno ha info a riguardo?

In secondo luogo, conoscete qualche guida online di buona qualità che consenta di imparare almeno i rudimenti di visual basic per la programmazione delle macro per solidworks?

Ringrazio in anticipo chi mi saprà aiutare.
Ciao!
 

jenuary

Utente Standard
Professione: Progettista e Programmatore VB.Net
Software: Solidworks
Regione: Veneto
Ciao GDavideVR,
per i manuali potrei consigliarti questi link, sono tutti libri che ho anche io, ma li ho presi dopo aver imparato, ho fatto la cosa al rovescio.
Per uno che vuole imparare è un buon inizio, però c'è sempre da dire che richiedono un'infarinatura di programmazione alle spalle.
Se fossi in tè li acquisterei uno alla volta,una volta assimilato il primo passerei al livello successivo, l'ordine che ti scrivo sotto è per grado di difficoltà.

https://www.amazon.it/Automating-SOLIDWORKS-2019-Using-Macros/dp/1630572136
https://www.amazon.com/SolidWorks-API-1-Programming-Automation-ebook/dp/B00HSSJKOY
https://www.amazon.it/SolidWorks-API-Advanced-Product-Development-ebook/dp/B00HSSRU3C

Per la questione dei punti la questione è assai vasta, credo avrò delle difficoltà nello spiegarmi per via che i dati ricavati sono diversi in base alle entità che andiamo ad assorbire.
- Prima di tutto potremmo avere uno schizzo formato da entità punto e da profili, tanti o pochi o uno soltanto. In questo caso dovremmo ciclare tutte le entità, ricavarne le coordinate dei punti iniziali e finali, ricavare le coordinate delle entità punto, eliminare i doppioni (inizio di una entità corrisponde alla fine di un'altra, nel caso di una catena).
Da questa nuvola di punti bisognerebbe studiare un algoritmo che li ordina in senso orario o antiorario, verificando i punti più esterni e man mano spostarsi
- Le casistiche potrebbero essere tante, bisognerebbe definire degli standard di partenza.

Nel web non ho guardato, bisognerebbe cercare.
 

GDavideVR

Utente poco attivo
Professione: PhD Student
Software: SolidWorks 2018
Regione: veneto
Ciao GDavideVR,
per i manuali potrei consigliarti questi link, sono tutti libri che ho anche io, ma li ho presi dopo aver imparato, ho fatto la cosa al rovescio.
Per uno che vuole imparare è un buon inizio, però c'è sempre da dire che richiedono un'infarinatura di programmazione alle spalle.
Se fossi in tè li acquisterei uno alla volta,una volta assimilato il primo passerei al livello successivo, l'ordine che ti scrivo sotto è per grado di difficoltà.

https://www.amazon.it/Automating-SOLIDWORKS-2019-Using-Macros/dp/1630572136
https://www.amazon.com/SolidWorks-API-1-Programming-Automation-ebook/dp/B00HSSJKOY
https://www.amazon.it/SolidWorks-API-Advanced-Product-Development-ebook/dp/B00HSSRU3C

Per la questione dei punti la questione è assai vasta, credo avrò delle difficoltà nello spiegarmi per via che i dati ricavati sono diversi in base alle entità che andiamo ad assorbire.
- Prima di tutto potremmo avere uno schizzo formato da entità punto e da profili, tanti o pochi o uno soltanto. In questo caso dovremmo ciclare tutte le entità, ricavarne le coordinate dei punti iniziali e finali, ricavare le coordinate delle entità punto, eliminare i doppioni (inizio di una entità corrisponde alla fine di un'altra, nel caso di una catena).
Da questa nuvola di punti bisognerebbe studiare un algoritmo che li ordina in senso orario o antiorario, verificando i punti più esterni e man mano spostarsi
- Le casistiche potrebbero essere tante, bisognerebbe definire degli standard di partenza.

Nel web non ho guardato, bisognerebbe cercare.
Grazie Jenuary per la rapida risposta.

Provo ad approfondire la “questione punti”, se non ti dispiace, perché dovrei cercare di uscirne nell’immediato.
I tipi di schizzo che andrei ad importare sarebbero sempre dei contorni discretizzati da circa un migliaio di punti, pertanto, la nuvola di punti che menzionavi non avrebbe punti interni, ma solo contorni. Inoltre, non genero doppioni durante la discretizzazione quindi anche quello sarebbe un problema superato.
La macro che importa i dati in Excel ce l’ho già, si tratterebbe solo di modificarla inserendo l'ordinamento dei punti.

Dato che sei stato così gentile da suggerirmi quei manuali (farò prima una capatina in biblioteca 😉) , sapresti indicarmi anche qualche sito o blog in cui provare a cercare?

Grazie Mille!
 

jenuary

Utente Standard
Professione: Progettista e Programmatore VB.Net
Software: Solidworks
Regione: Veneto
Parlavi di profili pertanto pensavo avessi profili di schizzo.
La nuvola di punti è nel piano immagino.
Nel web si dovrebbe trovare qualche algoritmo da integrare, va adattato ovviamente all'esigenza, per farlo non è ovviamente un copia incolla, bisogna lavorarci su e testare il risultato.
Come macro già pronte nel web per SolidWorks dando una guardata veloce non ho trovato nulla.
Prova a cercare, magari qualcosa trovi, magari così si può recuperare parte del codice.
 

Marco.M

Utente poco attivo
Professione: progettista
Software: Inventor 2020 - Solidworks 2020
Regione: veneto
Ciao
Ho modificato leggermente la macro perchè da una parte non salvava nelle directory corrette e dall’altra, se non esisteva
la sottocartella predefinita per i pdf, i files non venivano salvati.
Spero fosse questo l’errore che segnalavi. Testato con Win7 64bit e Solidworks 2016 sp.3

Ciao
Gabriele
Ciao utilizzando questa macro in Solidworks 2020 mi dà il seguente errore:

1583759329220.png

facendo il dedug mi viene evidenziata la seguente riga:

1583759370622.png

pdf e dwg funzionano ma non viene creato il file .stp

Qualcuno può aiutarmi?

grazie

Marco
 

jenuary

Utente Standard
Professione: Progettista e Programmatore VB.Net
Software: Solidworks
Regione: Veneto
Probabilmente swModel2 non è dichiatata.
Inserisci questa riga prima dell'apertura del file

Dim swModel2 as Sldworks.Modeldoc2

1583845483519.png
 

Marco.M

Utente poco attivo
Professione: progettista
Software: Inventor 2020 - Solidworks 2020
Regione: veneto

jenuary

Utente Standard
Professione: Progettista e Programmatore VB.Net
Software: Solidworks
Regione: Veneto
Anche inserendo la dichiarazione della variabile rimane tutto invariato, lo stesso errore, la stessa linea.

Per completezza di informazione di attacco anche lo screenshoot della parte iniziale della macro


View attachment 56589

View attachment 56590
Prova ad andare sulla tendina Strumenti-> Riferimenti
vedi se manca una spunta, potrebbe essere che fosse attiva una spunta di un riferimento che nella versione 2020 non c'è più.
Nel caso non dipendesse da quello, prova ad allegare la macro oppure mandamela in privato.

Ciao