GetLastFeatureAdded

Bonjour,

Je n'arrive pas à utiliser la méthode GetLastFeatureAdded. 

Voici mon code qui me sert à insérer une fonction empreinte (Cavity ) dans un composant édité dans un assemblage ! 

boolstatus = swModel.Extension.SelectByID2("" & Nom & "@Simulateur", "COMPONENT", 0, 0, 0, False, 0, Nothing, 0) 'Sélection du composant dont je veux l'empreinte
swAssy.InsertCavity4 0.4, 0.4, 0.4, True, 1, -1 'Création de la fonction empreinte. 

Ensuite, je veux renommer cette fonction empreinte. Car pour la suite, je veux être certain du nom de la fonction. Pas prendre le risque que l'empreinte se nomme un coup "Empreinte1" et ensuite "Empreinte 3" etc etc. 
Donc j'utilise la méthode : GetLastFeatureAdded pour ensuite renommer la fonction.

j'ai déclaré les variables suivantes : 

Dim swFeat As SldWorks.Feature

Dim swModExt As SldWorks.ModelDocExtension

Ensuite je lance la méthode : 

set swFeat = swModExt.GetLastFeatureAdded

Et il me dit que la variable objet n'est pas déclaré. Je comprends pas trop ou est mon erreur ou mon oubli. 

Merci pour vos conseil :)

 

Bonjour,

Difficile de répondre comme ça sans le code sous les yeux.

Je soupçonne cependant que ta variable "swModExt" n'est pas initialisée et est donc vide.

Cordialement,

2 « J'aime »

Bonjour,

Je pense à la même chose que d.roger. Voir à ajouter Set swModExt = swModel.Extension avant Set swFeat

Le plus simple à la limite c'est de le définir après une ligne qui doit être du type Set swModel = swApp.ActiveDoc et l'utiliser dès boolstatus = swModExt.SelectbyID2.....

Bonjour, 

Mes excuses pour le retard. 

Ma variable swModExt est bien initialisée ( j'ai en effet pas écrit tout le code ) . Je continue de chercher en tout cas. Merci ! 

Bonjour,

C'est justement là que le code complet est intéressant car sans ça on peut faire trop de suppositions.

- Ta variable "swModExt" est bien initialisée, oui mais par rapport à quoi ? ta pièce éditée dans l'assemblage ou ton assemblage de tête ? l'appel au "ModelDoc2" n'est pas du tout le même suivant le niveau du composant auquel tu veux accéder.

- Suivant ta façon d'accéder à ta pièce de ton assemblage on peut aussi se demander si tes pièces sont toutes en mode résolues ? et si ce n'est pas le cas, la gestion des erreurs est-elle faite (sinon "erreur d'éxécution 91 : variable objet ou variable de bloc with non définie") ?

...

Cordialement,

2 « J'aime »