Examples/インスタンスをセルビューから取得する

Last-modified: 2015-11-14 (土) 22:48:26

セルビューのインスタンスを得て、操作を行う。

カレントセルビューを得る

(setq cv (geGetEditCellView))
; または (setq cv (hiGetCurrentWindow)~>cellView)

セルビュー cv から、セル名が "SC_NAND3_NF8" であるインスタンスを取得する

(setq nand38s (setof i cv~>instances (equal "SC_NAND3_NF8" i~>cellName)))

セルビュー cv から、インスタンス名が "IDATABUF" で始まるインスタンスを取得する

(setq dataBuffers (setof i cv~>instances (rexMatchp "^IDATABUF" i~>name)))

セルビュー cv から、X座標値が 0.12 未満であるラベルを取得する

(setq leftLabels (setof s cv~>shapes (and (equal s~>objType "label") (lessp (car s~>xy) 0.12))))

セルビュー cv 中にあるラベルで、ラベル名が "VDDA" または "VSSA" であるもののラベル名の末尾にコロン ":" を追加する

(foreach powerLabel (setof s cv~>shapes (and (equal s~>objType "label") (member s~>theLabel '("VDDA" "VSSA"))))
  (powerLabel~>theLabel = (strcat powerLabel~>theLabel ":"))
)

セルビュー cv 中にあるパスまたはパスセグで 幅が 1.50 であるものの幅を 1.52 に変更する

(foreach powerLine (setof s cv~>shapes (member s~>objType '("path" "pathSeg")))
  (when (eqv s~>width 1.50)
    (powerLine~>width = 1.52)
  )
)

インスタンスinstの位置を (2.0, 3.0) に変更する

(inst~>xy = 2.0:3.0)
; または (dbSetq inst 2.0:3.0 xy)
; または (dbSet inst 2.0:3.0 "xy")

インスタンスinstの回転を行う

(inst~>orient = "R90")
; または (dbSetq inst "R90" orient)
; または (dbSet inst "R90" "orient")

参考: 回転角の定数

定数意味
"R0"ライブラリにおけるインスタンス定義そのままの配置
"R90"ライブラリにおけるインスタンス定義を反時計回りに 90°回転させた配置
"R180"ライブラリにおけるインスタンス定義を反時計回りに 180°回転させた配置
"R270"ライブラリにおけるインスタンス定義を反時計回りに 180°回転させた配置
"MX"ライブラリにおけるインスタンス定義をX軸反転した配置
"MXR90"ライブラリにおけるインスタンス定義をX軸反転し、さらに90°回転させた配置
"MY"ライブラリにおけるインスタンス定義をY軸反転した配置
"MYR90"ライブラリにおけるインスタンス定義をY軸反転し、さらに90°回転させた配置