Masquer la construction en VBA

Bonjour a tous,

Dans le cadre d'un projet, j'ai une macro assez longue à effectuer (création de plusieurs plans + esquisses) à répéter en boucle. Tout fonctionne mais lentement, très lentement. A chaque étape de calcul (relancement de ma boucle) j'efface la construction précédente pour alléger le modèle. De plus, à chaque création de plan ou d'esquisse je la masque (Part.BlankRefGeom ou Part.BlankSketch). Or voici mon problème : le programme étant toujours lent (du en parti au fait SW créé le plan ou l'esquisse puis après seulement le masque du coup l'étape de construction apparait tout de même un court instant et crame de la ressource), avez vous une technique pour complètement masquer la construction (demander à SW de ne pas l'afficher) ?

Merci !

Salut,

est ce que tu as SolidWorks de visible pdt ta macro ? (swapp.Visible = True ) 

Ca peut ameliorer la performance de ne pas mettre cette ligne. 

Oui, effectivement SW est visible durant l'execution de la macro . Du coup pour masquer :

swapp.Visible = False

J'essaye, merci pour l'idée !

Bonjour,

 

Est ce que cette commande fonctionne chez vous ? 

swapp.Visible = False

 

bonjour @ aera.damallard

A qui s'adresse votre message ??

Pouvez-vous décrire votre problème car si vous posez cette question cela laisse à penser que vous avez une difficulté avec la syntaxe.

(peut être une petite attention aux espaces avant et après le signe égal  aussi attention à la casse des lettres si cela à de l'importance ( swApp.xxx) )

Dis nous ou cel abloque cela doit être surligné normalement.

Joint aussi le code avant et après le swApp.xxx

Cordialement

Bonjour,

Oui cela fonctionne mais en respectant quelques règles à voir ici dans le chapitre "Remarks", en tenant compte que "ISldWorks::UserControl" est égal à True par défaut quand Solidworks n'est pas lancé par ton programme.

Donc pour rendre Solidworks invisible si celui-ci n'est pas lancé par ton programme, il ne faut pas qu'il y ait de document ouvert dans Solidworks et mettre "swApp.UserControl = False" avant la ligne "swApp.Visible = False".

Attention, si tu quittes ton programme avec Solidworks invisible, celui-ci restera ouvert mais en mode invisible donc il faut penser soit à le rendre visible soit à le fermer avant de quitter ton programme.

Cordialement,

2 « J'aime »

Ok donc la logique est que je recupere l'info de mon activedoc

ensuite j'applique le usercontrole et le visible et je reboucle a l'inverse apres ok sa marche je vais essayer sa de suite !

Tester avec succes en effet il faut fermer le document sinon sa ne masque rien :/

1 « J'aime »