Importer propriétés aux parts d'un assemblage à partir d'un fichier excel BOMs
3 participants
Page 1 sur 1
Importer propriétés aux parts d'un assemblage à partir d'un fichier excel BOMs
Bonjour à tous,
Je me permets de créer un sujet qui semble en lien avec le sujet : https://catiav5.forumactif.org/t1407-macro-pour-ajout-suppression-propriete
J'ai besoin de créer un petit script Catia permettant de mettre à jour les propriétés des part d'un assemblage Catia, à partir d'un gros document excel qui est en fait le BOM. Je souhaite donc mettre à jour ces propriétés automatiquement et ne pas devoir ouvrir une a une les propriétés de toutes les pièces..! L'idée est d'identifier la pièce grâce à son nom CATIA et de faire le lien avec la ligne qui correspond dans Excel, puis finalement de mettre à jour les propriétés lorsque cette identification est effectuée.
J'ai essayé d'utiliser le code du sujet ci-dessus mais sans résultat..
Merci d'avance pour votre aide!
Kévin
Je me permets de créer un sujet qui semble en lien avec le sujet : https://catiav5.forumactif.org/t1407-macro-pour-ajout-suppression-propriete
J'ai besoin de créer un petit script Catia permettant de mettre à jour les propriétés des part d'un assemblage Catia, à partir d'un gros document excel qui est en fait le BOM. Je souhaite donc mettre à jour ces propriétés automatiquement et ne pas devoir ouvrir une a une les propriétés de toutes les pièces..! L'idée est d'identifier la pièce grâce à son nom CATIA et de faire le lien avec la ligne qui correspond dans Excel, puis finalement de mettre à jour les propriétés lorsque cette identification est effectuée.
J'ai essayé d'utiliser le code du sujet ci-dessus mais sans résultat..
Merci d'avance pour votre aide!
Kévin
kevinlm72- timide
- Messages : 5
Date d'inscription : 10/05/2017
Localisation : Oxford
Re: Importer propriétés aux parts d'un assemblage à partir d'un fichier excel BOMs
J'ai trouvé une vidéo qui correspond exactement à ce que je recherche (de Excel vers CATIA), mais il n'y a malheureusement pas d'indication sur le script..
youtube.com/watch?v=IvG4U_6AcNg
youtube.com/watch?v=IvG4U_6AcNg
kevinlm72- timide
- Messages : 5
Date d'inscription : 10/05/2017
Localisation : Oxford
Re: Importer propriétés aux parts d'un assemblage à partir d'un fichier excel BOMs
Bonjour,
Je me permets de faire une petite relance, je n'ai toujours pas regle mon probleme, je ne demande pas le code mais simplement quelques conseils ... Merci
Je me permets de faire une petite relance, je n'ai toujours pas regle mon probleme, je ne demande pas le code mais simplement quelques conseils ... Merci
kevinlm72- timide
- Messages : 5
Date d'inscription : 10/05/2017
Localisation : Oxford
Re: Importer propriétés aux parts d'un assemblage à partir d'un fichier excel BOMs
Une petite réponse rapide, j’ai fait quelques macros de CATIA vers EXCEL, en reprenant ces macros tu pourras faire le chemin inverse, j’ai une autre macro qui n’est pas encore en ligne pour renommer un assemblage et toute les pièces de cet assemblage en partant d’un fichier EXCEL, je te donnerais le lien dès que je l’aurais re-tester.
Pour les macros : http://cao-3d-pro.com/catia-vba/
Si tu ne t’en sors pas, j’essaierais de t’aider.
Pour les macros : http://cao-3d-pro.com/catia-vba/
Si tu ne t’en sors pas, j’essaierais de t’aider.
cad00- actif
- Messages : 33
Date d'inscription : 17/03/2015
Localisation : PACA
Re: Importer propriétés aux parts d'un assemblage à partir d'un fichier excel BOMs
Merci pour cette reponse! Je vais essayer avec avec ton lien. Je n'y crois pas beaucoup sachant que j'ai deja pas mal essaye avec ce que je trouvais sur internet mais tes macros se rapprochent peut etre plus de mon cas.
Merci !
Merci !
kevinlm72- timide
- Messages : 5
Date d'inscription : 10/05/2017
Localisation : Oxford
Re: Importer propriétés aux parts d'un assemblage à partir d'un fichier excel BOMs
Je n'ai pas de solution à ton problème, mais d'autre pourront probablement d'aider, il suffit d'attendre un peu .
d.vincent567- actif
- Messages : 84
Date d'inscription : 05/11/2016
Localisation : Brest
Re: Importer propriétés aux parts d'un assemblage à partir d'un fichier excel BOMs
Ci-dessous le script pour importer des paramètres depuis un fichier EXCEL, pour les explications et modifications à tes besoins c'est ici : http://cao-3d-pro.com/catia-vbs-parametres-de-excel-vers-parts
Le lien te permettra également de charger la macro.
Comme le dit si bien d.vincent567 "il suffit d'attendre un peu", Il y a beaucoup de monde prêt à aider sur ce FORUM, mais il faut laisser le temps pour que les personnes répondent, d’autant que ce que tu veux faire est assez long à traiter, cela demande pour une personne comme moi qui ne suis pas un professionnel de la programmation (et je pense que c’est le cas de beaucoup de personne sur ce forum) quelques heures de travail.
C’est sur les forums comme celui-ci que j’ai appris et que je continu à apprendre, mais il faut également y mettre du sien et de ne pas s’attendre à recevoir une réponse toute faite, la plupart d’entre nous développons des macros dans le but de pouvoir travailler le plus efficacement possiblement, mais nous le faisons selon nos besoins ce qui demande parfois du temps pour les adapter pour une autre personne.
'--------------- MACRO -----------------------
'--------- Extrait Macro Paramètres ----------
'----- JP 2017 -- http://cao-3d-pro.com/------
'------------------------------------------------
Language="VBSCRIPT"
Sub CATMain()
Dim ODocument 'As Document
Dim NbLign 'As Integer
Dim numplan 'As String
Dim design 'As String
Dim fichier 'As String
Dim RefPart 'As String
Dim FichierPath 'As String
Dim LigneExcel 'As Integer
'
Dim OProduct 'As Product
Dim OParameters 'As Parameters
'
Dim NouveauDocCatia 'As Documents
Set NouveauDocCatia = CATIA.Documents
'
Dim ODocuments 'As Documents
Set ODocuments = CATIA.Documents
Dim OPartDocument 'As PartDocument
Dim OProductDocument 'As ProductDocument
'
Dim OstrParam 'As StrParam
Dim PartValue 'As Variant
Dim NbPartValue 'As Integer
Dim NameParam 'As String
'
Dim Bfichier 'As Boolean
Dim Bnumplan 'As Boolean
Dim Bdesign 'As Boolean
'
LigneExcel = 1
'
Set objExcel = CreateObject("Excel.Application")
Dim objSheet
'
FichierPath =objExcel.GetOpenFilename ("Fichiers Excel (*.xls*),*.xls*")
objExcel.Workbooks.open(FichierPath) 'bon
objExcel.Visible = True
Set objSheet = objExcel.ActiveWorkbook.Worksheets(1)
NbLign = objExcel.Range("A1:X1").CurrentRegion.Rows.Count
For i = 1 To NbLign
LigneExcel = i + 1
fichier = objSheet.Cells(LigneExcel, 1)
numplan = objSheet.Cells(LigneExcel, 2)
design = objSheet.Cells(LigneExcel, 3)
For Each ODocument In ODocuments
Bfichier = False
Bnumplan = False
Bdesign = False
If (InStr(1, ODocument.Name, "CATProduct") > 0) Then
If ODocument.Name = fichier Then
End If
End If
If (InStr(1, ODocument.Name, "CATPart") > 0) Then
If ODocument.Name = fichier Then
Set OPartDocument = NouveauDocCatia.Item(ODocument.Name)
RefPart = OPartDocument.Product.PartNumber
Set OProduct = OPartDocument.GetItem(RefPart)
Set OParameters = OProduct.UserRefProperties
'
For Each OstrParam In OParameters
PartValue = Split(OstrParam.Name, "\")
NbPartValue = 0
'
For Each Part In PartValue
NbPartValue = NbPartValue + 1
Next
NameParam = PartValue(NbPartValue - 1)
'
If NameParam = "fichier" Then
Bfichier = True
If OstrParam.Value = fichier Then
Else
OstrParam.Value = fichier
End If
End If
'
If NameParam = "num_plan" Then
Bnumplan = True
If OstrParam.Value = numplan Then
Else
OstrParam.Value = numplan
End If
End If
'
If NameParam = "design" Then
Bdesign = True
If OstrParam.Value = design Then
Else
OstrParam.Value = design
End If
End If
Next
'
If Bfichier = False Then
Set OstrParam = OParameters.CreateString("fichier", (objSheet.Cells(LigneExcel, 1)))
End If
'
If Bnumplan = False Then
Set OstrParam = OParameters.CreateString("num_plan", (objSheet.Cells(LigneExcel, 2)))
End If
'
If Bdesign = False Then
Set OstrParam = OParameters.CreateString("design", (objSheet.Cells(LigneExcel, 3)))
End If
Else
End If
End If
next
next
End Sub
Le lien te permettra également de charger la macro.
Comme le dit si bien d.vincent567 "il suffit d'attendre un peu", Il y a beaucoup de monde prêt à aider sur ce FORUM, mais il faut laisser le temps pour que les personnes répondent, d’autant que ce que tu veux faire est assez long à traiter, cela demande pour une personne comme moi qui ne suis pas un professionnel de la programmation (et je pense que c’est le cas de beaucoup de personne sur ce forum) quelques heures de travail.
C’est sur les forums comme celui-ci que j’ai appris et que je continu à apprendre, mais il faut également y mettre du sien et de ne pas s’attendre à recevoir une réponse toute faite, la plupart d’entre nous développons des macros dans le but de pouvoir travailler le plus efficacement possiblement, mais nous le faisons selon nos besoins ce qui demande parfois du temps pour les adapter pour une autre personne.
'--------------- MACRO -----------------------
'--------- Extrait Macro Paramètres ----------
'----- JP 2017 -- http://cao-3d-pro.com/------
'------------------------------------------------
Language="VBSCRIPT"
Sub CATMain()
Dim ODocument 'As Document
Dim NbLign 'As Integer
Dim numplan 'As String
Dim design 'As String
Dim fichier 'As String
Dim RefPart 'As String
Dim FichierPath 'As String
Dim LigneExcel 'As Integer
'
Dim OProduct 'As Product
Dim OParameters 'As Parameters
'
Dim NouveauDocCatia 'As Documents
Set NouveauDocCatia = CATIA.Documents
'
Dim ODocuments 'As Documents
Set ODocuments = CATIA.Documents
Dim OPartDocument 'As PartDocument
Dim OProductDocument 'As ProductDocument
'
Dim OstrParam 'As StrParam
Dim PartValue 'As Variant
Dim NbPartValue 'As Integer
Dim NameParam 'As String
'
Dim Bfichier 'As Boolean
Dim Bnumplan 'As Boolean
Dim Bdesign 'As Boolean
'
LigneExcel = 1
'
Set objExcel = CreateObject("Excel.Application")
Dim objSheet
'
FichierPath =objExcel.GetOpenFilename ("Fichiers Excel (*.xls*),*.xls*")
objExcel.Workbooks.open(FichierPath) 'bon
objExcel.Visible = True
Set objSheet = objExcel.ActiveWorkbook.Worksheets(1)
NbLign = objExcel.Range("A1:X1").CurrentRegion.Rows.Count
For i = 1 To NbLign
LigneExcel = i + 1
fichier = objSheet.Cells(LigneExcel, 1)
numplan = objSheet.Cells(LigneExcel, 2)
design = objSheet.Cells(LigneExcel, 3)
For Each ODocument In ODocuments
Bfichier = False
Bnumplan = False
Bdesign = False
If (InStr(1, ODocument.Name, "CATProduct") > 0) Then
If ODocument.Name = fichier Then
End If
End If
If (InStr(1, ODocument.Name, "CATPart") > 0) Then
If ODocument.Name = fichier Then
Set OPartDocument = NouveauDocCatia.Item(ODocument.Name)
RefPart = OPartDocument.Product.PartNumber
Set OProduct = OPartDocument.GetItem(RefPart)
Set OParameters = OProduct.UserRefProperties
'
For Each OstrParam In OParameters
PartValue = Split(OstrParam.Name, "\")
NbPartValue = 0
'
For Each Part In PartValue
NbPartValue = NbPartValue + 1
Next
NameParam = PartValue(NbPartValue - 1)
'
If NameParam = "fichier" Then
Bfichier = True
If OstrParam.Value = fichier Then
Else
OstrParam.Value = fichier
End If
End If
'
If NameParam = "num_plan" Then
Bnumplan = True
If OstrParam.Value = numplan Then
Else
OstrParam.Value = numplan
End If
End If
'
If NameParam = "design" Then
Bdesign = True
If OstrParam.Value = design Then
Else
OstrParam.Value = design
End If
End If
Next
'
If Bfichier = False Then
Set OstrParam = OParameters.CreateString("fichier", (objSheet.Cells(LigneExcel, 1)))
End If
'
If Bnumplan = False Then
Set OstrParam = OParameters.CreateString("num_plan", (objSheet.Cells(LigneExcel, 2)))
End If
'
If Bdesign = False Then
Set OstrParam = OParameters.CreateString("design", (objSheet.Cells(LigneExcel, 3)))
End If
Else
End If
End If
next
next
End Sub
cad00- actif
- Messages : 33
Date d'inscription : 17/03/2015
Localisation : PACA
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|