RaoulDucable Posté(e) le 16 juin 2008 Posté(e) le 16 juin 2008 Bonjour, Voici une partie d'un programme d'assemblage de CatProduct paramétrables. J'ai 2 soucis :1- au niveau de laréalisation de la seconde contrainteLe message est (entre autre)SciptingERR_1002Source : CATIAConstraintsLa méthode AddBiEltCst a échouéLigne : 167Colonne : 0 2- au niveau de la validation des variables avec affichage en msgBox. SciptingERR_1002Source : CATIALengthDescription : La méthode Value a échouéLigne : 92Colonne : 2 Quelqun a-t-il rencontré ces type de problèmes'Language = "VBSCRIPT" Sub CATMain() Dim documents1 As DocumentsSet documents1 = CATIA.Documents Dim productdocument1 As DocumentSet productdocument1 = documents1.Open("I:\_sharediao\DICAP\catdiv_dicap_3\65304_manut\AFFAIRES\RIMS\TABLE_ROULEAU_GALET\INTER\1_PRE_ETUDE\RIMSTGCX00-LG500\RIMSTGCX00_ENS.CATProduct") Dim product1 As ProductSet product1 = productdocument1.Product Dim products1 As ProductsSet products1 = product1.Products Dim OpenName as StringOpenName = CATIA.ActiveDocument.Name Dim dirname dirname = CATIA.ActiveDocument.Path & "\" product1.ApplyWorkMode DESIGN_MODE product1.Update '*********** Chargement des paramètres *********** Dim parameters1 As ParametersSet parameters1 = product1.Parameters ' Déclaration du tableau de paramètres Dim relations1 As RelationsDim ParamTable As DesignTable Set relations1 = product1.RelationsSet ParamTable = relations1.Item("ParametresTable") ' Déclaration des paramètres Set length1 = parameters1.Item("Longueur_table") Set length2 = parameters1.Item("Largeur_voie") Set length3 = parameters1.Item("Entraxe_lignes_arbre") Set NbLigne = parameters1.Item("Nb_lignes_arbre") Set length4 = parameters1.Item("Diametre_arbre") Set length5 = parameters1.Item("Diametre_galet") Set MGalets = parameters1.Item("Montage_galets") Dim ChoixEntree As StringChoixEntree = InputBox("Entrée des paramètres manuelle ou par tableau (manuelle ou tableau)") If (ChoixEntree) = "manuelle" Then MsgBox " Le tableau de paramètrage va être désactivé ! " ' Désactivation du tableau de paramètres ParamTable.Deactivate ' Déclaration des variables de paramètres Dim LongTable As Double Dim LargVoie As Double Dim EntrArbre As Double Dim Nbrouleaux As Integer Dim DiamArbre As Double Dim DiamGalet As Double Dim MontGalet As String Dim length1 As Parameter Dim length2 As Parameter Dim length3 As Parameter Dim length4 As Parameter Dim length5 As Parameter Dim NbLigne As Parameter Dim MGalets As Parameter ' Entrée des valeur de variables LongTable = InputBox("Entrez la longueur de table.") LargVoie = InputBox("Entrez la largeur de voie.") EntrArbre = InputBox("Entrez l'entraxe des lignes d'arbres (764 mm std)") Nbrouleaux = InputBox("Entrez le nombre de lignes d'arbre.") DiamArbre = InputBox("Entrez le diamètre des arbres (35 mm ou 40 mm)") DiamGalet = InputBox("Entrez le diamètre des galets (plan de roulement)") MontGalet = InputBox("Entrez le type de montage des galets (intérieur ou extérieur)") ' Affectation des valeurs length1.Value = LongTable MsgBox " Longueur de table : " & length1.Value length2.Value = LargVoie (ligne 92) MsgBox " Largeur de table : " & length2.Value length3.Value = EntrArbre MsgBox " Entraxe des lignes d'arbre : " & length3.Value NbLigne.Value = Nbrouleaux MsgBox " Nombres de lignes d'arbre : " & NbLigne.Value length4.Value = DiamArbre MsgBox " Diamètre d'un arbre : " & length4.Value length5.Value = DiamGalet MsgBox " Diamètre des galets : " & length5.Value MGalets = MontGalet MsgBox " Diamètre des galets : " & MGalets ElseIf (ChoixEntree) = "tableau" Then Dim NumConfig As Integer NumConfig = InputBox("Entrez le numéro de configuration !") ParamTable.Configuration = NumConfig End If product1.Update '******* Chargement des CatProducts *******'********** Montage des arbres ************ Dim LigneArbre As String If (MGalets.Value) = "extérieur" Then LigneArbre = "RIMSTGCX05_LIGNE_ARBRE_COURANT_EXTER.CATProduct"Else LigneArbre = "RIMSTGCX05_LIGNE_ARBRE_COURANT_INTER.CATProduct"End If Dim LngArbre As StringLngArbre = Left(LigneArbre, Len(LigneArbre)-11) Dim arrayOfVariantOfBSTR1(0)arrayOfVariantOfBSTR1(0) = dirname & LigneArbreproducts1.AddComponentsFromFiles arrayOfVariantOfBSTR1, "All" Dim product2 As ProductSet product2 = products1.Item(LngArbre&".1") Dim products2 As ProductsSet products2 = product2.Products Dim product3 As ProductSet product3 = products2.Item("PALIER_APPLIQUE_D35.2") Dim products3 As ProductsSet products3 = product3.Products Dim constraints1 As CollectionSet constraints1 = product1.Connections("CATIAConstraints") Dim reference1 As ReferenceSet reference1 = product1.CreateReferenceFromName("RIMSTGCX00_ENS/" & LngArbre & ".1/AXE.1/!Droite.1") Dim reference2 As ReferenceSet reference2 = product1.CreateReferenceFromName("RIMSTGCX00_ENS/RIMSTGCX01_LONGERON_ENS.1/RIMSTGCX01_LONGERON_D.1/!Point.2") Dim constraint1 As ConstraintSet constraint1 = constraints1.AddBiEltCst(catCstTypeOn, reference1, reference2) (ligne 167) Set constraints2 = product1.Connections("CATIAConstraints") Dim reference3 As ReferenceSet reference3 = product1.CreateReferenceFromName("RIMSTGCX00_ENS/" & LngArbre & ".1/PALIER_APPLIQUE_D35.2/!Plan.1") Dim reference4 As ReferenceSet reference4 = product1.CreateReferenceFromName("RIMSTGCX00_ENS/RIMSTGCX01_LONGERON_ENS.1/RIMSTGCX01_LONGERON_D.1/!Plan.10") Dim constraint2 As ConstraintSet constraint2 = constraints1.AddBiEltCst(catCstTypeOn, reference3, reference4) constraint2.Orientation = catCstOrientsame product1.Update .......... Merci d'avance
marc54 Posté(e) le 16 juin 2008 Posté(e) le 16 juin 2008 Bonsoir Tu sais, le VBScript c'est galère à programmer et à debugger. Tu ferais mieux de faire un copier/coller dans un projet VBA. Et à la fin, quand ça fonctionne tu le rebascules sous VBScript, si vraiment c'est ce que tu veux. ligne 92 c'est peut-être un conflit de type ligne 167 tu pourrais utiliser createreferencefromobject. Les noms peuvent varier suivant le contexte, donc c'est risqué. Marc http://www.3dsys.fr
RaoulDucable Posté(e) le 17 juin 2008 Auteur Posté(e) le 17 juin 2008 Salut Marc54, En fait, c'est un peu plus compliqué que cela. C' est au départ une macro que j'ai créé sous excel. Je m'explique :Je me sers d'un fichier excel "table de paramètrage" pour créer et gérer des variantes et les incrémenter pour faire une base de données. Une fois tout cela validé, je cherche à lancer CATMain par excel pour faire l'assemblage de mes CatProduct.Mais ça ne fonctionne pas terrible. Mes connaîssance en programmation étant limitées, je procède par étape en enrregistrant des macros CATScript.....
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant