Génère des macros VBA pour SolidWorks 2021 avec intégration PDM
Génère des macros VBA complètes et fonctionnelles pour SolidWorks 2021 avec intégration PDM Professional. Les macros générées suivent les conventions du bureau d'études et sont prêtes à être enregistrées en .swp.
DEMANDE_UTILISATEUR: $ARGUMENTS
Lis DEMANDE_UTILISATEUR et identifie :
Avant de générer le code, lis les fichiers de référence pertinents :
| Besoin | Fichier à lire |
|---|---|
| API SolidWorks (objets, méthodes, enums) | references/api-solidworks.md |
| API PDM (coffre, fichiers, variables, batch) | references/api-pdm.md |
| Patterns VBA réutilisables (17 patterns) | references/patterns-vba.md |
| Erreurs courantes et pièges | references/erreurs-courantes.md |
Et les templates correspondants :
| Type de macro | Template |
|---|---|
| Export PDF/DXF/STEP | templates/macro-export.bas.md |
| Propriétés personnalisées | templates/macro-proprietes.bas.md |
| Opérations PDM par lots | templates/macro-pdm-batch.bas.md |
| Macro avec interface | templates/macro-userform.bas.md |
| Fichier de configuration | templates/config-ini.md |
Génère le code VBA en respectant toutes les règles ci-dessous.
Option Explicit en première ligne de chaque moduleSub main() comme point d'entrée (convention SolidWorks pour les macros .swp)' ============================================================
' [Nom de la macro]
' Description : [Description courte]
' Auteur : Bureau d'Études
' Date : [Date du jour]
' ============================================================
sw → objets SolidWorks (swApp, swModel, swPart, swDraw)pdm → objets PDM (pdmFile, pdmFolder)frm → UserForms (frmMain, frmProgress)b → Boolean (bRet, bCancelled)n → compteurs/Long (nCount, nErrors)str → String (strPath, strNom)On Error GoTo ErrHandler dans Sub main()Cleanup pour la libération des ressources :Cleanup:
On Error Resume Next
swApp.CommandInProgress = False
swApp.UserControl = True
Set swModel = Nothing
Exit Sub
ErrHandler:
MsgBox "Erreur " & Err.Number & ": " & Err.Description, vbCritical, "[NOM]"
Resume Cleanup
Is Nothing pour tout objet COM avant utilisationIsEmpty pour tout tableau Variant avant itérationswApp.CommandInProgress = True au début des macros longuesswApp.UserControl = False pour éviter les confirmations de fermetureDoEvents uniquement dans les boucles avec UserForm (pas dans les boucles silencieuses)swApp.ActiveDoc n'est pas Nothing avant toute opérationGetType) si la macro ne s'applique qu'à un typeGetPathName <> "") avant exportfso.FolderExists)vault.IsLoggedIn avant toute opération PDMSaveAs3 (bRet) ET le code d'erreur (errors)ExportPdfData avec SetSheetsGetSheetNamesFileSystemObject.GetBaseName (jamais de parsing manuel)LoginAuto plutôt que Login (credentials Windows)IsLocked avant check-out, et le propriétaire avant check-inFlush + CloseFile True après SetVar sur les variables PDMSet vault = Nothing en fin de macro pour libérer les ressources COMIEdmBatchGet, IEdmBatchUnlock2) pour les traitements en massevbModal par défaut (sauf besoin explicite d'interaction avec SW)BrowseForFolder via Shell.Application (pas FileDialog)DoEvents dans les boucles pour garder l'UI réactive--export : Macro d'exportGénère une macro d'export de fichiers (PDF, DXF, DWG, STEP, IGES).
Questions à poser si non précisé :
Fichiers à lire : references/api-solidworks.md, templates/macro-export.bas.md
--proprietes : Macro de propriétésGénère une macro de gestion des propriétés personnalisées (lecture, écriture, suppression, copie entre configurations).
Questions à poser si non précisé :
Fichiers à lire : references/api-solidworks.md, templates/macro-proprietes.bas.md
--pdm : Macro PDMGénère une macro d'opérations PDM (check-out/in, variables, workflow, recherche).
Questions à poser si non précisé :
Fichiers à lire : references/api-pdm.md, templates/macro-pdm-batch.bas.md
--batch : Macro de traitement par lotsGénère une macro qui traite plusieurs fichiers (dossier, assemblage, sélection).
Questions à poser si non précisé :
Fichiers à lire : references/patterns-vba.md (patterns 13, 14, 15), templates selon le traitement
--userform : Macro avec interfaceGénère une macro avec UserForm interactif.
Questions à poser si non précisé :
Fichiers à lire : templates/macro-userform.bas.md, templates/config-ini.md
Si aucun flag n'est précisé, analyser la description et :
G:\admin_solidworks\Macro\G:\admin_solidworks\_En cours\Macro\G:\admin_solidworks\Macro\Icone_bmp\.swpExport_PDF.swp — Export PDF avec configuration INIMise a jour proprietes.swp — CRUD propriétés personnaliséesPoincon.swp — Macro spécifique métier_BETA_v2_Export_PDF_PDM.swp — Export PDF avec intégration PDM.swp pour les macros (format binaire OLE).ini pour la configuration externe.bmp pour les boutons de la barre d'outilsPour chaque macro générée, fournir :
.swp (Outils > Macro > Nouvelle)☑ SolidWorks 2021 Type Library
☑ SolidWorks 2021 Constant Type Library
☑ SOLIDWORKS PDM 2021 Type Library (si PDM utilisé)
☑ Microsoft Scripting Runtime (si FileSystemObject utilisé)
☑ Microsoft Excel XX.0 Object Library (si Excel utilisé)
/solidworks-macro --export Macro d'export PDF de tous les dessins d'un dossier avec check-in PDM après export
/solidworks-macro --proprietes Mettre à jour Description, Matière et Traitement sur le document actif et toutes ses configurations
/solidworks-macro --pdm --batch Check-out de tous les fichiers d'un dossier PDM, mise à jour de la variable Description, puis check-in
/solidworks-macro --userform Interface pour exporter le document actif en PDF + DXF + STEP avec choix du dossier de sortie et progression
/solidworks-macro Macro qui parcourt un assemblage, lit la propriété "Masse" de chaque composant, et génère un rapport Excel avec la nomenclature complète