স্ক্রিপ্ট সরঞ্জামের চেয়ে পাইথন স্ক্রিপ্টকে কমান্ড হিসাবে কল করা বাটন তৈরি করা?


12

আমি বিশ্বাস করি যে Arc9.3 এ, ভিবিএ স্ক্রিপ্ট ব্যবহার করে কমান্ড তৈরি করা যেতে পারে। একটি কাস্টম কমান্ড যুক্ত করতে, আপনি কাস্টমাইজ> টুলবার> কাস্টমাইজ করুন ... এবং ইউআইসিএনট্রোলগুলিতে ক্লিক করুন। তবে, ইউআইসিএন্ট্রোলগুলি 10 সংস্করণে নেই।

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

আমি কীভাবে এটি তৈরি করতে পারি যাতে স্ক্রিপ্টটিকে একটি "সরঞ্জাম" হিসাবে বিবেচনা করা হয় না এবং পরিবর্তে সেভ বোতামের অনুরূপ একটি কমান্ড হয়?

উত্তর:


6

এক্সেল ভিবিএ ম্যাক্রোর মধ্যে নীচে একটি পাইথন স্ক্রিপ্ট কল করে test.py:

Sub test()

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

End Sub

(আসল উত্স এখানে ) আমি কীভাবে একটি আর্কজিআইএস ভিবিএ মডিউলটি চালাতে পারি তা ভুলে গিয়েছি তবে সম্ভবত একটি অনুরূপ লাইন আপনার পাইথন স্ক্রিপ্টটি কল করতে কাজ করবে।


আর একটি কৌশল যা কাজ করতে পারে তা হ'ল আপনার পাইথন স্ক্রিপ্টকে একটি এক্সিকিউটেবল (.exe) বা ব্যাচ ফাইল (.bat) তে সংকলন করে এটিকে কল করতে পারেন।


আমি gis.se এ আরও একটি উত্তর দেখেছি যা আরও মার্জিত:

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

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