Courbe passant par des points XYZ

Bonjour,

j'ai créé une macro qui me permet de créer une courbe passant par des points XYZ récupérés dans un fichier txt, sous solidworks,

mais je n'arrive pas à éditer cette fonction pour changer la forme de ma courbe avec d'autres points.

Comment faut-il faire? car je ne veux pas recréer une nouvelle courbe à chaques fois, je veux repartir de celle existante.

 

Merci d'avance pour vos réponse.

Pourriez-vous poster votre macro ? Et nous situer où est-ce que vous bloquez ?

1 « J'aime »

Et bien dans la macro que j'ai créé je ne bloque nul part enfaite,

simplement celle que j'ai créé me permet seulement de créer ma courbe et cela marche très bien.

Mais c'était simplement un moyen de prendre correctement la main sur manière de faire des macros.

Ce que je souhaite faire, c'est depuis ma fonction courbe déjà créé, je voudrais que ma macro édite ma fonction courbe XYZ et qu'elle récupère de nouveaux points pour changer la forme de ma courbe.

Finalement je ne trouve tout simplement pas le language qui est adapté pour éditer une fonction.

 

Bonjour,

 

Peut-être une solution ici, il faut utiliser :

FreePointCurveFeatureData::PointArray property to edit the definition of XYZ-curve. Refer the API Help for additional information how the feature data should be modified.

 

https://forum.solidworks.com/thread/59437

 

Salut ha.ta.ca

voir ce tuto

pour creer des courbes via des points X.Y.Z

http://www.lynkoa.com/tutos/3d/video-tutorial-creating-curves-importing-point-data-text-file-solidworks

@+ ;-))

Bonjour,

Pour répondre à ".PL" : 

je n'arrive pas à intégrer ton "mots" dans ma macro, "FreePointcurveFeatureData:: PointArray".

 

Pour répondre à "gt22" :

J'ai déjà créer une macro qui créé une FONCTION courbe XYZ, ci-joint,

 

Autrement j'ai éssayé de créer une macro qui créer une courbe VIA une esquisse mais elle ne marche pas :(,

(j'ai voulu créer une courbe via une esquisse car c'est plus facile à éditer par la suite"

 

macro FONCTION courbe: (fonctionne)

Dim swApp As SldWorks.SldWorks

Dim Part As SldWorks.ModelDoc2
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim skiP As Object
Dim myRefPlane As Object
Dim skSegment As Object


Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc

Open "Chemin du dossier\TC.txt" For Input As #1

Part.InsertCurveFileBegin
                                                                    
Do While Not EOF(1)
Input #1, X, Y, Z
boolstatus = Part.InsertCurveFilePoint(X / 1000, Y / 1000, Z / 1000)
Loop
Close #1

boolstatus = Part.InsertCurveFileEnd()   
                                                    
boolstatus = Part.SelectedFeatureProperties(0, 0, 0, 0, 0, 0, 0, True, False, "spline tige") 'NOMMER SPLINE "spline tige"'

End Sub

 

macro ESQUISSE courbe :(ne fonctionne pas) Help!

Dim swApp As SldWorks.SldWorks
Dim Part As SldWorks.ModelDoc2
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim skSegment As Object
Dim pointArray As Variant
Dim points() As Object

Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc

Open "Chemin du dossier\TC2.txt" For Input As #1

boolstatus = Part.Extension.SelectByID2("Plan de face", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
Part.SketchManager.InsertSketch True
ReDim points(0 To 2) As Object

Do While Not EOF(1)
Input #1, X, Y, Z
points(0) = X / 1000
points(1) = Y / 1000
points(2) = Z / 1000
Loop
Close #1
Set skSegment = Part.SketchManager.CreateSpline((pointArray))


Part.SketchManager.InsertSketch True

End Sub

Bonjour,

 

Il y avait une erreur dans la syntaxe de la fonction que j'ai donné, c'est  :

IFreePointCurveFeatureData

Et le lien qui donne ses attributs :

http://help.solidworks.com/2013/English/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.IFreePointCurveFeatureData_members.html

 

Bonjour,

Impossible de réussir à intégrer le mots "Ifreepointcurvefeaturedata",

donc j'éssaye en passant par le mots " feateditdef" ça me parais pas mal mais je n'arrive pas à faire se fermer  la fenêtre de dialogue tte seul par la suite. Donc pas encore très concluant.