Tworzysz przycisk, który wywołuje skrypt Pythona jako polecenie zamiast narzędzia skryptowego?

12

Uważam, że w Arc9.3 polecenia można tworzyć za pomocą skryptów VBA. Aby dodać niestandardowe polecenie, przejdź do Dostosuj> Paski narzędzi> Dostosuj ... i kliknij UIControls. Jednak UIControls nie istnieje w wersji 10.

Tworzę dwa osobne skrypty dla projektu książki z mapami. Jeden skrypt zapisze ustawienia układu w tabeli, a drugi zaktualizuje układ o ustawienia z tej samej tabeli. Chcę, aby oba te skrypty były poleceniami przypisanymi do przycisków na pasku narzędzi. Stworzyłem je jako narzędzia skryptowe, ale za każdym razem, gdy je klikam, uruchamiają skrypt jako narzędzie geoprzetwarzania. Wyświetla okno postępu i jego wykonanie zajmuje około 10 razy dłużej niż gdybym uruchomił kod w oknie wiersza poleceń Pythona. Nie chcę okna postępu ani znacznie dłuższego czasu wykonywania.

Jak mogę to zrobić, aby skrypt nie był uważany za „narzędzie”, a zamiast tego był poleceniem podobnym do przycisku Zapisz?

Garbarz
źródło

Odpowiedzi:

6

W makrze Excel VBA następujące polecenia wywołują skrypt Python o nazwie test.py:

Sub test()

rsp = Shell(Environ$("COMSPEC") & " /c C:/test.py", vbNormalFocus)

End Sub

(Oryginalne źródło tutaj ) Zapomniałem, jak uruchomić moduł ArcGIS VBA, ale być może podobna linia zadziałałaby w celu wywołania skryptu python.


Inną strategią, która może działać, może być kompilacja skryptu Pythona do pliku wykonywalnego (.exe) lub pliku wsadowego (.bat) i wywołanie go.


Właśnie zobaczyłem inną odpowiedź na gis.se, która jest bardziej elegancka:

Private Sub python_Click()
    Shell "C:\Python25\python.exe ""C:\rowcount.py"
End Sub
djq
źródło