You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:如何在另一版图中保存带标签/引脚/名称的标记网络

解决leSaveMarkNet丢失网络名、引脚名的问题

默认的leSaveMarkNet()函数仅会保存版图的几何图形信息,不会自动携带网络名、引脚名这类附加属性。要保留这些信息,需要手动提取源网络的属性,再在保存后的目标版图中恢复。

具体实现步骤及代码:

  1. 提取源版图中标记网络的属性
    先获取当前标记的网络对象,提取所需的属性(网络名、引脚名、标签文本等)并暂存:

    ; 获取所有标记的网络对象
    setq markedNets (leGetMarkedObjects)
    setq netPropertyList nil
    
    ; 遍历标记网络,提取属性和对象路径
    foreach net markedNets
        setq currNetName (geGetObjProp net "netName")
        setq currPinName (geGetObjProp net "pinName")
        setq currLabel (geGetObjProp net "labelText")
        setq objPath (geGetObjPath net)
        lappend netPropertyList (list currNetName currPinName currLabel objPath)
    )
    
  2. 保存标记网络到目标库视图
    执行原有的保存命令:

    leSaveMarkNet("nand2_1x_hv" ?libName "TestLib2" ?viewName "layout_MN")
    
  3. 在目标版图中恢复属性
    打开目标版图,根据之前记录的对象路径找到对应图形,重新赋值属性:

    ; 打开目标版图视图
    leOpenView("TestLib2" "layout_MN" "layout")
    
    ; 遍历属性列表,为目标网络恢复属性
    foreach prop netPropertyList
        setq targetNet (geGetObjByPath (nth 3 prop))
        if targetNet then
            geSetObjProp targetNet "netName" (nth 0 prop)
            geSetObjProp targetNet "pinName" (nth 1 prop)
            geSetObjProp targetNet "labelText" (nth 2 prop)
        endif
    )
    
    ; 保存修改后的目标版图
    leSaveView()
    

注意事项:

  • 不同项目的属性键名可能有差异,若上述属性名不生效,可使用geGetAllObjProps(net)查看目标网络的所有属性键,替换成实际使用的名称。
  • 执行代码时需确保:第一步在源版图中运行,第三步切换到目标版图后运行。

内容的提问来源于stack exchange,提问作者Parthapratim Baishya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 09:22:39