亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 1509 | 回復(fù): 0
打印 上一主題 下一主題

[Linux] candence skill問(wèn)題 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2014-07-07 13:30 |只看該作者 |倒序?yàn)g覽
我有一個(gè)修正layout offgrid的skill如下
====================================
;;---------------------------------------------------------

;; Process each selected object and fix the off grid issue

;;---------------------------------------------------------

procedure( howFixOffGrid(@optional (selset geGetSelSet()))

foreach( obj selset()

howPutObjOnGrid(obj car(howSnapGetGrids()) cadr(howSnapGetGrids()) 0 0)

);foreach

);proc



;;--------------------------------------

;; Get manufacturing grid from techFile

;;;-------------------------------------

procedure( howSnapGetGrids(@optional (cv geGetEditCellView()))

let(( grids grid (dft list(0.001 0.001)) )

if( cv then

grid = techGetMfgGridResolution(techGetTechFile(cv))

grids = list(grid grid)

else

grids = dft

)

grids

);let

);proc



;;----------------------------

;; Process input obj to grid

;;----------------------------

procedure( howPutObjOnGrid(obj @optional

(gridX 0.001)

(gridY 0.001)

(offsetX 0.0)

(offsetY 0.0))

let(( changeFlag newPoints newObj)

case( obj~>objType

(("rect")

when( (newPoints = _howPutObjOnGridGtPts( obj~>bBox gridX gridY offsetX offsetY ))

obj~>bBox = newPoints

changeFlag = t

);when

)

(("stdVia")

when( (newPoints = _howPutObjOnGridGtPts( list(obj~>origin) gridX gridY offsetX offsetY ))

obj~>origin = car(newPoints)

changeFlag = t

);when

)

(("pathSeg" )

when( (newPoints = _howPutObjOnGridGtPts( list(obj~>beginPt obj~>endPt) gridX gridY offsetX offsetY )) newObj = dbCreatePathSeg(obj~>cellView obj~>lpp car(newPoints) cadr(newPoints) obj~>width

obj~>beginStyle obj~>endStyle)

newObj~>net = obj~>net

dbDeleteObject(obj)

changeFlag = t

);when

)

(("path" "polygon" "layerBlockage")

when( (newPoints = _howPutObjOnGridGtPts( obj~>points gridX gridY offsetX offsetY ))

obj~>points = newPoints

changeFlag = t

)

)

(("inst" "label" "mosaic")

when( (newPoints = _howPutObjOnGridGtPts( list(obj~>xy) gridX gridY offsetX offsetY ))

obj~>xy = car(newPoints)

changeFlag = t

)

)

(("PRBoundary")

when( (newPoints = _howPutObjOnGridGtPts( obj~>points gridX gridY offsetX offsetY ))

dbSetBoundaryEdge(obj newPoints)

changeFlag = t

)

)

);case

changeFlag

);let

);proc

;;-------------------

;; Get new points

;;-------------------

procedure( _howPutObjOnGridGtPts( pts gridX gridY offsetX offsetY )

let(( newListOfPts newPt changedFlag )

foreach( pt pts

if( (newPt = _howPutObjOnGridGtLoc( pt gridX gridY offsetX offsetY )) then

newListOfPts = cons(newPt newListOfPts)

changedFlag = t

else

newListOfPts = cons(pt newListOfPts)

);if

);foreach

if( changedFlag then

newListOfPts = reverse(newListOfPts)

else

newListOfPts = nil

)

newListOfPts

);let

);proc



;;---------------------

;; Get obj new point

;; --------------------

procedure( _howPutObjOnGridGtLoc( pt gridX gridY offsetX offsetY)

let(( newPt (factor 10000.0) compFactor tempPt )

;--------------------------------------------------------------------

; Get compare factor with smaller tolerance up to 4 decimal points

;-------------------------------------------------------------------

compFactor = 1 / factor

if( zerop(offsetX) && zerop(offsetY) then

newPt = _howPutObjOnGridRoundCor( pt gridX gridY compFactor )

when( newPt == pt newPt = nil)

else

;---------------------------------

; Substract offset before round up

;---------------------------------

tempPt = list(car(pt)-offsetX cadr(pt)-offsetY)

newPt = _howPutObjOnGridRoundCor( tempPt gridX gridY compFactor )

newPt = list(car(newPt)+offsetX cadr(newPt)+offsetY)

when( newPt == pt newPt = nil)

);if

newPt

);let

);pro



;;--------------------

;; Round coordinate

;;--------------------

procedure( _howPutObjOnGridRoundCor( point gridX gridY compFactor "gfff")

let( (x y)

x = round((xCoord(point) + compFactor) / gridX) * gridX

y = round((yCoord(point) + compFactor) / gridY) * gridY

list( x y )

);let

);proc

===============================================================
我使用之後出現(xiàn)undefine function selset,我已經(jīng)有選了可是還是無(wú)法運(yùn)作
該怎麼修改才可以選取layout之後可以運(yùn)作這skill

謝謝各位大大
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP