Gestire icone macro - barra aggiuntiva

meccanicamg

Utente Senior
professione: Mechanical engineer manager
software: SolidWorks, FreeCAD, NanoCAD5, Me10, Excel, LibreOffice
regione: Lombardia
Ciao a tutti.
Nelle versioni vecchissime di SOLIDWORKS c'era la possibilità di creare delle barre personalizzate e metterci tutte le icone delle macro che si facevano.
Da diverse release non si può più aggiungere una barra personalizzata, almeno con le impostazioni di default.
Se ho una ventina di macro, dove metto i pulsanti, visto che lassù in alto nella barra principale non ci stanno molte icone in più?
Ho letto anche qui ma non ho trovato quello che mi serve.

Non mi dite che se trascino nel nulla mi crea una nuova barra che posso personalizzare?!?! Mi è venuto questo flash che non posso verificare per qualche settimana.

Avete qualche suggerimento da darmi cortesemente? Grazie in anticipo.
 

cacciatorino

Moderatore SolidEdge
Staff Forum
professione: Ingegnere meccanico
software: SolidEdge CoCreate Salome-Meca
regione: Porto Recanati, ma con l'appennino nel cuore
Ciao a tutti.
Nelle versioni vecchissime di SOLIDWORKS c'era la possibilità di creare delle barre personalizzate e metterci tutte le icone delle macro che si facevano.
Da diverse release non si può più aggiungere una barra personalizzata, almeno con le impostazioni di default.
Se ho una ventina di macro, dove metto i pulsanti, visto che lassù in alto nella barra principale non ci stanno molte icone in più?
Ho letto anche qui ma non ho trovato quello che mi serve.

Non mi dite che se trascino nel nulla mi crea una nuova barra che posso personalizzare?!?! Mi è venuto questo flash che non posso verificare per qualche settimana.

Avete qualche suggerimento da darmi cortesemente? Grazie in anticipo.
Non conosco SWX, ma praticamente in tutti i software per windows e' possibile aggiungere una nuova tab custom all'interfaccia

1734856129501.png

1734856146210.png

Dai uno sguardo se su SWX e' possibile.
 

jenuary

Utente Senior
professione: Progettista e Programmatore VB.Net
software: Solidworks
regione: Veneto
Che io sappia in Sw non è possibile aggiungere barre degli strumenti nuove, dovresti usare una barra esistente, magari che non usi, togli i bottoni e metti dentro solo i bottoni delle tue macro.
 

meccanicamg

Utente Senior
professione: Mechanical engineer manager
software: SolidWorks, FreeCAD, NanoCAD5, Me10, Excel, LibreOffice
regione: Lombardia
Pure io la sapevo così. Purtroppo per tre settimane non posso verificarlo ma forse c'è la possibilità.
Copilot se non sta dicendo sciocchezze afferma che c'è un modo per aggiungere:
Purtroppo, non ho la capacità di cercare immagini specifiche sul web per te. Tuttavia, posso descriverti i passaggi con un po' più di dettagli se vuoi, così sarà più facile seguirli:

1. Vai su "Strumenti" e seleziona "Personalizza".
2. Nella finestra di personalizzazione, nella scheda "Barre degli strumenti", clicca su "Nuova".
3. Verrà visualizzata una finestra pop-up in cui puoi dare un nome alla tua nuova barra degli strumenti, ad esempio "Pippo". Inserisci il nome e clicca su "OK".
4. La tua nuova barra degli strumenti, chiamata "Pippo", comparirà ora nell'area di lavoro di SOLIDWORKS.
5. Vai alla scheda "Comandi" della finestra di personalizzazione. Qui troverai diverse categorie di comandi.
6. Seleziona le categorie di comandi per visualizzare le icone disponibili.
7. Trascina le icone che desideri dalla scheda "Comandi" alla tua nuova barra degli strumenti "Pippo".
8. Quando hai finito di aggiungere le icone, puoi chiudere la finestra di personalizzazione.

In questo modo, avrai creato una barra degli strumenti personalizzata chiamata "Pippo" con le icone che preferisci.


Potete verificarmi la corretta della cosa, per cortesia? Se fosse vero sarebbe un cosa molto utile.
 
professione: Service CAD/CAM e Corsi di Formazione
software: CimatronIT, Cimatron 13, Rhino 8, Solidworks 2025, SolidCAM 2025, Freeform Plus 2026, Design X 2026, Control X 2026
regione: Marche
1734980548265.png
Strumenti... ok
Personalizza... ok
Barre degli strumenti... ok
Nuova... non la vedo
 

meccanicamg

Utente Senior
professione: Mechanical engineer manager
software: SolidWorks, FreeCAD, NanoCAD5, Me10, Excel, LibreOffice
regione: Lombardia
Visualizza allegato 73036
Strumenti... ok
Personalizza... ok
Barre degli strumenti... ok
Nuova... non la vedo
È quello che temevo.
Ho il ricordo che fino a qualche anno fa (2016 forse) si poteva fare e poi da un certo periodo in poi non è più stato possibile.
Quindi temo proprio che la soluzione sia di svuotare una barra che non uso o di accodare gli strumenti a barre principali.

Una domanda: con le macro di SOLIDWORKS è possibile fare uscire un pannello come fosse costruito ad oggetto con VBA classico con N pulsanti e assegnare ad ogni pulsante una macro registrata in precedenza?
Tipo questa immagine presa dal web....
1734983045577.jpeg
 

meccanicamg

Utente Senior
professione: Mechanical engineer manager
software: SolidWorks, FreeCAD, NanoCAD5, Me10, Excel, LibreOffice
regione: Lombardia
Copilot mi consiglia questa macro per fare una finestra 100x80 con 10 pulsanti con le relative macro.
È da provare se gira o se si pianta questo codice.... Leggendo un ritocco va fatto perché sono segnate solo la macro 1 2 e 10…quindi va almeno completato per le altre.

Codice:
Option Explicit
Dim swApp As SldWorks.SldWorks
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long

Sub main()

    ' Inizializza l'applicazione SOLIDWORKS
    Set swApp = Application.SldWorks

    ' Crea il form
    CreateForm

End Sub

Sub CreateForm()
    Dim UserForm1 As Object

    ' Aggiungi un nuovo form
    Set UserForm1 = VBA.UserForms.Add("UserForm1")

    With UserForm1
        ' Imposta la larghezza e altezza del form
        .Width = 100
        .Height = 80

        Dim i As Integer
        For i = 1 To 10
            ' Aggiungi un pulsante per ogni macro
            Dim btn As Object
            Set btn = .Controls.Add("Forms.CommandButton.1", "Button" & i)
            With btn
                ' Imposta l'etichetta del pulsante
                .Caption = "Macro " & i
                ' Imposta la posizione verticale del pulsante
                .Top = 10 + (i - 1) * 25
                ' Imposta la posizione orizzontale del pulsante
                .Left = 10
                ' Imposta la larghezza del pulsante
                .Width = 80
                ' Assegna la macro da eseguire quando il pulsante viene premuto
                .OnAction = "RunMacro" & i
            End With
        Next i
    End With

    ' Mostra il form
    UserForm1.Show

End Sub

' Subroutine per eseguire la macro 1
Sub RunMacro1()
    MsgBox "Esegui Macro 1"
End Sub

' Subroutine per eseguire la macro 2
Sub RunMacro2()
    MsgBox "Esegui Macro 2"
End Sub

' Aggiungi altre Subroutine per le macro fino a RunMacro10

' Subroutine per eseguire la macro 10
Sub RunMacro10()
    MsgBox "Esegui Macro 10"
End Sub
Se funzionasse sarebbe una buona idea perché terrei la finestra sul secondo schermo e avrei la mia barra con quello che voglio.

 

dsw

Rossano Praderi
professione: Libero Professionista
software: Vari
regione: Lombardia
Io preferisco usare il designer interno di VBE (Visual Basic Editor) per costruire l'interfaccia e assegnare le macro ai "tastini", usarla è semplice nel giro di un paio d'ore(anche meno) si impara ad usare i comandi e ad assegnare le macro ai controlli(tastini). L'editor VBE è lo stesso per tutte le applicazioni che includono il VBA.
 

meccanicamg

Utente Senior
professione: Mechanical engineer manager
software: SolidWorks, FreeCAD, NanoCAD5, Me10, Excel, LibreOffice
regione: Lombardia
Io preferisco usare il designer interno di VBE (Visual Basic Editor) per costruire l'interfaccia e assegnare le macro ai "tastini", usarla è semplice nel giro di un paio d'ore(anche meno) si impara ad usare i comandi e ad assegnare le macro ai controlli(tastini). L'editor VBE è lo stesso per tutte le applicazioni che includono il VBA.
Fantastico. Ma lo sai che non ci avevo fatto caso che c'erano anche gli strumenti per fare le finestre e i tasti.... Grazie
 

jenuary

Utente Senior
professione: Progettista e Programmatore VB.Net
software: Solidworks
regione: Veneto
Copilot mi consiglia questa macro per fare una finestra 100x80 con 10 pulsanti con le relative macro.
È da provare se gira o se si pianta questo codice.... Leggendo un ritocco va fatto perché sono segnate solo la macro 1 2 e 10…quindi va almeno completato per le altre.

Codice:
Option Explicit
Dim swApp As SldWorks.SldWorks
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long

Sub main()

    ' Inizializza l'applicazione SOLIDWORKS
    Set swApp = Application.SldWorks

    ' Crea il form
    CreateForm

End Sub

Sub CreateForm()
    Dim UserForm1 As Object

    ' Aggiungi un nuovo form
    Set UserForm1 = VBA.UserForms.Add("UserForm1")

    With UserForm1
        ' Imposta la larghezza e altezza del form
        .Width = 100
        .Height = 80

        Dim i As Integer
        For i = 1 To 10
            ' Aggiungi un pulsante per ogni macro
            Dim btn As Object
            Set btn = .Controls.Add("Forms.CommandButton.1", "Button" & i)
            With btn
                ' Imposta l'etichetta del pulsante
                .Caption = "Macro " & i
                ' Imposta la posizione verticale del pulsante
                .Top = 10 + (i - 1) * 25
                ' Imposta la posizione orizzontale del pulsante
                .Left = 10
                ' Imposta la larghezza del pulsante
                .Width = 80
                ' Assegna la macro da eseguire quando il pulsante viene premuto
                .OnAction = "RunMacro" & i
            End With
        Next i
    End With

    ' Mostra il form
    UserForm1.Show

End Sub

' Subroutine per eseguire la macro 1
Sub RunMacro1()
    MsgBox "Esegui Macro 1"
End Sub

' Subroutine per eseguire la macro 2
Sub RunMacro2()
    MsgBox "Esegui Macro 2"
End Sub

' Aggiungi altre Subroutine per le macro fino a RunMacro10

' Subroutine per eseguire la macro 10
Sub RunMacro10()
    MsgBox "Esegui Macro 10"
End Sub
Se funzionasse sarebbe una buona idea perché terrei la finestra sul secondo schermo e avrei la mia barra con quello che voglio.
Il codice non l'ho provato ma leggendo credo che il form lo costruisca bene con il codice che ha scritto.
Diversamente è per il lancio delle macro al click del bottone, manca l'evento del bottone al click, ha creato solo la routine del lancio della macro ma non l'evento del lancio.
La routine comunque non lancia la macro perchè le Api di Sw richiedono la riga con il percorso, del modulo e della sub principale.
 

jenuary

Utente Senior
professione: Progettista e Programmatore VB.Net
software: Solidworks
regione: Veneto
Si potrebbe pensare piuttosto, visto che mi sembra di capire che potrebbe essere una esigenza comune, di creare una addin (.dll) con 5 barre degli strumenti, vuote, senza bottoni, poi sarà l'utente a mettere dentro i bottoni delle macro, come si fa per le barre degli strumenti normali. Così ognuno si personalizza le sue. magari le chiamiamo Cad3D_1, Cad3D_2 ecc.
Potrebbe essere un'idea? Così è una cosa integrata e la si porta avanti anche nelle versioni successive.
Il problema principale delle macro, indifferentemente da cosa faccia, sono i riferimenti, se hai più di una versione installata di Sw prende i riferimenti al Sw più recente e spesso da errore.
 

meccanicamg

Utente Senior
professione: Mechanical engineer manager
software: SolidWorks, FreeCAD, NanoCAD5, Me10, Excel, LibreOffice
regione: Lombardia
Si potrebbe pensare piuttosto, visto che mi sembra di capire che potrebbe essere una esigenza comune, di creare una addin (.dll) con 5 barre degli strumenti, vuote, senza bottoni, poi sarà l'utente a mettere dentro i bottoni delle macro, come si fa per le barre degli strumenti normali. Così ognuno si personalizza le sue. magari le chiamiamo Cad3D_1, Cad3D_2 ecc.
Potrebbe essere un'idea? Così è una cosa integrata e la si porta avanti anche nelle versioni successive.
Il problema principale delle macro, indifferentemente da cosa faccia, sono i riferimenti, se hai più di una versione installata di Sw prende i riferimenti al Sw più recente e spesso da errore.
Questa mi pare una buonissima idea. Credo che dovrò studiare parecchio per mettere assieme i pezzi e fare il tutto. Ma già avete delle mie idee, delle vostre e poterci ragionare mi porterà sicuramente ad evitare il più possibile strade sbagliate prima di partire.
 

cacciatorino

Moderatore SolidEdge
Staff Forum
professione: Ingegnere meccanico
software: SolidEdge CoCreate Salome-Meca
regione: Porto Recanati, ma con l'appennino nel cuore
Prova a guardare qui:


E' un video di 4 anni fa, magari e' ancora attuale.
 
Ultima modifica:

meccanicamg

Utente Senior
professione: Mechanical engineer manager
software: SolidWorks, FreeCAD, NanoCAD5, Me10, Excel, LibreOffice
regione: Lombardia
Prova a guardare qui:


E' un video di 4 anni fa, magari e' ancora attuale.
Così riesce ad aggiungere una scheda vuota, quindi non dal menù della prima maschera ma con tasto dx nella modalità di modifica delle schede....è da provare. Ottimo spunto.
Appena posso provare fornisco riscontro. Grazie per ora.
 

meccanicamg

Utente Senior
professione: Mechanical engineer manager
software: SolidWorks, FreeCAD, NanoCAD5, Me10, Excel, LibreOffice
regione: Lombardia
Confermo che si possono aggiungere le barre nuove. Basta cliccare sulla personalizzazione. Le barre sono attive ognuna in un ambiente diverso dove vengono create.
Da quando SOLIDWORKS ha abbandonato le barre classiche con i pulsanti ed è passata alle moderne schede ha cambiato il modo di aggiungere barre e pulsanti anche se in pratica è sempre rimasto possibile.
 

Dum

Libero Professionista
professione: Progettista
software: Solidworks da 2016 a 2025
regione: Piemonte
Alla fine ho risolto senza add-in

1738933197352.png

Creando una nuova scheda e tramite l'inserimento dell'icona "nuova macro".
 

Statistiche forum

Discussioni
59,410
Messaggi
507,373
Utenti registrati
111,941
Ultimo utente registrato
micvrmic

Utenti online

Nessun utente è online al momento.
Top