CATIA V5 | 3DEXPERIENCE
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le deal à ne pas rater :
Cdiscount : -30€ dès 300€ d’achat sur une sélection Apple
Voir le deal

Texte modifiable dans l’instance

Aller en bas

R?solu Texte modifiable dans l’instance

Message par moringaou Jeu 19 Mai 2022 - 15:25

Bonjour,

Est-ce que vous sauriez, dans le module "drafting", modifier une instance de texte de détail 2D « modifiable dans l’instance » par VBA. J’arrive à modifier les textes du détail (CompRef.Texts(x).text), qui modifiera donc tous les textes de tous les détails associé au détail original, j'arrive aussi à rendre un texte modifiable par instance (SetModifiableIn2DComponentInstances), mais je n’arrive pas à modifier le texte de l’instance unique. Crying or Very sad

Vous auriez une méthode ou une instruction VBA à me partager svp ?

moringaou
timide
timide

Messages : 6
Date d'inscription : 19/05/2022
Localisation : Vitrolles

Revenir en haut Aller en bas

R?solu Re: Texte modifiable dans l’instance

Message par moringaou Mer 25 Mai 2022 - 14:04

Bonjour,

Pour ceux que cela intéressent, j'ai trouvé ce que je cherchait :

Set drawingText1 = Component.GetModifiableObject(i)
drawingText1 .Text = "blabla"

Dans le contexte :

Code:

Private Sub RempCartouche(dDoc As DrawingDocument, dSheet As DrawingSheet, nbPl As Integer, numPl As Integer, j As Integer)
    Dim dView As DrawingView, dViewA As DrawingView, dText As DrawingText
    
    Call RempShNum(dSheet, nbPl, j)
    If numPl <> 1 Then
        Call RempScale(dSheet)
    End If
End Sub

Private Sub RempShNum(dSheet As DrawingSheet, nbPl As Integer, j As Integer)
    Dim comp As DrawingComponent
    Dim dText As DrawingText
    Dim i As Integer
    
    For Each comp In dSheet.Views.Item(2).Components
        For i = 1 To comp.GetModifiableObjectsCount
            Set dText = comp.GetModifiableObject(i)
            If dText.Name = "SHEET" Then
                dText.Text = j & "/" & nbPl
                Exit For
            End If
        Next i
    Next comp
End Sub

Private Sub RempScale(dSheet As DrawingSheet)
    Dim comp As DrawingComponent
    Dim dText As DrawingText
    Dim i As Integer
    Dim echN() As Integer
    
    For Each comp In dSheet.Views.Item(2).Components
        For i = 1 To comp.GetModifiableObjectsCount
            Set dText = comp.GetModifiableObject(i)
            If dText.Name = "SCALE" Then
                dText.Text = "1:1"
                Exit For
            End If
        Next i
    Next comp
End Sub

moringaou
timide
timide

Messages : 6
Date d'inscription : 19/05/2022
Localisation : Vitrolles

Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum