抓VSS坐标脚本

set net VSS
set point_type "down"
set gnd_i 0
redirect ../scr/$net.loc {}
redirect ../scr/$net.loc {
    foreach shape [dbGet selected.net.name $net -p2] {
        set llx [dbGet $shape.box_llx]
        set lly [dbGet $shape.box_lly]
        set urx [dbGet $shape.box_urx]
        set ury [dbGet $shape.box_ury]
        
        switch $point_type {
            "left" {
                set x $llx
                set y [expr ($lly + $ury)/2.0]
            }
            "right" {
                set x $urx
                set y [expr ($lly + $ury)/2.0]
            }
            "up" {
                set x [expr ($llx + $urx)/2.0]
                set y $ury
            }
            "down" {
                set x [expr ($llx + $urx)/2.0]
                set y $lly
            }
            "center" {
                set x [expr ($llx + $urx)/2.0]
                set y [expr ($lly + $ury)/2.0]
            }
            default {
                set x $llx
                set y [expr ($lly + $ury)/2.0]
            }
        }
        
        echo "${net}_$gnd_i $x $y [dbGet $shape.layer.name]"
        incr gnd_i
    }
}
deselectAll
posted @ 2025-11-28 13:57  心随鸥鹭齐舒羽  阅读(2)  评论(0)    收藏  举报