• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC SKILL
  3. how to display the coordinates at mouse, or display *+coord...

Stats

  • Replies 2
  • Subscribers 142
  • Views 739
  • Members are here 0

how to display the coordinates at mouse, or display *+coord(x,y)

FormerMember
FormerMember 5 months ago

hi,all

I want to display this coordinates,as picture

This method can more conveniently mark the problematic areas, making it easier for me to send the location to my partners

I try to use hiGetCommandPoint() or other function,But none of them can fulfill this requirement. only display in CIW.can not display in layout window.

so I need this code.thank you all. best wishes.

  • Sign in to reply
  • Cancel
  • Andrew Beckett
    Andrew Beckett 5 months ago

    This is not a persistent marker, but you can add to the current window (it doesn't save in the database) and then create screenshots, for example. It wasn't clear what you wanted:

    /* CCFaddCoordHilight.ils
    
    Author     A.D.Beckett
    Group      Custom IC (UK), Cadence Design Systems Ltd.
    Language   SKILL
    Date        
    Modified   
    By         
    
    Functions for creating hilights on the layout to mark a given
    coordinate. See the comments above each function to understand
    how each function works.
    
    ***************************************************
    
    SCCS Info: @(#) CCFaddCoordHilight.ils 03/14/25.15:14:37 1.1
    
    */
    
    ;------------------------------------------------------------------------
    ; Add a cross and a label at the given point. Keyword arguments can
    ; control the size and appearance of the hilight. Returns the drawn
    ; hilights as a group - this can then be passed to CCFdeleteCoordHilight
    ; to delete the object.
    ;------------------------------------------------------------------------
    procedure(CCFaddCoordHilight(point @key (winId hiGetCurrentWindow()) 
            (lpp "y0") (crossSize 0.2) (fontSize 0.2) (font "stick") 
            (justify "lowerLeft"))
        let((hs (cv geGetEditCellView(winId)) (diagOff 0.7*crossSize))
            hs=winId~>coordHilightSet || geCreateHilightSet(cv lpp)
            winId~>coordHilightSet=hs
            hs~>enable=t
            destructuringBind((x y) point
                geCreateHilightGroup(
                    hs
                    list(
                        geAddHilightLine(hs list(x:y+crossSize x:y-crossSize))
                        geAddHilightLine(hs list(x-crossSize:y x+crossSize:y))
                        geAddHilightLine(hs list(x-diagOff:y-diagOff x+diagOff:y+diagOff))
                        geAddHilightLine(hs list(x-diagOff:y+diagOff x+diagOff:y-diagOff))
                        geAddHilightLabel(hs 
                            x+diagOff:y
                            lsprintf("(%g,%g)" x y)
                            justify
                            "R0"
                            font
                            fontSize
                            t
                        )
                    )
                )
            )
        )
    )
    
    ;------------------------------------------------------------------------
    ; Either delete an individual hilight (as returned by CCFaddCoordHilight) or
    ; if passed t, will delete all of them
    ;------------------------------------------------------------------------
    procedure(CCFdeleteCoordHilight(coordHilight @key (winId hiGetCurrentWindow()))
        cond(
            (coordHilight==t
                foreach(group winId~>coordHilightSet~>groups
                    geDeleteHilightGroup(group t)
                )
                t
            )
            (geIsValidHilightGroup(coordHilight)
                geDeleteHilightGroup(coordHilight t)
            )
        )
    )
    
    ;------------------------------------------------------------------------
    ; Callback function for CCFhiAddCoordHilight. Add keyword arguments
    ; if you want to alter the appearance (could have created an options form
    ; but didn't want to spend that much time on it!)
    ;------------------------------------------------------------------------
    procedure(CCFhiAddCoordHilightCB(winId done pts)
        when(done
            CCFaddCoordHilight(car(pts) ?winId winId)
        )
    )
    
    ;------------------------------------------------------------------------
    ; Example of prompting the user to enter a coordinate hilight
    ;------------------------------------------------------------------------
    procedure(CCFhiAddCoordHilight()
        enterPoint(
            ?prompts list("Enter location of coordinate hilight")
            ?doneProc "CCFhiAddCoordHilightCB"
        )
    )

    Here's what it looks like:

    If you want it persistently saved in the cellView, you could create a figGroup with dbCreateFigGroup, and then use dbCreateLine and dbCreateLabel inside, instead of using the ge.*Hilight functions that I've used here. I'll leave that as an exercise for you...

    Andrew

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • FormerMember
    FormerMember 5 months ago in reply to Andrew Beckett

    Thank you very much for your answer
    You're right, I just want this effect
    My idea is to make a temporary mark (including coordinates), like a ruler, so that when I don't need it, I can shift+k and delete it.
    I need this effect to have a purpose, for example, if there is a DRC error in this area, then I can send it to my partner through this method for him to modify.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information