RemyT Posté(e) le 3 octobre 2016 Posté(e) le 3 octobre 2016 Bonjour à tous, Je me suis lancé dans la programmation VBA de Catia en raison d'une reconstitution de maillage. :huh: En donnée d'entrée j'ai 2 fichiers excel : -L'un contenant des points avec leur coordonnées et leur identifiant : Point A : 0.0 0.0 0.0Point B : 1.0 2.0 3.0etc -L'autre contenant les barres avec leur identifiant et les points reliés : Barre1 : PointA PointBBarre2 : PointA PointC Avec l'aide de macro excel, j'ai traité le fichier excel pour pouvoir utilisé le fichier : GSD_PointSplineLoftFromExcel (voir lien) https://d2t1xqejof9utc.cloudfront.net/files/23155/Excel_to_CATIA.pdf?1371318453 J'ai donc une part avec dans l'arborescense : Point1point2 Spline1Point3Point4Spline2etc J'ai donc créer un programme pour : -créer sur chacun des points un plan orthogonal à la spline -créer un cercle sur les points dans un des plans de rayon radius-créer une extrusion de ce cercle jusqu'au prochain plan Le BLABLA d'entrée Language="VBSCRIPT" Sub CATMain() Set partDocument1 = CATIA.ActiveDocument Set part1 = partDocument1.Part Set hybridShapeFactory1 = part1.HybridShapeFactory Set hybridBodies1 = part1.HybridBodies Set hybridBody1 = hybridBodies1.Item("GeometryFromExcel") Set hybridShapes1 = hybridBody1.HybridShapes Déclaration des variables Radius =20 NombreBarre = 3 Créations des plans sur chacun des points I=1 For N= 3 to 3*NombreBarre Step 3 Set hybridShapeSpline1 = hybridShapes1.Item(N) Set Spline1 = part1.CreateReferenceFromObject(hybridShapeSpline1) Set hybridShapePointCoord1 = hybridShapes1.Item(I) Set Point1 = part1.CreateReferenceFromObject(hybridShapePointCoord1) Set hybridShapePlaneNormal1 = hybridShapeFactory1.AddNewPlaneNormal(Spline1, Point1) hybridBody1.AppendHybridShape hybridShapePlaneNormal1 part1.InWorkObject = hybridShapePlaneNormal1 Set hybridShapePointCoord2 = hybridShapes1.Item(I+1) Set Point2 = part1.CreateReferenceFromObject(hybridShapePointCoord2) Set hybridShapePlaneNormal2 = hybridShapeFactory1.AddNewPlaneNormal(Spline1, Point2) hybridBody1.AppendHybridShape hybridShapePlaneNormal2 part1.InWorkObject = hybridShapePlaneNormal2 I=I+3 Next part1.Update Création de l'esquisse du cercle For K=NombreBarre*3+1 to NombreBarre*5 Step 2 Set sketches1 = hybridBody1.HybridSketches Set hybridShapes1 = hybridBody1.HybridShapes Set reference1 = hybridShapes1.Item(K) Set sketch1 = sketches1.Add(reference1) part1.InWorkObject = sketch1 Set factory2D1 = sketch1.OpenEdition() Set circle2D =factory2D1.CreateClosedCircle(0,0, radius) sketch1.CloseEdition part1.InWorkObject = hybridBody1 Next part1.Update Créations des extrusions pour chacunes des esquisses P=NombreBarre*3+2 For J= 1 to NombreBarre Set bodies1 = part1.Bodies Set body1 = bodies1.Item("Corps principal") part1.InWorkObject = body1 part1.InWorkObject = body1 Set shapeFactory1 = part1.ShapeFactory Set Ref8 = part1.CreateReferenceFromName("") Set pad1 = shapeFactory1.AddNewPadFromRef(Ref8, 20.000000) Set hybridBodies1 = part1.HybridBodies Set hybridBody1 = hybridBodies1.Item("GeometryFromExcel") Set sketches2 = hybridBody1.HybridSketches Set sketch2 = sketches1.Item(J) Set reference9 = part1.CreateReferenceFromObject(sketch2) pad1.SetProfileElement reference9 Set limit1 = pad1.FirstLimit limit1.LimitMode = catUpToPlaneLimit Set hybridShapes1 = hybridBody1.HybridShapes Set hybridShapePlaneNormal1 = hybridShapes1.Item(P) Set reference10 = part1.CreateReferenceFromObject(hybridShapePlaneNormal1) limit1.LimitingElement = reference10 P=P+2 Next part1.Update End Sub j'ai globalement construit mon raisonnement sur la place des items dans l'arborescence. -Spline-Point-Point etc-Planetc-Esquisseetc Voila en gros mon programme, il fonctionne !!! je voulais donc avoir des suggestions sur l'amélioration de mon programme, rapidité etcEt également comment intégrer une toolbox pour entrer en lancement du programme les paramètres nombre de barre / radius (rayon du cylindre d'extrusion) Merci d'avance :)
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant