lekev42 Posté(e) le 9 octobre 2007 Posté(e) le 9 octobre 2007 A l'aide d'une macro, j'ai crée un certain nombre de points par lesquels je fais passer une spline. Pour assurer la continuité en chaque point, j'aimerais appelé la fonction "close spline" dans le menu "spline definition"...L'utilisation de l'enregistreur ne m'a pas permis de resoudre le problème. Merci d'avance pour votre aide. kévin [Edité le 15/10/2007 par lekev42]
marc54 Posté(e) le 9 octobre 2007 Posté(e) le 9 octobre 2007 Tu dois utiliser la fonction CreateSpline de ta factory2D.Comme argument (voir doc), elle demande un tableau (safearray) de points.Donc tu balances tes points dans le tableau, et ensuite quelque chose comme :set mySpline=myFactory.Createspline(myTab) et ça devrait aller PS- "L'enregistreur" n'est pas la solution miraculeuse, souvent cela ne fonctionne pas. marc Marc http://www.3dsys.fr
lekev42 Posté(e) le 9 octobre 2007 Auteur Posté(e) le 9 octobre 2007 Merci de ta reponse rapide marc. :D
lekev42 Posté(e) le 10 octobre 2007 Auteur Posté(e) le 10 octobre 2007 L'idée me plaisait beaucoup me disant qu'il allait me créer une spline fermée avec les points que je lui donnais mais je n'ai pas réfléchis sur le coup....Pour exemple, mais je pense que tu t'en doutes, lorsqu'il retourne au point de départ par cette méthode, il ne prend pas en compte le départ de la spline. As-tu une autre idée? Pour ceux que cela interesserait voici unmorceau de code illustrant les propos de marc: Set oFactory2D = sketch0.OpenEdition() Dim myTab1 As ControlPoint2D Dim myTab2 As ControlPoint2D Dim myTab3 As ControlPoint2D Dim Spline As Spline2D Set myTab1 = oFactory2D.CreateControlPoint(10, 10) Set myTab2 = oFactory2D.CreateControlPoint(-5, 8) Set myTab3 = oFactory2D.CreateControlPoint(0, 10) Dim arrayOfObject1(4) Set arrayOfObject1(0) = myTab1 Set arrayOfObject1(1) = myTab2 Set arrayOfObject1(2) = myTab3 Set arrayOfObject1(3) = myTab1 Set Spline = oFactory2D.CreateSpline(arrayOfObject1) sketch0.CloseEdition
marc54 Posté(e) le 10 octobre 2007 Posté(e) le 10 octobre 2007 Bonsoir, Que veux-tu dire par "ne prend pas en compte le départ de la spline" ? La spline n'est pas fermée ? Problème de tangence ?Une fois que ta spline est créée, tu peux peut-être la retravailler avec des propriétés disponibles. Marc Marc http://www.3dsys.fr
lekev42 Posté(e) le 10 octobre 2007 Auteur Posté(e) le 10 octobre 2007 Si si, je peux retravailler ma spline mais étant donné que j'en ai plus d'une vingtaine, cela est un peu long...Dans le travail que je fais, je réalise ensuite une analyse par élément finis. Du coup, ne pas avoir cette tangence rend le deploiement de l'analyse impossible lors de l'éxecution de la macro. Bien sur que la spline se ferme mais pour exemple, prend 3 points, relie les 3 points par 2 segments puis utilise la fonction "fermer la spline"...Le résultat se rapproche plus de ce que je désire que d'avoir une spline dont le point de départ est le point d'arrivée...A cause de l'analyse, j'ai véritablement besoin de cette tangence.... Problème interessant........ :casstet:
marc54 Posté(e) le 11 octobre 2007 Posté(e) le 11 octobre 2007 Quand je disais "tu peux peut-être la retravailler", je voulais dire dans ton programme et pas en interactif.Après avoir créé ta spline parSet Spline = oFactory2D.CreateSpline(arrayOfObject1)tu dois avoir des proriétés ensuite, du genreSpline.Startpoint= ...non ? Marc http://www.3dsys.fr
lekev42 Posté(e) le 15 octobre 2007 Auteur Posté(e) le 15 octobre 2007 C'est tout bon à présent! Il existe une fonction spline.SetClosing qui vient activer la fermeture de la spline...Je n'ai pas encore écrit le bout de programme mais ca devrait le faire!!!Quelquechose qu'on a du mal à trouver est le repertoire de la doc des fonctions que prends en charge catia: intel_a/code/bin/V5Automation.chm merci marc pour ton aide!! kevin
lekev42 Posté(e) le 30 octobre 2007 Auteur Posté(e) le 30 octobre 2007 En revenant sur le forum, je viens de m'apercevoir que la résolution de ce problème ne s'est pas déroulée de cette manière. Il n'est pas évident de déclarer les points pour utiliser la fonction Spline2D...Je vous conseille ainsi, si vous avez le pb, de passer par la fonction Spline3D et d'utliser l'enregistreur...
ebro Posté(e) le 18 décembre 2008 Posté(e) le 18 décembre 2008 Salut,J'ai le même problème que toi, à savoir, je n'arrive pas à fermer ma spline2D.Je ne trouve pas ta méthode SetClosing. Peux-tu me dire comment tu as fait ?Cordialement Ebro
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