Récuperation d'une parti du nom de fichier SW

Bonjour, peut on récupérer une partie du nom de fichier dans les propriété SW ?

 

Merci d'avance.

Bonjour,

voici comment la commande pour récupérer le nom du fichier:

$PRP:"SW-Nom de fichier(File Name)

Quant à récupérer une partie; je ne crois pas que ça soit possible  à moins qu'un de mes collègue connaisse 

une commande et que la partie du nom à récupérer soit constante..

Bonjour,

Il est possible de concaténer plusieurs propriétés mais je doute qu'il soit possible de ne récupérer qu'une partie de l'une d'elle, sauf par macro bien entendu puisque dans ce cas toutes les fonctions de manipulation des chaines de caractère sont disponibles dans la macro.

Cordialement,

1 « J'aime »

Oui j'utilise déjà une macro pour récupéré ce que je veux mais j'aurai bien voulu que ce soit automatique. 

 

Merci de vos réponse ! 

 

A bientôt.

Bonjour, 

Est-il possible de partager ta macro ? en effet j'aimerais aussi faire la même chose que toi en récupérant d'un coté mon numéro de plan et de l'autre ma description mes fichiers etant nommé "n°deplan - description.sldprt"

Merci d'avance

1 « J'aime »

Bonjour,

 

Désolé pour la réponse tardive voici la premiere macro pour recuperer la reference ( les 13 premiers caracteres)

Dim swApp As Object
Dim nomfichier, toto, longueur, variable1, variable2, nomrep
Dim chemin
Dim longue, pos
Dim model As Object
Sub main()

Set swApp = CreateObject("SldWorks.Application")
Set Part = swApp.ActiveDoc
Set View = Part.ActiveDrawingView

'Récup chemin + nom du fichier de la vue
nomfichier = View.GetReferencedModelName
'MsgBox (nomfichier)
'recup nom fichier
toto = Dir(nomfichier)
'MsgBox (toto)
'recup des 13 premiers caracteres du nom fichier
variable2 = Left(toto, 13)
'MsgBox (variable2)

'calcul nb caracteres dans nomfichier
longueur = Len(toto) + 1
'MsgBox (longueur)
'création chaine sans nom fichier
longue = Len(nomfichier)
roro = longue - longueur
'MsgBox (roro)
chemin = Left(nomfichier, roro)
'MsgBox (chemin)
'recherche position de \ à partir de la droite
pos = InStrRev(chemin, "\")
'creation variable 13 prem caracteres dossier parent
variable1 = Mid(chemin, pos + 1, 13)
'MsgBox (variable1)

'concatenation des 2 variables
champs = variable2
'MsgBox (champs)

'creation PP 'champ' dans SW pour remplissage cartouche
If champs <> "" Then
    Value = Part.CustomInfo2("", "champ")
    If Value = "" Then
        Part.AddCustomInfo3 "", "champ", 50, champs
        Else
        Part.CustomInfo2("", "champ") = champs
    End If
End If

Part.EditRebuild3
End Sub
 

 

2 « J'aime »

Et la deuxieme partie pour recuperer le nom apres la reference :

 

Dim swApp As Object
Dim nomfichier, toto, longueur, variable1, variable2, nomrep
Dim chemin
Dim longue, pos
Dim model As Object
Sub main()

Set swApp = CreateObject("SldWorks.Application")
Set Part = swApp.ActiveDoc
Set View = Part.ActiveDrawingView

'Récup chemin + nom du fichier de la vue
nomfichier = View.GetReferencedModelName
'MsgBox (nomfichier)
'recup nom fichier
toto = Dir(nomfichier)
'MsgBox (toto)


'calcul nb caracteres dans toto
longueur = Len(toto)
'MsgBox (longueur)

'création chaine sans extension
variable = Left(toto, longueur - 7)
'MsgBox (variable)

'recup longueur variable
longue = Len(variable)
'MsgBox (longue)

'recup nom fichier sans 14 premiers caractères
champs = Right(variable, longue - 14)
'MsgBox (champs)

'creation PP 'champ' dans SW pour remplissage cartouche
If champs <> "" Then
    Value = Part.CustomInfo2("", "champ2")
    If Value = "" Then
        Part.AddCustomInfo3 "", "champ2", 50, champs
        Else
        Part.CustomInfo2("", "champ2") = champs
    End If
End If

Part.EditRebuild3

End Sub
 

2 « J'aime »

Bonjour, j'aimerais aussi récupérer les 6 premiers caractères mais je n'arrive pas à faire fonctionner votre macro.

 

Bonjour à tous,

Si vous avez Intégration compris dans les outils My CADtools ça se fait tres bien, voir la capture ci-jointe.

 


capture.png

J'ai Mycadtools et je ne connaissais pas cette fonction

Merci.