• 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 Design
  3. How to zoom to a particular location in layout editor(IC5141...

Stats

  • Locked Locked
  • Replies 7
  • Subscribers 126
  • Views 6057
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

How to zoom to a particular location in layout editor(IC5141) by giving co-oridinates

RFStuff
RFStuff over 11 years ago

 Dear All,

I want to ZOOM IN to a particular location by giving (x,y) co-ordinate in virtuso layout editor.

Could any body please tell how it can be achieved,

Kind Regards,

  • Cancel
Parents
  • Andrew Beckett
    Andrew Beckett over 11 years ago

    And in IC616 you can hit shift-N and type in the coordinates in a popup.

    In older versions, I used to use this kind of code (because it was more convenient than typing in the CIW):

    /* abPanPoint.il
    
    Author     A.D.Beckett
    Group      Structured Custom, Cadence Design Systems Ltd
    Machine    SUN
    By         A.D.Beckett
    
    Pan to typed in coordinate or move cursor to typed in coordinates.
    
    There are two public functions:
    
    abPanPoint()
    abCursorPoint()
    
    ***************************************************
    
    SCCS Info: @(#) abPanPoint.il 11/20/08.15:26:18 1.4
    
    */
    
    
    /***************************************************************
    *                                                              *
    *                    (abCreatePanPointForm)                    *
    *                                                              *
    *                Create the form for abPanPoint                *
    *                                                              *
    ***************************************************************/
    
    (procedure (abCreatePanPointForm)
      (let (coords zoomLevel)
           (setq coords 
    	     (hiCreatePointField
    	      ?name 'coords
    	      ?prompt "Coordinates"))
           (setq zoomLevel
    	     (hiCreateRadioField
    	      ?name 'zoomLevel
    	      ?choices '("As is" "10" "100" "1000")
    	      ?prompt "Zoom Level"))
           (setq abPanPointForm
    	     (hiCreateAppForm
    	      ?name 'abPanPointForm
    	      ?formTitle "Pan to coordinate"
    	      ?callback 'abPanPointCB
    	      ?fields (list
    		       (list coords 0:0 320:35 105)
    		       (list zoomLevel 0:35 320:35 105))
    	      ))
           ))
    
    /***************************************************************
    *                                                              *
    *                     (abPanPointCB form)                      *
    *                                                              *
    *                   Callback for abPanPoint                    *
    *                                                              *
    ***************************************************************/
    
    (procedure (abPanPointCB form)
      (let (win centre zoomLevel scaleFactor)
           (setq win (hiGetCurrentWindow))
           (setq centre (getq (getq form coords) value))
           /* scale the coordinates by the scaleFactor stored on the form */
           (when (setq scaleFactor (getq form scaleFactor))
    	     (setq centre (list
    			   (times (xCoord centre) scaleFactor)
    			   (times (yCoord centre) scaleFactor))))
           (if (equal (getq (getq form zoomLevel) value) "As is")
    	   /* pan to coordinates */
    	   (hiPan win centre)
    	   (progn
    	    /* otherwise zoom, using zoom level */
    	    (setq zoomLevel (quotient (atof (getq (getq form zoomLevel) value)) 2))
    	    (hiZoomIn win 
    		      (list
    		       (list (difference (car centre) zoomLevel)
    			     (difference (cadr centre) zoomLevel))
    		       (list (plus (car centre) zoomLevel)
    			     (plus (cadr centre) zoomLevel))))
    	    ))
           t))
    
    
    /***************************************************************
    *                                                              *
    *              (abPanPoint @optional scaleFactor)              *
    *                                                              *
    * Create and bring up the form, with an optional scale factor  *
    *               to multiply the coordinates by.                *
    *                                                              *
    ***************************************************************/
    
    (procedure (abPanPoint @optional scaleFactor)
      (unless (and (boundp 'abPanPointForm) abPanPointForm)
    	  (abCreatePanPointForm))
      (putpropq abPanPointForm scaleFactor scaleFactor)
      (hiDisplayForm abPanPointForm))
    
    /***************************************************************
    *                                                              *
    *                  (abCreateCursorPointForm)                   *
    *                                                              *
    * Create the form for the user to specify the cursor position  *
    *                                                              *
    ***************************************************************/
    
    (procedure (abCreateCursorPointForm)
      (let (coords)
           (setq coords 
    	     (hiCreatePointField
    	      ?name 'coords
    	      ?prompt "Coordinates"))
           (setq abCursorPointForm
    	     (hiCreateAppForm
    	      ?name 'abCursorPointForm
    	      ?formTitle "Move cursor to coordinate"
    	      ?callback 'abCursorPointCB
    	      ?fields (list
    		       (list coords 0:0 320:35 105)
    		       )
    	      ))
           ))
    
    /***************************************************************
    *                                                              *
    *                    (abCursorPointCB form)                    *
    *                                                              *
    *    Callback for the cursor point form. Actually moves the    *
    *                   cursor to that location.                   *
    *                                                              *
    ***************************************************************/
    
    (procedure (abCursorPointCB form)
      (let (win)
           (setq win (hiGetCurrentWindow))
           (when form->coords->value
    	     (leZoomToPoint win form->coords->value)
    	     )
           t
           )
      )
    
    /***************************************************************
    *                                                              *
    *                       (abCursorPoint)                        *
    *                                                              *
    *    Create and bring up the form to move the cursor to the    *
    *                       specified point                        *
    *                                                              *
    ***************************************************************/
    
    (procedure (abCursorPoint)
      (unless (and (boundp 'abCursorPointForm) abCursorPointForm)
    	  (abCreateCursorPointForm))
      (hiDisplayForm abCursorPointForm))

     

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 11 years ago

    And in IC616 you can hit shift-N and type in the coordinates in a popup.

    In older versions, I used to use this kind of code (because it was more convenient than typing in the CIW):

    /* abPanPoint.il
    
    Author     A.D.Beckett
    Group      Structured Custom, Cadence Design Systems Ltd
    Machine    SUN
    By         A.D.Beckett
    
    Pan to typed in coordinate or move cursor to typed in coordinates.
    
    There are two public functions:
    
    abPanPoint()
    abCursorPoint()
    
    ***************************************************
    
    SCCS Info: @(#) abPanPoint.il 11/20/08.15:26:18 1.4
    
    */
    
    
    /***************************************************************
    *                                                              *
    *                    (abCreatePanPointForm)                    *
    *                                                              *
    *                Create the form for abPanPoint                *
    *                                                              *
    ***************************************************************/
    
    (procedure (abCreatePanPointForm)
      (let (coords zoomLevel)
           (setq coords 
    	     (hiCreatePointField
    	      ?name 'coords
    	      ?prompt "Coordinates"))
           (setq zoomLevel
    	     (hiCreateRadioField
    	      ?name 'zoomLevel
    	      ?choices '("As is" "10" "100" "1000")
    	      ?prompt "Zoom Level"))
           (setq abPanPointForm
    	     (hiCreateAppForm
    	      ?name 'abPanPointForm
    	      ?formTitle "Pan to coordinate"
    	      ?callback 'abPanPointCB
    	      ?fields (list
    		       (list coords 0:0 320:35 105)
    		       (list zoomLevel 0:35 320:35 105))
    	      ))
           ))
    
    /***************************************************************
    *                                                              *
    *                     (abPanPointCB form)                      *
    *                                                              *
    *                   Callback for abPanPoint                    *
    *                                                              *
    ***************************************************************/
    
    (procedure (abPanPointCB form)
      (let (win centre zoomLevel scaleFactor)
           (setq win (hiGetCurrentWindow))
           (setq centre (getq (getq form coords) value))
           /* scale the coordinates by the scaleFactor stored on the form */
           (when (setq scaleFactor (getq form scaleFactor))
    	     (setq centre (list
    			   (times (xCoord centre) scaleFactor)
    			   (times (yCoord centre) scaleFactor))))
           (if (equal (getq (getq form zoomLevel) value) "As is")
    	   /* pan to coordinates */
    	   (hiPan win centre)
    	   (progn
    	    /* otherwise zoom, using zoom level */
    	    (setq zoomLevel (quotient (atof (getq (getq form zoomLevel) value)) 2))
    	    (hiZoomIn win 
    		      (list
    		       (list (difference (car centre) zoomLevel)
    			     (difference (cadr centre) zoomLevel))
    		       (list (plus (car centre) zoomLevel)
    			     (plus (cadr centre) zoomLevel))))
    	    ))
           t))
    
    
    /***************************************************************
    *                                                              *
    *              (abPanPoint @optional scaleFactor)              *
    *                                                              *
    * Create and bring up the form, with an optional scale factor  *
    *               to multiply the coordinates by.                *
    *                                                              *
    ***************************************************************/
    
    (procedure (abPanPoint @optional scaleFactor)
      (unless (and (boundp 'abPanPointForm) abPanPointForm)
    	  (abCreatePanPointForm))
      (putpropq abPanPointForm scaleFactor scaleFactor)
      (hiDisplayForm abPanPointForm))
    
    /***************************************************************
    *                                                              *
    *                  (abCreateCursorPointForm)                   *
    *                                                              *
    * Create the form for the user to specify the cursor position  *
    *                                                              *
    ***************************************************************/
    
    (procedure (abCreateCursorPointForm)
      (let (coords)
           (setq coords 
    	     (hiCreatePointField
    	      ?name 'coords
    	      ?prompt "Coordinates"))
           (setq abCursorPointForm
    	     (hiCreateAppForm
    	      ?name 'abCursorPointForm
    	      ?formTitle "Move cursor to coordinate"
    	      ?callback 'abCursorPointCB
    	      ?fields (list
    		       (list coords 0:0 320:35 105)
    		       )
    	      ))
           ))
    
    /***************************************************************
    *                                                              *
    *                    (abCursorPointCB form)                    *
    *                                                              *
    *    Callback for the cursor point form. Actually moves the    *
    *                   cursor to that location.                   *
    *                                                              *
    ***************************************************************/
    
    (procedure (abCursorPointCB form)
      (let (win)
           (setq win (hiGetCurrentWindow))
           (when form->coords->value
    	     (leZoomToPoint win form->coords->value)
    	     )
           t
           )
      )
    
    /***************************************************************
    *                                                              *
    *                       (abCursorPoint)                        *
    *                                                              *
    *    Create and bring up the form to move the cursor to the    *
    *                       specified point                        *
    *                                                              *
    ***************************************************************/
    
    (procedure (abCursorPoint)
      (unless (and (boundp 'abCursorPointForm) abCursorPointForm)
    	  (abCreateCursorPointForm))
      (hiDisplayForm abCursorPointForm))

     

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

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