Fazendo botão que chama script Python como comando, em vez de ferramenta de script?

12

Acredito que no Arc9.3, os comandos possam ser criados usando scripts VBA. Para adicionar um comando personalizado, navegue até Personalizar> Barras de ferramentas> Personalizar ... e clique em UIControls. No entanto, o UIControls não existe na versão 10.

Estou criando dois scripts separados para um projeto de livro de mapas. Um script salvará as configurações de layout em uma tabela e o outro atualizará o layout com as configurações da mesma tabela. Eu quero que esses dois scripts sejam comandos atribuídos a botões em uma barra de ferramentas. Criei-os como ferramentas de script, mas sempre que clico neles, eles executam o script como uma ferramenta de geoprocessamento. Ele abre uma janela de progresso e leva cerca de 10 vezes mais para ser executado do que se eu tivesse executado o código na janela da linha de comando do Python. Não quero a janela de progresso ou o tempo de execução muito maior.

Como posso fazer com que o script não seja considerado uma "ferramenta" e seja um comando semelhante ao botão Salvar?

Curtidor
fonte

Respostas:

6

Dentro de uma macro do Excel VBA, o seguinte chama um script Python chamado test.py:

Sub test()

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

End Sub

(Fonte original aqui ) Esqueci como executar um módulo ArcGIS VBA, mas talvez uma linha semelhante funcione para chamar seu script python.


Outra estratégia que pode funcionar poderia ser compilar seu script python em um arquivo executável (.exe) ou em lote (.bat) e chamá-lo então.


Acabei de ver outra resposta no gis.se que é mais elegante:

Private Sub python_Click()
    Shell "C:\Python25\python.exe ""C:\rowcount.py"
End Sub
djq
fonte