পাইথন প্রোগ্রামটি চালানোর জন্য আর্কম্যাপে বোতাম তৈরি করছেন?


10

আমার কাছে একটি স্ক্রিপ্ট রয়েছে যা আমি যখন সরঞ্জামদণ্ডের একটি বোতাম টিপানো হয় তখন আর্কম্যাপের মধ্যে চালাতে চাই এবং এখন পর্যন্ত আমি কেবল স্ক্রিপ্টটিকে একটি স্ক্রিপ্ট সরঞ্জাম হিসাবে তৈরি করতে সক্ষম হয়েছি। ভূ-প্রসেসিং সরঞ্জাম হিসাবে নয়, কমান্ড হিসাবে চালানোর জন্য আমার এটি দরকার।

কমান্ড লাইন উইন্ডো থেকে একই কোডটি কার্যকর করার চেয়ে এটি জিওপ্রসেসিং সরঞ্জাম হিসাবে চালিত হতে অনেক বেশি সময় নেয়। আমি সবেমাত্র আরকোবজেক্টগুলি সন্ধান করা শুরু করেছি, তবে এটি ব্যবহার করার দরকার হলে এটি ব্যবহার শুরু করতে চাই।

কারও কাছে যদি কোনও বোতাম তৈরির জন্য কোনও নমুনা কোড বা সংস্থান থাকে, তবে তা দুর্দান্ত।


আপনি কি আর্কম্যাপে বা কোনও আরকজিআইএস ইঞ্জিনের স্বতন্ত্র অ্যাপ্লিকেশনটিতে এটি করার চেষ্টা করছেন?
ম্যাথিয়াস ওয়েস্টিন

আমি এটি আরক্যাপেপ 10 এ করতে চাই
ট্যানার

উত্তর:


8

আপনার যদি কোনও ইনপুট বা আউটপুটপ্যারামিটারের প্রয়োজন না হয় তবে এই নমুনাটি। নেট অ্যাপ্লিকেশন , সি # উদাহরণস্বরূপ কাস্টম কমান্ড লেভারেজিং আরকপাইতে স্ক্রিপ্ট চালানোর জন্য ব্যবহার করা সম্ভব :

// 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
এছাড়াও লক্ষ করুন যে এটি অজগর নির্দিষ্ট নয়। এটি কোনও বাহ্যিক কমান্ড চালানোর জন্য ব্যবহার করা যেতে পারে।
ম্যাট উইলকি

তবে এটি কি কাজ করেছে, @ ট্যানার?
রিচার্ড

সত্যি কথা বলতে, আমি এটি কখনই কাজ করতে পারি নি, তবে তারপরে আমার একমাত্র প্রোগ্রামিং অভিজ্ঞতা ছিল সীমিত পাইথন limited আমার যদি মনে হয় আমি যদি এখন সময় পাই এবং যদি এখনও একটি বোতাম তৈরি করার দরকার হয় তবে আমি এটি এখন একটি উপযুক্ত শট দিতে পারি give
ট্যানার

5

কোনও বিভাগে স্ক্রিপ্ট যুক্ত করতে সরঞ্জামদণ্ডে / কাস্টমাইজ করুন [সরঞ্জামগুলি যোগ করুন ...] ব্যবহার করুন। তারপরে স্ক্রিপ্টটি পছন্দের সরঞ্জামদণ্ডে টানুন।


এটাই আমি করেছি। এই পদ্ধতিটি ব্যবহার করে স্ক্রিপ্টটি স্ক্রিপ্ট সরঞ্জাম হিসাবে চালিত হয় এবং একটি জিওপ্রসেসিং উইন্ডো নিয়ে আসে, স্ক্রিপ্টটি কার্যকর করতে আরও বেশি সময় নেয়।
ট্যানার

3

আপনার টুলবারের পাশের একটি ফাঁকা জায়গায় ডান ক্লিক করুন> কাস্টমাইজ উইন্ডোটি খুলুন> কমান্ড ট্যাবে ক্লিক করুন> তালিকার নীচে স্ক্রোল করুন এবং [ইউআই কন্ট্রোল] ক্লিক করুন> নতুন ইউআই কন্ট্রোল নির্বাচন করুন> আপনি যে ধরণের নিয়ন্ত্রণ চান তা নির্বাচন করুন এবং তারপরে তৈরি এবং সম্পাদনা ক্লিক করুন। এটি নতুন নিয়ন্ত্রণের জন্য ভিবিএ সম্পাদকটি খুলবে এবং আপনি নিজের কোডটি ভিতরে লিখতে পারেন এবং কোডটি কল করে এমন ইভেন্টটি সংজ্ঞায়িত করতে পারেন। ভিবিএ 10 এর সাথে নিখরচায় অন্তর্ভুক্ত করা হয়েছে তবে আপনাকে এটির জন্য লাইসেন্স ফাইলের জন্য অনুরোধ করতে হবে এবং তারপরে সেই লাইসেন্সটি নিবন্ধন করতে হবে। এর জন্য ইএসআরআই কল করুন এবং তাদের আপনাকে নিখরচায় একটি লাইসেন্স দেওয়া উচিত। 10 এর পরে এটি চলে যাবে ...

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.