jarabito Posté(e) le 11 juin 2007 Posté(e) le 11 juin 2007 Bonjour a tous, savez vous s'il y a moyen de selectioner des références dans une part pour creer une géométrie?? plus ou moins comme on le fait pour inserer un powercopy...Je sais qu'on peut selectiones une face ou un corps complet, mais si j'ai besoin d'une face, un axe et un point?? peut-on selectioner tous les 3 et apres lancer une macro?? Merci de votre aide...
marc54 Posté(e) le 11 juin 2007 Posté(e) le 11 juin 2007 Si tu souhaites une selection en interactif par l'utilisateur, tu peux utiliser la méthode SelectElement2. Cela te permettra de selectionner graphiquement un point, une surface, etc.Si c'est une selection d'après un élément connu dans ton programme, tu as des méthodes du genre CreateReferenceFromGeometry . marc Marc http://www.3dsys.fr
jarabito Posté(e) le 11 juin 2007 Auteur Posté(e) le 11 juin 2007 Salut Marc54, merci pour ta réponse, en fait c'est plutot des points et des surfaces, donc je vais essayer avec le SelectElement... @+ Luis
jarabito Posté(e) le 12 juin 2007 Auteur Posté(e) le 12 juin 2007 Reprennant la meme voie, j'ai reussi a selectioner des surfaces, des courbes, etc avec la methode SelectElement2, mais si je veux par exemple creer un point centré a partir de la selection d'un cercle, je fais comment??? J'ai essaye avec le HybridShapePointCenter mais je ne sais pas si c'est comment je l'ai ecrit ou que je me suis trompé de methode, le point est que je n'arrive pas... je recupere le cercle avec selectElement2 dans une dim PadCercle et apres j'essai: Dim PointCenter As HybridShapePointCenterSet PointCenter = HybridShapeFactory.AddNewPointCenter(PadCercle) mais ca ne marche pas... quelque un??
marc54 Posté(e) le 12 juin 2007 Posté(e) le 12 juin 2007 Avant tout, essaie déjà de créer qqc et de l'afficher. Ensuite tu pourra compliquer le truc en utilisant selectelement2.Quand tu travailles dans la hybridshapefactory, il faut absolument faire un AppendHybridShape sur les entités que tu crée. Sinon elles n'apparaissent pas. C'est peut-être ça ton problème. Voilà un exemple avec une spline : 'Création splineSet mySpline1= myHybFactory.AddNewSpline'remplissage ptsCall mySpline1.AddPoint(ref1)Call mySpline1.AddPoint(ref2)Call mySpline1.AddPoint(ref3)' affichage (sinon rien à l'écran)Call myHybridBody.AppendHybridShape(mySpline1) Marc http://www.3dsys.fr
jarabito Posté(e) le 13 juin 2007 Auteur Posté(e) le 13 juin 2007 ç'a marché, en fait j'ai fait Sub CATMAin() Set oDoc = CATIA.ActiveDocumentSet oPart = oDoc.PartSet oHSF = oPart.HybridShapeFactoryDim InputObject(0)InputObject(0) = "Edge"Set oSel = CATIA.ActiveDocument.SelectionStatus = oSel.SelectElement2(InputObject, "Eligir objecto para girar!", False)oSel.EndSelectElementSet oArista = oSel.Item(1)Set oRef = oArista.ReferenceSet oPuntoCentro = oHSF.AddNewPointCenter(oRef)Set oHB = oPart.HybridBodies.Add()oPuntoCentro.ComputeoHB.AppendHybridShape oPuntoCentro End Sub et j'ai reussi a mettre le point centre, maintenant j'essaie creer des plans et lignes a patir de ces points
Nicklaroot Posté(e) le 3 décembre 2008 Posté(e) le 3 décembre 2008 Salut, Pourrais tu me dire comment tu fais pour insérer l'élément que tu as selectionner via la commande "selectElemnté" dans la commande permettant de définir le inputs de ta powercopy.Dans mon cas, je n'arrive pas à utliliser le point que je selectionne dans le PutInputData"StartPointPipe". Merci d'avance pour ton aide, Ci-dessous mon script: Sub CATMain() Dim partDocument1 As PartDocumentSet partDocument1 = CATIA.ActiveDocument Dim part1 As PartSet part1 = partDocument1.Part Dim factory As InstanceFactorySet factory = part1.GetCustomerFactory("InstanceFactory") factory.BeginInstanceFactory "PowerCopy_Expansion", "Z:\Template.CATPart" factory.BeginInstantiate Set MySelection = partDocument1.SelectionMySelection.Clear Dim InputObject(0)InputObject(0) = "Point" SelPoint = MySelection.SelectElement2(InputObject, "Select Start Point", False) StartPointPipe = SelPoint.Items1 Dim Thickness As ObjectSet Thickness = part1.FindObjectByName("Plan.1") Dim Diameter As ObjectSet Diameter = part1.FindObjectByName("Plan.2") Dim OrientationShape As ObjectSet OrientationShape = part1.FindObjectByName("Plane.3") Dim NeutralFiber As ObjectSet NeutralFiber = part1.FindObjectByName("Line.1") factory.PutInputData "Plan1", Plan1factory.PutInputData "Plan2", Plan2factory.PutInputData "Plan3", Plan3factory.PutInputData "Line.1", Line.1factory.PutInputData "StartPointPipe", StartPointPipe Dim Instance As ShapeInstanceSet Instance = factory.Instantiatefactory.EndInstantiate factory.EndInstanceFactorypart1.Update End Sub
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