Aller au contenu

Selection de References


Messages recommandés

Posté(e)

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...

Posté(e)

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

Posté(e)

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 HybridShapePointCenter

Set PointCenter = HybridShapeFactory.AddNewPointCenter(PadCercle)

 

mais ca ne marche pas...

 

quelque un??

Posté(e)

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 spline

Set mySpline1= myHybFactory.AddNewSpline

'remplissage pts

Call mySpline1.AddPoint(ref1)

Call mySpline1.AddPoint(ref2)

Call mySpline1.AddPoint(ref3)

' affichage (sinon rien à l'écran)

Call myHybridBody.AppendHybridShape(mySpline1)

Posté(e)

ç'a marché, en fait j'ai fait

 

Sub CATMAin()

 

Set oDoc = CATIA.ActiveDocument

Set oPart = oDoc.Part

Set oHSF = oPart.HybridShapeFactory

Dim InputObject(0)

InputObject(0) = "Edge"

Set oSel = CATIA.ActiveDocument.Selection

Status = oSel.SelectElement2(InputObject, "Eligir objecto para girar!", False)

oSel.EndSelectElement

Set oArista = oSel.Item(1)

Set oRef = oArista.Reference

Set oPuntoCentro = oHSF.AddNewPointCenter(oRef)

Set oHB = oPart.HybridBodies.Add()

oPuntoCentro.Compute

oHB.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

  • 1 an après...
Posté(e)

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 PartDocument

Set partDocument1 = CATIA.ActiveDocument

 

Dim part1 As Part

Set part1 = partDocument1.Part

 

Dim factory As InstanceFactory

Set factory = part1.GetCustomerFactory("InstanceFactory")

 

factory.BeginInstanceFactory "PowerCopy_Expansion", "Z:\Template.CATPart"

 

factory.BeginInstantiate

 

Set MySelection = partDocument1.Selection

MySelection.Clear

 

Dim InputObject(0)

InputObject(0) = "Point"

 

SelPoint = MySelection.SelectElement2(InputObject, "Select Start Point", False)

 

StartPointPipe = SelPoint.Items1

 

Dim Thickness As Object

Set Thickness = part1.FindObjectByName("Plan.1")

 

Dim Diameter As Object

Set Diameter = part1.FindObjectByName("Plan.2")

 

Dim OrientationShape As Object

Set OrientationShape = part1.FindObjectByName("Plane.3")

 

Dim NeutralFiber As Object

Set NeutralFiber = part1.FindObjectByName("Line.1")

 

factory.PutInputData "Plan1", Plan1

factory.PutInputData "Plan2", Plan2

factory.PutInputData "Plan3", Plan3

factory.PutInputData "Line.1", Line.1

factory.PutInputData "StartPointPipe", StartPointPipe

 

Dim Instance As ShapeInstance

Set Instance = factory.Instantiate

factory.EndInstantiate

 

factory.EndInstanceFactory

part1.Update

 

End Sub

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité