Mise à jour des Mises à plat

Tous sujets concernant le développement spécifique de TopSolid avec l'interface COM, le langage LIP, la programmation de l'API en VB...

Modérateurs : remi77, D@vid, Alexis GERARD

Répondre
La loutre
Lieutenant-colonel
Lieutenant-colonel
Messages : 1015
Enregistré le : 18 oct. 2020, 21:32
Réponses : 41
Version TopSolid : 7.13
Module TopSolid : TopSolid'Steel
Localisation : Valenciennes
Contact :

Mise à jour des Mises à plat

Message non lu par La loutre »

Bonjour, voici une petite macro qui permet de mettre à jour toutes les mises à plat d'un dossier. Je ne sais pas si cela arrive à d'autres personnes mais régulièrement, si, après avoir lancé les mises à plat d'un projet, je modifie certaines pièces notamment des familles. Toutes mes mises à plat se mettent en erreur. Je dois éditer l'opération d'insertion et la valider pour supprimer l'erreur. Ayant eu ce problème sur une centaine de fichiers, j'ai développé une petite macro pour résoudre le problème.
Pour lancer la macro, il faut ouvrir une des mises à plat contenue dans le dossier à mettre à jour, n'importe laquelle, cela permet à la macro de détecter le dossier de travail. Et ensuite lancer la macro.
La macro va ouvrir chaque fichier un par un, éditer l'opération d'insertion s'il y a une erreur, valider l'opération, enregistrer et fermer le fichier.
Pour que la macro fonctionne, et comme on ne peut pas directement éditer une opération avec l'automation, il faut ajouter un raccourci clavier "Ctrl+L" à la commande "Editer erreur..."
2021-07-22 11_17_03-Window.png
Ensuite, il faut ouvrir un des fichiers contenu dans le dosssier à mettre à jour.
2021-07-22 11_10_02-Window.png
Pour ceux intéressé par le code, c'est assez basique, j'ai mis l'essentiel. C'est du SendKeys avec des tempos.

Code : Tout sélectionner

            var Dcs = Ts.Documents;
            var idDoc = Dcs.GetDocument(objId);
            
            Dcs.Open(ref idDoc);
            
            if (Dcs.IsInvalid(idDoc))
            {
                SendKeys.SendWait("^(l)");
                Thread.Sleep(2000);
                SendKeys.SendWait("{ENTER}");
                Thread.Sleep(1500);
                Dcs.Save(idDoc);
                Thread.Sleep(500);
            }

            Dcs.Close(Dcs.EditedDocument, false, false);
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
iPoilz
Major
Major
Messages : 141
Enregistré le : 26 juin 2020, 05:26
Réponses : 8
Version TopSolid : 7.9
Module TopSolid : TopSolid'Design

Re: Mise à jour des Mises à plat

Message non lu par iPoilz »

Ahah grâce à ton poste j'ai pu mettre un raccourci clavier sur éditer erreur, étant donné que quand on passe la souris sur le point d'exclamation il est écrit invalide, difficile de la retrouver ^^
La loutre
Lieutenant-colonel
Lieutenant-colonel
Messages : 1015
Enregistré le : 18 oct. 2020, 21:32
Réponses : 41
Version TopSolid : 7.13
Module TopSolid : TopSolid'Steel
Localisation : Valenciennes
Contact :

Re: Mise à jour des Mises à plat

Message non lu par La loutre »

Normalement, si tu cliques sur le point d'exclamation il t'envoie sur l'opération invalide.
Avatar du membre
JuP
Général de brigade
Général de brigade
Messages : 6866
Enregistré le : 18 févr. 2013, 10:26
Réponses : 142
Version TopSolid : 7.17
Module TopSolid : TopSolid'Steel
Localisation : Lyon (France)

Re: Mise à jour des Mises à plat

Message non lu par JuP »

Bonjour La loutre,

Merci pour le partage par contre le problème m'interpelle un peu quand même.
Si tu as le scénario + pkg je veux bien jeter un oeil pour qu'on corrige. Ce n'est pas normal.

Attention quand même avec les MAP car elles se font sur les définitions donc quand tu recréés des exemples de famille il faut passer par la MAP en rafale pour générer les nouvelles.
Julien POIROT
Responsable produit TopSolid'Steel
Youtube (tuto etc)
GrabCad
Groupe Facebook TopSolid'Steel

Postez ici vos idées!:
TopSolid'Steel
TopSolid'Design
iPoilz
Major
Major
Messages : 141
Enregistré le : 26 juin 2020, 05:26
Réponses : 8
Version TopSolid : 7.9
Module TopSolid : TopSolid'Design

Re: Mise à jour des Mises à plat

Message non lu par iPoilz »

La loutre a écrit : 28 juil. 2021, 10:58 Normalement, si tu cliques sur le point d'exclamation il t'envoie sur l'opération invalide.
Oui, ce que je voulais dire c'est qu'à une époque où j'avais cherché à mettre un raccourci clavier dessus, je n'avais pas réussi car je ne connaissais pas le nom de la "fonction" et que contrairement aux autres fonctions, le nom qu'elle affiche quand on passe la souris dessus n'est pas le même que dans le menu déroulant des raccourcis clavier. :D
Répondre