Macro interessanti per SolidWorks

phnxttt

Utente poco attivo
Professione: progettazione tappatori e riempitrici
Software: solidworks , draftsight
Regione: lombardia
Quote dove? Parte o disegno?
Buongiorno anche a te... educazione questa sconosciuta
Scusa per il buongiorno mancato,sto lavorando ed ero parecchio preso.
ad ogni modo mi interessa come da titolo sapere se esiste una macro per colorare in automatico tutte le quote di una tavola.

lavorando con fornitori che utilizzano di default i files dwg sarebbe comodo per loro avere il colpo d'occhio su quote colorate
in alternativa potrebbe andare una macro che sposta (creando se necessario) le quote su un layer,colorato.

grazie per eventuali risposte
 
Professione: disegnatore
Software: autocad 2013; solidworks 2014
Regione: Friuli Venezia Giulia
O imposti nel modello un livello per le quote, non è retroattivo, oppure selezioni tutte le quote e cambi livello o colore
 

phnxttt

Utente poco attivo
Professione: progettazione tappatori e riempitrici
Software: solidworks , draftsight
Regione: lombardia
O imposti nel modello un livello per le quote, non è retroattivo, oppure selezioni tutte le quote e cambi livello o colore
Ti ringrazio.
Inizio a fare dei test allora.
Comunque una macro penso sarebbe piu' rapida.
ora io sistemero' i modelli delle tavole ma per le tavole esistenti dovrei sistemare ciascuna manualmente.
Lavorando in un ufficio con piu persone volevo che i miei colleghi avessero la soluzione piu semplice a disposizione.
 

MAX71324

Utente Junior
Professione: Progettista
Software: Inventor2015-Solidworks2017
Regione: Friuli Venezia Giulia
Salve, ho bisogno di un aiuto: si può fare una macro che esporti il pdf in b/n di una tavola in una specifica cartella con percorso settabile anche manualmente all'interno del testo della macro e che legga automaticamente dalla parte o dall'assieme la proprietà "revisioneattuale" per poi inserirla nel nome file?

ESEMPIO:

nome file parte o assieme: 2000105.sldprt o sldasm
proprietà "revisioneattuale" contenuta nella parte o assieme: 01
nome file tavola corrispondente: 2000105.slddrw

nome file pdf generato in una cartella con percorso settabile: 2000105_01.pdf

Ho visto una macro molto simile ma generava il pdf nello stesso percorso della tavola e non allegava al file la revisione...Potrei pagare con serie di birre se chi mi aiuta abita vicino a Udine.:finger:
 

Albertoscap

Utente poco attivo
Professione: disegnatore
Software: solidworks
Regione: vicenza
Ho modificato la macro nella zona ...WorkDir = swApp.... e nella definizione file relativo il codice per lo 'step'.
Allego macro.


Ciao
Gabriele
Riusciresti a modificarla in maniera che non devo crearmi la cartella PDF + DWG?
ma che i pdf e dwg me li salvi nella stessa cartella dove sono presenti le tavole?

Grazie mille
 

Giuliofiamma

Utente registrato
Professione: Studente
Software: Solidworks
Regione: Italia
Buongiorno a tutti, sono iscritto da poco e sono ancora alle prime armi nello sviluppo delle macro in Solidworks.
In questa procedura è mia intenzione voler creare un parallelepipedo e ripeterlo quante volte si vuole, ma quando eseguo il codice, una volta creato il solido questo non viene ripetuto.
Qualcuno mi saprebbe dire dove sta il problema?
Ringrazio in anticipo
 

Allegati

AGFB

Utente registrato
Professione: disegnatore
Software: solid works
Regione: lombarida
Buongiorno a tutti
è da tempo che sto pensando di creare una nuova macro per la realizzazione delle tavole di piegatura lamiere.
(lavoro ripetitivo e noioso :eek:)

le tavole che devo creare sono molto semplici.
nelle tavole ci deve essere:
-sviluppo piano della lamiera quotato
-le quote delle varie pieghe
-materiale e spessore della lamiera

essendo un buon progettista ma neofita nella realizzazione di macro, mi chiedevo se qualcuno di voi ha già creato qualcosa di simile.

grazie mille
 

jenuary

Utente Standard
Professione: Progettista e Programmatore VB.Net
Software: Solidworks
Regione: Veneto
Buongiorno a tutti
è da tempo che sto pensando di creare una nuova macro per la realizzazione delle tavole di piegatura lamiere.
(lavoro ripetitivo e noioso :eek:)

le tavole che devo creare sono molto semplici.
nelle tavole ci deve essere:
-sviluppo piano della lamiera quotato
-le quote delle varie pieghe
-materiale e spessore della lamiera

essendo un buon progettista ma neofita nella realizzazione di macro, mi chiedevo se qualcuno di voi ha già creato qualcosa di simile.

