【tcl】生成圆形的方法

proc rads {a} {
	return [expr $a*0.01745329252]  ;## pi/180
}

proc circle {x y r} {
	set coords ""
	set points 720
	set delta [expr 360.0/$points]
	for {set i 0} {$i<=$points} {incr r} {
		set xx [expr cos([rads $i*$delta])*$r]
		set yy [expr cos([rads $i*$delta])*$r]
		lappend coords "[expr $x+$xx] [expr $y+$yy]"
	}
	return $coords
}

set bumps [get_db bumps] ;## innovus stylus中get到所有bump

foreach bump $bumps {
	set centerx [get_db $bump .center.x]
	set centery [get_db $bump .center.y]
	set bump_r [expr [get_db $bump .bbox.dx]/2.0]
	create_route_blockage -name RV_rblkg -layer RV -polygon "[circle $centerx $centery [expr $bump_r+10]]" ;## 在bump上创建一个更大的routing blockage,防止RV孔打在bump上,防止RV.S.5/RV.S.7 DRC产生
}

参考资料:
https://wiki.tcl-lang.org/page/Creating+Circles+and+Arcs+in+the+Gnocl+Canvas

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值