Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
668 connectés 

 


 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  219  220  221  ..  233  234  235  236  237  238
Auteur Sujet :

[Support] Catia : trucs, astuces, conseils, aide

n°1166615
ptittom
Posté le 24-04-2014 à 15:28:43  profilanswer
 

Reprise du message précédent :

clem200 a écrit :

Vous même comment avez vous appris à coder sous CATIA ? Vous avez appris sur le tas ?


 
J'avais quelques bases en programmation (en C, Javascript et un peu de VB). J'ai effectivement appris le reste sur le tas.
Une fois qu'on a compris l'arborescence des objets CATIA, ca va relativement vite. Le documentation VB de CATIA (chercher V5Automation.chm dans le dossier d'installation) aide pas mal aussi. Je commencerai par l'arborescence (dossier CAA V5 Visual Basic Reference > CAA V5 Objects ).

mood
Publicité
Posté le 24-04-2014 à 15:28:43  profilanswer
 

n°1166616
arno894
Posté le 24-04-2014 à 15:45:40  profilanswer
 

Je me réponds à moi même et si ça peut servir à d'autres. Il faut déplacer la vue et les cotes redeviennent visibles. Apparemment un bug sur la r21.
 
Comment éxécuter une macro CATScript à partir d'une autre macro CATScript? Cela me semble possible avec "CATIA.SystemService.ExecuteScript" mais je ne comprends pas trop la syntaxe.
Si quelqu'un s'est déja penché dessus
Merci

n°1166617
clem200
Posté le 24-04-2014 à 15:48:39  profilanswer
 

Ca fonctionne !  
Ne me demander pas pourquoi mais en remplaçant 'Part design' par 'CATPrtSearch' la macro fonctionne. J'ai trouvé ça en faisant un enregistrement de macro et en cherchant mon esquisse. Pfiou je suis content :).  
 
Merci beaucoup pour votre aide à tous ! Je vais aller regarder le fichier  V5Automation, faut bien que je m'y mettre vraiment.  
 
Je ferai peut être de nouveau appel à votre aide. Car pour le moment le programme fonctionne sur une seule part mais l'objectif est de le lancer dans un Product. De plus j'aimerais avoir plus de critères de vérifications  car comme le dit ptitom pour le moment c'est facile à transgresser (même si le client n'est pas censé connaitre ma macro de verif ...).  
 
Merci :)

n°1166628
Guss_
Posté le 25-04-2014 à 00:03:43  profilanswer
 

arno894 a écrit :

Je me réponds à moi même et si ça peut servir à d'autres. Il faut déplacer la vue et les cotes redeviennent visibles. Apparemment un bug sur la r21.
 
Comment éxécuter une macro CATScript à partir d'une autre macro CATScript? Cela me semble possible avec "CATIA.SystemService.ExecuteScript" mais je ne comprends pas trop la syntaxe.
Si quelqu'un s'est déja penché dessus
Merci


 
Oui c'est possible, je te réponds plus précisément demain

n°1166636
Guss_
Posté le 25-04-2014 à 10:52:50  profilanswer
 

arno894 a écrit :

Je me réponds à moi même et si ça peut servir à d'autres. Il faut déplacer la vue et les cotes redeviennent visibles. Apparemment un bug sur la r21.
 
Comment éxécuter une macro CATScript à partir d'une autre macro CATScript? Cela me semble possible avec "CATIA.SystemService.ExecuteScript" mais je ne comprends pas trop la syntaxe.
Si quelqu'un s'est déja penché dessus
Merci


Code :
  1. sFilePathAndName <=  nom du fichier contenant la/les macro(s)
  2. catScriptLibraryType  =2  <= je sais plus trop, mais ça doit être suivant si c'est du VBA ou du VBscript
  3. sModule  <= nom du module/macro à lancer
  4. sProcedure <= nom de la procédure dans la macro à exécuter
  5. CatSysServ.ExecuteScript(sFilePathAndName, catScriptLibraryType, sModule, sProcedure, Params)


 
ici un exemple
http://www.coe.org/p/fo/et/thread=16767

n°1166652
clem200
Posté le 25-04-2014 à 12:30:08  profilanswer
 

.


Message édité par clem200 le 25-04-2014 à 12:34:35
n°1166656
arno894
Posté le 25-04-2014 à 13:48:52  profilanswer
 

Merci Guss
Je suis ok avec toi, j'ai réussi avec une fonction mais je voudrais lancer la CATMain.
J'ai l'impression que ça ne fonctionne qu'avec une fonction et non avec la CATMain ou une Sub car en mettant exactement le même contenu de ma fonction dans la CATMain il plante et me met Fonction Inconnue

n°1166660
Guss_
Posté le 25-04-2014 à 14:22:12  profilanswer
 

