Macro édition tableau solidworks

Bonjour,

Sous sw2017, je souhaite éditer par macro une table de révision.

Dans ma MEP, j'ai une variable "Date ind A" et une variable "Dessinateur".

Aujourd'hui, après une copie de projet, je dois mettre à jour les tables de révision de tous les plans du projets en intégrant ces variables.

Je souhaite affecter en automatique ces variables dans les cases corrspondante de ma table de révision. Est ce possible?

Merci d'avance.

fred

Bonjour,

 

Quand tu dis en integrant sa veut dirée en crée et en ajoutant au tableau ou juste modifieant la valeur ?

1 « J'aime »

Je voudrais que la cellule affiche la valeur de la propriété personnalisée du fichier.

Aujourd'hui, je remplace le texte des cellules par le texte suivant $PRP:"Date indA" par exemple mais comme j'ai beaucoup de plans je voudrais automatiser cette étape.

Peut tu nous transmetre un exemple de mise en plan que tu modifie ?

J'ai réussi à faire à peu près ce que je voulais avec le code suivant:

Sub main()

Set swApp = Application.SldWorks

Set Part = swApp.ActiveDoc
Dim myModelView As Object
Set myModelView = Part.ActiveView

myModelView.FrameState = swWindowState_e.swWindowMaximized

boolstatus = Part.Extension.SelectByID2("Objet de détail166@Feuille1", "REVISIONTABLE", 0.238189661374546, 5.37305690286136E-02, 0, False, 0, Nothing, 0)
Part.EditDelete

Dim currentSheet As Object
Dim myRevisionTable As Object
Set currentSheet = Part.GetCurrentSheet()
Set myRevisionTable = currentSheet.InsertRevisionTable(True, 0.41, 4.01116812853213E-02, 4, "T:\BEM\Solidworks\Modèles\Table révision\Révision TESTELEC - DATE - DESSINATEUR.sldrevtbt")
boolstatus = Part.Extension.SelectByID2("Objet de détail167@Feuille1", "REVISIONTABLE", 0.237457760308212, 4.89732120974398E-02, 0, False, 0, Nothing, 0)
Set currentSheet = Part.GetCurrentSheet()
Set myRevisionTable = currentSheet.RevisionTable
longstatus = myRevisionTable.AddRevision("A")
boolstatus = Part.ActivateView("Vue de mise en plan1")
boolstatus = Part.ActivateSheet("Feuille1")
boolstatus = Part.Extension.SelectByID2("Objet de détail167@Feuille1", "REVISIONTABLE", 0.373957309179585, 4.80583357645217E-02, 0, False, 0, Nothing, 0)
Part.ClearSelection2 True

Dim myTable As Object
Set myTable = myRevisionTable
myTable.Text(0, 2) = "$PRP:""Date ind A"""
Part.ClearSelection2 True
Set myTable = myRevisionTable
myTable.Text(0, 3) = "$PRP:""Dessinateur"""
Part.ClearSelection2 True
Set myTable = myRevisionTable
myTable.Text(0, 1) = "Création"

boolstatus = Part.Extension.SelectByID2("Feuille1", "SHEET", 0.364259620050653, 6.48920602902139E-02, 0, False, 0, Nothing, 0)

'Lancement macro
Dim runMacroError       As Long

boolstatus = swApp.RunMacro2("T:\BEM\Solidworks\Modèles\Macros\Recharger fond de plan\changefonddeplans.swp", "ChangeFondDePlanswp1", "main", swRunMacroDefault, runMacroError)
End Sub

 

Il ne reste qu'à trouver un moyen de sélectionner la table en automatique au début au lieu d'avoir à cliquer dessus....

 

Bonsoir,

A mon avis tu n'as pas besoin de la sélectionner avant.

Regarde plutôt cet exemple dans l'aide de l'api: http://help.solidworks.com/2017/English/api/sldworksapi/Get_Revision_Table_Example_VB.htm

1 « J'aime »