[MACRO][SW2013] Piloter une extrusion depuis un assemblage

Bonjour,

Je m'adresse à vous car malgrés mes recherches je suis bloqué sur un projet d'automatisation sous Solidworks 2013.

Je vais remettre en place le contexte :

J'ai crée une macro qui ouvre un UserForm dans lequel l'utilisateur rentre diverses informations. A la validation, l'assemblage, un systeme de rails, ce modifie en adaptant sa longueur. En fait je prend la longueur désiré par l'utilisateur et j'incorpore un maximum de rails "standard" qui ont une longueur fixe. Cela laisse donc un dernier tronçon qui doit etre fait sur mesure.

J'ai dans mon assemblage un bout de rail "spécifique" qui ce positionne au bon endroit et sur lequel j'aimerais faire varier la longueur, de la valeur restante (que je connais, et qui est deja lié a une variable).

J'ai tenté de faire cette opération de plusieurs maniére :

  • Directement dans l'assemblage en selectionnant ma_cote@ma_piece@mon_assemblage
  • En faisant un part.editpart, puis une modification et un part.editassembly

Auriez-vous une idée de la demarche à suivre ou vers quel commande je devrais me tourner ? Ou peut-être cela est il impossible ?

D'avance merci si vous pensez à une piste :)

Cordialement

Bonjour,

Tu parles d'une pièce normale ou d'une pièce virtuelle à l'assemblage ?

Bonjour !

Le rail sur mesure est une piéce normale

Cordialement,

Donc il faut obligatoirement ouvrir la pièce :

http://help.solidworks.com/2013/english/api/sldworksapi/Open_Document_Example_VB.htm

Pour modifier une cote :

http://help.solidworks.com/2013/english/api/sldworksapi/Change_Dimension_Example_VB.htm

Et on peut faire ceci en arrière plan :

http://help.solidworks.com/2011/English/api/sldworksapi/Enable_Background_Processing_When_Opening_Drawing_Document_Example_VB.htm

 

2 « J'aime »

Fantastique

Je regarde ça desuite et j'essai de faire un retour dans l'aprés midi.

Cordialement,

1 « J'aime »

Bonjour,

Malgrés mes essais je n'ai pu utiliser les fonctions proposés par .PL.

J'ai quand même pu m'en sortir en utilisant un editpart qui ressemble au final à ça :

Part.Extension.SelectByID2("PREMIER_RAIL-1", "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)
Part.EditPart
Dim myDimension As Object
Set myDimension = Part.Parameter("D1@Boss.-Extru.1@PREMIER_RAIL.Part")
myDimension.SystemValue = TextBox15.Text / 1000
Part.ClearSelection2 True
boolstatus = Part.EditRebuild3()
Part.EditAssembly

 

Merci beaucoup pour votre temps et pour les infos qui m'ont permis d'améliorer ma recherche

Si tu peux poster ta macro complète dans un fichier texte, ça permet à tout le monde de pouvoir profiter de ton code :)