Aller au contenu

Vba Création d\'une polyligne avec rayon


XGX4

Messages recommandés

Bonjour,

 

Je cherche à créer une polyligne avec rayon mais sans resultat.

 

Tous mes points sont dans un set Géom et sont de different types ( isolé, de coordonnées, inersections etc. et dans un ordre non défini) nommés P1, P2...

La valeur du rayon est un parametre.

 

En lisant la doc V5automation, il y a la fonction que je recherche :

 
HybShpPolyline.GetElement 1, HybShpPolylineElement,HybShpPolylineRadius

 

mais je n'arrive pas à faire un boucle sur mon set Géom.

 

Est ce que quelqu'un peut me donner la solution?

 

merci d'avance

 

XGX4

 

 

indocti discant et ament meminisse periti

(Que les ignorants apprennent, que ceux qui savent se souviennent)

Lien vers le commentaire
Partager sur d’autres sites

  • 4 semaines après...

Salut à tous,

 

Après pal mal d'enervement et de noms d'oiseaux qui ont fusé dans tous les sens je suis arrivé à mes fins.

 

voici le code:

Prè-requis

un paramètre "RAYON_CINTRAGE" type longueur

un set Géom nommé POINTS avec des points créés avec la commande points ( pas de points déduits du style intersection, extraction...)

Un set Géom nommé "FIBRE_NEUTRE"

 
Set mon3ddoc = CATIA.ActiveDocument
Set mon3d = mon3ddoc.part

Dim hybridBodies1 As HybridBodies
Set hybridBodies1 = mon3d.HybridBodies

Dim paramdext As Parameters
Set paramdext = mon3d.Parameters

Dim paramdint As Parameters
Set paramdint = mon3d.Parameters

Dim relations1 As Relations
Set relations1 = mon3d.Relations

'Dim cons As HybridBody
'Set cons = hybridBodies1.Item("CONSTRUCTION")

Dim Fibre As HybridBody
Set Fibre = hybridBodies1.Item("FIBRE_NEUTRE")

'Dim Fibre As HybridBody
'Set Fibre = mon3d.HybridBodies.Item("FIBRE_NEUTRE")

Dim Points As HybridBody
Set Points = mon3d.HybridBodies.Item("POINTS")

Dim hybridShapeFactory1 As HybridShapeFactory
Set hybridShapeFactory1 = mon3d.HybridShapeFactory

Dim Polyline As HybridShapePolyline
Set Polyline = hybridShapeFactory1.AddNewPolyline()

Dim PointPoly As Point

For i = 1 To Points.HybridShapes.Count

Set PointPoly = Points.HybridShapes.Item(i)
Set reference2 = mon3d.CreateReferenceFromObject(PointPoly)

Polyline.InsertElement reference2, i
If i <> 1 And i <> Points.HybridShapes.Count Then
Polyline.SetRadius i, paramdext.Item("RAYON_CINTRAGE").Value
Dim Formula3 As Formula
Set Formula3 = relations1.CreateFormula("Formule Rayon." & i, "", paramdext.SubList(Polyline, False).Item(paramdext.SubList(Polyline, False).Count - 1), "RAYON_CINTRAGE")
paramdext.SubList(Polyline, False).Item(paramdext.SubList(Polyline, False).Count - 1).Rename "Rayon." & i
End If
Next

Fibre.AppendHybridShape Polyline

Polyline.Name = "Fibre Neutre"


mon3d.InWorkObject = Fibre

mon3d.Update

End

 

Si cela peut aider quelqu'un ...

 

XGX4

 

 

indocti discant et ament meminisse periti

(Que les ignorants apprennent, que ceux qui savent se souviennent)

Lien vers le commentaire
Partager sur d’autres sites

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é