⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 strip_bad_fillet_props.il

📁 skill语言在Cadence平台二次开发中大量使用
💻 IL
字号:
;//////////////////////////////////////////////////////////////////////////////
;//       Cadence Design Systems
;//
;// (C) COPYRIGHT, Cadence Design Systems, Inc. 2004
;// All Rights Reserved
;// Licensed Materials - Property of Cadence Design Systems
;//
;// No part of this file may be reproduced, stored in a retrieval system,
;// or transmitted in any form or by any means --- electronic, mechanical,
;// photocopying, recording, or otherwise --- without prior written permission
;// of Cadence Design Systems, Inc.
;//
;// WARRANTY:
;// Use all material in this file at your own risk.  Cadence Design Systems
;// makes no claims about any material contained in this file.
;// 
;// NOTE: This code is unsupported.
;//
;//////////////////////////////////////////////////////////////////////////////
;//////////////////////////////////////////////////////////////////////////////
;// SKILL file - Skill command to remove fillet properties on clines that 
;//              are not actually fillets. 
;//////////////////////////////////////////////////////////////////////////////

;//////////////////////////////////////////////////////////////////////////////
;// Name: strip_bad_fillet_props()                                           //
;// Input: Nothing (whole design)                                            //
;// Output: Nothing (walks and updates design).                              //
;// Description:                                                             //
;//   Walks all the CLines in the current database and looks for clines with //
;//   the fillet property that are not likely fillets. That is, clines which //
;//   start at a T, via, or pin but are not dangling.                        //
;//////////////////////////////////////////////////////////////////////////////
procedure( strip_bad_fillet_props()
let( (fp sortList pinList success delay)

    foreach(net axlDBGetDesign()->nets
        foreach(branch net->branches
            foreach(item branch->children

                when("path" == item->objType && !strip_is_real_fillet(item)
                    axlDBDeleteProp(item list("FILLET"))
                );//when

            );//foreach
        );//foreach
    );//foreach
    
    t;

))

;//////////////////////////////////////////////////////////////////////////////
;// Name: strip_is_real_fillet()                                             //
;// Input: Cline to check                                                    //
;// Output: Whether or not it's a true fillet.                               //
;// Description:                                                             //
;//   Check to make sure a cline is a real fillet, not a cline with a        //
;//   fillet property that shouldn't be there.                               //
;//////////////////////////////////////////////////////////////////////////////
procedure( strip_is_real_fillet(cline)
let((fillet result connect1 connect2)

   when(cline->objType == "path" && 
        cline->prop->FILLET && 
        onep(cline->nSegs) && 
        (result = axlDBGetConnect(cline))

      foreach(object car(result)
         case(object->objType ("pin" || "via" || "shape" || "tee" connect1 = t));//case
      );//foreach

      foreach(object cadr(result)
         case(object->objType ("pin" || "via" || "shape" || "tee" connect2 = t));//case
      );//foreach

      fillet = (connect1 != connect2);

   );//when

   fillet
));
axlCmdRegister("fillet_check" 'strip_bad_fillet_props)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -