Equation solidworks sous VBA

Bonjour à tous,

 

Comment retranscrire une équation Solidworks de ce type :

 

"hauteur@Esquisse1"    =     "largeur@Esquisse1"   *  2

 

avec une macros sous VBA ? le code à qu'elle forme ?

Le but est de paramétrer une pièce en utilisant seulement VBA.

 

Merci d'avance.

 

 

Salut,

L'aide de SW en ligne est une mine d'informations. Pour les API, voici le lien : http://help.solidworks.com/2015/english/api/sldworksapiprogguide/Welcome.htm

Tu trouveras ainsi un exemple d'ajout d'équations dans une pièce avec plusieurs configurations : http://help.solidworks.com/2015/english/api/sldworksapi/Add_Equations_Example_VB.htm

A plus.

3 « J'aime »

Au pire si tu ne trouves pas ton bonheur, tu peux peut-etre essayer d'enregistrer une macro en faisant ton équation, rentrer dans le code et voir ce que fais le logiciel ?

1 « J'aime »

Bonjour,

Tout d'abord merci pour vos réponses.

J'ai déja regardé l'aide SW mais les exemples proposés sont avec des conditions, pour mon cas je n'en ai pas besoins.

N'ayant pas beaucoup de connaisances en développement j'ai bien essayé de bidouiller le code mais en vain rien ne fonctionne :(

Avec l'enregistreur de macro ça ne marche pas il ne prend pas en conte l'équation écrite sous solidworks.

 

Merci d'avance.

 

1 « J'aime »

Alors dans ce cas il fallait le dire de suite.

Car pour développer à ta place une macro fonctionnelle il nous faut bien plus d'infos sur l'objectif et l'utilisation que tu souhaites en faire.

Et cela demande pas mal de temps.

1 « J'aime »

Ce qu'il me faut c'est une macros capable d'éxecuter ce type d'équation :

 

 "hauteur@Esquisse1"    =     "largeur@Esquisse1"   *  2

Si c'est juste pour ça, pourquoi ne pas faire des équations à chaques fois ?

 

Parceque là, va falloir que tu donnes le bon nom à la bonne cote pour qu'il sache aller la chercher. Je ne suis pas hyper-convaincu du gain de temps :s

1 « J'aime »

j'ai créé un formulaire avec VBA pour paramétrer un modèle 3D.

Ce formulaire me permet de modifier longueur, largeur, hauteur du modèle.

il y a aussi des casses à cocher pour supprimer ou annuler une suppression de composant (en fonctions des options choisies) .

Si je crée des équations sur mes composants au seins de mon assemblage, lorsque je les supprime (avec les casses à cocher)  solidworks m'indiquent des erreurs sur mes équations. C'est pour ça que je souhaite proscrire les équations SW dans mon modèle

 

1 « J'aime »

Ha oui, forcement.

 

Bon sinon pour te répondre sur une équation en VBA, je fais comme ca

 

Cells(i, "I").Value = Feuil3.Cells(a, "E").Value * Cells(i, "C").Value

 

Du coup, pour toi ça donnerait

largeur@esquisse1" =  Cells(i, "C").Value* 2

 

où Cells(i, "C") correspondrait à la case excel de définition de la valeur "hauteur@esquisse1"

 

 

Parcontre, je ne sais pas du tout comment on créer le lien entre excel et valeur d'une cote (mais ça, je supposes que tu sais faire ?). Du coup je te laisse l'integrer comme bon te semble.

 

Celà dit du coup, ça peut être sympa de mettre ton bout de code en réponse pour les prochains lecteurs qui chercheront le même type de réponse ;)

1 « J'aime »

Je ne travaille pas avec Excel mais avec le module VBA de Solidworks.

Ci-dessous un code que j'ai pour modifier mes valeurs t'elle que longueur, largueur ou bien un nombre de répétitions.

je cherche le même type de code mais pour créer des relations entre certaine pièce

 

Set SwApp = CreateObject("SldWorks.Application")  ' @Corps CamVane 100.sldasm
Set Part = SwApp.ActiveDoc

Part.Parameter("D1@Lg traverse@Traverse inférieur CamVane.part").SystemValue = (dimension.largeur.value - 3) / 1000
Part.ClearSelection
Part.ForceRebuild

Part.Parameter("D1@Distance2@Corps CamVane 100.sldasm").SystemValue = dimension.Hauteur.value / 1000
Part.ClearSelection
Part.ForceRebuild


Part.Parameter("D5@Lg traverse@Traverse inférieur CamVane.part").SystemValue = dimension.epaisseur.value / 1000
Part.ClearSelection
Part.ForceRebuild

Part.Parameter("D1@Répétition linéaire locale1@Corps CamVane 100.sldasm").SystemValue = UserForm1.TextBox1.value
Part.ClearSelection
Part.ForceRebuild

 

Part.ViewZoomtofit2

Part.ForceRebuild

 

boolstatus = Part.EditRebuild3()

 

Toujours pas reussi à résoudre mon problème :(

Bonjour,

 

J'ai trouvé la réponse à ma question.

pour ce que ça intéresse je mets le code ci-dessous.

 

Sub main()

Set swApp = CreateObject("SldWorks.Application")
Set Part = swApp.ActiveDoc


Part.Parameter("hauteur@Esquisse1").SystemValue =  Part.Parameter("largeur@Esquisse1").SystemValue *2


Part.ClearSelection
Part.ForceRebuild

 


Part.ViewZoomtofit2

Part.ForceRebuild

 

boolstatus = Part.EditRebuild3()

End Sub

Bonjour,

 

J'ai trouvé la réponse à ma question.

pour ce que ça intéresse je mets le code ci-dessous.

 

Sub main()

Set swApp = CreateObject("SldWorks.Application")
Set Part = swApp.ActiveDoc


Part.Parameter("hauteur@Esquisse1").SystemValue =  Part.Parameter("largeur@Esquisse1").SystemValue *2


Part.ClearSelection
Part.ForceRebuild

 


Part.ViewZoomtofit2

Part.ForceRebuild

 

boolstatus = Part.EditRebuild3()

End Sub