布局布线和时序分析
笔记本


2024-04-21 11:05:54一种修复PM的方法走来走去223.167.127.248

change_selection

set j_rule_name PM.C6.C.21

foreach obj [ get_attr [get_drc_errors -error_data [get_drc_error_data ] -filter "type_name == $j_rule_name"  ] bbox ] {

    set llx [lindex [lindex $obj 0 ] 0 ]
    set lly [lindex [lindex $obj 0 ] 1 ]
    set rrx [lindex [lindex $obj 1 ] 0 ]
    set rry [lindex [lindex $obj 1 ] 1 ]

    set sllx_left [expr $llx - 0.16 ]
    set sllx_right [expr $llx + 0.16 ]
    set slly [expr $lly - 0.001 ]
    set srrx_left [expr $rrx - 0.16 ]
    set srrx_right [expr $rrx + 0.16 ]
    set srry [expr $rry + 0.001 ]

	set sx_center_left [expr ($sllx_left+$srrx_left)/2 ]
	set sx_center_left2 [expr $sx_center_left - 0.08 ]
	set sx_center_right [expr ($sllx_right+$srrx_right)/2 ]
	set sx_center_right2 [expr $sx_center_right + 0.08 ]
	set sy_center [expr ($slly+$srry)/2 ]

    set sbbox_left [list "$sllx_left $slly" "$srrx_left $srry" ]
    set sbbox_right [list "$sllx_right $slly" "$srrx_right $srry" ]

	if { [get_shapes -intersect " $sbbox_left " -filter { is_vertical && layer_name == C6 } ] != "" } {
		set j_msg "change_selection \[get_shapes -intersect \{ $sbbox_left \} -filter \{ is_vertical && layer_name == C6 \} \]"
		puts $j_msg
		eval $j_msg

		set j_msg " \
			gui_mouse_tool -window [gui_get_current_window -types Layout -mru] -start StretchConnectedTool ; \
			gui_mouse_tool -window [gui_get_current_window -types Layout -mru] -add_point \{ $sx_center_left $sy_center \} -scale 0.0004 ; \
			gui_mouse_tool -window [gui_get_current_window -types Layout -mru] -add_point \{ $sx_center_left2 $sy_center \} -scale 0.0004 ; \
			gui_mouse_tool -window [gui_get_current_window -types Layout -mru] -reset \
		"
		puts $j_msg
		eval $j_msg
	}
	if { [get_shapes -intersect " $sbbox_right " -filter { is_vertical && layer_name == C6 } ] != "" } {
		set j_msg "change_selection \[get_shapes -intersect \{ $sbbox_right \} -filter \{ is_vertical && layer_name == C6 \} \]"
		puts $j_msg
		eval $j_msg

		set j_msg " \
			gui_mouse_tool -window [gui_get_current_window -types Layout -mru] -start StretchConnectedTool ; \
			gui_mouse_tool -window [gui_get_current_window -types Layout -mru] -add_point \{ $sx_center_right $sy_center \} -scale 0.0004 ; \
			gui_mouse_tool -window [gui_get_current_window -types Layout -mru] -add_point \{ $sx_center_right2 $sy_center \} -scale 0.0004 ; \
			gui_mouse_tool -window [gui_get_current_window -types Layout -mru] -reset \
		"
		puts $j_msg
		eval $j_msg
	}
}



回到首页时钟 , 联系信箱:yzbox#163.com(把#换成@) 粤ICP备18155639号