Tu as mis "CATMain" pour la variable "sProcedure" , c'est bien ça ?

n°1166667
arno894
Posté le 25-04-2014 à 15:24:07  profilanswer
 

oui c'est ça. Et dans la Sub CATMain de la 2e macro les paramètres de cette manière
 
Sub CATMain(args1,args2)

n°1166671
Guss_
Posté le 25-04-2014 à 19:39:27  profilanswer
 

C'est quoi ton code ? tu pourrais écrire ici ce que tu as écris ?

mood
Publicité
Posté le 25-04-2014 à 19:39:27  profilanswer
 

n°1166672
arno894
Posté le 25-04-2014 à 19:58:07  profilanswer
 

1ere macro:
 
Sub CATMain()
Dim args2(1)
args2(0) = 3
args2(1) = 2
Dim AddResult
 
Addresult = CATIA.SystemService.ExecuteScript ("C:\Users\Arnaud\Desktop",catscriptLibraryTypeDirectory, "Add.CatScript","CATMain",args2)
 msgbox Addresult
End Sub
 
2e macro:
Sub CATMain(args1,args2)
Add = args1-args2
End Sub
 
 
Function Add(args1,args2)
Add = args1-args2
End Function
 
Si je vais chercher la fonction ça marche mais pas la CATMain.
Merci de ton aide

n°1166677
Guss_
Posté le 26-04-2014 à 01:44:35  profilanswer
 

Ah mais tu fait un appel de fonction sur une subroutine !  
 
Il faut écrie
 
Sub CATMain()  
Dim args2(1)  
args2(0) = 3  
args2(1) = 2  
Dim AddResult  
 
Addresult = CATIA.SystemService.ExecuteScript ("C:\Users\Arnaud\Desktop",catscriptLibraryTypeDirectory, "Add.CatScript","CATMain",args2)
msgbox Addresult
End Sub  
 
2e macro:  
Sub CATMain(args1,args2)  
Dim add
Add = args1-args2  
msgbox Add
End Sub  
 
 
 
Une sub ne peut pas renvoyer de résultat !
Une fonction renvoie un résultat


Message édité par Guss_ le 26-04-2014 à 02:07:05
n°1166730
clem200
Posté le 28-04-2014 à 11:13:45  profilanswer
 

Bonjour,  
 
Je souhaite accéder avec VBA aux propriétés d"un CATpart. Plus particulièrement à sa Description. Pour que l'on se comprennent bien ;) :  
 
http://img4.hostingpics.net/thumbs/mini_219985blme.png
 
Cela fait une 1H que je joue avec le module recherche et enregistrement de macro pour trouver comment accéder à cette référence mais impossible de trouver. Est-ce seulement possible ?  
 
Merci d'avance.

Message cité 1 fois
Message édité par clem200 le 28-04-2014 à 11:23:23
n°1166733
ptittom
Posté le 28-04-2014 à 12:50:14  profilanswer
 

clem200 a écrit :

Bonjour,

 

Je souhaite accéder avec VBA aux propriétés d"un CATpart. Plus particulièrement à sa Description. Pour que l'on se comprennent bien ;) :  

 

http://img4.hostingpics.net/thumbs/mini_219985blme.png

 

Cela fait une 1H que je joue avec le module recherche et enregistrement de macro pour trouver comment accéder à cette référence mais impossible de trouver. Est-ce seulement possible ?

 

Merci d'avance.

 

Bonjour,

 

Les propriétés sont des paramètres comme les autres.
On peut y aceder avec le nom du paramètre composé du nom de la Part et de "Product Description" séparés d'un "\":

Code :
  1. Dim oPart As Part
  2. Set oPart = CATIA.ActiveDocument.Part
  3. MsgBox oPart.Parameters.Item(oPart.Name & "\Product Description" ).Value
 

Message cité 1 fois
Message édité par ptittom le 28-04-2014 à 12:52:54
n°1166753
malarox
Posté le 29-04-2014 à 09:30:42  profilanswer
 

Bonjour!
 
Je voulais savoir si il était possible d'empêcher Catia d'ouvrir un Product au démarrage et lui faire ouvrir un Part à la place (Ce qui serait beaucoup plus pratique...)? (Je suis en R22)
 
Si vous avez deux trois questions sur la conception ou le surfacique n'hésitez pas je me débrouille assez bien ^^

n°1166754
NeoSyriuS
Posté le 29-04-2014 à 10:09:00  profilanswer
 

Bonjour tout le monde.
 
Je suis embarqué dans un travail qui, si je le fais à la main, sera titanesque.
je vous expose rapidement mon soucis :  
 
 
j'ai extrait une base de donnée CGR d'une application tiers plutot capricieuse, qui "casse" l'arborescence, qu'il faut donc reconstruire à la main. de plus, elle permet, pour chaque part / ensemble, de selectionner si j'ai un CGR surfacique, volumique (plus fin avec les trait de construction disponible) ou directement le catpart original.
 :bounce:  
 
