Aller au contenu

mooneck

Membres
  • Compteur de contenus

    225
  • Inscription

  • Dernière visite

Tout ce qui a été posté par mooneck

  1. Bonjour La part doit etre dans un product. Tu dis etre actif dans le product. Tu prend la fonction Symétrie dans la barre d'outils Fonction d'Assemblage et tu suis les instructions. C'est simple :cool: @+
  2. mooneck

    VBscript ou VBA

    Tiens moi au courant de l'évolution. @+ Mooneck
  3. mooneck

    Expression régulière en VBA

    Merci quand meme Didier Malqres tout as tu un exemple ? ca me donnera peut-etre une piste. Merci
  4. mooneck

    Orientation drawing text en prog vb

    As tu essayer en mettant un angle négatif ? sinon tu peux aussi tourner l'écran, non je plaisante ! :cool: Je pense qu'il faut que tu passe en revue tous les parametres de l'objet Texte Voir bout de code que j'ai donner à G-CAD mais il faut l'adapter au 2D Voici un exemple de code qui passe en revue les parametres d'un composant : Dim listeParam As Parameters Set listeParam = ProduitEnCours.Parameters Dim iParam, VAR As Integer Dim MonParam As Parameter For iParam = 1 To listeParam.Count Debug.Print "Parametre " & iParam; " : " & listeParam.ITEM(iParam).Name Next Si tu veux changer la valeur d'un parametre et si tu connais le nom du parametre (facile avec le Debug.print) voici le reste du code For iParam = 1 To listeParam.Count Debug.Print "Parametre " & iParam; " : " & listeParam.ITEM(iParam).Name If listeParam.ITEM(iParam).Name Like "*\Nomduparametre" Then Set MonParam = listeParam.ITEM(iParam) Exit For End If Next 'Affiche la valeur du parametre msgbox EtatActivation.ValueAsString 'Change la vakleur du parametre 'EtatActivation.ValuateFromString "nouvelle valeur" Bon courage
  5. mooneck

    site sympa

    Salut [Edité le 17/8/2006 par mooneck]
  6. Bonjour Quelqu'un at-il déja utiliser les expressions régulière dans CAtia V5 ? Je souhaiterai vérifier le formatage d'un part number a l'aide des expressions régulière. J'utilise ce code ' Analyse le formatage du part number Dim VARiable As Variant Dim MyRegExp As New VBScript_RegExp_55.RegExp Dim Matches As VBScript_RegExp_55.MatchCollection Dim Match As VBScript_RegExp_55.Match Dim iMatch As Integer Dim StringFORMAT As String FormatageOK = False For n = 1 To NbredeFormatClientChoisi MyRegExp.Pattern = TableListeFormat(n) & "¤" If LenB(MyRegExp.Pattern) <> 0 Then Debug.Print "il n'ya pas de format défini !" End If StringFORMAT = ListeDesComposantPartNumber(NbreItem) & "¤" [surligneur] Matches[/surligneur] = MyRegExp.Execute(StringFORMAT) If Matches.Count <> 0 Then Debug.Print "Il y a une correspondance trouvée" iMatch = 0 Match = Matches(iMatch) FormatageOK = True Else Debug.Print "Le part Number ne correspond pas au format client" & n End If J'obtiens une erreur sur Matches : "Utilisation incorrecte de la propriété" Quelqu'un a t-il une petite idée ? Merci d'avance ;) mais j'ai une erreur sur [Edité le 17/8/2006 par mooneck]
  7. mooneck

    VBscript ou VBA

    Bonjour Voici un exemple de code qui passe en revue les parametres d'un composant : Dim listeParam As Parameters Set listeParam = ProduitEnCours.Parameters Dim iParam, VAR As Integer Dim MonParam As Parameter For iParam = 1 To listeParam.Count Debug.Print "Parametre " & iParam; " : " & listeParam.ITEM(iParam).Name Next Si tu veux changer la valeur d'un parametre et si tu connais le nom du parametre (facile avec le Debug.print) voici le reste du code For iParam = 1 To listeParam.Count Debug.Print "Parametre " & iParam; " : " & listeParam.ITEM(iParam).Name If listeParam.ITEM(iParam).Name Like "*\Nomduparametre" Then Set MonParam = listeParam.ITEM(iParam) Exit For End If Next 'Affiche la valeur du parametre msgbox EtatActivation.ValueAsString 'Change la vakleur du parametre 'EtatActivation.ValuateFromString "nouvelle valeur" J'espère que ce bout de code te sera utile @+
  8. mooneck

    Activer / Désactiver le composant

    8_pool Je n'ai pas trouvé dont tu me parles.Pourrais tu m'en dire un peu plus sur cette méthode as tu un exemple ? :( Merci d'avance
  9. mooneck

    Activer / Désactiver le composant

    8_pool J'ai retrouvé le code qui permet de mettre en noshow certains elements voici un exemple : Public Sub NoShow_Plans_et_Droites() On Error Resume Next Dim productDocument1 As ProductDocument Set productDocument1 = CATIA.ActiveDocument Dim selection1 As Selection Set selection1 = productDocument1.Selection Dim selection2 As Selection Set selection2 = productDocument1.Selection Dim specsAndGeomWindow1 As SpecsAndGeomWindow Set specsAndGeomWindow1 = CATIA.ActiveWindow Dim viewer3D1 As Viewer3D Set viewer3D1 = specsAndGeomWindow1.ActiveViewer Dim viewpoint3D1 As Viewpoint3D Set viewpoint3D1 = viewer3D1.Viewpoint3D selection1.Search "CATPrtSearch.Plane.Visibility=Visible,all" selection1.VisProperties.SetShow catVisPropertyNoShowAttr viewer3D1.Reframe viewer3D1.Update selection2.Search "CATPrtSearch.Line.Visibility=Visible,all" selection2.VisProperties.SetShow catVisPropertyNoShowAttr viewer3D1.Reframe viewer3D1.Update End Sub @+
  10. mooneck

    Activer / Désactiver le composant

    Bonjour 8_pool Merci pour ta réponse. Je vais regarder cette méthode lsInactive de plus pres. Je vais aussi regarder si jez trouve quelque chose du coté des parametres. J'ai un bout de code pour récupérer des parameter d'une collection catia mais il s'agit des parametres de catia lui meme. Il me semble que j'ai deja travaillé sur la propriete hidden d'un composant. Mais comme ca fait environ un an que je n'ai plus touché à Catia il faut que je fouille. Je dois faire une petite intervention chirurgicale sur mon unité centrale et je regarde apres. Concernant ta méthode concernant les liens morts : j'ai en fait a peu pres la meme. A savoir, des que une méthode .partnumber ou .path me renvoi un code erreur j'en conclu que le lien est mort. Je travaille beaucoup avec la gestion des erreur. Mais ca ne me parait pas tres propre comme code. Se servir de "on error goto" pour continuer a traiter des composants !! :casstet: Bon appétit et @+
  11. Bonjour à tous Est-ce que quelqu'un connais le code pour activer désactiver un composant ? [surligneur] "Menu contextuel / Objet / Activer-Désactiver le composant"[/surligneur] Je souhaite d'abord tester si le chaque composant est désactivé pour l'activer automatiquement. De la meme manière, je souhaiterais faire un test de "lien mort" pour chaque element de l'assemblage. J'ai déja la boucle récursive, j'ai juste un peu de mal avecl'aide catia v5 automation ! :( si quelqu'un a un début de piste ou mieux : "the solution !" je l'en remercie d'avance. J'ai tester ca mais ca ne fais pas grand chose a part activer la reprsentation ! NouveauProduitPourAnalyse.ActivateDefaultShape @+ [Edité le 24/7/2006 par mooneck]
  12. mooneck

    Un bon Bouquin SVP !

    Voici d'ailleurs le lien eD2K : Generative Part Structural Analysis.doc si ca peut t'aider ! :)
  13. mooneck

    Un bon Bouquin SVP !

    Bonjour J'arrive peut-etre un peu tard. Mais si jamais ... As tu regarder sur la mule ? il y a souvent des pdf dispos concernant les aides didacticiels,etc. @+
  14. Bonjour Stephane Voici un bout de code qui te permettra de lancer le fichier d'aide *.doc avec Wordpad de Windows. Sub CATMain() ' ' ____________________________________________________________________________ ' Déclaration des variables Dim MyAppID Dim WIN, Fichier As String ' Constantes de traitement fichier Const ForReading = 1, ForWriting = 2, ForAppending = 8 ' ____________________________________________________________________________ ' Récupère la variable d'environnement WINDOWS WIN = Environ("SystemRoot") Debug.Print WIN ' ____________________________________________________________________________ ' Initialise mon fichier d'aide Fichier = "MonFichierAide.doc" ' ____________________________________________________________________________ ' Lance le fichier d'aide MyAppID = Shell(WIN & "\system32\write.exe " & Fichier, ForReading) AppActivate MyAppID ' ' End Sub Teste le et dis moi si ca te conviens. @+
  15. mooneck

    Sous sous procédure

    salut Patrick Je ne sais pas si tu as la réponse mais voici mon avis sur le sujet. Pourquoi n'appelle tu pas le sous procédure en lui passant les variable de la première ? Sub Principale ___Dim VarX as integer ___Dim VarY as String ___SousProcédure VarX, VarY End Sub _____________________________________________ Sub SousProcédure (Var1 as integer, Var2 as string) End Sub ou alors avec une fonction : Sub Principale ___Dim VarX as integer ___Dim VarY as String ___MsgBox MaFonction (VarX, VarY) End Sub _____________________________________________ Function MaFonction (Var1 as integer, Var2 as string) as string ___MaFonction = Var2 & Var1 End Sub Je ne pense pas que l'on puisse imbriquer une sub dans une autre Par contre une sub peut s'appeller elle meme ! Sinon on peux aussi déclarer les variables en "Public" @+
  16. mooneck

    Lien invisible dans un CATProduct

    Salut Les mystères de Catia !! ... Quelle version de Catia utilise tu ? essai de faire un envoyer vers... ou alors un CATDUA @+
  17. mooneck

    Suppression de contraintes en VBA

    Gawel Je te renverrai le code sans password des que possible pour l'instant j'ai mon micro chez moi qui m'a laché vandredi donc je suis sans pc @+
  18. mooneck

    Architecture douteuse

    C'est original ! Peut etre était-il nostalgique :cool: Encore une cible pour B.Laden !
  19. mooneck

    Suppression de contraintes en VBA

    Salut Gawel Je t'envoi le code par mail il ne marche qu'à partir de la R14 il y a des problemes en R12 (j'ai pas essayé la R13) @+
  20. mooneck

    Impression couleur des scripts

    Ok merci pour l'info je vais essayer de les trouver @+
  21. mooneck

    Suppression de contraintes en VBA

    Salut Christophe J'avais la réponse sous les yeux et je ne m'en suis pas rendu compte. En fait au début j'étais focalisé sur d'autres problemes et quand tu m'avait répondu je n'ai pas saisi le sens de ta phrase : et apres je n'y ai plus repensé merci quand meme !
  22. mooneck

    Suppression de contraintes en VBA

    Salut Gawel Ca y est ! :D J'ai enfin la solution ! Par contre j'ai du faire appel à Callcenter car j'avais besoin de terminer ce programme et ca m'enervait de buter si pres du but. En fait il ne manquait qu'un mot dans la procédure "Execute" (boucle récursive) et c'est bien ce qu'il me semblait, il s'agit de la définition de "ProduitEnCours" Set CollecProduitsenCours = ProduitEnCours.ReferenceProduct.Products Set NouveauProduitPourAnalyse = CollecProduitsenCours.ITEM(i).ReferenceProduct le petit mot qui fait la différence ! [surligneur] .ReferenceProduct[/surligneur] Si le code terminé t'interesse fait le moi savoir (j'ai ajouté en plus une progressbar : pratique pour les tres gros assemblage !) Merci pour ton aide @+
  23. Bonjour à tous Est-ce que quelqu'un connaitrait un moyen d'imprimer en couleurs le code vba des macro catia v5 ? J'ai redéfini les couleurs de l'éditeurs pour que ce soit plus lisible. Mais j'aimerais faire des impression couleur de la meme manière. Merci d'avance :)
  24. mooneck

    Suppression de contraintes en VBA

    Salut Gawel Je dois avoir la poisse J'ai repris la partie de ton code Dim ConstraintsProduits As Variant Dim k As Integer Set ConstraintsProduits = produitencours.Connections("CATIAConstraints") MsgBox ConstraintsProduits.Count For k = 1 To ConstraintsProduits.Count ConstraintsProduits.Remove (ConstraintsProduits.Count) Next 'j'ai ajouté cette ligne pour controle MsgBox ConstraintsProduits.Count voici ce que ca donne : Sub Fixation(ByVal produitencours As Product, ByVal NB_sous_produits As Integer, ByVal niveau As Integer) ' ____'On Error GoTo ErrorHandler ' '----------------------------------------------------------------------------------------- 'Déclaration des variables '----------------------------------------------------------------------------------------- ____Dim TABLE_reference() As Reference________ ' ____Dim ConstraintsProduits As Variant________ ' ____ ____Dim TABLE_constraint() As Constraint________' ____ ____Dim NOM_REF As String____________________ ' ____Dim k, i As Integer________________________ ' ____Dim NUMEROPART As String____________________' ____Dim NOM As String________________________ ' ____Dim INSTANCE As String____________________ ' ____Dim NomDuProduitEncours As String________ ' ____Dim NumContrainte As Variant________________' ' '----------------------------------------------------------------------------------------- 'Initialisation des variables '----------------------------------------------------------------------------------------- ____Set ConstraintsProduits = produitencours.Connections("CATIAConstraints") ____ ____ReDim TABLE_reference(NB_sous_produits) ____ReDim TABLE_constraint(NB_sous_produits) ____NomDuProduitEncours = produitencours.Name ____Debug.Print NomDuProduitEncours ' '----------------------------------------------------------------------------------------- 'Suppression des contraintes existantes : Traitement de tous les niveaux '----------------------------------------------------------------------------------------- ________ 'Code de Gawel ____MsgBox ConstraintsProduits.Count ____For k = 1 To ConstraintsProduits.Count ________ConstraintsProduits.Remove (ConstraintsProduits.Count) ____Next ____ ____MsgBox ConstraintsProduits.Count ensuite j'ai conservé mon code concernant la boucle récursive (module execute) que j'ai légèrement modifié car j'avais pas déclaré tout comme il faut : '----------------------------------------------------------------------------------------- 'Déclaration des variables publics '----------------------------------------------------------------------------------------- ____Public f, fso, fso2____________________________ 'Variable Filesystem pour création du fichier ____Public ProduitDeTete As String________________ 'Nom du produit de tete ____Public RepertoireBase As String________________ 'Chemin du produit de tete ____Public ProduitDocumentActif As ProductDocument 'Document actif de tete ' ' Sub CATMain() '----------------------------------------------------------------------------------------- 'Déclaration des variables '----------------------------------------------------------------------------------------- ____Dim documents1 As Documents ____Set documents1 = CATIA.Documents ' '----------------------------------------------------------------------------------------- 'Sélection du document actif '----------------------------------------------------------------------------------------- ____Set ProduitDocumentActif = CATIA.ActiveDocument ____ProduitDeTete = ProduitDocumentActif.Name ____RepertoireBase = ProduitDocumentActif.Path ' '----------------------------------------------------------------------------------------- 'Programme '----------------------------------------------------------------------------------------- ____CreationFichierTexte________________________'Ouvre un fichier trace dans le %TEMP% ' ____analyse ProduitDocumentActif.Product, 0____ 'Lance la boucle récursive et traite les actions ' ____FermeFichierTexte________________________ 'Ferme le fichier trace dans le %TEMP% ' ' End Sub Sub analyse(ByVal produitencours As Product, ByVal niveau As Integer) ' '----------------------------------------------------------------------------------------- 'Déclaration des variables '----------------------------------------------------------------------------------------- ____Dim CollecProduitsenCours As Products ____Dim NouveauProduitPourAnalyse As Product ____Dim tabulation, tabulation2 As String ____tabulation = Space(5 * niveau) ____niveau = niveau + 1 ' '----------------------------------------------------------------------------------------- 'Charge le composant '----------------------------------------------------------------------------------------- ____produitencours.ActivateDefaultShape ' '----------------------------------------------------------------------------------------- 'Ecriture du nom du produit dans le fichier trace '----------------------------------------------------------------------------------------- ____chaine = tabulation & "Niveau " & niveau & _ ____________" : " & produitencours.Name & " - " & _ ____________produitencours.DescriptionRef ____f.WriteLine chaine ____Debug.Print chaine ' ____tabulation2 = tabulation & Space(5) ' '----------------------------------------------------------------------------------------- 'Je lance le programme spécifique d'ancrage des éléments du produit en cours '----------------------------------------------------------------------------------------- ____Fixation produitencours, produitencours.Products.Count, niveau ' '----------------------------------------------------------------------------------------- 'Je passe en revue tous les articles du produits '----------------------------------------------------------------------------------------- ____For i = 1 To produitencours.Products.Count ________NB_Item = produitencours.Products.ITEM(i).Products.Count ________Set CollecProduitsenCours = produitencours.Products ________Set NouveauProduitPourAnalyse = CollecProduitsenCours.ITEM(i) '____ _________________________________________________________________ '____ Si l'article est un produit alors on relance la boucle ________If NB_Item <> 0 Then ____________analyse NouveauProduitPourAnalyse, niveau ________Else '____ _________________________________________________________________ '____ Sinon je descends d'un niveau et je traite la part ____________NouveauProduitPourAnalyse.ActivateDefaultShape ____________chaine = tabulation2 & "Niveau " & niveau + 1 & _ ____________________" : " & "Part " & i & _ ____________________" : " & NouveauProduitPourAnalyse.Name & " - " & _ ____________________NouveauProduitPourAnalyse.DescriptionRef ____________f.WriteLine chaine ____________Debug.Print chaine ________End If ____Next i ' '----------------------------------------------------------------------------------------- 'J'écris une ligne vide à la fin du produit '----------------------------------------------------------------------------------------- ____Debug.Print ____f.WriteLine "" ' ' End Sub [surligneur] Mais toujours pareil ! :mad: [/surligneur] Lorque ce traite le niveau de tete j'ai un premier message qui me donne 3 contraintes apres effacement : 0 contraintes Et des que je descend dans l'arbre : j'ai 5 contraintes avant effacement et 5 contraintes apres effacement ! :( :( :( :( :( :( Mais comment cela peut-il se produire ? il doit y avoir un probrleme de déclaration ou je ne sais KOI. (passage de la variable produit encours dans la boucle récursive) Si tu as une idée @+
  25. mooneck

    Suppression de contraintes en VBA

    Salut Gawel As tu nouveau concernant le probleme de suppression de contraintes auto. Merci d'avance @+
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité