ทำปุ่มที่เรียกว่าสคริปต์ Python เป็นคำสั่งมากกว่าเครื่องมือสคริปต์หรือไม่


12

ฉันเชื่อว่าใน Arc9.3 สามารถสร้างคำสั่งโดยใช้สคริปต์ VBA ในการเพิ่มคำสั่งที่กำหนดเองคุณจะไปที่การปรับแต่ง> แถบเครื่องมือ> ปรับแต่ง ... และคลิก UIControls อย่างไรก็ตาม UIControls ไม่มีอยู่ในรุ่น 10

ฉันกำลังสร้างสคริปต์แยกกันสองรายการสำหรับโครงการแผนที่หนังสือ หนึ่งสคริปต์จะบันทึกการตั้งค่าเค้าโครงลงในตารางและอีกหนึ่งสคริปต์จะอัปเดตเค้าโครงด้วยการตั้งค่าจากตารางเดียวกัน ฉันต้องการให้สคริปต์ทั้งสองนี้เป็นคำสั่งที่กำหนดให้กับปุ่มในแถบเครื่องมือ ฉันสร้างมันเป็นเครื่องมือสคริปต์ แต่เมื่อใดก็ตามที่ฉันคลิกพวกเขาจะเรียกใช้สคริปต์เป็นเครื่องมือประมวลผลทางภูมิศาสตร์ มันแสดงหน้าต่างความคืบหน้าและใช้เวลาดำเนินการนานกว่าประมาณ 10 เท่ากว่าถ้าฉันเรียกใช้รหัสในหน้าต่างบรรทัดคำสั่ง Python ฉันไม่ต้องการหน้าต่างความคืบหน้าหรือเวลาดำเนินการนานขึ้น

ฉันจะสร้างมันขึ้นมาเพื่อที่สคริปต์จะไม่ถือว่าเป็น "เครื่องมือ" และแทนที่จะเป็นคำสั่งที่คล้ายกับปุ่มบันทึก

คำตอบ:


6

ภายในแมโคร Excel VBA รายการต่อไปนี้เรียกสคริปต์ Python ที่เรียกว่าtest.py:

Sub test()

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

End Sub

(ที่มาดั้งเดิมที่นี่ ) ฉันลืมวิธีเรียกใช้โมดูล ArcGIS VBA แต่บางทีบรรทัดที่คล้ายกันอาจใช้เรียกสคริปต์ไพ ธ อนของคุณได้


กลยุทธ์อื่นที่อาจใช้งานได้คือการรวบรวมสคริปต์ไพ ธ อนของคุณไปยังไฟล์ปฏิบัติการ (.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.