comme le volumique est l'objectif, mais qu'il est trop lourd, j'ai travaillé l'arborescence en surfacique pure.
 
lorsque j'importe un noeud de l'arborescence, l'ensemble des sous noeud est importé dans "application / node", en vrac.
pire : si absent de application / node, tout les noeuds précédent sont aussi importé dans la foulée
 
j'ai donc importé par petit groupe, copié / collé ces groupe dans des nouveaux noeud organisé dans le cat product, et "caché" ensuite les fichier copié dans "application". ainsi, à l'import suivant, les cgr non caché sont necessairement les nouveaux (et seulement les nouveaux). et à la fin, un import du parent commun permet de s'assurer que rien n'a été oublié (aucun nouvel objet, donc rien de "non caché" )
 
l'idée etait bonne, puisque la copie garde le lien avec l'original ...
sauf pour le mode de changement de définition.  :cry:  
quel n'a donc pas été mon dépis de constaté, lorsque j'ai voulu passer en volumique l'ensemble, que seul les fichier caché dans "application" etait passé en volumique !
ceux trié sont en surfacique. :fou:  
 
je me retrouve donc avec plus de 10 000 CGR en double.
d'un coté, en trié mais surfacique dans une arbo que j'ai faite à la main dans le cat product
de l'autre, les MEME CGR (meme nom), mais en volumique, tous en vrac, dans le "application / node"
 
je devrais donc, théoriquement, à la main, traiter les sous ensemble un par un, lister le nom de tout les cgr, et les rechercher, pour les couper / coller, dans "application / node".
j'ai pensé a un moment faire une "box de selection". mais elle cherche les objet "au contact", donc elle selectionnera toujours un "equivalent d'objet" plus grand dans 'application/node' qu'il ne l'était à l'origine dans l'arborescence détaillé. on ne peu pas rentrer une contrainte à 0mm, malheureusement.
 
faire ce taf là à la main est impossible. :sweat:  
refaire l'import n'est plus possible non plus, je dois me "contenter" de la maquette dont je dispose.
 
