Récupérer les champs "Repère" et "Quantité" d'une nomenclature dans une annotation

Bonjour,

Dans une même mise en plan ou apparait : un assemblage avec sa nomenclature associée ainsi que les mises en plans des pièces de l'assemblage en question. Je souhaiterais annoter ces mises en plans avec le repère de la pièce et la quantité utilisée dans l'assemblage, mais je ne trouve pas les paramètres à associer.

En utilisant le paramètre "Numéro de pièce de nomenclature (BOM Part Number), il m'affiche le nom de la configuration...

Ci-joint, une capture de ce que je souhaiterais avoir.

Merci de votre aide.

 

 

 


capture_20171221.png

Je ne crois pas que ce soit possible d'associer à une vue de pièce les paramètres relatif à un assemblage.

Par contre, vous pouvez contourner le problème (s'il n'y a pas trop de pièces) en créant des vues de l'assemblage dans laquelle vous masquez toutes les autres pièces.

3 « J'aime »

Bonjour,

Ce que tu peux tenter c'est de lier la valeur à une cellule de la nomenclature (voir PJ)

Le lien reste même si tu déplaces ta pièce dans la nomenclature, ce qui peut arriver si tu ajoutes ou supprime des éléments à ton assemblage. Du coup ça a l'air pratique.

Par contre je viens de découvrir l'option donc ça a peut être ses limites

 

 

 

 

 

 


capture.png

je pense qu'il y a plus simple.

Après avoir fait la MEP de l'assemblage avec sa nomenclature tu créer une nouvelle feuille où tu insère une pièce de ton ASS.

Ensuite soit tu attache une annotation à cette pièce en récupérant la propriété personnalise de celle-ci, ensuite tu te mets sur "Composant auquel est attaché l'annotation" puis tu choisi la propriété voulus: n°de pièce, masse, matière etc...

Ou mieux, tu charge directement les propriétés de ta pièce dans le cartouche en faisant clic droit sur la feuille puis éditer le fond de plan. Ensuite dans le menu déroulant du bas il faut choisir une vue de cette feuille. Et ton cartouche est rempli avec les propriétés de la pièce inséré dans cette feuille.

Voila

Je viens de tester ma solution plus en profondeur et ça fonctionne très bien :)

Voici les étapes :

  • - Ajouter une annotation
  • - Insérer le texte personnalisé (ex : Repère :)
  • - Cliquer sur l'icone en PJ.
  • - Cliquer sur la case à lier dans la nomenclature

Pour info, j'ai déplacé les composants dans la nomenclature, dupliqué les composants dans l'assemblage ajouté et supprimé d'autres composants pour voir si il finissait par perdre les liens et il ne les a pas perdu.

Les quantités et repères de pièce se mettent bien à jour dans l'annotation


capture.png
2 « J'aime »

Merci à vous trois pour vos réponses.

@stefbeno :

Nos assemblages peuvent contenir plus d'une cinquentaine de pièces. Votre technique semblent donc limité de ce côté.

@ludo.mai :

J'ai déjà tenter avec cette fonction, mais je n'arrive pas à sélectionner les cellules. Celà fonctionne une fois sur dix...

@ronathan :

Comment définir cette proprité "n° de pièce", car elle dépend de la nomenclature de la mise en plan, pas de la pièce.

 

A termes, je vais chercher à automatiser cette tâche avec l'API.

Bizarre que tu n'arrives pas à sélectionner les cellules. C'est parceque tu es sur une feuille séparée peut-être.

Ca fonctionnera peut-être en créant l'annotation sur la feuille contenant la nomenclature et en faisant un copier-coller sur l'autre feuille

Je cliquait sur la cellule, en fait il faut sélectionner son contenu et cliquer à coté pour valider.

Du coup ça fonctionne maintenant?

Oui, merci !

Maintenant il faut que j'arrive à récupérer l'id de ma table de nomenclature pour pouvoir automatiser cette tache avec du VBA.

Ce sujet pourrait peut-être t'aider : https://stackoverflow.com/questions/34087325/deleting-rows-in-bill-of-materials

La macro complète sert à supprimer une ligne de la nomenclature mais on y retrouve l'id

 

Interessant, merci. Mais il recherche l'identifint d'une ligne, pas celui de la table.

J'ai enregistré une macro de ce que je voulais obtenir en utilisant le fonction " lier la valeur à une cellule " pour connaitre les fonctions à utiliser en VBA. Elle ressemble à ça :

' C:\Users\fmaisonneuve\AppData\Local\Temp\swx9184\Macro1.swb - macro recorded on 12/21/17 by FMAISONNEUVE
' ******************************************************************************
Dim swApp As Object

Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long

Sub main()

Set swApp = Application.SldWorks

Set Part = swApp.ActiveDoc
boolstatus = Part.ActivateView("Vue de mise en plan8")

Dim myNote As Object
Dim myAnnotation As Object
Dim myTextFormat As Object
Set myNote = Part.InsertNote("Repère : <TABLEOBJECT ID=""1189""   RECORD ID=""8""   COLUMN ID=""2""   COMPNAME=""Chassis-6@Nomenclature2/Tole_Essai4-1@Chassis""   COLNAME=""Rep.""   WELDMENTORDNUM=""-1"">" + Chr(13) + Chr(10) + _
        "Qté : <TABLEOBJECT ID=""1189""   RECORD ID=""8""   COLUMN ID=""4""   COMPNAME=""Chassis-6@Nomenclature2/Tole_Essai4-1@Chassis""   COLNAME=""<FONT style=B>Nbre""   WELDMENTORDNUM=""-1"">" + Chr(13) + Chr(10) + _
        "Epaisseur : $PRPVIEW:""Epaisseur"" mm" + Chr(13) + Chr(10) + _
        "Matière : $PRPVIEW:""Matiere""" + Chr(13) + Chr(10) + _
        "Protection : $PRPVIEW:""Protection""")
If Not myNote Is Nothing Then
   myNote.LockPosition = False
   myNote.Angle = 0
   boolstatus = myNote.SetBalloon(0, 0)
   Set myAnnotation = myNote.GetAnnotation()
   If Not myAnnotation Is Nothing Then
      longstatus = myAnnotation.SetLeader3(swLeaderStyle_e.swNO_LEADER, 0, True, False, False, False)
      boolstatus = myAnnotation.SetPosition(0.400401767151841, 0.446719946500758, 0)
      boolstatus = myAnnotation.SetTextFormat(0, True, myTextFormat)
   End If
End If
Part.ClearSelection2 True
Part.WindowRedraw
boolstatus = Part.ActivateSheet("Feuille1")
boolstatus = Part.ActivateView("Vue de mise en plan8")
End Sub

 

Pour automatiser, il faut que je récupère la valeur associé à "TABLEOBJECT ID" de la nomenclature préalablement créée.

En faite dans ta nomenclature tu peux mettre une ligne designation et numéro de pièce. ces informations doivent êtres liées au propriétés personnalisés de chaque pièces.

Ainsi tu pourras en pointant une annotation sur une pièce de ta mise en plan et ce même après avoir effectuer une mise en plan de ton assemblage, récupérer les informations appliquées aupparavant.