Communauté
Inventor - Français
Bienvenue sur les forums Inventor d’Autodesk. Partagez vos connaissances, posez des questions, collaborez sur des idées, et explorez les sujets Inventor populaires.
annuler
Affichage des résultats de 
Afficher  uniquement  | Rechercher plutôt 
Vouliez-vous dire : 

inventor Manipulation Parametre texte.

9 RÉPONSES 9
RÉSOLU
Répondre
Message 1 sur 10
tristan-haller
165 Visites, 9 Réponses

inventor Manipulation Parametre texte.

Bonjour à tous,

 

J'aimerais insérer, dans un encart de texte, une partie du nom de la pièce (pas tout le nom seulement les charactére choisit)

tristanhaller_0-1734456448720.png

 

 

Je ne sait pas coment manipuler la chaine de charactére pour atteindre cette objectif, des idées ?

Je prefererais une solution sans iLogic si possible.

 

Au plaisir de vous lire.

9 RÉPONSES 9
Message 2 sur 10
vpeuvion
en réponse à: tristan-haller

Bonjour,

Voici un exemple de code ilogic qui conserve les 5 premiers caractères de l'ipropriété Numéro de pièce.

Left(iProperties.Value("Project", "Part Number"),5)  

Je ne crois pas qu'il soit possible de modifier directement la chaîne dans le champ par une équation.

 Vincent.

Message 3 sur 10
Fabian_perree
en réponse à: tristan-haller

A moins que ces éléments soient présents dans des paramétres et/ou des ipropriétés  que l'on pourrait combinés dans une Iprop personnalisée je ne vois pas non plus comment faire sans Ilogic.

Fabian Perrée
Giùp.fr | LinkedIn

Ce post vous a été utile ? N'hésitez pas à aimer ce post.
Ce post a-t-il répondu à votre question ? Cliquez sur le bouton Accepter la solution.

EESignature

Cliquez ici pour accéder à toutes mes formations en ligne
Inventor 2022 : Modélisation et documentation de systèmes mécaniques
Message 4 sur 10
tristan-haller
en réponse à: tristan-haller

Entendu, pas de solution vanilla.

 

Merci pour vos réponses, je vais construire a partir de ça.

 

 

 

Message 5 sur 10
vpeuvion
en réponse à: tristan-haller

Tu peux peut-être te passer de iLogic en suivant l'idée de Fabian : 

Par exemple, tu peux créer 2 iPropriétés personnalisées Partie1 et Partie2.

vpeuvion_0-1734519435238.png

Ensuite tu peux ajouter une équation à la ipropriété Numéro de pièce.

vpeuvion_1-1734519502433.png

Dans ton encart, tu pourras insérer seulement Partie1.

Tout dépend de comment est géré ton flux et comment tu crées la valeur du numéro de pièce actuellement.

Vincent.

Message 6 sur 10
tristan-haller
en réponse à: tristan-haller

<b@vpeuvion,onjour 

 

Actuellement nos pièce sont "nommée a la main" et c'est cette information que je viens chercher.

nous incluons l'arborescence de la position du fichier dans sont nom : 

tristanhaller_0-1734529029214.png

Ceci permet de lier les nom de piéce a leur N°dossier interne, ainsi qu'a la structure de conception (ensemble maitre / sous ensemble A / sous ensemble A_A / pieces A_A_B ... )  et de raccourcir les adresse.

 

Nous désirons garder cette unité de nommage pour le moment, et modifier les impropriétés du nom de piéces est contre productif, puisqu'il faudrait ensuite renommer et déplacer le fichier...

 

Je vais cherche comment intégrer / automatiser tout ça plus proprement.

 

Merci de vôtres aide !

Message 7 sur 10
vpeuvion
en réponse à: tristan-haller

Bonjour @tristan-haller , merci pour les explications.

Je ne sais pas si ça peut t'être utile, mais voici un exemple de code qui crée le nom de fichier en fonction de l'emplacement sélectionné.

Cela ne doit pas répondre complètement à ton besoin mais c'est pour le principe.

Tu peux executer le code et sélectionner le dossier "B", il te créera le nom du fichier et le nom de l'ensemble maître.

Imports System.IO
Sub Main()
	Dim FileExtension As String = String.Empty
	Select Case ThisDoc.Document.DocumentType.ToString
		Case "kPartDocumentObject"
			FileExtension = ".ipt"
		Case "kDrawingDocumentObject"
			FileExtension = ".idw"
		Case "kAssemblyDocumentObject"
			FileExtension = ".iam"
	End Select	
	
    Using folderBrowser As New FolderBrowserDialog()
        If folderBrowser.ShowDialog() = DialogResult.OK Then
            Dim selectedPath As String = folderBrowser.SelectedPath
            Dim parentDir As DirectoryInfo = Directory.GetParent(selectedPath)
            Dim grandParentDir As DirectoryInfo = parentDir.Parent
	Dim selectedFolderName As String = New DirectoryInfo(selectedPath).Name

            If parentDir IsNot Nothing AndAlso grandParentDir IsNot Nothing Then
                Dim fileName As String = Right(grandParentDir.Name,5) & "_" & parentDir.Name & "_" & selectedFolderName &  FileExtension
                Dim filePath As String = System.IO.Path.Combine(selectedPath, fileName)
		MessageBox.Show("Ensemble maître : " & Right(grandParentDir.Name,5))
                MessageBox.Show("Nom du fichier : " & System.IO.Path.GetFileName(filePath))
            Else
                MessageBox.Show("Impossible de déterminer les dossiers parents.")
            End If
        End If
    End Using
End Sub

J'espère que cela pourra t'être utile.

Vincent.

Message 8 sur 10
tristan-haller
en réponse à: vpeuvion

Bonjour @vpeuvion 

 

Ce code peut effectivement m'etre utile, Merci !

Il vas me falloir faire un environement de test pour vérifier coment il fonctionne et l'aguster a notre Workflow, mais il me semble fonctionel.

 

La fonction qu'il me manquerais dans ce code, c'est la vérification des Nom de fichier déjà présent dans le ParentDir, pour pouvoir incrémenter mes pièces en fonction de celle déjà présente

 

ex: dans le dossier D01234/A/B/A

je vais retrouver le sous ensemble 01234_A_B_A.iam

et toutes les pièces qu'il contient 

01234_A_B_A.ipt

01234_A_B_A_A.ipt

01234_A_B_A_B.ipt

01234_A_B_A_C.ipt

 

le fichier en cour devrais donc s'appeler >> 01234_A_B_A_D.ipt

 

un idée de coment lire tous les fichiers contenu jusqu'à la prochaine lettre disponible?

 

Bonne journée !

Message 9 sur 10
vpeuvion
en réponse à: tristan-haller

Bonjour @tristan-haller 

Je suis content que cela puisse t'être utile.

Je pense qu'il est possible de retrouver la prochaine lettre disponible. Je vais tester de mon côté et te ferai un retour prochainement.

Vincent.

Message 10 sur 10
gmassart
en réponse à: tristan-haller

Dans le code tu peux faire une boucle en utilisant la fonction chr() ou équivalent qui te permet de générer un caractère à partir d'un nombre et ça tombe bien A c'est 65 jusque Z 90 (les minuscules c'est de 97 à 122 je pense)

Guillaume MASSART
AFFIVAL SAS
Inventor Pro 2022
EESignature

Vous n'avez pas trouvé ce que vous recherchiez ? Posez une question à la communauté ou partagez vos connaissances.

Publier dans les forums  

Autodesk Design & Make Report