mxdのコピーを作成し、定義クエリを設定し、定義クエリに基づいてデータドリブンページのセットをエクスポートするGISスクリプトツールがあります。エクスポートが完了すると、mxdコピー、いくつかの変数、および一連のデータベース接続が削除されます。
どこにいてもデータドリブンページのエクスポートをキャンセルするエスケープコードをコーディングする方法はありますか?スクリプト全体をキャンセルするのではなく、最後にジャンプしてmxdコピーなどを削除します。コードのブロックは次のようになります。この:
mxd = arcpy.mapping.MapDocument(mxd_master)
mxd_folder = os.path.dirname(mxd_master)
mxd_copy = mxd_folder + "\\WORKING.mxd"
mxd.saveACopy(mxd_copy)
mxd = arcpy.mapping.MapDocument(mxd_copy)
ddp = mxd.dataDrivenPages
for page_num in range (1, ddp.pageCount + 1):
ddp.currentPageID = page_num
row = ddp.pageRow
mapsheet = row.getValue(ddp.pageNameField.name)
arcpy.mapping.ExportToPDF(pdf export parameters....)
del mxd, mxd_master
arcpy.Delete_management(mxd_copy)
基本的に、「Q」キー(または任意のキー)を押すことができるようにしたいのですが、pdfエクスポートループが壊れ、del / Delete_managementブロックが実行されます。ツールを介してスクリプトを実行しているので、それは可能ではないと思いますが、エクスポートを早期に停止することを決定した場合、手動で削除する必要がなくなるため、そうであるかどうかを確認しました。
ArcGIS Desktop 10.4を使用しています。
4
@Maddison私はこれを試していなかったので回答を投稿しませんでしたが、ArcGISヘルプトピック「スクリプトツールでのキャンセル動作について」を参照する必要があると思います。
—
user2856 2017
質問を編集して、使用しているArcGIS Desktopのバージョンを指定してください。参照してください gis.stackexchange.com/q/172598/2856
—
user2856
リンクありがとうございました。今すぐ質問を更新します。
—
Maddison Lussin 2017