grazie mille
Ci sono molti fattori che fanno si che il risultato non sia buono, ad esempio il formato (A3-A4 ecc ) chi lo sceglie? E il fattore scala e la distanza delle viste?
Un casino anche se pur fattibile, o almeno in parte
 

AGFB

Utente registrato
Professione: disegnatore
Software: solid works
Regione: lombarida
Certo le problematiche sono molteplici,
queste da te elencate credo siano fattibili.

i problemi sono altri:
-come quotare in automatico il fuori tutto della ripetizione piatta
-come quotare le pieghe delle altre viste!??

qualcuno sa darmi una mano??
 

skia51

Utente Junior
Professione: ingegnere meccanico progettista
Software: solidworks 2016, AUTOCAD 2016, INVENTOR 2016
Regione: campania

tanticapelli

Utente Standard
Professione: Impiegato tecnico
Software: AutoCAD e SolidWorks 2016 SP 5.0 Professional Solidworks 2017 SP 5.0 Professional
Regione: Piemonte
Ciao a tutti

mi sto rendendo conto che l'attività di esportazione parti/assiemi mi sta portando via un po' troppo tempo per cui mi piacerebbe avere, con il vostro aiuto dal momento che non so nulla di VBA, una macro che automatizzasse questo processo.

Permessa:
Sarà ovviamente mia cura organizzare gli elementi oggetto di esportazione in sottoassiemi ad hoc di cui farei il pack n go in una cartella che avrebbe sempre lo stesso percorso "Y:\ESP", mentre i files esportati dovrebbero avere percorso "Y:\ESP\01".

Vorrei che tutti i files presenti in Y:\ESP venissero esportati secondo questo criterio:
1) Tutte le parti e sottoassiemi in STEP AP214 e IGES;
2) Tutti i files di disegno in formato DWG (con opzioni di esportazione prese dal settaggio in uso di Opzioni--->Esporta--->DXF/DWG);

Sarebbe fondamentale però che i nomi dei files esportati (per tutti i formati) contenessero solo ed esclusivamente la voce "Description" delle proprietà personalizzate o di configurazione (a seconda se si tratta di un file con configurazioni oppure no, sia esso parte od assieme).

Nel caso in cui il campo Description non fosse compilato o non fosse presente nel nome file vorrei che comparisse 0001 e aumentasse progressivamente di una unità via via che nella cartella la macro incontrasse files con campo Description vuoto.

Inoltre potrebbe capitare che nei files di disegno fossero presenti più fogli, per cui sarebbe necessario che venisse aperto ricostruito ed esportato ogni singolo foglio del disegno in un files dwg separati.

Anche parti ed assiemi dovrebbero essere lanciati e ricostruiti c (Ctrl+Q) prima di venire esportati, poichè alcuni di questi files potrebbero contenere riferimenti esterni (che ovviamente sarebbe mia cura tenere sbloccati).

Nelle opzioni di Solidworks mantengo sempre attive le opzioni:
Opzioni--->Riferimenti esterni--->Cerca riferimenti esterni in:--->Documenti di riferimento specificati in Posizione + Includi sottocartelle.

Secondo voi tutto ciò potrebbe essere fattibile?

Vi ringrazio anticipatamente per la sconfinata pazienza...

tanticapelli
 

jenuary

Utente Standard
Professione: Progettista e Programmatore VB.Net
Software: Solidworks
Regione: Veneto
Si è fattibile, ma non è una cosa veloce da fare, se fossi in te più che una macro Vba farei una dll, molto più veloce in fase di esecuzione.

Non vedo problematiche se non un lavoro di programmazione importante.
 

tanticapelli

Utente Standard
Professione: Impiegato tecnico
Software: AutoCAD e SolidWorks 2016 SP 5.0 Professional Solidworks 2017 SP 5.0 Professional
Regione: Piemonte
Beh, non mi resta che fidarmi della tua/vostra esperienza!

Grazie

tanticapelli
 

aldus

Utente Junior
Professione: progettista junior
Software: solidworks inventor autocad
Regione: Emilia Romagna
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 a tutti, grazie per la condivisione di queste macro... ottima macro, chiedo solo se sapete come fare una piccola variazione.. nel nome file del PDF DWG E STEP vorrei aggiungere la proprietà "revisione", ma dovrei andarla a prendere nelle proprietà della parte, perchè la tavola in se non ha proprietà.
è una cosa facile e fattibile? per ora ho trovato un modo per la parte convertendola in pdf aggiunge la proprietà revisione al nome file ma io il pdf lo devo fare della tavola...
se qualcuno riesce ad aiutarmi... intanto lo ringrazio...
saluti
 

Gabryn

