2017-08-14 3 views
0

J'ai besoin de votre aide pour utiliser CATIA correctement.utiliser des formules Excel via VBA dans CATIA

Je suis actuellement chargé de créer une pièce de «support» pour un moule où une vis d'assemblage doit être insérée (quelle que soit sa longueur) d'un maximum de 15 mm. La longueur de la vis d'assemblage insérée dépend d'une plaque située au-dessus de la partie de support. Dans Excel, j'ai créé plusieurs formules qui déterminent quelle vis doit être utilisée mais je ne sais pas comment utiliser les formules Excel dans VBA. Est-il possible d'utiliser des formules Excel ou même des feuilles de calcul dans VBA?

'declaration of X as "Height of Plate 9" 
Dim X As Integer 
X = length1.Value 

'declaration of Y as the result for the optimal length of the CapScrew to be used 
Dim Y As Integer 
Y = 0 

'Formula for the length of the CapScrew to be used 
If (designTable1.Configuration <= 15) = True Then 
    Y = X - 10 - 1 + 15 
    designTable2.Configuration = Y 
Else 
    Y = X - 12 - 1 + 15 
    designTable2.Configuration = Y 
End If 
+3

Bienvenue S'il vous plaît utiliser votre moteur de recherche préféré avec les mots "vba excel créer une formule" Il existe de nombreux guides et exemples, pour [exemple] (https://msdn.microsoft.com/fr-fr/vba/excel-vba/articles/range-formula -property-excel) de Microsoft.Si vous rencontrez un problème de programmation spécifique, retournez ici et décrivez-le. – miroxlav

+0

Il existe une commande VBA pour utiliser les formules Excel mais hélas je ne sais pas quelle est la commande. Google vous aidera à trouver la commande. Vous pouvez également essayer d'enregistrer une macro et de taper une formule et voir ce que la macro arrive avec. –

+0

Voulez-vous dire que vous voulez utiliser des formules Excel dans le code CATIA VBA? –

Répondre

0

Essayez:

Application.WorksheetFunction.YourFunction(YourArguments) 

Il y a souvent une meilleure solution que d'utiliser les fonctions de feuille de calcul dans VBA, cependant.

+0

Merci pour votre aide. apparemment, je vais avoir à utiliser d'autres moyens que les fonctions de la feuille de calcul ... J'ai ce qui suit qui me donne une réponse basée sur la ColLine du capuchon au lieu de la longueur, mais je ne peux pas le résoudre. Une idée de comment l'obtenir? – Castella

+0

'déclaration de X comme "hauteur de la plaque 9" Dim X As Entier X = longueur1.Valeur' ​​déclaration de Y comme résultat pour la longueur optimale du CapScrew à utiliser Dim Y As Entier Y = 0 'Formule pour la longueur de la CapScrew à utiliser If (designTable1.Configuration <= 15) = True Alors Y = X - 10 - 1 + 15 designTable2.Configuration = Y Sinon Y = X - 12 - 1 + 15 designTable2.Configuration = Y Fin Si – Castella

+0

Ne pas poster de code dans les commentaires - éditer votre question originale et y ajouter vos modifications et votre code. – Olly

0

Vous pouvez utiliser une formule dans CATIA pour déterminer la configuration à utiliser pour la table de conception en fonction de vos entrées (épaisseur de la plaque et dépassement requis).

CATIA fournit les fonctions CloserConfig, CloserSupConfig et CloserInfConfig à cette fin.

À titre d'exemple, supposons d'abord examiner ce tableau design:

enter image description here

Et il y a trois paramètres: GRIP_LENGTH est une épaisseur que la vis est de tenir ensemble NUT_GRIP est l'excès de longueur nécessaire pour une écrou (ou la distance de la vis est vissée dans une plaque). SCREW_LENGTH est la longueur de la vis choisi

La formule valorise le paramètre de configuration de la table de choisir le plus proche configuration disponible lorsque la longueur de la vis est supérieure à la somme des GRIP_LENGTH et NUT_GRIP:

Configuration = information- > CloserSupConfig ("SCREW_LENGTH", GRIP_LENGTH + NUT_GRIP)

enter image description here

de cette formule, la configuration est choisie automatiquement et la valeur correcte pour SCREW_LENG TH rempli de la table de conception.

+0

Nous vous remercions de votre suggestion. Bien que pas 100% correct, je crois que je suis très proche de la solution. Un problème se pose avec le diamètre spécifique de la vis. Dans la formule ci-dessus, la première longueur de vis correcte est sélectionnée. Par exemple si j'utilise un Support_Diameter de 50mm et un Height_of_Plate_9 de 17mm j'obtiens la vis choisie: M3x25 et la sélection correcte devrait être M10x25. Si, toutefois, je devais modifier le Support_Diameter à quelque chose de supérieur ou égal à 53mm, la sélection devrait toujours commencer à M12. – Castella

0

Grâce à la suggestion de @ Olly, j'ai pu trouver la bonne formule pour mon problème.

Pour que la formule fonctionne, j'ai créé une colonne dans la table de conception Capscrew que j'ai appelée SuporteCheck. Les valeurs de la colonne (qui correspondaient aux rangées des vis M10 et M12 désirées) étaient le résultat de la formule: Hauteur de la plaque 9 - Longueur de la cavité dans la plaque 9 - Hauteur de la tête de vis + Longueur de la cavité dans le support. Ensuite, je la formule ci-dessus dans la configuration Vis d'assemblage:.. CloserInfConfig ("DesignTable.1", "Altura_da_cabeça", External Parameters\Diametro_Parafuso, "SuporteCheck", External Parameters\Espessura_Chapa_9 - 1mm - External Parameters\Diametro_Parafuso + External Parameters\entrada_seguranca

Merci à tous