Je conçois régulièrement des ensembles mécano-soudés dont je récupère les listes des pièces soudées pour les intégrer sur mes mises en plan.
Dans ces listes des pièces soudées, je récupère, par le biais d'une propriété personnalisée nommée "Description" (voir pj) les caractéristiques géométriques de mes profilés, que je renomme en fonction de ces caractéristiques. Par ex. pour un tube carré de 100x3 et de longueur 1544 mm, le corps se nommera TC100x3...1544.
En revanche, ça se complique lorsque mon corps est une tôle... Je souhaiterais pouvoir récupérer l'épaisseur (par ex. 3mm), la longueur (400 mm) et la largeur (100 mm) de la tôle dépliée pour nommer mon corps de la façon suivante : Tôle ép.3...400x100 .
Le corps comporte bien les propriétés Epaisseur de tôlerie, Longueur du flanc de tôle et Largeur du flanc de tôle, mais comment faire pour les intégrer dans la propriétés "Description"?
récemment pour un client (usage ponctuel), on a eu un besoin analogue : dans une pièce mécano-soudé (au sens SW), affiché long x largeur dans une propriété de corps. On a juste récupéré le contenu utilisé pour avoir la longueur et la largeur et tout collé dans la case qui nous intéressait.
Dans ce cas, ça donnerai : "SW-Longueur du flanc de tôle@@@..." x "SW-Largueur du flanc de tôle@@@..." x etc.
J'arrive un peu tard mais j'utilise depuis longtemps la même chose que Stefbeno, copier les formules des variables voulues, les mettre a la suite intercalés du texte voulu, ca marche parfaitement Et les valeurs changent à la copie, a la copie d'arborescence et au renommage des configs, soit je ne vois aucun d'inconvénient à faire comme ca !
Reste a copier/coller dans le résumé des propriétés : Exemple : Laser "SW-Longueur du flanc de tôle@@@Tole<2>@Pièce1.SLDPRT"x"SW-Largeur du flanc de tôle@@@Tole<1>@Pièce1.SLDPRT" ep"SW-Epaisseur de tôlerie@@@Tole<2>@Pièce1.SLDPRT"
Pour les pièces existantes il faudra passer par une macro, j'ai fait celle ci perso, pour un problème similère :
Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swFeat As SldWorks.Feature
Dim swCustPropMgr As SldWorks.CustomPropertyManager
Dim NF As String
Dim Liste As String
Dim Final As String
Dim st As String
Dim swBodyFolder As SldWorks.BodyFolder
Dim swBody As Body2
Dim vBody As Variant
Dim i As Integer
Sub main()
On Error Resume Next
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swCustPropMgr = swModel.Extension.CustomPropertyManager("")
NF = swModel.GetTitle() & ".SLDPRT"
st = """"
Set swFeat = swModel.FirstFeature
Do While Not swFeat Is Nothing
If swFeat.GetTypeName() = "CutListFolder" Then
Liste = swFeat.Name
Set swBodyFolder = swFeat.GetSpecificFeature2
swBodyFolder.UpdateCutList
Final = st & "SW-Longueur du flanc de tôle@@@" & Liste & "@" & NF & st & "x" & st & "SW-Largeur du flanc de tôle@@@" & Liste & "@" & NF & st
Set swCustPropMgr = swFeat.CustomPropertyManager
swCustPropMgr.Add3 "Dimension", swCustomInfoText, Final, 1
End If
Set swFeat = swFeat.GetNextFeature
Loop
End Sub
Il vous suffira d'adapter cette ligne :
Final = st & "SW-Longueur du flanc de tôle@@@" & Liste & "@" & NF & st & "x" & st & "SW-Largeur du flanc de tôle@@@" & Liste & "@" & NF & st NF êtant un concatener de : nom de la pièce + .SLDPRT st êtant le caractère guillemet (")
Après vous pouvez faire ce que vous voulez comme formule, rajouter du texte, c'est l'avantage des macros !
Merci Michael ! Par contre, je ne vois pas comment mettre dans le modèle par défaut cette propriété de corps : Laser "SW-Longueur du flanc de tôle@@@""x"SW-Largeur du flanc de tôle@@@"" ep"SW-Epaisseur de tôlerie@@@@@@""
Merci Michael pour la macro, mais je ne devrais a priori pas en avoir besoin étant donné que je ne fais que des conceptions unitaires, nouvelles à chaque fois.
Pour ce qui est de la méthode de max59, de mettre l'expression dans le modèle par défaut, ok mais je pense que ça ne fonctionne que dans le cas où la pièce ne contient qu'un seul corps...
Pour le modèle par défault, mon conseil est de créer juste une fonction mécano soudé dans le modèle par défault pour y ajouter votre variable qui va bien. Normalment dès la création des corps ils prendrons la valeur adéquat.
Vous pouvez aussi faire un modèle de pièce normale et un mécano soudé si le fait d'avoir la fonction mécano soudé sur toutes les pièces vous dérange
"Normalement dès la création des corps ils prendrons la valeur adéquat."
Oui ca je connais, ca fonctionne pour les pièces mécano soudée mais pas pour les corps de tolerie malheureusement. Merci quand même pour toutes ces infos !
Le soucis avec les corps de tôlerie, c'est que la propriété "Description" prend automatiquement la valeur "Sheet" lors de la création de la tôle.
Sous SW2019, dans Option => Propriétés du document => Constructions soudés, il y a possibilité de changer cette valeur par défaut (voir pj). Mais quelle expression écrire à la place de Sheet pour obtenir mon fameux Tôle ép.# ... ### x ### ?