Edycja makr tabeli solidworks

Witam

W obszarze sw2017 chcę edytować tabelkę zmian według makra.

W moim posłudze do PE mam zmienną "Data i A" oraz zmienną "Sprawozdawca komisji opiniodawczej".

Dzisiaj, po otrzymaniu kopii projektu, muszę zaktualizować tabele zmian wszystkich planów w projekcie, integrując te zmienne.

Chcę automatycznie przypisać te zmienne do odpowiednich pól mojej tabelki zmian. Czy to możliwe?

Z góry dziękuję.

Fred

Witam

 

Kiedy mówisz, integrując jego środki, tworząc i dodając do tabeli, czy po prostu modyfikując wartość?

1 polubienie

Chcę, aby w komórce była wyświetlana wartość właściwości niestandardowej pliku.

Dzisiaj zamieniam tekst komórek na następujący tekst$PRP: "Data indA" na przykład, ale ponieważ mam dużo planów, chciałbym zautomatyzować ten krok.

Czy możesz przesłać nam przykład rysunku, który modyfikujesz?

Udało mi się zrobić mniej więcej to, co chciałem, z następującym kodem:

Sub main()

Ustaw swApp = Application.SldWorks

Ustaw część = swApp.ActiveDoc
Przyciemnij myModelView jako obiekt
Ustaw myModelView = Part.ActiveView

myModelView.FrameState = swWindowState_e.swWindowMaximized

boolstatus = Part.Extension.SelectByID2("détail166@Feuille1 obiekt", "TABELA ZMIAN", 0.238189661374546, 5.37305690286136E-02, 0, Fałsz, 0, Nic, 0)
Part.EditDelete (Część.EdytujUsuń

Przyciemnij bieżący arkusz jako obiekt
Przyciemnij tabelę zmian jako obiekt
Ustaw currentSheet = Part.GetCurrentSheet()
Ustaw 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 obiekt", "TABELA ZMIAN", 0.237457760308212, 4.89732120974398E-02, 0, Fałsz, 0, Nic, 0)
Ustaw currentSheet = Part.GetCurrentSheet()
Ustaw tabelę poprawek = bieżący arkusz.tabelaPoprawek
longstatus = mojaTabelaWersji.AddRevision("A")
boolstatus = Part.ActivateView("Widok układu1")
boolstatus = Part.ActivateSheet("Arkusz1")
boolstatus = Part.Extension.SelectByID2("détail167@Feuille1 obiekt", "TABELA ZMIAN", 0.373957309179585, 4.80583357645217E-02, 0, Fałsz, 0, Nic, 0)
Part.ClearSelection2 Prawda

Dim myTable As Object
Ustaw mojąTabelę = mojąTabelęZmian
myTable.Text(0, 2) = "$PRP:""""Data w A"""
Part.ClearSelection2 Prawda
Ustaw mojąTabelę = mojąTabelęZmian
myTable.Text(0, 3) = "$PRP:""Sprawozdawca komisji opiniodawczej"""
Part.ClearSelection2 Prawda
Ustaw mojąTabelę = mojąTabelęZmian
myTable.Text(0, 1) = "Tworzenie"

boolstatus = Part.Extension.SelectByID2("Arkusz1", "ARKUSZ", 0.364259620050653, 6.48920602902139E-02, 0, Fałsz, 0, Nic, 0)

"Uruchomienie w skali makro
Dim runMacroError       tak długo

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

 

Wszystko, co pozostaje do zrobienia, to znaleźć sposób na automatyczne wybranie tabeli na początku, zamiast klikać na nią....

 

Dobry wieczór

Moim zdaniem nie musisz go najpierw wybierać.

Zamiast tego zapoznaj się z tym przykładem w pomocy interfejsu API: http://help.solidworks.com/2017/English/api/sldworksapi/Get_Revision_Table_Example_VB.htm

1 polubienie