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 : 

iLogic

9 RÉPONSES 9
RÉSOLU
Répondre
Message 1 sur 10
Sklempt
651 Visites, 9 Réponses

iLogic

Hi,

 

As soon as I try to use ThisDoc.FileName and Format commands together, I'm getting a error due to the Format command.

 

This will give me an error;

 

SyntaxEditor Code Snippet

iProperties.Value("Custom", "Diametre_ext")=Format(Mid(ThisDoc.FileName(False),9,3)/100,"Standard")

The error being ;

Erreur sur la ligne 1: Argument non spécifié pour le paramètre 'format' de 'Public Shared Function Format(enumType As System.Type, value As Object, format As String) As String'.
Erreur sur la ligne 1: Impossible de convertir une valeur de type 'Double' en 'System.Type'.

 

 

This works :

 

SyntaxEditor Code Snippet

iProperties.Value("Custom", "Diametre_ext")=Format(Mid(iProperties.Value("Project", "Part Number"),9,3)/100,"Standard")

 

As you can guess it I'm a noob in VBA and please send help.

 

BR


Sebastian

9 RÉPONSES 9
Message 2 sur 10
ThomasB44
en réponse à: Sklempt

Salut,

Quel est le résultat recherché ?

Pourquoi utilise tu la commande "Format" ?

Décrit un exemple STP Smiley clignant de l'œil


Thomas
Mechanical Designer / Inventor Professionnal 2023
Inventor Professional EESignature

Message 3 sur 10
Sklempt
en réponse à: ThomasB44

Salut,

 

en fait je cherche à remplir l'attribut "Diametre_ext" avec 0.10 et non 0.1 (ou 1.00 au lieu de 1, par exemple).

 

Seb

Message 4 sur 10
ThomasB44
en réponse à: Sklempt

Peux tu préciser à quoi ressemble la chaîne textuelle de ton numéro de pièce ?

Ta propriété personnalisée est réutilisée ensuite en tant que texte ?


Thomas
Mechanical Designer / Inventor Professionnal 2023
Inventor Professional EESignature

Message 5 sur 10
HermJan.Otterman
en réponse à: Sklempt

Hello Sklempt,

 

This should work

 

 

 

    Dim oDoc as Inventor.partdocument = ThisApplication.activedocument
    Dim shortstring As String = Strings.Mid(iProperties.Value("Project", "Part Number"), 9, 3)
    Dim value As Double = CDbl(shortstring) / 100
    iProperties.Value("Custom", "Diametre_ext")=value

 

If this answers your question then please select "Accept as Solution"
Kudo's are also appreciated Smiley clignant de l'œil

Succes on your project, and have a nice day

Herm Jan


Message 6 sur 10
Sklempt
en réponse à: ThomasB44

 


@ThomasB44 wrote:

Peux tu préciser à quoi ressemble la chaîne textuelle de ton numéro de pièce ?

Ta propriété personnalisée est réutilisée ensuite en tant que texte ?


Salut,

 

le nom de pièce serait ;

 

XXX-000-000-000-00 en utilisant les séries de 3 zéros pour remplir ces ipropriétés personnalisées.

 

Seb

Message 7 sur 10
ThomasB44
en réponse à: Sklempt

Salut Seb

Ce code doit fonctionner :

SyntaxEditor Code Snippet

Dim PartNumber, Dia As String

'Extrait le numéro de pièce
'PartNumber = iProperties.Value("Project", "Part Number")

'Exemple de nom de fichier
PartNumber = "XXX-123-456-789-11"

'Extrait le diamètre recherché
Dia = Mid(PartNumber,5,3)

MessageBox.Show(Dia, "Title")
'Met en forme
Dia = Format(Dia,"Standard")

'Résultat
MessageBox.Show(Dia, "Title")
'iProperties.Value("Custom", "Diametre_ext") = Dia

 

En revanche si ton numéro de pièce n'a pas toujours exactement le même nombre de caractères, il faudra procéder autrement.

Il faudra extraire les "000" entre les "-" dans ton numéro de pièce.


Thomas
Mechanical Designer / Inventor Professionnal 2023
Inventor Professional EESignature

Message 8 sur 10
ThomasB44
en réponse à: Sklempt

Ceci doit fonctionner également avec la condition de numéro de pièce que tu as fourni : "XXX-123-456-789-11"

L'avantage c'est que le nombre de caractères peut varier, le code va extraire entre les "-"

 

SyntaxEditor Code Snippet

Dim PartNumber, Dia1, Dia2, Dia3 As String
Dim CPos As Integer
'Extrait le numéro de pièce
'PartNumber = iProperties.Value("Project", "Part Number")
'Exemple de numéro de pièce
PartNumber = "XXX-123-456-789-11"

'Retire les 1er caractères jusqu'au "-"
CPos = InStr(PartNumber, "-")
Dia1 = Right(PartNumber, Len(PartNumber) - CPos)
'Retire les 1er caractères jusqu'au "-"
Cpos = InStr(Dia1, "-")
Dia2 = Right(Dia1, Len(Dia1) - CPos)
'Retire les 1er caractères jusqu'au "-"
Cpos = InStr(Dia2, "-")
Dia3 = Right(Dia2, Len(Dia2) - CPos)

'Retire les derniers caractères jusqu'au "-"
CPos = InStr(Dia1, "-")
Dia1 = Left(Dia1, CPos - 1)
CPos = InStr(Dia2, "-")
Dia2 = Left(Dia2, CPos - 1)
CPos = InStr(Dia3, "-")
Dia3 = Left(Dia3, CPos - 1)

'Met en forme
Dia1 = Format(Dia1,"Standard")
Dia2 = Format(Dia2,"Standard")
Dia3 = Format(Dia3,"Standard")

MessageBox.Show("Dia1 : " & Dia1 & _
vbNewLine & "Dia2 : " & Dia2 & _
vbNewLine & "Dia3 : " & Dia3, "Title")

'Résultat
'iProperties.Value("Custom", "Diametre_ext") = Dia1

Thomas
Mechanical Designer / Inventor Professionnal 2023
Inventor Professional EESignature

Message 9 sur 10
Sklempt
en réponse à: ThomasB44

Salut Thomas,

 

merci mille fois pour ton aide. Malgré le fait que ça ne m'a pas expliqué pourquoi on ne pouvait pas utiliser ThisDoc.FileName en combinaison avec Format, la solution proposée devrait parfaitement convenir.

 

Encore merci !

 

Seb

Message 10 sur 10
patrick.fluegge
en réponse à: Sklempt

BTW the main problem in the first post ist here:

 

Mid(ThisDoc.FileName(False),9,3)/100

Here to show the brackets, mid returns  a string:

Mid(___________________________)/100

You are trying to divide that substring (created from Mid())  by a number  (100)!

This is of course not possible by default. Especially since you wanted to extract the filename which would lead to something like "Part1.ipt"/100.

 

Only if VB manages to convert the String into a number then you are lucky. But I would not rely on this.



Patrick Flügge

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