Utente Junior
Professione: Tiralinee
Software: Acad2012,Me10,Swx19
Regione: Bs
ciao a tutti, grazie per la condivisione di queste macro... ottima macro, chiedo solo se sapete come fare una piccola variazione.. nel nome file del PDF DWG E STEP vorrei aggiungere la proprietà "revisione", ma dovrei andarla a prendere nelle proprietà della parte, perchè la tavola in se non ha proprietà.
è una cosa facile e fattibile? per ora ho trovato un modo per la parte convertendola in pdf aggiunge la proprietà revisione al nome file ma io il pdf lo devo fare della tavola...
se qualcuno riesce ad aiutarmi... intanto lo ringrazio...
saluti

Ciao aldus.
Ho preso un esempio pescato da internet per caricare la relativa parte del disegno attivo , poi ho
aggiunto due righe di codice per leggere una proprietà specifica.
La macro fà questo: dal disegno, carica la relativa parte , legge la proprietà X , chiude la parte.

Perciò:
1) copia il codice riportato sotto nella tua macro
2) per ottenere la proprietà che ti interessa scrivi questo:
GetThatInfo("Descrizione")
....dove Descrizione è il nome della proprietà che ti serve leggere dalla parte.


Spero possa esserti utile.
Ciao
Gabriele



Codice:
Private Function GetThatInfo(CustomInfoValue As String) As String
    Dim swApp       As SldWorks.SldWorks
    Dim swModel     As SldWorks.ModelDoc2
    Dim swDrawing   As SldWorks.DrawingDoc
    Dim swView      As SldWorks.View
    Dim Errors      As Long
    Dim Document1 As Object
    
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    
    ' Is document active?
    If swModel Is Nothing Then
    swApp.SendMsgToUser2 "A Drawing file must be open.", swMbWarning, swMbOk
    Exit Function
    End If
    
    ' Is it a part document?
    If swModel.GetType <> SwConst.swDocDRAWING Then
    swApp.SendMsgToUser2 "A Drawing file must be open.", swMbWarning, swMbOk
    Exit Function
    End If
    
    Set swDrawing = swModel
    Set swView = swDrawing.GetFirstView
    Set swView = swView.GetNextView
    If swView Is Nothing Then
       MsgBox "Please insert a Model View first!"
       End
    Else
       swApp.ActivateDoc3 swView.GetReferencedModelName, False, swRebuildOnActivation_e.swUserDecision, Errors
    End If
    
    Set Document1 = swApp.ActiveDoc
    GetThatInfo = Document1.GetCustomInfoValue("", CustomInfoValue)
    swApp.CloseDoc swView.GetReferencedModelName
End Function
 

jenuary

Utente Standard
Professione: Progettista e Programmatore VB.Net
Software: Solidworks
Regione: Veneto
Più comodamente si riesce a ricavare la proprietà del modello senza apertura della parte
ricavando il ModelDoc2 direttamente dalla vista del modello, poi hai accesso alle proprietà

Dim swModelRef As SldWorks.ModelDoc2
Set swModelRef = swView.ReferencedDocument

GetThatInfo = swModelRef.GetCustomInfoValue("", CustomInfoValue)
 

aldus

Utente Junior
Professione: progettista junior
Software: solidworks inventor autocad
Regione: Emilia Romagna
OTTIMO, SIETE SEMPRE MOLTO GENTILI... GRAZIE!
BUON FINE SETTIMANA A TUTTI!
 

aldus

Utente Junior
Professione: progettista junior
Software: solidworks inventor autocad
Regione: Emilia Romagna
Grazie a tutti! sempre molto gentili...
aggiungo una richiesta forse impossibile...
Ma secondo voi si riesce a modificare il nome file quando viene salvato il DWG?

mi spiego meglio...
se il drw ha più fogli solidworks aggiunge all'inizio del nome file la stringa 00_"nome file"; poi 01_"nome file" ecc.. io vorrei che lo scrivesse in fondo al nome file... per agevolare la ricerca e la visualizzazione alfabetica dei codici... es. "nome file"_00 però ho cercato su internet e pare sia una impostazione standard di solidworks al salvataggio che non si può modificare... magari all'interno della macro sarebbe possibile aggiungere una cosa tipo se trovi un "_00" nelle prime posizioni del codice spostalo in fondo?
Forse sto sognando... boh magari datemi il vostro parere...intanto vi allego la macro che ho partorito se può servire a qualcuno...
Ecco cosa fa' la macro:
Dalla tavola apre il modello legato e pesca la proprietà, poi crea pdf dwg e scrive nome file + proprietà.
Grazie A tutti e Buon venerdì pomeriggio e week& a tutti!
 

Allegati

Gabryn

Utente Junior
Professione: Tiralinee
Software: Acad2012,Me10,Swx19
Regione: Bs
Ciao Aldus.
Fossi in te lascerei la macro così com'è ed andrei invece a modificare una opzione di SW, in
modo che i multifogli vengano salvati sempre all'interno dello stesso file dwg (come già avviene con i pdf)

Menu file > salva con nome > salva come: DWG > click su Opzioni > Disegno del foglio multiplo > Esporta tutti i fogli in un file

Ciao