j'imagine qu'il y a sans doute moyen de bidouiller une macro VBA adapté, au pire, puisque techniquement une "simple" recherche de double dans les noms, puis couper / coller suffit, mais si je connais plutot bien VBA, je ne savais meme pas (ce qui m'interresse beaucoup) qu'il y avait un VBA dans catia. mes compétences ne me suffisent donc pas à ce jour pour répondre à ce besoin.
 
que feriez vous ? moi, je sèche, mes compétences sous catia ne sont pas non plus extraordinaire.
merci pour votre aide précieuse.
 
 :jap:  
 
cordialement.

n°1166755
Drepanon
The Not-So-Grim Reaper
Posté le 29-04-2014 à 10:33:22  profilanswer
 

ptittom a écrit :


Bonjour,
 
Si tu en es déjà à l'étape d'une coque, tu peux partir de là pour tes "planches".
1. Dans le module GSD, tu utilises la fonction Extract pour récupérer la face interne et externe de chaque planche.  
2. Avec l'outil boundary, on peut obtenir le countour de chaque surface.
3. Ensuite, on peut relier ces limite avec l'outil Multi-section surface. Il faut juste faire attention à l'orientation des contours et la position des closing points. Si les countour sont propres, on peut tenter le  mode Vertice pour l'onglet Coupling. Si ce n'est pas le cas, il faudra peut être créer les lignes entre les coins des contours comme guide.
4. On peu ensuite assembler les surfaces avec un Join
5. et les remplir avec l'outil Close surface.
 
Selon la qualité de tes surfaces, on peut peut être accélerer un peu en utilant la fonction multi-section Solid du workbench Part Design à l'étape 3. On arrive directement au solide.
 
PS. désolé, mon CATIA est en anglais et je n'ai pas les noms francais des différents outil en mémoire.


 
C'est la méthode que j'utilise actuellement mais vu la complexité de la coque (et le fait que les contours « intérieurs » et « extérieurs » n'aient pas le même nombre de vertices) je suis obligé de me farcir toutes les lignes guides et ça devient très fastidieux. Je cherchais un moyen d'automatiser / optimiser tout ça :(

n°1166756
clem200
Posté le 29-04-2014 à 10:41:20  profilanswer
 

ptittom a écrit :


 
Bonjour,
 
Les propriétés sont des paramètres comme les autres.
On peut y aceder avec le nom du paramètre composé du nom de la Part et de "Product Description" séparés d'un "\":

Code :
  1. Dim oPart As Part
  2. Set oPart = CATIA.ActiveDocument.Part
  3. MsgBox oPart.Parameters.Item(oPart.Name & "\Product Description" ).Value


 


Ok, merci beaucoup pour votre aide. Je commence à comprendre la logique, très doucement ... :)
 
J'essaye de comprendre pourquoi mais votre code ne marche pas : "methode ITEM of object PARAMETERS failed". Etes vous sur de "\Product Description" ? Je vais creuser.

Message cité 1 fois
Message édité par clem200 le 29-04-2014 à 11:21:49
n°1166758
ptittom
Posté le 29-04-2014 à 13:29:52  profilanswer
 

clem200 a écrit :


Ok, merci beaucoup pour votre aide. Je commence à comprendre la logique, très doucement ... :)
 
J'essaye de comprendre pourquoi mais votre code ne marche pas : "methode ITEM of object PARAMETERS failed". Etes vous sur de "\Product Description" ? Je vais creuser.


 
Pour un CATIA en anglais, c'est bien le bon nom.
Pour voir le nom du paramètre dans votre système: Outil formula ( Tools > Formula ) et clic sur l'objet Part, les propriétés devraient être dans la liste des paramètres.
 
Sinon le code suivant qui liste les paramètres d'une part (Ce sera plus facile de trouver le bon paramètre avec une part vide...):

Code :
  1. Sub CATMain()
  2. Dim oPart As Part
  3. Dim I As Integer
  4. Set oPart = CATIA.ActiveDocument.Part
  5. For I = 1 To oPart.Parameters.Count
  6.     Debug.Print oPart.Parameters.Item(I).Name & " --> " & oPart.Parameters.Item(I).ValueAsString
  7. Next
  8. End Sub


Message édité par ptittom le 29-04-2014 à 13:32:57
n°1166759
ptittom
Posté le 29-04-2014 à 13:40:24  profilanswer
 

malarox a écrit :

Bonjour!
 
Je voulais savoir si il était possible d'empêcher Catia d'ouvrir un Product au démarrage et lui faire ouvrir un Part à la place (Ce qui serait beaucoup plus pratique...)? (Je suis en R22)
 
Si vous avez deux trois questions sur la conception ou le surfacique n'hésitez pas je me débrouille assez bien ^^


 
Bonjour,
 
C'est effectivement possible de ne rien ouvrir au démarrage. Il faut pour cela éditer l'environement et ajouter la variable:

CATNoStartDocument=1


Tant qu'on bidouille l'environement, on peut aussi virer le splash screen:

CNEXTSplashScreen=No


et mettre la taille par défaut de l'arbre de construction sur une valeur raisonnable:

CATGraphSize=5

n°1166761
ptittom
Posté le 29-04-2014 à 13:44:22  profilanswer
 

Drepanon a écrit :


 
C'est la méthode que j'utilise actuellement mais vu la complexité de la coque (et le fait que les contours « intérieurs » et « extérieurs » n'aient pas le même nombre de vertices) je suis obligé de me farcir toutes les lignes guides et ça devient très fastidieux. Je cherchais un moyen d'automatiser / optimiser tout ça :(


 
Désolé: pas d'autre idée pour automatiser.

n°1166763
clem200
Posté le 29-04-2014 à 15:09:41  profilanswer
 

C'est bon ça marche !  
 
En fait, c'est totalement idiot, mais j'ai mon CATIA en Français. Du coup "Product Description" devient "Description du produit".  
 
Je ne pensais pas du tout que le changement de langue se ressentait sur le VBA.  
 
Merci !

n°1166765
Pims_UTT
Génoise confiture et chocolat
Posté le 29-04-2014 à 16:20:05  profilanswer
 

La langue n'a pas d'incidence sur VBA en lui-même, mais elle en a sur le nom des éléments Catia appelés par VBA [:moundir]

n°1166767
Drepanon
The Not-So-Grim Reaper
Posté le 29-04-2014 à 16:35:57  profilanswer
 

ptittom a écrit :


 
Désolé: pas d'autre idée pour automatiser.


 
Pas grave, merci quand même !

n°1166779
clem200
Posté le 30-04-2014 à 09:41:07  profilanswer
 

Pims_UTT a écrit :

La langue n'a pas d'incidence sur VBA en lui-même, mais elle en a sur le nom des éléments Catia appelés par VBA [:moundir]


Oui, enfin on se comprend ;)  
Merci pour le "Tools > Formula", c'est super pratique.  
 
Dite je suis chiant avec mes questions basiques mais j'arrive pas à vérifier le nom de ma partie description. J'ai rajouter une bête boucle if après votre code mais je ne sais pas quoi mettre avant le =  
J'ai tout essayé mais à chaque fois il me fait une comparaison fausse.  
 

Code :
  1. Sub CATMain()
  2. Dim oPart As Part
  3. Set oPart = CATIA.ActiveDocument.Part
  4. Msgbox oPart.Parameters.Item(oPart.Name & "\Description du produit" ).Value
  5.     If oPart.Name & "\Description du produit = "NomCherché" Then
  6.    
  7.         MsgBox ("Pièce reconnue" )     
  8.     Else   
  9.         MsgBox ("Pièce inconnue !" )
  10.        
  11.     End If
  12. End Sub

Message cité 1 fois
Message édité par clem200 le 30-04-2014 à 10:47:45
n°1166780
Guss_
Posté le 30-04-2014 à 10:07:14  profilanswer
 

clem200 a écrit :


Oui, enfin on se comprend ;)  
Merci pour le "Tools > Formula", c'est super pratique.  
 
Dite je suis chiant avec mes questions basiques mais j'arrive pas à vérifier le nom de ma partie description. J'ai rajouter une bête boucle if après votre code mais je ne sais pas quoi mettre avant le =  
J'ai tout essayé mais à chaque fois il me fait une comparaison fausse.  
 

Code :
  1. Sub CATMain()
  2. Dim oPart As Part
  3. Set oPart = CATIA.ActiveDocument.Part
  4. oPart.Parameters.Item(oPart.Name & "\Description du produit" ).Value
  5.     If oPart.Name & "\Description du produit = "NomCherché" Then
  6.    
  7.         MsgBox ("Pièce reconnue" )     
  8.     Else   
  9.         MsgBox ("Pièce inconnue !" )
  10.        
  11.     End If
  12. End Sub



 
Il est étrange ton code  déjà tu as 3 guillemet sur la même ligne.
 
Ensuite je ne comprend pas les deux conditions de ton IF  

n°1166783
clem200
Posté le 30-04-2014 à 10:27:24  profilanswer
 

Si la propriété "description" de ma pièce est remplit avec le mot que je veux je considère que la pièce est reconnue, c'est à dire quelle vient de mon BE.  
Si la partie description n'est pas remplit avec ce mot la pièce n'est pas reconnue, elle est érangère au BE.  
 
Pour les 3 guillemets j'en ai conscience, la partie à gauche du = est fausse. Mais j'ai fait plein de tests et ça marche jamais. Ce que je veux mettre c'est la valeur trouvé dans la ligne du dessus.


Message édité par clem200 le 30-04-2014 à 10:28:34
n°1166785
Guss_
Posté le 30-04-2014 à 10:34:22  profilanswer
 

Code :
  1. Sub CATMain()
  2. Dim oPart As Part
  3. Set oPart = CATIA.ActiveDocument.Part
  4. set description = oPart.Parameters.Item(oPart.Name & "\Description du produit" ).Value
  5.     If description = "NomCherché" Then
  6.  
  7.         MsgBox ("Pièce reconnue" )   
  8.     Else 
  9.         MsgBox ("Pièce inconnue !" )
  10.      
  11.     End If
  12. End Sub


 
 
ça devrait ressembler à ça

n°1166786
Guss_
Posté le 30-04-2014 à 11:10:18  profilanswer
 

NeoSyriuS a écrit :

Bonjour tout le monde.
 
Je suis embarqué dans un travail qui, si je le fais à la main, sera titanesque.
je vous expose rapidement mon soucis :  
 
 
j'ai extrait une base de donnée CGR d'une application tiers plutot capricieuse, qui "casse" l'arborescence, qu'il faut donc reconstruire à la main. de plus, elle permet, pour chaque part / ensemble, de selectionner si j'ai un CGR surfacique, volumique (plus fin avec les trait de construction disponible) ou directement le catpart original.
 :bounce:  
 
comme le volumique est l'objectif, mais qu'il est trop lourd, j'ai travaillé l'arborescence en surfacique pure.
 
lorsque j'importe un noeud de l'arborescence, l'ensemble des sous noeud est importé dans "application / node", en vrac.
pire : si absent de application / node, tout les noeuds précédent sont aussi importé dans la foulée
 
j'ai donc importé par petit groupe, copié / collé ces groupe dans des nouveaux noeud organisé dans le cat product, et "caché" ensuite les fichier copié dans "application". ainsi, à l'import suivant, les cgr non caché sont necessairement les nouveaux (et seulement les nouveaux). et à la fin, un import du parent commun permet de s'assurer que rien n'a été oublié (aucun nouvel objet, donc rien de "non caché" )
 
l'idée etait bonne, puisque la copie garde le lien avec l'original ...
sauf pour le mode de changement de définition.  :cry:  
quel n'a donc pas été mon dépis de constaté, lorsque j'ai voulu passer en volumique l'ensemble, que seul les fichier caché dans "application" etait passé en volumique !
ceux trié sont en surfacique. :fou:  
 
je me retrouve donc avec plus de 10 000 CGR en double.
d'un coté, en trié mais surfacique dans une arbo que j'ai faite à la main dans le cat product
de l'autre, les MEME CGR (meme nom), mais en volumique, tous en vrac, dans le "application / node"
 
je devrais donc, théoriquement, à la main, traiter les sous ensemble un par un, lister le nom de tout les cgr, et les rechercher, pour les couper / coller, dans "application / node".
j'ai pensé a un moment faire une "box de selection". mais elle cherche les objet "au contact", donc elle selectionnera toujours un "equivalent d'objet" plus grand dans 'application/node' qu'il ne l'était à l'origine dans l'arborescence détaillé. on ne peu pas rentrer une contrainte à 0mm, malheureusement.
 
faire ce taf là à la main est impossible. :sweat:  
refaire l'import n'est plus possible non plus, je dois me "contenter" de la maquette dont je dispose.
 
j'imagine qu'il y a sans doute moyen de bidouiller une macro VBA adapté, au pire, puisque techniquement une "simple" recherche de double dans les noms, puis couper / coller suffit, mais si je connais plutot bien VBA, je ne savais meme pas (ce qui m'interresse beaucoup) qu'il y avait un VBA dans catia. mes compétences ne me suffisent donc pas à ce jour pour répondre à ce besoin.
 
que feriez vous ? moi, je sèche, mes compétences sous catia ne sont pas non plus extraordinaire.
merci pour votre aide précieuse.
 
 :jap:  
 
cordialement.


 
En VBA tu peux automatiser des tâches répétitive.
 
 
Par exemple si pour faire tes couper coller tu sais exactement comment identifier l'objet à copier et où le coller exactement, on doit pouvoir le faire.

n°1166787
clem200
Posté le 30-04-2014 à 11:12:16  profilanswer
 

Merci pour votre aide.  
Avec votre code j'ai une erreur "Run time error "13", mismetch"
 
Mais j'ai fait une connerie en écrivant mon code aussi, j'ai édité mon message, il y avait un msgbox à mettre.
 
J'essaye plein de subtilité mais le résultat de la comparaison est toujours faux ! :(

Message cité 1 fois
Message édité par clem200 le 30-04-2014 à 11:27:08
n°1166794
Guss_
Posté le 30-04-2014 à 11:44:22  profilanswer
 

clem200 a écrit :

Merci pour votre aide.  
Avec votre code j'ai une erreur "Run time error "13", mismetch"
 
Mais j'ai fait une connerie en écrivant mon code aussi, j'ai édité mon message, il y avait un msgbox à mettre.
 
J'essaye plein de subtilité mais le résultat de la comparaison est toujours faux ! :(


 
faut pas mettre le SET devant "description = ..."
c'est une variable pas un objet, ça doit être pour ça que tu as une erreur de correspondance "mismatch"
 

Code :
  1. Sub cat_main()
  2. Dim oPart As Part
  3. Dim Description As String
  4. Set oPart = CATIA.ActiveDocument.Part
  5. Description = oPart.Parameters.Item(oPart.Name & "\Description du produit" ).Value
  6. MsgBox Description   'ligne que doit t'afficher le contenu de la desciption du produit
  7.     If Description = "ton texte à recherche" Then
  8.         MsgBox ("Pièce reconnue" )
  9.     Else
  10.         MsgBox ("Pièce inconnue !" )
  11.    
  12.     End If
  13. End Sub


 

n°1166799
arno894
Posté le 30-04-2014 à 11:56:09  profilanswer
 

Merci Guss, ton aide m'a bien aidé.
Nouvelle question (plus de questions que de réponses malheureusement).  
Est-il désormais possible par macro de modifier le nom d'un groupe de contrainte?

n°1166805
NeoSyriuS
Posté le 30-04-2014 à 12:17:30  profilanswer
 

Guss
 
merci pour ta réponse. maintenant que je connais l'existance de VBA sous catia, ca parait effectivement évident qu'il y a moyen de bidouiller.
 
mais si je connais VBA, je ne connais rien a VBA appliqué à l'univers catia.
seul le nom est modifié, apparement, avec l'ajout d'un "Copy (1) of " ... et le nom et attribut d'origine.
 
comment procéder, au juste ?
 
malheureusement, pour ces étapes de reconnaissance qui sont "intellectuelle", je ne vois pas comment utiliser l'enregistreur de macro pour voir comment ca marche.

n°1166807
Guss_
Posté le 30-04-2014 à 12:54:59  profilanswer
 

arno894 a écrit :

Merci Guss, ton aide m'a bien aidé.
Nouvelle question (plus de questions que de réponses malheureusement).  
Est-il désormais possible par macro de modifier le nom d'un groupe de contrainte?


 
Dans le principe, il faudrait effectuer  
une sélection  ou alors aller cherche dans l'arborescence de l'objet produit, l'objet regroupant les contraintes
une recherche dans cette sélection des contraintes
faire une boucle pour renommer une a une les contrainte de manière automatisé (peut être en fonction d'un paramètre comme le type de contrainte)
 
Voilà pour le principe, après je n'ai jamais tenter d'accédés aux contrainte via une macro, mais je ne vois pas pourquoi ça ne serait pas possible

n°1166808
Guss_
Posté le 30-04-2014 à 13:01:35  profilanswer
 

NeoSyriuS a écrit :

Guss
 
merci pour ta réponse. maintenant que je connais l'existance de VBA sous catia, ca parait effectivement évident qu'il y a moyen de bidouiller.
 
mais si je connais VBA, je ne connais rien a VBA appliqué à l'univers catia.
seul le nom est modifié, apparement, avec l'ajout d'un "Copy (1) of " ... et le nom et attribut d'origine.
 
comment procéder, au juste ?
 
malheureusement, pour ces étapes de reconnaissance qui sont "intellectuelle", je ne vois pas comment utiliser l'enregistreur de macro pour voir comment ca marche.


 
VBA, c'est du visualbasic, après ce sont les objet qui change d'une application à l'autre
utilise l'aide et cherche aussi le fichier d'aide V5Automation.chm dans le répertoire d'installation de catia
 
 
La reconnaissance "intellectuelle", c'est suivant la forme de l'objet ou suivant le nom qu'il a déjà ?
 
En gros tu pourra automatiser assez facilement ce que tu peux définir via des comparaisons et/ou reconnaissance d'éléments (morceaux de texte, valeurs, grandeurs ...) et aussi les enchainement des fonction (genre tu copie un truc et tu sais que tu le colle toujours au même endroit, là tu peut réduire le nombre de clic en faisant uniquement une macro qui copie une séléction et automatiquement là colle un endroit spécifique, tu économises donc la recherche de la destination et le coller)
 
Pour moi, je par du principe qu'il faut réduire ne nombre de clic
 
Par exemple j'ai fais une marco qui d'un plan généré automatiquement un PDF avec le nom de fichier déjà formaté comme il faut (ça va chercher le noms de la pièce, le numéro et l'indice et le place dans le répertoire de travail du projet associé)


Message édité par Guss_ le 30-04-2014 à 13:07:06
n°1166817
NeoSyriuS
Posté le 30-04-2014 à 14:11:52  profilanswer
 

uniquement le nom. je dois chercher les doubles des noms, ceux d'origine étant seul (sous forme d'une suite de carra, une référence nomenclature, propre à mon employeur), et la copie etant affublé d'un "Copy(1) of" et la meme nomenclature.
 
à la main, l'opération consisterais :  
explorer point à point l'arborescence, et sauvegarder son "chemin" (le nom et le nombre de noeud), pour remonter au CGR, uniquement dans le product parent donné (celui ou j'ai tout trié)
copier le nom du CGR
chercher ce nom, auquel on ajoute le "copy (1) of" dans un autre product parent (le application node)
couper le CGR
creer une copie de l'arborescence sauvegardé dans un nouveau troisieme product; donc creer le chemin courant du nom recherché actuellement
y coller le CGR
 
et recommencer, jusqu'a ce que l'ensemble du product(1) soit scanné.
 
je devrais donc avoir  
le product 1, toujours existant, en surfacique
le product 2 (application node) désormais vide completement
et un nouveau product 3, copie de l'arbo du 1, avec les copie de CGR, mais en volumique.
 
sur le principe, je vois très bien comment faire des algo pour ca. je connais très bien VB, VBA, VB.net (je fais de la macro excel à la pelle. c'est vraiment surprenant que je ne me sois meme pas rendu compte de l'existance de VBA sur catia, d'ailleurs !)
mais la, je sais meme pas comment faire une recherche recurssive dans l'arbo, copier l'arbo, etc ... et c'est pas l'enregistreur de macro qui peu m'aider.
 
par contre, je pourrais l'utiliser pour savoir faire simplement une recherche (donc une fois le terme trouvé, le rechercher dans application node), couper, coller.
 
donc c'est surtout la premiere partie, de scann du product 1, que je vois pas comment attaquer.
 
cordialement.

n°1166822
Guss_
Posté le 30-04-2014 à 14:46:23  profilanswer
 

Un petit bout de code qui peut t'aider
 
Dans le produit actif il va afficher dans des message box le nom de chaque part composant le product
 

Code :
  1. Sub cat_main()
  2.     Dim DocActif As Document
  3.     Dim ProduitActif As Product
  4.     Dim ListeParts As Products
  5.     Dim Nbparts As Long
  6.     Dim A As Integer
  7.     Dim PartSelect As Product
  8.    
  9.     Set DocActif = CATIA.ActiveDocument
  10.     Set ProduitActif = DocActif.Product
  11.     Set ListeParts = ProduitActif.Products
  12.    
  13.     Nbparts = ListeParts.Count
  14.    
  15.     MsgBox Nbparts
  16.    
  17.     For A = 1 To Nbparts
  18.         Set PartSelect = ListeParts.Item(A)
  19.         MsgBox PartSelect.Name
  20.     Next
  21. End Sub


 
Alors attention dans catia on peut dire qu'il ya en quelque sorte deux arborescences parallèles  
 
Une porduct contenant arborescence produit, une autre utilisant les objet part contenant les éléments géométriques.
 
J'ai mis un certain temps a piger le truc, c'est pas évident.

n°1166832
NeoSyriuS
Posté le 30-04-2014 à 15:42:35  profilanswer
 

je vais tenter ca, alors. voila qui devrait me permettre donc d'effectuer une recherche d'un CGR parmis la liste d'un product.
 
et pour naviguer dans l'arborescence des produit, tu fais comment ?

n°1166834
ptittom
Posté le 30-04-2014 à 15:57:53  profilanswer
 

NeoSyriuS a écrit :


chercher ce nom, auquel on ajoute le "copy (1) of" dans un autre product parent (le application node)


 
Il y a une option pour que CATIA ne rajoute pas ce Copy of systématiquement... Si elle est active, ton code ne marchera pas.
(Tools > Options > Part Infrastructure > Display > Checking Operation When Renaming ).

n°1166835
arno894
Posté le 30-04-2014 à 15:58:19  profilanswer
 

Le regroupement des contraintes se fait par CATIA.Startcommand("Regrouper dans un nouveau groupe" ) ce qui déja peut surprendre
Par défaut mon groupe de contrainte est nommé Définir.1 Mais je n'ai aucune idée de comment aller chercher l'objet regroupant les contraintes pour modifier son nom. Je débute niveau macro donc je risque de t'embêter un peu.
Merci

n°1166838
Guss_
Posté le 30-04-2014 à 16:08:01  profilanswer
 

NeoSyriuS a écrit :

je vais tenter ca, alors. voila qui devrait me permettre donc d'effectuer une recherche d'un CGR parmis la liste d'un product.

 

et pour naviguer dans l'arborescence des produit, tu fais comment ?

 

Regarde la fenêtre de débuggage "Locals" par exmeple
http://hfr-rehost.dev.syn.fr/preview/self/f979ec0a7d9b8236405b8ac26ad20f4348604091.png

 

regarde comment est constitué un produit en gros chaque part est un Item contenu dans de document acit => product => products => listes des items

   
ptittom a écrit :

 

Il y a une option pour que CATIA ne rajoute pas ce Copy of systématiquement... Si elle est active, ton code ne marchera pas.
(Tools > Options > Part Infrastructure > Display > Checking Operation When Renaming ).

 


Quand il y a "Copy of" c'est que c'est le résultat d'une copie sans lien et créé une nouvelle pièce, une copie avec lien créé simplement une instance de la pièces existante

 

(on peut y accéder via le menu édition => copie spéciale ...

 
arno894 a écrit :

Le regroupement des contraintes se fait par CATIA.Startcommand("Regrouper dans un nouveau groupe" ) ce qui déja peut surprendre
Par défaut mon groupe de contrainte est nommé Définir.1 Mais je n'ai aucune idée de comment aller chercher l'objet regroupant les contraintes pour modifier son nom. Je débute niveau macro donc je risque de t'embêter un peu.
Merci

 

Cherche à avec la fonction "selection" puis "search" et cherche l'élément qui s'appelle "Définir.1" ou alors parcourt l'arborescence un peu comme j'ai montré à NeoSyriuS


Message édité par Guss_ le 30-04-2014 à 16:57:27
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  219  220  221  ..  233  234  235  236  237  238

Aller à :
Ajouter une réponse
 

Sujets relatifs
Transfert de donnees 3D texturees entre Catia et 3DSMAX6[Blender] Besoin d'aide !
De l'aide sur une Recherche..:: Topic des Publivores ::..
[Toshop] Besoin d'aide pour faire un dégradéCatia - Commande pour masquer tous les plans?!!!
Conseils / remarques sur ma maquette (site geo expert)topic unique de l' acréatique-chronique
[REGLE][FLASH]Demande de conseils 
Plus de sujets relatifs à : [Support] Catia : trucs, astuces, conseils, aide


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR