Activer des contours avec un paramètre
3 participants
Page 1 sur 1
Activer des contours avec un paramètre
Bonjour à tous,
Je cherche à savoir comment je peux (et quelle est la meilleure solution pour) activer un contour ou un autre dans une esquisse, à l'aide d'un paramètre.
Ex : J'ai un paramètre avec les choix suivants : carré, cercle, triangle...
Quand je choisis "Carré", j'extrude une forme carrée. Quand je choisis "cercle", j'extrude un tube. Soit en activant un contour dans une esquisse, soit en activant carrément une esquisse. Mais dans ce dernier cas, comment indiquer à l'extrusion qu'on extrude telle ou telle esquisse ?
Un petit coup de main ?
Merci à tous.
Je cherche à savoir comment je peux (et quelle est la meilleure solution pour) activer un contour ou un autre dans une esquisse, à l'aide d'un paramètre.
Ex : J'ai un paramètre avec les choix suivants : carré, cercle, triangle...
Quand je choisis "Carré", j'extrude une forme carrée. Quand je choisis "cercle", j'extrude un tube. Soit en activant un contour dans une esquisse, soit en activant carrément une esquisse. Mais dans ce dernier cas, comment indiquer à l'extrusion qu'on extrude telle ou telle esquisse ?
Un petit coup de main ?
Merci à tous.
BEBER1212- timide
- Messages : 8
Date d'inscription : 07/03/2011
Re: Activer des contours avec un paramètre
Avec des lois : gestion des connaissance, knowledge advisor.
Avec ça tu pourra activer ou non les esquisse que tu veut suivant le paramètre choisi.
Avec ça tu pourra activer ou non les esquisse que tu veut suivant le paramètre choisi.
flo- Fédérateur
- Messages : 455
Date d'inscription : 21/01/2011
Age : 34
Localisation : Angers
Re: Activer des contours avec un paramètre
ou avec une règle, a voir
flo- Fédérateur
- Messages : 455
Date d'inscription : 21/01/2011
Age : 34
Localisation : Angers
Re: Activer des contours avec un paramètre
la seul solution que j'ai trouvé pour le moment est de créer un paramètre chaine (permettant d'indiquer le type d'esquisse (cercle, carré ...)) puis de créer une règle. Mais pour cela, j'ai du créer une extrusion pour chaque type d'esquisse, que j'active ou non avec la règle.
Voici ce que j'ai écris dans le règle :
if `Chaîne` =="cercle"
{ `Corps principal\Extrusion.2\Activité` =true
`set de travail\Esquisse.cercle\Activité` =true
`Corps principal\Extrusion.3\Activité` =false
`set de travail\Esquisse.carre\Activité` =false
`Corps principal\Extrusion.4\Activité` =false
`set de travail\Esquisse.forme_libre\Activité` =false}
if `Chaîne` =="carré"
{ `Corps principal\Extrusion.2\Activité` =false
`set de travail\Esquisse.cercle\Activité` =false
`Corps principal\Extrusion.3\Activité` =true
`set de travail\Esquisse.carre\Activité` =true
`Corps principal\Extrusion.4\Activité` =false
`set de travail\Esquisse.forme_libre\Activité` =false}
if `Chaîne` =="forme libre"
{ `Corps principal\Extrusion.2\Activité` =false
`set de travail\Esquisse.cercle\Activité` =false
`Corps principal\Extrusion.3\Activité` =false
`set de travail\Esquisse.carre\Activité` =false
`Corps principal\Extrusion.4\Activité` =true
`set de travail\Esquisse.forme_libre\Activité` =true}
Peut être qu'avec du VBA, on peut faire qu'une seul extrusion dont l'esquisse change suivant le paramètre choisi, mais je n'est pas encore trouvé
Voici ce que j'ai écris dans le règle :
if `Chaîne` =="cercle"
{ `Corps principal\Extrusion.2\Activité` =true
`set de travail\Esquisse.cercle\Activité` =true
`Corps principal\Extrusion.3\Activité` =false
`set de travail\Esquisse.carre\Activité` =false
`Corps principal\Extrusion.4\Activité` =false
`set de travail\Esquisse.forme_libre\Activité` =false}
if `Chaîne` =="carré"
{ `Corps principal\Extrusion.2\Activité` =false
`set de travail\Esquisse.cercle\Activité` =false
`Corps principal\Extrusion.3\Activité` =true
`set de travail\Esquisse.carre\Activité` =true
`Corps principal\Extrusion.4\Activité` =false
`set de travail\Esquisse.forme_libre\Activité` =false}
if `Chaîne` =="forme libre"
{ `Corps principal\Extrusion.2\Activité` =false
`set de travail\Esquisse.cercle\Activité` =false
`Corps principal\Extrusion.3\Activité` =false
`set de travail\Esquisse.carre\Activité` =false
`Corps principal\Extrusion.4\Activité` =true
`set de travail\Esquisse.forme_libre\Activité` =true}
Peut être qu'avec du VBA, on peut faire qu'une seul extrusion dont l'esquisse change suivant le paramètre choisi, mais je n'est pas encore trouvé
flo- Fédérateur
- Messages : 455
Date d'inscription : 21/01/2011
Age : 34
Localisation : Angers
Re: Activer des contours avec un paramètre
Bonjour,
J'ai regardé hier soir, et je n'ai pas réussi a gérer facilement les éléments géométriques dans une même esquisse (cacher/afficher les droites, cercles...).
De même, pas possible d'affecter plusieurs esquisses à une seule extrusion, ce qui implique d'utiliser une méthode analogue à la tienne, à savoir plusieurs extrusions activées ou désactivées.
Si tu ne connais pas trop les lois et les règles, il est aussi possible d'utiliser les paramètres, avec notamment une table de paramétrage (assez sympa a utiliser, voir exemple) :
Forme / Extrusion_carre.Activité / Esquisse_carre.Activité / Extrusion_cercle.Activité / ...
Carre / True / True / False / ...
Cercle / False / False / True / ...
Tu peux garder tes longueurs, tes dimensions, en paramètres aussi, mais là je te conseille de les mettre ailleurs que dans un tableau pour pouvoir les piloter plus facilement. L'avantage par rapport à la technique de flo est que c'est peut-être plus facile à modifier, l'inconvénient est que ça utilise un document Excel (avec le problème de compatibilité qui peut arriver à chaque changement de version, de Catia ou de Microsoft...)
Avec le VBA ? Je ne sais pas... Pas assez d'expérience là dedans...
J'ai regardé hier soir, et je n'ai pas réussi a gérer facilement les éléments géométriques dans une même esquisse (cacher/afficher les droites, cercles...).
De même, pas possible d'affecter plusieurs esquisses à une seule extrusion, ce qui implique d'utiliser une méthode analogue à la tienne, à savoir plusieurs extrusions activées ou désactivées.
Si tu ne connais pas trop les lois et les règles, il est aussi possible d'utiliser les paramètres, avec notamment une table de paramétrage (assez sympa a utiliser, voir exemple) :
Forme / Extrusion_carre.Activité / Esquisse_carre.Activité / Extrusion_cercle.Activité / ...
Carre / True / True / False / ...
Cercle / False / False / True / ...
Tu peux garder tes longueurs, tes dimensions, en paramètres aussi, mais là je te conseille de les mettre ailleurs que dans un tableau pour pouvoir les piloter plus facilement. L'avantage par rapport à la technique de flo est que c'est peut-être plus facile à modifier, l'inconvénient est que ça utilise un document Excel (avec le problème de compatibilité qui peut arriver à chaque changement de version, de Catia ou de Microsoft...)
Avec le VBA ? Je ne sais pas... Pas assez d'expérience là dedans...
Threedots- Fédérateur
- Messages : 617
Date d'inscription : 16/09/2010
Age : 36
Localisation : Toulouse
Re: Activer des contours avec un paramètre
Merci pour vos réponses, je vais tester tout ça.
Pour la table de paramétrage, j'y avais pensé, mais je ne suis pas sûr que tous les utilisateurs arrivent à l'utiliser.
Je pensais bien utiliser un paramètre chaîne, mais je ne savais pas comment l'utiliser après. Je vais donc essayer une règle, avec plusieurs extrusions.
Je vous tiens au courant. Merci.
Pour la table de paramétrage, j'y avais pensé, mais je ne suis pas sûr que tous les utilisateurs arrivent à l'utiliser.
Je pensais bien utiliser un paramètre chaîne, mais je ne savais pas comment l'utiliser après. Je vais donc essayer une règle, avec plusieurs extrusions.
Je vous tiens au courant. Merci.
BEBER1212- timide
- Messages : 8
Date d'inscription : 07/03/2011
Re: Activer des contours avec un paramètre
Et voila, les tests sont faits.
J'ai essayé les lois et les règles. Avec les lois, j'avais un message d'erreur qui m'indique qu'on peut évaluer un paramètre formel et un seul (?).
Avec les règles, cela fonctionne effectivement avec plusieurs extrusions, mais je voudrais n'en avoir qu'une car je dois l'assembler après.
Je continue donc de chercher. J'aimerais éviter le VBA...
Merci.
J'ai essayé les lois et les règles. Avec les lois, j'avais un message d'erreur qui m'indique qu'on peut évaluer un paramètre formel et un seul (?).
Avec les règles, cela fonctionne effectivement avec plusieurs extrusions, mais je voudrais n'en avoir qu'une car je dois l'assembler après.
Je continue donc de chercher. J'aimerais éviter le VBA...
Merci.
BEBER1212- timide
- Messages : 8
Date d'inscription : 07/03/2011
Re: Activer des contours avec un paramètre
je me doutais bien que tu voulais faire d'autre opération dessus, sinon juste une bibliothèque aurait suffit, et j'avoue que les règles ne sont pas très pratique pour ça, car il faudrait mettre toutes les opérations qui suivent dans la règle. Et pour les lois, en effet, ça ne marche pas pour faire ça.
flo- Fédérateur
- Messages : 455
Date d'inscription : 21/01/2011
Age : 34
Localisation : Angers
Re: Activer des contours avec un paramètre
si ça peut t'aider avec VBA, au cas ou tu ne trouverai pas autrement
- Code:
Sub CATMain()
Dim partDocument1 As PartDocument
Set partDocument1 = CATIA.ActiveDocument
Dim part1 As Part
Set part1 = partDocument1.Part
Dim bodies1 As Bodies
Set bodies1 = part1.Bodies
Dim body1 As Body
Set body1 = bodies1.Item("Corps principal")
part1.InWorkObject = body1
Dim shapeFactory1 As ShapeFactory
Set shapeFactory1 = part1.ShapeFactory
Dim reference1 As Reference
Set reference1 = part1.CreateReferenceFromName("")
Dim pad1 As Pad
Set pad1 = shapeFactory1.AddNewPadFromRef(reference1, 20#)
Dim hybridBodies1 As HybridBodies
Set hybridBodies1 = part1.HybridBodies
Dim hybridBody1 As HybridBody
Set hybridBody1 = hybridBodies1.Item("set pour esquisse")
Dim sketches1 As Sketches
Set sketches1 = hybridBody1.HybridSketches
Dim sketch1 As Sketch '(élément déjà écris mais à déplacer (voir plus bas))
Dim parameters1 As Parameters '(élément à ajouter à une macro enregistrant une extrusion)
Set parameters1 = part1.Parameters '(élément à ajouter)
Dim strParam1 As StrParam '(élément à ajouter)
Set strParam1 = parameters1.Item("Chaine") '(élément à ajouter)
If strParam1.Value = "cercle" Then '(élément à ajouter (condition permettant de choisir l'esquisse))
'Dim sketch1 As Sketch (élement déplacer plus haut)
Set sketch1 = sketches1.Item("Esquisse.cercle") '(élément à ajouter)
End If 'élément à ajouter
If strParam1.Value = "carré" Then '(élément à ajouter (seconde condition pour la seconde esquisse))
Set sketch1 = sketches1.Item("Esquisse.carre") '(élément à ajouter)
End If '(élément à ajouter)
Dim reference2 As Reference
Set reference2 = part1.CreateReferenceFromObject(sketch1)
pad1.SetProfileElement reference2
Dim relations1 As Relations
Set relations1 = part1.Relations
Dim limit1 As Limit
Set limit1 = pad1.FirstLimit
Dim length1 As Length
Set length1 = limit1.Dimension
Dim formula1 As Formula
Set formula1 = relations1.CreateFormula("Formule.1", "", length1, "`Longueur extrusion` ")
formula1.Rename "Formule.1"
part1.Update
End Sub
flo- Fédérateur
- Messages : 455
Date d'inscription : 21/01/2011
Age : 34
Localisation : Angers
Re: Activer des contours avec un paramètre
J'ai aussi fait qqch en vba.
ça me crée bien un balayage (parce qu'en fait je veux faire un balayage avec dépouille mais ça change pas grand chose), avec l'esquisse sélectionnée. par contre si je change le paramètre pour sélectionner une autre esquisse, le balayage ne se modifie pas...et c'est ce que je voudrais.
Je ne sais pas non plus comment "insérer" la macro dans mon part pour qu'elle se lance toute seule, à l'ouverture du part par exemple.
ça me crée bien un balayage (parce qu'en fait je veux faire un balayage avec dépouille mais ça change pas grand chose), avec l'esquisse sélectionnée. par contre si je change le paramètre pour sélectionner une autre esquisse, le balayage ne se modifie pas...et c'est ce que je voudrais.
Je ne sais pas non plus comment "insérer" la macro dans mon part pour qu'elle se lance toute seule, à l'ouverture du part par exemple.
BEBER1212- timide
- Messages : 8
Date d'inscription : 07/03/2011
Re: Activer des contours avec un paramètre
tu veux dire que l'esquisse ne se change pas si tu ne relance pas la macro, ou tu a essayer de relancer la macro avec un autre paramètre d'esquisse?
flo- Fédérateur
- Messages : 455
Date d'inscription : 21/01/2011
Age : 34
Localisation : Angers
Re: Activer des contours avec un paramètre
Effectivement, je n'ai pas essayé de relancer la macro. Du coup ta remarque me fait comprendre comment insérer la macro. Il faut qu'elle se relance à chaque changement de paramètre.
J'ai pas fait beaucoup de VBA, il faut que ça revienne, et de loin...
J'essaierai ça demain.
Merci.
J'ai pas fait beaucoup de VBA, il faut que ça revienne, et de loin...
J'essaierai ça demain.
Merci.
BEBER1212- timide
- Messages : 8
Date d'inscription : 07/03/2011
Re: Activer des contours avec un paramètre
oui, mais la je vois pas comment faire ça
flo- Fédérateur
- Messages : 455
Date d'inscription : 21/01/2011
Age : 34
Localisation : Angers
Re: Activer des contours avec un paramètre
Effectivement, moi non plus je ne sais pas comment faire.
Je l'ai déjà fait en VB, mais pas avec Catia.
Tant pis, j'ai réussi à créer une esquisse que je peux piloter avec des paramètres pour me faire les formes souhaitées. (Un cercle, c'est jamais qu'un carré avec un rayon à chaque sommet ).
Du coup avec une table de paramétrage, je peux piloter ces paramètres, et donc n'avoir qu'une seule esquisse. Ouf !
Par contre, est ce qu'il est possible de choisir le paramètre "Contour" (que l'utilisateur va choisir) sans passer par la table de parametrage, juste avec une boite déroulant.
Je pense que c'est possible, il me semble avoir déjà fait ça à l'école, mais je ne m'en souviens plus.
Merci de votre aide.
Je l'ai déjà fait en VB, mais pas avec Catia.
Tant pis, j'ai réussi à créer une esquisse que je peux piloter avec des paramètres pour me faire les formes souhaitées. (Un cercle, c'est jamais qu'un carré avec un rayon à chaque sommet ).
Du coup avec une table de paramétrage, je peux piloter ces paramètres, et donc n'avoir qu'une seule esquisse. Ouf !
Par contre, est ce qu'il est possible de choisir le paramètre "Contour" (que l'utilisateur va choisir) sans passer par la table de parametrage, juste avec une boite déroulant.
Je pense que c'est possible, il me semble avoir déjà fait ça à l'école, mais je ne m'en souviens plus.
Merci de votre aide.
BEBER1212- timide
- Messages : 8
Date d'inscription : 07/03/2011
Re: Activer des contours avec un paramètre
oui, c'est très simple, dans le paramètre chaine, il faut faire double clique puis clique droit sur la zone d'écriture de la valeur et valeurs multiple
flo- Fédérateur
- Messages : 455
Date d'inscription : 21/01/2011
Age : 34
Localisation : Angers
Re: Activer des contours avec un paramètre
ça je sais, sauf que maintenant que j'ai une table de parametrage, ce paramètre est lié à la table.
Je peux par un clic droit "enlever l'association avec la table", et dans ce cas il revient en "valeurs multiples", mais il ne pilote pas la table.
Je voudrais qu'il la pilote, mais avec les valeurs multiples, sans devoir entrer dans la table et choisir la ligne.
Je peux par un clic droit "enlever l'association avec la table", et dans ce cas il revient en "valeurs multiples", mais il ne pilote pas la table.
Je voudrais qu'il la pilote, mais avec les valeurs multiples, sans devoir entrer dans la table et choisir la ligne.
BEBER1212- timide
- Messages : 8
Date d'inscription : 07/03/2011
Re: Activer des contours avec un paramètre
d'après ce que je viens de voir, la table de paramétrage est composé d'une feuille (fichier excel) et d'un paramètre. Je pense qu'il suffis de controler de le paramètre de la table (configuration) avec ton paramètre chaine. Pour cela, il faut créer une règle avec une condition if.
flo- Fédérateur
- Messages : 455
Date d'inscription : 21/01/2011
Age : 34
Localisation : Angers
Re: Activer des contours avec un paramètre
Comment crées-tu une règle. Je peux ajouter une formule à un paramètre, mais je n'arrive pas à y mettre "if". Je n'ai peut être pas la bonne syntaxe.
Merci.
Merci.
BEBER1212- timide
- Messages : 8
Date d'inscription : 07/03/2011
Re: Activer des contours avec un paramètre
as tu le module "gestion des connaissances" et "knowledge advisor" ?
flo- Fédérateur
- Messages : 455
Date d'inscription : 21/01/2011
Age : 34
Localisation : Angers
Sujets similaires
» Fixer les côtes avec un facteur d'agrandissement (en tant que paramètre)
» Activer un produit partageable via macro
» "Activer" les pièces dans un assemblage
» Paramètre non valué
» cartouche et paramètre
» Activer un produit partageable via macro
» "Activer" les pièces dans un assemblage
» Paramètre non valué
» cartouche et paramètre
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum