0

フローティング連結ダイナミック テキスト ボックスをマップ レイアウトに追加するアドイン ボタンを ArcMap 10.2 で作成しています。私は自分のスクリプトに苦労しており、誰かが答えてくれることを望んでいます。

これが私のコードです:

def onClick(self):
    mxd = arcpy.mapping.MapDocument("CURRENT")
    for elm in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT", " ")[0]:
        elmWidth = 4.0
        x = 100
        elm.text = 'User: <dyn type="user"/> Date: <dyn type="date" format="short"/> <Document Path: dyn type="document" property="path"/>'
        elm.fontSize = x
        while elm.elementWidth > float(elmWidth):
            elm.fontSize = x
            x = x-1
    arcpy.RefreshActiveView()
    del mxd

UnboundLocalError: local variable 'mxd' referenced before assignment および IndexError: list index out of range のエラーが発生します。

ありがとうございました。

4

1 に答える 1

0

まず、mxd レイアウトに新しいテキスト要素を追加することはできません。既存のものを変更またはコピーすることしかできません。次に、次のいずれかを記述します。

for elm in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT", " "):
   ...

また

elm = arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT", " ")[0]

これは、mxd に " " という名前のテキスト要素があることを前提としています。

于 2014-04-03T19:11:02.593 に答える