Communauté
Inventor - Français
Bienvenue sur les forums Inventor d’Autodesk. Partagez vos connaissances, posez des questions, collaborez sur des idées, et explorez les sujets Inventor populaires.
annuler
Affichage des résultats de 
Afficher  uniquement  | Rechercher plutôt 
Vouliez-vous dire : 

Inventor : i-Logic _ Insertion de tableau general

7 RÉPONSES 7
RÉSOLU
Répondre
Message 1 sur 8
denis.semeniuc
198 Visites, 7 Réponses

Inventor : i-Logic _ Insertion de tableau general

Bonjour,

 

Je besoin d'insérer une tableau sur la page selon la style , dans la quelle les collones sont deja programe.

Quand je fait a la main, je clic sur General Tab et clic sur endroit a inérer sur la page. Aucun d'autre changement. 

 

Voici l'image:

denissemeniuc_0-1707794753306.png

en utilisant "custumTab.Add()" il y a trop des variable quele je deja programe dans la style de tableau.

 

Merci.


Le titre du sujet a été modifié par un modérateur pour faciliter la recherche. Titre original:
i-Logic _ Incersion de tableau general

7 RÉPONSES 7
Message 2 sur 8
ThomasB44
en réponse à: denis.semeniuc

Salut @denis.semeniuc 

Tu trouveras des explications dans l'aide de l'API :

ThomasB44_0-1707833130089.png

 

En particulier la rubrique "Working with custom tables" qui est bien documenté :

ThomasB44_1-1707833291198.png

 

Avec un exemple de programme, en VBA :

Public Sub CreateCustomTable()
    ' Set a reference to the drawing document.
    ' This assumes a drawing document is active.
    Dim oDrawDoc As DrawingDocument
    Set oDrawDoc = ThisApplication.ActiveDocument
    
    ' Set a reference to the active sheet.
    Dim oSheet As Sheet
    Set oSheet = oDrawDoc.ActiveSheet
    
    ' Set the column titles
    Dim oTitles(1 To 3) As String
    oTitles(1) = "Part Number"
    oTitles(2) = "Quantity"
    oTitles(3) = "Material"
    
    ' Set the contents of the custom table (contents are set row-wise)
    Dim oContents(1 To 9) As String
    oContents(1) = "1"
    oContents(2) = "1"
    oContents(3) = "Brass"
    oContents(4) = "2"
    oContents(5) = "2"
    oContents(6) = "Aluminium"
    oContents(7) = "3"
    oContents(8) = "1"
    oContents(9) = "Steel"
    
    ' Set the column widths (defaults to the column title width if not specified)
    Dim oColumnWidths(1 To 3) As Double
    oColumnWidths(1) = 2.5
    oColumnWidths(2) = 2.5
    oColumnWidths(3) = 4
      
    ' Create the custom table
    Dim oCustomTable As CustomTable
    Set oCustomTable = oSheet.CustomTables.Add("My Table", ThisApplication.TransientGeometry.CreatePoint2d(15, 15), _
                                        3, 3, oTitles, oContents, oColumnWidths)
                                        
    ' Change the 3rd column to be left justified.
    oCustomTable.Columns.Item(3).ValueHorizontalJustification = kAlignTextLeft
    
    ' Create a table format object
    Dim oFormat As TableFormat
    Set oFormat = oSheet.CustomTables.CreateTableFormat
    
    ' Set inside line color to red.
    oFormat.InsideLineColor = ThisApplication.TransientObjects.CreateColor(255, 0, 0)
    
    ' Set outside line weight.
    oFormat.OutsideLineWeight = 0.1
    
    ' Modify the table formats
    oCustomTable.OverrideFormat = oFormat
End Sub

 


Thomas
Mechanical Designer / Inventor Professionnal 2023
Inventor Professional EESignature

Message 3 sur 8
patrick.emin
en réponse à: denis.semeniuc

Bonjour @denis.semeniuc 

Si une des réponses résout votre problème ou vous a permis de mieux le comprendre, voulez vous avoir l'amabilité de cliquer sur le bouton  APPROUVER LA SOLUTION  en bas de la réponse qui apporte une solution?
Cela facilitera la navigation de nos utilisateurs qui pourront directement atteindre la solution

Sachez qui si vous avez marqué une réponse comme solution par erreur, vous pouvez annuler ce marquage en cliquant sur le menu du fil (les trois points verticaux) et choisir "pas la solution"
Merci de ne pas accepter comme solution le message que vous êtes en train de lire.


Patrick Emin animateur de la communauté francophone


Vous avez trouvé un message utile? Alors donnez un "J'aime" à ce message!
Votre question a eu une réponse satisfaisante? Voulez vous avoir l'amabilité de cliquer sur le bouton
 APPROUVER LA SOLUTION  en bas de la réponse qui apporte une solution?
Signez notre Livre d'Or
Message 4 sur 8
denis.semeniuc
en réponse à: ThomasB44

Bonjour,

Merci pour le code.

 

Oui, je vu ca. Par contre je ne pas besoin spécifié les colonnes. Je veux sélectionner option tableau général et indiqué la qte des lignes et insérer sous cartouche.

A cause que l'étape est répétitive je veux automatisée ca.

 

Merci.

Message 5 sur 8
ThomasB44
en réponse à: denis.semeniuc

L'exemple fournit dans l'aide est explicite et indique toutes les options.

Mais tu n'as pas besoin d'utiliser tout le code, des arguments sont optionnels comme indiqué dans l'aide.

ThomasB44_0-1708002343589.png

 

Le minimum requis pour créer l'objet c'est :

oCustomTable = oSheet.CustomTables.Add(oTitle, oPoint, oColumns, oRows, oTitles)

Thomas
Mechanical Designer / Inventor Professionnal 2023
Inventor Professional EESignature

Message 6 sur 8
denis.semeniuc
en réponse à: ThomasB44

c'est la dernier valeur que m'enquete oTitles. il y a une possibilité de indique rien, qu'il prend valeur par default?
Message 7 sur 8
ThomasB44
en réponse à: denis.semeniuc

Apparemment oui, c'est possible.

Il faut que le tableau de String "oTitles" soit de même taille que le nombre de colonnes.

Donc :

Dim oTitles(oColumns - 1) As String

Ensuite tu peux assigner une valeur vide ("") à chaque item de "oTitles"

Elle sera automatiquement remplacée par colonne 1, colonne 2...etc

 

Mais en fait ça revient exactement au même que saisir les valeurs dans le code :

	For i = 1 To oColumns
		oTitles(i - 1) = "Column " & i
	Next

 


Thomas
Mechanical Designer / Inventor Professionnal 2023
Inventor Professional EESignature

Message 8 sur 8
denis.semeniuc
en réponse à: ThomasB44

MERCI, JE VAIS ESSAYER.

Vous n'avez pas trouvé ce que vous recherchiez ? Posez une question à la communauté ou partagez vos connaissances.

Publier dans les forums