乐于分享
好东西不私藏

Openclaw修改布局的线元素或地图框的颜色线宽

Openclaw修改布局的线元素或地图框的颜色线宽

"""MyProject12 布局样式修改线红色(255,0,0), 1.5pt地图框边框黑色(0,0,0), 3pt"""import arcpyimport jsonAPRX_PATH = r"C:\Users\yl\Documents\ArcGIS\Projects\MyProject12\MyProject12.aprx"aprx = arcpy.mp.ArcGISProject(APRX_PATH)layout = aprx.listLayouts()[0]results = []for el in layout.listElements():    name = el.name    etype = el.typeif name == "线and etype == "GRAPHIC_ELEMENT":        cim = el.getDefinition("V2")路径: cim.graphic.symbol.symbol.symbolLayers[0]symref = cim.graphic.symbol       # CIMSymbolReferenceline_sym = symref.symbol           # CIMLineSymbolsl = line_sym.symbolLayers[0]      # CIMSolidStrokeold_color = list(sl.color.values)        old_width = sl.width        sl.color.values = [25500100]  红色 RGBAsl.width = 1.5                        # 1.5ptel.setDefinition(cim)        results.append({"元素"f"线 ({el.elementWidth:.1f} x {el.elementHeight:.1f})","类型""GRAPHIC_ELEMENT","修改前颜色"f"RGB{tuple(old_color)}","修改后颜色""RGB(255,0,0)","修改前线宽"f"{old_width}pt","修改后线宽""1.5pt"})        print(f"[OK] 线: RGB{old_color} → RGB(255,0,0), {old_width}pt → 1.5pt")elif name == "地图框and etype == "MAPFRAME_ELEMENT":        cim = el.getDefinition("V2")路径: cim.graphicFrame.borderSymbol.symbol.symbolLayers[0]gf = cim.graphicFrame        sl = gf.borderSymbol.symbol.symbolLayers[0]   # CIMSolidStrokeold_color = list(sl.color.values)        old_width = sl.width        sl.color.values = [000100]   黑色 RGBAsl.width = 3.0                       # 3ptel.setDefinition(cim)        results.append({"元素"f"地图框 ({el.elementWidth:.1f} x {el.elementHeight:.1f})","类型""MAPFRAME_ELEMENT","修改前颜色"f"RGB{tuple(old_color)}","修改后颜色""RGB(0,0,0)","修改前线宽"f"{old_width}pt","修改后线宽""3pt"})        print(f"[OK] 地图框: RGB{old_color} → RGB(0,0,0), {old_width}pt → 3pt")保存工程aprx.save()print(f"\n已保存{APRX_PATH}")输出报告print("\n"=" 60)print("修改报告")print("=" 60)for in results:    print(f"\n  元素{r['元素']}")    print(f"  类型{r['类型']}")    print(f"  颜色{r['修改前颜色']} → {r['修改后颜色']}")    print(f"  线宽{r['修改前线宽']} → {r['修改后线宽']}")print(f"\n共修改 {len(results)个元素")