Marco pour créer des plans d'equisse automatiquement

vos questions concernant les API SolidWorks

Marco pour créer des plans d'equisse automatiquement

Messagepar Fred-Disney » Mar 12 Mar 2013, 15:50

Bonjour,

Voila mon problème, j'ai des points dans une esquisse 3D et d’autre dans une esquisse 2D j’ai créé une courbe qui passe par tous les points, maintenant je veux créer 1 plan par point, perpendiculaire à cette courbe mais automatiquement genre Macro ou autre. J'ai une centaine de points et je ne souhaite pas le faire point par point.

J'espère que vous m'avez compris. Je fais ça pour éviter de perdre trop de temps pour mes prochains projets.
Merci
Fred-Disney
Ewok SolidWorks
 
Messages: 7
Inscription: Mer 06 Mar 2013, 15:32

Re: Marco pour créer des plans d'equisse automatiquement

Messagepar Polaroid » Mer 13 Mar 2013, 10:43

Ta question concernant les macros, je l'ai déplacé au bon endroit, tu auras plus de chance d'avoir une réponse !
Forum CAO 3D, le forum d'aide et de discussions techniques autour du logiciel SolidWorks.
Polaroid
Padawan SolidWorks
 
Messages: 74
Inscription: Mer 22 Juin 2005, 19:20

Re: Marco pour créer des plans d'equisse automatiquement

Messagepar Starck » Mer 20 Mar 2013, 23:36

Bonsoir,

As tu testé dans un premier temps d'enregistrer tes actions via l'enregistreur de macro avant de l'adapter a un process plus général. Cela te permet de récupérer facilement les méthode utiliser.

Bonne soirée.
Starck
Ewok SolidWorks
 
Messages: 37
Inscription: Lun 24 Déc 2012, 11:16

Re: Marco pour créer des plans d'equisse automatiquement

Messagepar Fred-Disney » Ven 22 Mar 2013, 16:26

Bonsoir,

Oui bien sur je l'ai fait et cela marche mais pour un seul point, mais ne sachant comment faire pour modifier le programme pour lui dire de répéter l'opération en allant chercher le point suivant.
Voici ce que cela donne :

Sub main()

Set swApp = _
Application.SldWorks

Set Part = swApp.ActiveDoc
Dim myModelView As Object
Set myModelView = Part.ActiveView
boolstatus = Part.Extension.SelectByID2("", "EDGE", 161.086467952403, 202.965765718816, 123.128400900351, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Point29@Esquisse2", "EXTSKETCHPOINT", 139.511148366842, 122.938, 0, True, 1, Nothing, 0)
Dim myRefPlane As Object
Set myRefPlane = Part.FeatureManager.InsertRefPlane(514, 0, 4, 0, 0, 0)
Part.ClearSelection2 True

End Sub

Comme j'étais pressé je l'ai fait à la main voir image jointe
Mais je suis toujours intéressé car j'ai d'autre ficher à faire pour la suite

Merci est bon week-end
Fred-Disney
Ewok SolidWorks
 
Messages: 7
Inscription: Mer 06 Mar 2013, 15:32

Re: Marco pour créer des plans d'equisse automatiquement

Messagepar Fred-Disney » Ven 22 Mar 2013, 16:34

Re,
Apparemment l'ajout de fichier image (.jpg) ne marche pas, j'ai essayé plusieurs fois Evil Evil
Fred-Disney
Ewok SolidWorks
 
Messages: 7
Inscription: Mer 06 Mar 2013, 15:32

Re: Marco pour créer des plans d'equisse automatiquement

Messagepar Polaroid » Lun 25 Mar 2013, 11:37

La taille des fichiers joints Max est de 256Ko, est ce que ce n'est pas ça ton problème ?
Forum CAO 3D, le forum d'aide et de discussions techniques autour du logiciel SolidWorks.
Polaroid
Padawan SolidWorks
 
Messages: 74
Inscription: Mer 22 Juin 2005, 19:20

Re: Marco pour créer des plans d'equisse automatiquement

Messagepar MarcS » Mer 03 Avr 2013, 22:37

Essais ca
Dim SwPART As SldWorks.PartDoc
Dim SwModel As SldWorks.ModelDoc2
Dim swSelMgr As SldWorks.SelectionMgr
Dim Sw_Edge As SldWorks.Edge
Dim swSelData As SldWorks.SelectData

Set swApp = Application.SldWorks
Set SwModel = swApp.ActiveDoc

Set swSelMgr = SwModel.SelectionManager
On Error Resume Next
Set Sw_Edge = swSelMgr.GetSelectedObject6(1, 0)
If Sw_Edge Is Nothing = True Then
swApp.SendMsgToUser2 "Vous devez selectionner une courbe avant d'executer ce programme", swMbWarning, swMbOk
Exit Sub
End If

Set swSelData = swSelMgr.CreateSelectData

Dim swCurve As SldWorks.Curve
Dim varSplineParams As Variant
Dim i As Long
Dim varSplinePts As Variant
Dim swEntity As SldWorks.Entity

Set swCurve = Sw_Edge.GetCurve
varSplineParams = swCurve.GetBCurveParams(False)
varSplinePts = swCurve.GetSplinePts((varSplineParams))

Dim myRefPlane As SldWorks.RefPlane

SwModel.ClearSelection
For i = 0 To UBound(varSplinePts) Step 3
Set swEntity = Sw_Edge
bRet = swEntity.Select4(True, swSelData)
boolstatus = SwModel.Extension.SelectByID2("", "EXTSKETCHPOINT", varSplinePts(i), varSplinePts(i + 1), varSplinePts(i + 2), True, 1, Nothing, 0)
Set myRefPlane = SwModel.FeatureManager.InsertRefPlane(2, 0, 4, 0, 0, 0)
SwModel.ClearSelection
Next

MsgBox "Fin du programme"

Si je te donne un poisson tu pourras manger Aujourd’hui
mais si je t’apprend a pêcher tu pourras manger toute ta vie !!!
Salut !

Marc S.
Avatar de l’utilisateur
MarcS
Chevalier Jedi SolidWorks
 
Messages: 311
Inscription: Mar 06 Jan 2009, 20:10
Localisation: Quebec, Quebec SolidWorks 2017 SP 1.0 & SolidWorks 2014 SP 2.0

Re: Marco pour créer des plans d'equisse automatiquement

Messagepar Fred-Disney » Jeu 04 Avr 2013, 8:31

Ouaaaaaaaaaa c'est super ça marche comme sur des roulettes. :D :D :D
rien à redire tu est vraiment un grand maitre de la programmation VBA
voir image du résultat

Encore merci pour ton aide :D :D :D
Fichiers joints
Image du Tracé 111-119.JPG
La preuve par l'image
Image du Tracé 111-119.JPG (82.29 Kio) Vu 648 fois
Fred-Disney
Ewok SolidWorks
 
Messages: 7
Inscription: Mer 06 Mar 2013, 15:32


Retourner vers Questions générales sur les API

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 4 invités

banniere