Python 프로그램을 실행하기 위해 ArcMap에서 버튼을 생성합니까?


10

툴바의 버튼을 클릭하면 ArcMap 내에서 실행하려는 스크립트가 있으며 지금까지는 스크립트를 스크립트 도구로만 만들 수있었습니다. 지오 프로세싱 도구가 아닌 명령으로 실행해야합니다.

지오 프로세싱 도구로이를 실행하면 명령 줄 창에서 동일한 코드가 실행될 때보 다 시간이 오래 걸립니다. 방금 ArcObjects를 살펴보기 시작했지만 사용해야 할 경우 사용을 시작하고 싶습니다.

누구나 샘플 코드 또는 버튼을 만들 수있는 리소스가 있다면 좋을 것입니다.


ArcMap 또는 ArcGIS Engine 독립형 애플리케이션에서이 작업을 수행하려고합니까?
MathiasWestin

ArcMap 10에서이 작업을 수행하려고합니다.
Tanner

답변:


8

입력 또는 출력 매개 변수가 필요하지 않은 경우이 샘플을 사용하여 .NET 응용 프로그램에서 ArcPy 활용 커스텀 명령 ( C # 예제) 에서 스크립트를 실행할 수 있습니다 .

// Executes a shell command synchronously.
// Example of command parameter value is
// "python " + @"C:\scripts\geom_input.py".
//
public static void ExecuteCommand(object command)
{
    try
    {
        // Create the ProcessStartInfo using "cmd" as the program to be run,
        // and "/c " as the parameters.
        // "/c" tells cmd that you want it to execute the command that follows,
        // then exit.
        System.Diagnostics.ProcessStartInfo procStartInfo = new
            System.Diagnostics.ProcessStartInfo("cmd", "/c " + command);

        // The following commands are needed to redirect the standard output.
        // This means that it will be redirected to the Process.StandardOutput StreamReader.
        procStartInfo.RedirectStandardOutput = true;
        procStartInfo.UseShellExecute = false;

        // Do not create the black window.
        procStartInfo.CreateNoWindow = true;

        // Now you create a process, assign its ProcessStartInfo, and start it.
        System.Diagnostics.Process proc = new System.Diagnostics.Process();
        proc.StartInfo = procStartInfo;
        proc.Start();

        // Get the output into a string.
        string result = proc.StandardOutput.ReadToEnd();

        // Display the command output.
        Console.WriteLine(result);
    }
    catch (Exception objException)
    {
        Console.WriteLine(objException.Message);
        // Log the exception and errors.
    }
}

1
또한 이것은 파이썬에 국한되지 않습니다. 외부 명령을 실행하는 데 사용할 수 있습니다.
matt wilkie 22시 26 분

하지만 @Tanner?
Richard

솔직히 말해서 나는 그것을 작동시키지 않았지만 그때 유일한 프로그래밍 경험은 제한된 파이썬이었습니다. 시간이 있어도 버튼을 만들어야한다면 지금 당장 슛을 할 수있을 것 같습니다.
Tanner

5

툴바 / 사용자 정의에서 [도구 추가 ...]를 사용하여 범주에 스크립트를 추가하십시오. 그런 다음 스크립트를 선택한 도구 모음으로 당깁니다.


그것이 내가 한 일입니다. 이 방법을 사용하면 스크립트가 스크립트 도구로 실행되고 지오 프로세싱 창이 나타나 스크립트 실행 시간이 훨씬 오래 걸립니다.
Tanner

3

툴바 옆의 빈 영역을 마우스 오른쪽 버튼으로 클릭하고 사용자 화 창을 연 다음 명령 탭을 클릭하고 목록 하단으로 스크롤 한 다음 [UI 컨트롤]> 새 UI 컨트롤 선택을 클릭하고 원하는 컨트롤 유형을 선택한 다음 작성 및 편집을 클릭하십시오. 그러면 새 컨트롤에 대한 VBA 편집기가 열리고 코드를 호출하는 이벤트를 듣고 내부에 코드를 작성할 수 있습니다. VBA는 무료로 10에 포함되어 있지만 라이센스 파일을 요청한 다음 해당 라이센스를 등록해야합니다. 이를 위해 ESRI에 전화하면 무료로 라이센스를 제공해야합니다. 10 이후에 이것은 사라질 것입니다 ...

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.