Macro-editie van solidworks-tafel

Hallo

Onder sw2017 wil ik een revisietabel per macro bewerken.

In mijn lid van het Europees Parlement heb ik een variabele "Date ind A" en een variabele "Rapporteur voor advies".

Vandaag, na een kopie van het project, moet ik de revisietabellen van alle plannen in het project bijwerken door deze variabelen te integreren.

Ik wil deze variabelen automatisch toewijzen aan de overeenkomstige vakken van mijn revisietabel. Is het mogelijk?

Bij voorbaat dank.

Fred

Hallo

 

Als je zegt door zijn middelen te integreren, door te creëren en toe te voegen aan de tabel, of gewoon door de waarde te wijzigen?

1 like

Ik wil dat de cel de waarde van de aangepaste eigenschap van het bestand weergeeft.

Vandaag vervang ik de tekst van de cellen door de volgende tekst$PRP: "Date indA" bijvoorbeeld, maar aangezien ik veel plannen heb, wil ik deze stap graag automatiseren.

Kunt u ons een voorbeeld sturen van een tekening die u aan het aanpassen bent?

Het is me gelukt om vrijwel te doen wat ik wilde met de volgende code:

Sub hoofd()

Stel swApp = Toepassing.SldWorks in

Deel instellen = swApp.ActiveDoc
myModelView dimmen als object
Stel myModelView = Deel.ActiveView in

myModelView.FrameState = swWindowState_e.swWindowMaximized

boolstatus = Part.Extension.SelectByID2("détail166@Feuille1 object", "HERZIENINGSTABEL", 0.238189661374546, 5.37305690286136E-02, 0, Onwaar, 0, Niets, 0)
Deel.BewerkenVerwijderen

Dim currentSheet als object
Dim myRevisionTable als object
Set currentSheet = Part.GetCurrentSheet()
Set myRevisionTable = currentSheet.InsertRevisionTable(True, 0.41, 4.01116812853213E-02, 4, "T:\BEM\Solidworks\Models\Table Revision\Revision TESTELEC - DATE - DRAFTSMAN.sldrevtbt")
boolstatus = Part.Extension.SelectByID2("détail167@Feuille1 object", "REVISIONTABLE", 0.237457760308212, 4.89732120974398E-02, 0, False, 0, Niets, 0)
Set currentSheet = Part.GetCurrentSheet()
Stel myRevisionTable in = currentSheet.RevisionTable
longstatus = myRevisionTable.AddRevision("A")
boolstatus = Part.ActivateView("Lay-out View1")
boolstatus = Deel.ActivateSheet("Blad1")
boolstatus = Part.Extension.SelectByID2("détail167@Feuille1 Object", "REVISIONTABLE", 0.373957309179585, 4.80583357645217E-02, 0, False, 0, Niets, 0)
Deel.ClearSelection2 Waar

Dim myTable als object
Stel myTable in = myRevisionTable
myTable.Text(0, 2) = "$PRP:"""Date ind A"""
Deel.ClearSelection2 Waar
Stel myTable in = myRevisionTable
myTable.Text(0, 3) = "$PRP:""Tekenaar"""
Deel.ClearSelection2 Waar
Stel myTable in = myRevisionTable
myTable.Text(0, 1) = "Creatie"

boolstatus = Part.Extension.SelectByID2("Blad1", "BLAD", 0.364259620050653, 6.48920602902139E-02, 0, Onwaar, 0, Niets, 0)

'Macro lancering
Dim runMacroError       zo lang

boolstatus = swApp.RunMacro2("T:\BEM\Solidworks\Templates\Macros\Reload basemap\changebasemaps.swp", "ChangeBasePlanwp1", "main", swRunMacroDefault, runMacroError)
Einde Sub

 

Het enige dat u nog hoeft te doen, is een manier vinden om de tabel aan het begin automatisch te selecteren in plaats van erop te moeten klikken....

 

Goedenavond

Naar mijn mening hoef je het niet eerst te selecteren.

Bekijk in plaats daarvan dit voorbeeld in de api-help: http://help.solidworks.com/2017/English/api/sldworksapi/Get_Revision_Table_Example_VB.htm

1 like