modification type et epaisseur trait
5 participants
Page 1 sur 1
modification type et epaisseur trait
Salut à vous
je suis en train de finalisé ma macro me permettant de creer mon cadre, mon cartouche dans ma mise en plans
ainsi que le remplissage de mon cartouche automatiquement
je voudrais que mon cartouche soit fait de ligne de différentes épaisseur et de type différents
d’où ma question ! comment on fait ?
quelqu'un aurait-il des lignes de commande pour faire cette manip et si oui, ou les mettre dans le script
Merci d'avance
je suis en train de finalisé ma macro me permettant de creer mon cadre, mon cartouche dans ma mise en plans
ainsi que le remplissage de mon cartouche automatiquement
je voudrais que mon cartouche soit fait de ligne de différentes épaisseur et de type différents
d’où ma question ! comment on fait ?
quelqu'un aurait-il des lignes de commande pour faire cette manip et si oui, ou les mettre dans le script
Merci d'avance
psycko- timide
- Messages : 5
Date d'inscription : 18/10/2013
Localisation : ile de france
Re: modification type et epaisseur trait
Bonjour,
Il faut passer par une sélection des lignes à modifier dans le CATDrawing.
Voici un exemple de code :
La seule solution plus propre que j'ai trouvé est l'utilisation d'un Cartouche stocké dans une vue de détail que j'insère et rempli en automatique dans le CATDrawing en cours via une macro.
Bon courage.
Mr.J
Il faut passer par une sélection des lignes à modifier dans le CATDrawing.
Voici un exemple de code :
- Code:
Sub CATMain()
'Récupère l'objet sélection de CATIA et le vide
Dim MySelection As Selection
Set MySelection = CATIA.ActiveDocument.Selection
MySelection.Clear
'Récupère le calque de fonds pour la première feuille
Dim BackView As DrawingView
Set BackView = CATIA.ActiveDocument.Sheets.Item(1).Views.Item(2)
'Récupère la collection d'objets géométriques contenues dans la Background view
Dim GeomElements
Set GeomElements = BackView.GeometricElements
'Sélectionne les lignes à modifier
MySelection.Add GeomElements.GetItem("Droite.3")
MySelection.Add GeomElements.GetItem("Droite.2")
'Récupère l'objet visproperties
Dim VisProp As VisPropertySet
Set VisProp = MySelection.VisProperties
'Sette le type de ligne (définie selon les standards utilisé pour le CATDrawing)
VisProp.SetRealLineType 4, 1
'Sette l'épaisseur de ligne (définie selon les standards utilisé pour le CATDrawing)
VisProp.SetRealWidth 4, 1
End Sub
La seule solution plus propre que j'ai trouvé est l'utilisation d'un Cartouche stocké dans une vue de détail que j'insère et rempli en automatique dans le CATDrawing en cours via une macro.
Bon courage.
Mr.J
Mr.J- timide
- Messages : 14
Date d'inscription : 10/10/2013
Localisation : Toulouse
psycko- timide
- Messages : 5
Date d'inscription : 18/10/2013
Localisation : ile de france
Re: modification type et epaisseur trait
Je déterre un peut, mais il y a un problème sur la sélection des lignes :
MySelection.Add GeomElements.GetItem("Droite.3")
MySelection.Add GeomElements.GetItem("Droite.2")
Catia renvoi une erreur :
Source : CATIAGeometricElements
Description : La méthode GetItem a échoué
Quelqu'un aurai une idée ?
MySelection.Add GeomElements.GetItem("Droite.3")
MySelection.Add GeomElements.GetItem("Droite.2")
Catia renvoi une erreur :
Source : CATIAGeometricElements
Description : La méthode GetItem a échoué
Quelqu'un aurai une idée ?
Dupeyroux- timide
- Messages : 7
Date d'inscription : 20/06/2014
Localisation : Toulouse
Re: modification type et epaisseur trait
Tu écris en VBscript ou VBA ?
Il faut surement que tu écrives
MySelection.Add GeomElements.Item("Droite.3")
Il faut surement que tu écrives
MySelection.Add GeomElements.Item("Droite.3")
Guss_- Admin
- Messages : 530
Date d'inscription : 08/01/2010
Re: modification type et epaisseur trait
Je pense que ton problème peut avoir deux raisons :
1. Ton CATIA n'est pas en français, et les lignes que crées CATIA sont donc nommées "Line.1", "Line.2", ... Pour le voir, sélectionnes une ligne et click droit > Propriétés, tu trouveras son nom quelque part.
2. Le calque du fonds de CATIA ne contient aucun élément (ou aucun nommé "Droite.2" du moins)
Tu peux passer par la méthode .Item, mais à ce moment il faut entrer un entier (integer) qui corresponds à la xième ligne créée dans cette vue.
ex :
'Récupère la première ligne créée dans le fonds de calque :
MySelection.Add GeomElements.Item(1)
1. Ton CATIA n'est pas en français, et les lignes que crées CATIA sont donc nommées "Line.1", "Line.2", ... Pour le voir, sélectionnes une ligne et click droit > Propriétés, tu trouveras son nom quelque part.
2. Le calque du fonds de CATIA ne contient aucun élément (ou aucun nommé "Droite.2" du moins)
Tu peux passer par la méthode .Item, mais à ce moment il faut entrer un entier (integer) qui corresponds à la xième ligne créée dans cette vue.
ex :
'Récupère la première ligne créée dans le fonds de calque :
MySelection.Add GeomElements.Item(1)
Mr.J- timide
- Messages : 14
Date d'inscription : 10/10/2013
Localisation : Toulouse
Re: modification type et epaisseur trait
Bonjour
pour faire suite à ma demande voici un petit code pour avoir des ligne d'un certain style et avec une epaisseur
Par ailleurs je remercie les personnes qui ont tentées de resoudre mon problème
Cordialement
ces lignes de code permettent de créer la ligne,
ensuite pour la créer il faut définir en utilisant le code suivant ( création d'un code pour un cartouche)
"call CAT_Trace_trait_fin" appel le code "Trait fin" et les 2 chiffre en fin de ligne correspondent au type de ligne et à l’épaisseur de la ligne (voir code ci dessus)
pour plus d'info
contactez moi
pour faire suite à ma demande voici un petit code pour avoir des ligne d'un certain style et avec une epaisseur
Par ailleurs je remercie les personnes qui ont tentées de resoudre mon problème
Cordialement
- Code:
Sub CAT_Trace_trait_pointillé(X1, Y1, x2, y2, nom, dot, wid) ' sub qui trace un trait pointillé et le nomme dans le Drawing
' ' dot = pointillé, 0 plein, 6 petits points
' ' wid = epaisseur de la ligne
Set ligne = Fact.CreateLine(X1, Y1, x2, y2)
ligne.Name = nom
CATIA.ActiveDocument.Selection.Add ligne
Dim visProperties1 As VisPropertySet
Set visProperties1 = CATIA.ActiveDocument.Selection.VisProperties
visProperties1.SetRealLineType dot, 0
visProperties1.SetRealWidth wid, 0
CATIA.ActiveDocument.Selection.Clear
'
End Sub
Sub CAT_Trace_trait_Fin(X1, Y1, x2, y2, nom, dot, wid) ' sub qui trace un trait pointillé et le nomme dans le Drawing
' ' dot = pointillé, 0 plein, 6 petits points
' ' wid = epaisseur de la ligne
Set ligne = Fact.CreateLine(X1, Y1, x2, y2)
ligne.Name = nom
CATIA.ActiveDocument.Selection.Add ligne
Dim visProperties1 As VisPropertySet
Set visProperties1 = CATIA.ActiveDocument.Selection.VisProperties
visProperties1.SetRealLineType dot, 0
visProperties1.SetRealWidth wid, 0
CATIA.ActiveDocument.Selection.Clear
'
End Sub
Sub CAT_Trace_trait_Point(X1, Y1, x2, y2, nom, dot, wid) ' sub qui trace un trait pointillé et le nomme dans le Drawing
' ' dot = pointillé, 0 plein, 6 petits points
' ' wid = epaisseur de la ligne
Set ligne = Fact.CreateLine(X1, Y1, x2, y2)
ligne.Name = nom
CATIA.ActiveDocument.Selection.Add ligne
Dim visProperties1 As VisPropertySet
Set visProperties1 = CATIA.ActiveDocument.Selection.VisProperties
visProperties1.SetRealLineType dot, 0
visProperties1.SetRealWidth wid, 0
CATIA.ActiveDocument.Selection.Clear
'
End Sub
Sub CAT_Trace_trait_moyen(X1, Y1, x2, y2, nom, dot, wid) ' sub qui trace un trait pointillé et le nomme dans le Drawing
' ' dot = pointillé, 0 plein, 6 petits points
' ' wid = epaisseur de la ligne
Set ligne = Fact.CreateLine(X1, Y1, x2, y2)
ligne.Name = nom
CATIA.ActiveDocument.Selection.Add ligne
Dim visProperties1 As VisPropertySet
Set visProperties1 = CATIA.ActiveDocument.Selection.VisProperties
visProperties1.SetRealLineType dot, 0
visProperties1.SetRealWidth wid, 0
CATIA.ActiveDocument.Selection.Clear
'
End Sub
Sub CAT_Trace_trait_normal(X1, Y1, x2, y2, nom, dot, wid) ' sub qui trace un trait pointillé et le nomme dans le Drawing
' ' dot = pointillé, 0 plein, 6 petits points
' ' wid = epaisseur de la ligne
Set ligne = Fact.CreateLine(X1, Y1, x2, y2)
ligne.Name = nom
CATIA.ActiveDocument.Selection.Add ligne
Dim visProperties1 As VisPropertySet
Set visProperties1 = CATIA.ActiveDocument.Selection.VisProperties
visProperties1.SetRealLineType dot, 0
visProperties1.SetRealWidth wid, 0
CATIA.ActiveDocument.Selection.Clear
'
End Sub
ces lignes de code permettent de créer la ligne,
ensuite pour la créer il faut définir en utilisant le code suivant ( création d'un code pour un cartouche)
- Code:
Sub CAT_trait_cartouche() 'créer les traits du cartouche
' toutes les lignes horizontales
Call CAT_Trace_trait(largeur - marge, marge + h1, largeur - marge - v12, marge + h1, "horizontal1_date")
Call CAT_Trace_trait(largeur - marge, marge + h2, largeur - marge - v12, marge + h2, "horizontal2_nom de la piece")
Call CAT_Trace_trait(largeur - marge, marge + h3, largeur - marge - v12, marge + h3, "horizontal3_masse")
Call CAT_Trace_trait_moyen(largeur - marge, marge + h4, largeur - marge - v12, marge + h4, "horizontal4_cadre haut", 1, 3)
Call CAT_Trace_trait_moyen(largeur - marge, marge + h5, largeur - marge - v12, marge + h5, "horizontal5_cadre 2 bas", 1, 3)
Call CAT_Trace_trait_moyen(largeur - marge, marge + h6, largeur - marge - v12, marge + h6, "horizontal6_indice", 1, 2)
Call CAT_Trace_trait_Fin(largeur - marge, marge + h7, largeur - marge - v12, marge + h7, "horizontal7_modif1", 1, 1)
Call CAT_Trace_trait_Fin(largeur - marge, marge + h8, largeur - marge - v12, marge + h8, "horizontal8_modif2", 1, 1)
Call CAT_Trace_trait_Fin(largeur - marge, marge + h9, largeur - marge - v12, marge + h9, "horizontal9_modif3", 1, 1)
Call CAT_Trace_trait_Fin(largeur - marge, marge + h10, largeur - marge - v12, marge + h10, "horizontal10_modif4", 1, 1)
Call CAT_Trace_trait(largeur - marge - v8, marge + h11, largeur - marge - v12, marge + h11, "horizontal11_dessine par")
Call CAT_Trace_trait(largeur - marge - v8, marge + h12, largeur - marge - v12, marge + h12, "horizontal12_traitement")
Call CAT_Trace_trait_Point(largeur - marge - v14, marge + h13, largeur - marge - v15, marge + h13, "horizontal13_point", 6, 1)
Call CAT_Trace_trait_Point(largeur - marge - v14, marge + h14, largeur - marge - v15, marge + h14, "horizontal14_point", 6, 1)
Call CAT_Trace_trait_Point(largeur - marge - v14, marge + h15, largeur - marge - v16, marge + h15, "horizontal15_point", 6, 1)
Call CAT_Trace_trait(largeur - marge, marge + h16, largeur - marge - v8, marge + h16, "horizontal16_ID smarteam")
Call CAT_Trace_trait_Point(largeur - marge - v14, marge + h17, largeur - marge - v15, marge + h17, "horizontal17_point", 6, 1)
Call CAT_Trace_trait_Point(largeur - marge - v14, marge + h18, largeur - marge - v15, marge + h18, "horizontal18_point", 6, 1)
Call CAT_Trace_trait_Point(largeur - marge - v14, marge + h19, largeur - marge - v15, marge + h19, "horizontal19_point", 6, 1)
Call CAT_Trace_trait_Point(largeur - marge - v14, marge + h20, largeur - marge - v16, marge + h20, "horizontal20_point", 6, 1)
Call CAT_Trace_trait_Point(largeur - marge - v17, marge + h21, largeur - marge - v15, marge + h21, "horizontal21_point3", 6, 1)
Call CAT_Trace_trait_Fin(largeur - marge - v19, marge + h22, largeur - marge - v20, marge + h22, "horizontal22_casser angles vifs", 1, 1)
Call CAT_Trace_trait_Point(largeur - marge - v17, marge + h23, largeur - marge - v15, marge + h23, "horizontal23_point", 6, 1)
Call CAT_Trace_trait(largeur - marge, marge + h24, largeur - marge - v8, marge + h24, "horizontal24_projet")
Call CAT_Trace_trait_Point(largeur - marge - v17, marge + h25, largeur - marge - v15, marge + h25, "horizontal25_point", 6, 1)
Call CAT_Trace_trait_Point(largeur - marge - v17, marge + h26, largeur - marge - v18, marge + h26, "horizontal26_point", 6, 1)
' toutes les lignes verticales
Call CAT_Trace_trait(largeur - marge - v1, marge, largeur - marge - v1, marge + h1, "vertical1_indice")
Call CAT_Trace_trait(largeur - marge - v2, marge + h5, largeur - marge - v2, marge + 102, "vertical2_fait par")
Call CAT_Trace_trait(largeur - marge - v3, marge + h16, largeur - marge - v3, marge + h2, "vertical3_ID smarteam")
Call CAT_Trace_trait(largeur - marge - v4, marge + h24, largeur - marge - v4, marge + h4, "vertical4_projet")
Call CAT_Trace_trait(largeur - marge - v5, marge + h3, largeur - marge - v5, marge + h24, "vertical5_masse")
Call CAT_Trace_trait(largeur - marge - v6, marge + h3, largeur - marge - v6, marge + h4, "vertical6_proprietaire")
Call CAT_Trace_trait(largeur - marge - v7, marge + h24, largeur - marge - v7, marge + h4, "vertical7_ESG")
Call CAT_Trace_trait(largeur - marge - v8, marge + 0, largeur - marge - v8, marge + h4, "vertical8_Nom de la piece")
Call CAT_Trace_trait(largeur - marge - v9, marge + h5, largeur - marge - v9, marge + 102, "vertical9_creation de plan")
Call CAT_Trace_trait(largeur - marge - v10, marge + h3, largeur - marge - v10, marge + h4, "vertical10_echelle")
Call CAT_Trace_trait(largeur - marge - v11, marge + h5, largeur - marge - v11, marge + 102, "vertical11_datecereation")
Call CAT_Trace_trait_normal(largeur - marge - v12, marge, largeur - marge - v12, marge + h4, "vertical12_cartouche", 1, 3)
Call CAT_Trace_trait_moyen(largeur - marge - v12, marge + h5, largeur - marge - v12, marge + 102, "vertical13_cartouche", 1, 3)
' Encadrement numéro pièces ou assemblages
Call CAT_Trace_trait_Fin(largeur - marge - h27, marge + v21, largeur - marge - h32, marge + v21, "encadrement_horizontal", 1, 1)
Call CAT_Trace_trait_Fin(largeur - marge - h27, marge + v21, largeur - marge - h27, marge + v21 + 2, "Encadrement_vertical_1", 1, 1)
Call CAT_Trace_trait_Fin(largeur - marge - h28, marge + v21, largeur - marge - h28, marge + v21 + 2, "Encadrement_vertical_1", 1, 1)
Call CAT_Trace_trait_Fin(largeur - marge - h29, marge + v21, largeur - marge - h29, marge + v21 + 2, "Encadrement_vertical_1", 1, 1)
Call CAT_Trace_trait_Fin(largeur - marge - h30, marge + v21, largeur - marge - h30, marge + v21 + 2, "Encadrement_vertical_1", 1, 1)
Call CAT_Trace_trait_Fin(largeur - marge - h31, marge + v21, largeur - marge - h31, marge + v21 + 2, "Encadrement_vertical_1", 1, 1)
Call CAT_Trace_trait_Fin(largeur - marge - h32, marge + v21, largeur - marge - h32, marge + v21 + 2, "Encadrement_vertical_1", 1, 1)
'
End Sub 'CAT_trait_cartouche
'------------------------------------------------------------------------
Sub CAT_symbole_projection() 'créer le symbole européen de projection
'***************
'ajouter vérification du symbole
'***************
Dim gr, pr As Double 'petit et grand rayon du cone
Dim xc As Double 'position du centre du cone par rapport au trait gauche de la case
Dim xg, xd, ygb, ygh, ydb, ydh As Double 'position du cone
Dim ecart_pourcentage 'écart entre case et symbole en pourcentage de la largeur de la case
Dim ecart As Double 'écart entre case et symbole
ecart_pourcentage = 0.25
ecart = ecart_pourcentage * (v8 - v6)
gr = 0.25 * (1 - 3 * ecart_pourcentage) * (v8 - v6)
pr = 0.625 * gr
xc = 0.25 * (3 - ecart_pourcentage) * (v8 - v6)
xg = largeur - marge - v8 + 12
xd = largeur - marge - v8 + 18
ygb = marge + (h3 + h24) / 2 - pr
ygh = marge + (h3 + h24) / 2 + pr
ydb = marge + (h3 + h24) / 2 - gr
ydh = marge + (h3 + h24) / 2 + gr
Call CAT_Trace_trait_Fin(largeur - marge - v8 + 8, marge + (h3 + h24) / 2, largeur - marge - v6 - 8, marge + (h3 + h24) / 2, "trait_axe_horizontal", 1, 1)
Call CAT_Trace_trait_Fin(largeur - marge - v8 + xc, marge + h3 + 0.5, largeur - marge - v8 + xc, marge + h24 - 0.5, "trait_axe_vertical", 1, 1)
Set cercle = Fact.CreateClosedCircle(largeur - marge - v8 + xc, marge + (h3 + h24) / 2, gr)
cercle.Name = "grand_cercle"
Set cercle = Fact.CreateClosedCircle(largeur - marge - v8 + xc, marge + (h3 + h24) / 2, pr)
cercle.Name = "petit_cercle"
Call CAT_Trace_trait(xd, ydb, xd, ydh, "trait_droit")
Call CAT_Trace_trait(xg, ygb, xg, ygh, "trait_gauche")
Call CAT_Trace_trait(xg, ygb, xd, ydb, "oblique_bas")
Call CAT_Trace_trait(xg, ygh, xd, ydh, "oblique_haut")
'
"call CAT_Trace_trait_fin" appel le code "Trait fin" et les 2 chiffre en fin de ligne correspondent au type de ligne et à l’épaisseur de la ligne (voir code ci dessus)
pour plus d'info
contactez moi
psycko- timide
- Messages : 5
Date d'inscription : 18/10/2013
Localisation : ile de france
Re: modification type et epaisseur trait
Ok Merci pour les réponses, j’essaie d'adapter ces bouts de codes et vous tient informés
Dupeyroux- timide
- Messages : 7
Date d'inscription : 20/06/2014
Localisation : Toulouse
Re: modification type et epaisseur trait
Guss_ a écrit:Tu écris en VBscript ou VBA ?
Il faut surement que tu écrives
MySelection.Add GeomElements.Item("Droite.3")
Pour répondre à cette question je suis en catscript
Dupeyroux- timide
- Messages : 7
Date d'inscription : 20/06/2014
Localisation : Toulouse
Re: modification type et epaisseur trait
Bon, j'ai essayé d'intégrer ton code "psycko" mais j'ai des erreurs.
Je pense qu'il faut déclarer les variables (X1, Y1, x2, y2, nom, dot, wid) quelque part mais je sais pas où.
Je ne suis pas un grand professionnel du codage :-( désolé je le comprend quand il est écrit mais ai du mal à le créer.
Je pense qu'il faut déclarer les variables (X1, Y1, x2, y2, nom, dot, wid) quelque part mais je sais pas où.
Je ne suis pas un grand professionnel du codage :-( désolé je le comprend quand il est écrit mais ai du mal à le créer.
Dupeyroux- timide
- Messages : 7
Date d'inscription : 20/06/2014
Localisation : Toulouse
Re: modification type et epaisseur trait
oui bien sur
comme tu peut le voir dans le deuxième listing
quand je crée une ligne de cartouche je crée cet ligne :
Call CAT_Trace_trait_moyen(largeur - marge, marge + h5, largeur - marge - v12, marge + h5, "horizontal5_cadre 2 bas", 1, 3)
le texte en "bleu" va cherche les ligne de script permettant la création de la ligne, entre parenthèse (vert) donne les coordonné le la ligne
le texte en rouge permet de donné une désignation à la ligne (quand dans catia tu sélectionne la ligne , son nom apparait)
le 1 correspond à un type de ligne et le 3; à son épaisseur
en sachant que les coordonnées de chaque points de la ligne partent de l'origine de la feuille qui se trouve en bas à gauche
comme tu peut le voir dans le deuxième listing
quand je crée une ligne de cartouche je crée cet ligne :
Call CAT_Trace_trait_moyen(largeur - marge, marge + h5, largeur - marge - v12, marge + h5, "horizontal5_cadre 2 bas", 1, 3)
le texte en "bleu" va cherche les ligne de script permettant la création de la ligne, entre parenthèse (vert) donne les coordonné le la ligne
le texte en rouge permet de donné une désignation à la ligne (quand dans catia tu sélectionne la ligne , son nom apparait)
le 1 correspond à un type de ligne et le 3; à son épaisseur
en sachant que les coordonnées de chaque points de la ligne partent de l'origine de la feuille qui se trouve en bas à gauche
psycko- timide
- Messages : 5
Date d'inscription : 18/10/2013
Localisation : ile de france
Re: modification type et epaisseur trait
L'autre méthodologie que j'ai adopté est de créer un fichier draw de reference qui contient un cartouche dans une feuille de détail, dessiné et avec tous les champs remplis de la forme "text1" etc. Idem pour les cadres .Ils suffira alors par la macro d'aller lire le fichier draw d'inserrer le cartouche de la planche de détail sur dans le calque1 et d'affecter à chaque champs la valeur recuperé dans la CATPart ou le CATProduct.
Celà permet de s'affranchir de creer des lignes etc avec les macros car c'est vrai que ce n'est pas facile quand on n'est pas du metier.
Celà permet de s'affranchir de creer des lignes etc avec les macros car c'est vrai que ce n'est pas facile quand on n'est pas du metier.
toulouzing- actif
- Messages : 20
Date d'inscription : 09/04/2014
Localisation : toulouse
Re: modification type et epaisseur trait
Bon c'est bon je m'en suis sorti ;-)
Comme tu disais plus haut c'est vrais que la macro clignote de partout et est un peut longue mais elle fait son office.
J'ai un autre problème dans ma macro pour la création de mon cartouche mais je vais ouvrir un autre sujet.
En tout cas merci de votre aide.
Comme tu disais plus haut c'est vrais que la macro clignote de partout et est un peut longue mais elle fait son office.
J'ai un autre problème dans ma macro pour la création de mon cartouche mais je vais ouvrir un autre sujet.
En tout cas merci de votre aide.
Dupeyroux- timide
- Messages : 7
Date d'inscription : 20/06/2014
Localisation : Toulouse
Sujets similaires
» modification epaisseur arete d'une CATPart
» KWA: Modification d'un type de perçage
» Modification de plan en automatique
» mettre une epaisseur de tole
» Export de la liste des pièces avec longueur, largeur, épaisseur ... (nomenclature) vers Excel
» KWA: Modification d'un type de perçage
» Modification de plan en automatique
» mettre une epaisseur de tole
» Export de la liste des pièces avec longueur, largeur, épaisseur ... (nomenclature) vers Excel
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|