Insertion tableau excel sur un plan Catia V5
5 participants
Page 1 sur 1
Insertion tableau excel sur un plan Catia V5
Bonjour à tous,
Une petite question pour les accrocs à la CAO. Nous souhaitons intégrer un fichier excel de 100 lignes dans CATIA V5. A l'aide d'un simple copier/coller, seules 72 lignes sont prises en compte....
(L'intégration via fichier .csv ne semble pas envisageable car il s'agit de traiter une base de données dont la source est de l'alphabet cyrillique.... :/)
Si quelqu'un à une éventuelle idée sur une option de CV5....
Merci.
Une petite question pour les accrocs à la CAO. Nous souhaitons intégrer un fichier excel de 100 lignes dans CATIA V5. A l'aide d'un simple copier/coller, seules 72 lignes sont prises en compte....
(L'intégration via fichier .csv ne semble pas envisageable car il s'agit de traiter une base de données dont la source est de l'alphabet cyrillique.... :/)
Si quelqu'un à une éventuelle idée sur une option de CV5....
Merci.
mohshadow- timide
- Messages : 14
Date d'inscription : 05/04/2011
Re: Insertion tableau excel sur un plan Catia V5
Bonjour,
Effectivement, CATIA tronque le tableau. Chez moi il coupait à 60 lignes ...
J'ai l'impression que ce sont les dimensions de l'objet copié qui pose problème. Ainsi en diminuant les hauteurs de lignes dans le tableau excel, j'arrive à copier près de 80 lignes. Mais c'est moche, et cela ne règle pas le problème si on a plusieurs centaines de lignes à copier.
A priori il n'y a pas d'option pour ça. Par macro ce devrait être faisable.
Effectivement, CATIA tronque le tableau. Chez moi il coupait à 60 lignes ...
J'ai l'impression que ce sont les dimensions de l'objet copié qui pose problème. Ainsi en diminuant les hauteurs de lignes dans le tableau excel, j'arrive à copier près de 80 lignes. Mais c'est moche, et cela ne règle pas le problème si on a plusieurs centaines de lignes à copier.
A priori il n'y a pas d'option pour ça. Par macro ce devrait être faisable.
Re: Insertion tableau excel sur un plan Catia V5
Merci Marc de ta réponse, je confirme que les 100 lignes passent bien si je baisse la hauteur de ligne (j'aurai appris quelque chose ^^). J'ai fait parvenir cette réponse, mais le sujet à finalement été traité via une macro VB.
mohshadow- timide
- Messages : 14
Date d'inscription : 05/04/2011
Re: Insertion tableau excel sur un plan Catia V5
je suis en train de faire un programme de transfert CATIA<>EXCEL pour ce genre de choses, je le mettrai sur mon site bientôt.
Re: Insertion tableau excel sur un plan Catia V5
J'ai fais une marco permettant de gérer un tableau catia et de l'éditer en tableau excel.
Dans mon cas c'est exclusivement pour de la nomenclature, je vais vous mettre le code de ma macro (je pense que pour l'utilisation avec une source de données externe il faut faire quelques modifs car là c'est totalement autonome)
Dans mon cas c'est exclusivement pour de la nomenclature, je vais vous mettre le code de ma macro (je pense que pour l'utilisation avec une source de données externe il faut faire quelques modifs car là c'est totalement autonome)
Guss_- Admin
- Messages : 530
Date d'inscription : 08/01/2010
Re: Insertion tableau excel sur un plan Catia V5
- Code:
Sub CATMain()
'--- initialisation objet nomenclateur
Dim drawingDocument1 As DrawingDocument
Dim drawingSheets1 As DrawingSheets
Dim drawingSheet1 As DrawingSheet
Dim drawingViews1 As DrawingViews
Dim drawingView1 As DrawingView
Dim drawingTables1 As DrawingTables
Dim nomenclature As DrawingTable
Set drawingDocument1 = CATIA.ActiveDocument
Set drawingSheets1 = drawingDocument1.Sheets
Set drawingSheet1 = drawingSheets1.Item("Calque.1")
Set drawingViews1 = drawingSheet1.Views
Set drawingView1 = drawingViews1.Item("Main View")
Set drawingTables1 = drawingView1.Tables
'---- test si un taleau existe si non on le créé
On Error Resume Next
Set nomenclature = drawingTables1.Item(1)
If Err.Number <> 0 Then
Set nomenclature = drawingTables1.Add(0, 0, 1, 5, 5, 200 / 5)
With nomenclature
.SetCellString 1, 1, "N°Plan"
.SetCellString 1, 2, "Ind."
.SetCellString 1, 3, "Nb"
.SetCellString 1, 4, "Désignation"
.SetCellString 1, 5, "Observations"
.SetColumnSize 1, 28
.SetColumnSize 2, 10
.SetColumnSize 3, 10
.SetColumnSize 4, 90
.SetColumnSize 5, 62
For C = 1 To 5
With .GetCellObject(1, C)
.SetFontSize 0, 0, 2.3
End With
Next
End With
End If
'---- initialisation variables de traiement
Dim colonnes As Long
Dim lignes As Long
colonnes = nomenclature.NumberOfColumns
lignes = nomenclature.NumberOfRows
'---- initialisation excel
Dim Excel As Object
On Error Resume Next
Set Excel = GetObject(, "Excel.Application")
If Err.Number <> 0 Then
Set Excel = CreateObject("Excel.Application")
Excel.Visible = True
End If
On Error GoTo 0
Excel.Visible = True
Excel.Workbooks.Add
Set wbks = Excel.ActiveWorkbook
Set wbk = wbks.Sheets(1)
'------- passage catia -> excel
For l = 1 To lignes
For C = 1 To colonnes
wbk.Cells(l, C) = nomenclature.GetCellString(l, C)
wbk.Cells(l, C).borders.LineStyle = 1
wbk.Cells(l, C).borders.Weight = 2
Next
Next
'------ mis en page excel
wbk.Columns(1).ColumnWidth = 14.29
wbk.Columns(2).ColumnWidth = 2.57
wbk.Columns(3).ColumnWidth = 4.43
wbk.Columns(4).ColumnWidth = 44.71
wbk.Columns(5).ColumnWidth = 28.71
'---- initialisation bouton de mise à jour excel
Dim Obj As Object
Dim Code As String
'---- create button
Set Obj = wbk.OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
Link:=False, DisplayAsIcon:=False, Left:=550, Top:=0, Width:=100, Height:=35)
Obj.Name = "Bouton_MAJ"
'---- buttonn text
wbk.Bouton_MAJ.Caption = "Mise à jour de la nomenclature"
wbk.Bouton_MAJ.WordWrap = True
wbk.Bouton_MAJ.TakeFocusOnClick = False
'---- macro text
Code = Code & "Private Sub Bouton_MAJ_Click()" & vbCrLf
Code = Code & " " & vbCrLf
Code = Code & "'---- initialisation catia" & vbCrLf
Code = Code & " Dim Catia As Object" & vbCrLf
Code = Code & " On Error Resume Next" & vbCrLf
Code = Code & " Set Catia = GetObject(, ""CATIA.Application"")" & vbCrLf
Code = Code & " If Err.Number <> 0 Then" & vbCrLf
Code = Code & " MsgBox (""pas de session catia trouvée"")" & vbCrLf
Code = Code & " Else" & vbCrLf
Code = Code & " On Error GoTo 0" & vbCrLf
Code = Code & " Set drawingDocument1 = Catia.ActiveDocument" & vbCrLf
Code = Code & " Set drawingSheets1 = drawingDocument1.Sheets" & vbCrLf
Code = Code & " Set drawingSheet1 = drawingSheets1.Item(""Calque.1"")" & vbCrLf
Code = Code & " Set drawingViews1 = drawingSheet1.Views" & vbCrLf
Code = Code & " Set drawingView1 = drawingViews1.Item(""Main View"")" & vbCrLf
Code = Code & " Set drawingTables1 = drawingView1.Tables" & vbCrLf
Code = Code & " Set nomenclature = drawingTables1.Item(1)" & vbCrLf
Code = Code & "'---- determine nombre de ligne de la nomenclature" & vbCrLf
Code = Code & " Dim l, lignes As Long" & vbCrLf
Code = Code & " l = 1" & vbCrLf
Code = Code & " While Cells(l, 1) <> ""N°Plan""" & vbCrLf
Code = Code & " l = l + 1" & vbCrLf
Code = Code & " if l>150 then" & vbCrLf
Code = Code & " MsgBox (""case 'N°Plan' non trouvée"")" & vbCrLf
Code = Code & " Exit Sub" & vbCrLf
Code = Code & " end if" & vbCrLf
Code = Code & " Wend" & vbCrLf
Code = Code & "'---- lit taille de la nomenclature existante" & vbCrLf
Code = Code & " lignes = nomenclature.NumberOfRows" & vbCrLf
Code = Code & "'---- redimentionna la nomenclature Catia" & vbCrLf
Code = Code & " If lignes < l Then" & vbCrLf
Code = Code & " lignes = l - lignes" & vbCrLf
Code = Code & " For t = 1 To lignes" & vbCrLf
Code = Code & " nomenclature.AddRow 0" & vbCrLf
Code = Code & " nomenclature.Y = nomenclature.Y + 5" & vbCrLf
Code = Code & " Next" & vbCrLf
Code = Code & " Else" & vbCrLf
Code = Code & " lignes = lignes - l" & vbCrLf
Code = Code & " For t = 1 To lignes" & vbCrLf
Code = Code & " nomenclature.RemoveRow 0" & vbCrLf
Code = Code & " nomenclature.Y = nomenclature.Y - 5" & vbCrLf
Code = Code & " Next" & vbCrLf
Code = Code & " End If" & vbCrLf
Code = Code & "'---- passage excel -> Catia" & vbCrLf
Code = Code & " For ligne = 1 To l" & vbCrLf
Code = Code & " For colonne = 1 To 5" & vbCrLf
Code = Code & " nomenclature.SetCellString ligne, colonne, Cells(ligne, colonne)" & vbCrLf
Code = Code & " Next" & vbCrLf
Code = Code & " Next" & vbCrLf
Code = Code & " Dim sFilePath As String" & vbCrLf
Code = Code & " Dim sFileName As String" & vbCrLf
Code = Code & " Dim sModule As String" & vbCrLf
Code = Code & " Dim sProcedure As String" & vbCrLf
Code = Code & " Dim sFilePathAndName As String" & vbCrLf
Code = Code & " Dim CatSysServ As Variant" & vbCrLf
Code = Code & " Dim Params() As Variant" & vbCrLf
Code = Code & " Dim vRetVal As Variant" & vbCrLf
Code = Code & " Dim catScriptLibraryType As Integer" & vbCrLf
Code = Code & "'---- Everything here is Case-Sensitive" & vbCrLf
Code = Code & " sFilePath = ""G:\BUREAU_ETUDES\Catia\Macro\test""" & vbCrLf
Code = Code & " sFileName = ""test.catvba""" & vbCrLf
Code = Code & " catScriptLibraryType = 2" & vbCrLf
Code = Code & " sModule = ""nomenclature""" & vbCrLf
Code = Code & " sProcedure = ""mise_a_jour_table"" 'CatMain is only allowable Choice" & vbCrLf
Code = Code & "'---- Concate File Path and Name" & vbCrLf
Code = Code & " sFilePathAndName = sFilePath & ""\"" & sFileName" & vbCrLf
Code = Code & " Set CatSysServ = CATIA.SystemService" & vbCrLf
Code = Code & " vRetVal = CatSysServ.ExecuteScript(sFilePathAndName, catScriptLibraryType, sModule, sProcedure, Params)" & vbCrLf
Code = Code & "'---- vRetVal only gets a value *if* the called macro *is* as Function," & vbCrLf
Code = Code & "'---- otherwise it's 'Empty'." & vbCrLf
Code = Code & " thisworkbook.Close SaveChanges:=False" & vbCrLf
Code = Code & " End If" & vbCrLf
Code = Code & "End Sub" & vbCrLf
'---- add macro at the end of the sheet module
With wbks.VBProject.VBComponents(wbk.Name).CodeModule
.insertlines .CountOfLines + 1, Code
End With
nomenclature.ComputeMode = CatTableComputeOFF
End Sub
Sub mise_a_jour_table()
'--- initialisation objet nomenclateur
Dim drawingDocument1 As DrawingDocument
Dim drawingSheets1 As DrawingSheets
Dim drawingSheet1 As DrawingSheet
Dim drawingViews1 As DrawingViews
Dim drawingView1 As DrawingView
Dim drawingTables1 As DrawingTables
Dim nomenclature As DrawingTable
Set drawingDocument1 = CATIA.ActiveDocument
Set drawingSheets1 = drawingDocument1.Sheets
Set drawingSheet1 = drawingSheets1.Item("Calque.1")
Set drawingViews1 = drawingSheet1.Views
Set drawingView1 = drawingViews1.Item("Main View")
Set drawingTables1 = drawingView1.Tables
Set nomenclature = drawingTables1.Item(1)
nomenclature.ComputeMode = CatTableComputeOFF
Dim l, r As Integer
l = nomenclature.NumberOfRows
For r = 1 To l
'--- mise en page du tableau catia
nomenclature.SetCellAlignment r, 1, CatTableMiddleCenter
nomenclature.SetCellAlignment r, 2, CatTableMiddleCenter
nomenclature.SetCellAlignment r, 3, CatTableMiddleCenter
nomenclature.SetCellAlignment r, 4, CatTableMiddleLeft
nomenclature.SetCellAlignment r, 5, CatTableMiddleLeft
Next
nomenclature.ComputeMode = CatTableComputeON
End Sub
J'énonce le principe pour que vous ne soyez par perdu
Dans un drawing
- Si aucun tableau CATIA n'existe, un tableau est créé, sinon on utilise celui existant
- on lance EXCEL s'il n'est pas déjà lancé
- on créé un nouveau document EXCEL
- on copie le tableau dans le nouveau document Excel
- on créé un bouton et une macro excel permettant :
- de copier le contenu du document EXCEL vers le tableau CATIA
- mettre à jour le tableau excel
- on fermer le document EXCEL
Pour plus d'infos me demander.
Guss_- Admin
- Messages : 530
Date d'inscription : 08/01/2010
Re: Insertion tableau excel sur un plan Catia V5
Hello,
je n'ai pas essayé la macro, mais je me demandais s'il était possible d'écrire directement des valeurs dans un tableau catia par macro (au lieu de passer par un excel).
merci
je n'ai pas essayé la macro, mais je me demandais s'il était possible d'écrire directement des valeurs dans un tableau catia par macro (au lieu de passer par un excel).
merci
bamboou9- actif
- Messages : 31
Date d'inscription : 28/03/2014
Localisation : reims
Re: Insertion tableau excel sur un plan Catia V5
hello,
lorsque on modifier la nomenclature sur catia, le tab ecel sera modifier automatiquement?
lorsque on modifier la nomenclature sur catia, le tab ecel sera modifier automatiquement?
men ay- timide
- Messages : 1
Date d'inscription : 18/04/2015
Localisation : j
Sujets similaires
» Passer d'excel à un tableau CATIA
» Macro pilote tableau catia via excel
» Dernière ligne "non-nulle" d'un tableau excel à partir d'une macro CATIA
» Insertion dans un catalogue de plusieurs catalogues de visserrie pilotés par un fichier excel
» Mettre Excel au premier plan via macro
» Macro pilote tableau catia via excel
» Dernière ligne "non-nulle" d'un tableau excel à partir d'une macro CATIA
» Insertion dans un catalogue de plusieurs catalogues de visserrie pilotés par un fichier excel
» Mettre Excel au premier plan via macro
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum