Bonjour, j ai un petit soucis sur cette macro que je n'arrive pas à faire tourner apparemment à cause de 2 erreurs de syntaxe sur les lignes en rouge.
Sinon à la base le but de cette macro est de mettre les épaisseurs en automatique dans toutes les pieces d'un product et de les enregistrer en .cgr dans un répertoire de sortie. Les valeures des épaisseurs se trouvent dans les paramètres des Part elles même (\Shared Parameters\Enuproma\Epaisseur)
Voila si vous pouviez m'apporter vos lumières, je vous remercie d'avance.
Sub CATMain()
OK = MsgBox("Realise par XXXX -- cmfv117", vbOKCancel)
CreatProductFromTextFile
End Sub
Sub CreatProductFromTextFile()
Dim Name As String
Dim Epaisseur As Double
Dim productDocument1 As Document
Set productDocument1 = CATIA.ActiveDocument
Dim product1 As Product
Set product1 = productDocument1.Product
Set product1 = product1.ReferenceProduct
Dim groups1 As CATBaseDispatch
Set groups1 = product1.GetTechnologicalObject("Groups" )
Dim group1 As Group
Set group1 = groups1.Add()
Dim products1 As Products
Set products1 = product1.Products
Dim N As Integer
N = 1
Dim product2 As Product
Set product2 = products1.Item(N)
Dim arrayOfVariantOfDouble1(0)
arrayOfVariantOfDouble1(0) = 0#
product1.ApplyWorkMode DESIGN_MODE
While product2.Name <> ""
Dim dMOThicknesses1 As CATBaseDispatch
Set dMOThicknesses1 = product1.GetTechnologicalObject("Thicknesses" )
Dim documents1 As Documents
Set documents1 = CATIA.Documents
Dim partDocument1 As Document
Set partDocument1 = documents1.Item(product2.PartNumber&".CATPart" )
Dim part1 As Part
Set part1 = partDocument1.Part
Dim parameters1 As Parameters
Set parameters1 = part1.Parameters
Dim length1 As Parameter
Set length1 = parameters1.Item(product2.PartNumber&"\Shared Parameters\Enuproma\Epaisseur" )
Set groups1 = product1.GetTechnologicalObject("Groups" )
Set group1 = groups1.Add()
group1.AddExplicit product2
Set dMOThicknesses1 = product1.GetTechnologicalObject("Thicknesses" )
Dim document1 As Document
Set document1 = dMOThicknesses1.ComputeThickness(group1, (length1.Value), 0#, 0, arrayOfVariantOfDouble1)
Dim optimizerWorkBench1 As Workbench
Set optimizerWorkBench1 = productDocument1.GetWorkbench("OptimizerWorkBench" )
Name = (product2.PartNumber) & "__EP" & (length1.Value) & "_.cgr"
document1.ExportData "\Documents and Settings\cmfv158\Bureau\VBA\" & ((product2.PartNumber) & "__EP" & (length1.Value)), "cgr"
N = N + 1
Set product2 = products1.Item(N)
Wend
End Sub
---------------
La bêtise humaine donne un aperçu de ce qu'est l'infinie ...