Product Documentation
Virtuoso Layout Suite XL: Basic Editing User Guide
Product Version IC23.1, November 2023

Ruler-Related FAQs

The following are the ruler-related FAQs:

Why does the Zoom In command take a long time to refresh the layout if the layout has multiple large sized rulers?

In IC6.1.5 ISR13 and above releases, set the useTheNewMeasurementImpl environment variable to t to activate the new drawing code for the rulers. This will reduce the time to refresh.

graphic useTheNewMeasurementImpl boolean t

Or enable the variable through the cdsinit file or the CIW:

envSetVal("graphic" "useTheNewMeasurementImpl" 'boolean t)

In IC6.1.6 and above releases, the useTheNewMeasurementImpl graphic environment variable is not available and has been removed from the cdsenv file of the hierarchy. In these releases, the ruler behavior is controlled by the layout rulerImpl environment variable that is set to sting new, by default. Also, in IC6.1.6 and above releases, OA supports scratch cellviews and can creates transient rulers. A transient ruler is a ruler that cannot be saved. However, by default, persistent rulers are created in the layout editor. A persistent ruler can be saved. If you want to create transient rulers, deselect the Create Ruler as a savable object option on the General tab of the Create Ruler form.

Why does the ruler disappear from the screen when I save a design if the Save Rulers option is not selected?

You can retain rulers on the screen and not save them in the database with the help of the following SKILL code. You can load the SKILL code through the .cdsinit file or the CIW:

load "CCSrestoreRulers.il"

This SKILL code uses the global variable rulerPtListGLOBAL.

*/
/* Presave trigger for maskLayout views */
procedure(CCSgrabRulers(cv)
let((currentRulers)
if(cv~>cellViewType=="maskLayout"
     then
;; Get all the ruler ID's
    currentRulers=setof(sh cv~>markers sh~>objType=="ruler")
;; If rulers are in design then store ruler points in global list
         if(currentRulers then
              rulerPtListGLOBAL=foreach(mapcar rulerId currentRulers
                                                          rulerId~>points
                                                            )
;; Delete all the rulers
               foreach(rulerId currentRulers dbDeleteObject(rulerId))
;; If no rulers then make sure that global list is empty
                        else
                        rulerPtListGLOBAL=nil
                        )
               )
     )
) ;; Pre save proc ends
/* Postsave trigger for maskLayout views */
procedure(CCSrestoreRulers(cv)
if(cv~>cellViewType=="maskLayout" && rulerPtListGLOBAL
then
;; Stop the cellview modification counter otherwise cell will be inconsistent
dbDisableCellViewCounter(cv)
;; Recreate all the rulers from global list
foreach(rulerPt rulerPtListGLOBAL leCreateRuler(cv rulerPt))
               )
;; After creation empty the global list
rulerPtListGLOBAL=nil
;; Enable cellview modification counter for normal working
dbEnableCellViewCounter(cv)
)  ;; Post save proc ends
/* Procedure for truly saving rulers */
procedure(CCStrulySaveRulers()
dbUnregSaveTrigger('CCSgrabRulers)
)

The code ensures that rulers are not saved in the database but are displayed on the screen even if the design is saved. After loading this file, pre-save and post-save triggers are registered. These triggers work for layout views only. The SKILL code enables the saveRulers environment variable by default. This environment variable enables the Save Rulers option on the Layout Editor Options form. However, if you want to save the rulers, use the F9 bindkey. Once the Save Rulers option is selected on the Layout Editor Options form, the pre-save trigger is disabled. If you have enabled the Save Rulers option on the Layout Editor Options form, to get back to the pre-save trigger mode, use the F10 bindkey so that the pre-save trigger is registered once again.

How do I cycle through the snapping targets in the Create Ruler command?

Press the spacebar to cycle through the snapping targets in the Create Ruler and Quick Align commands.

Related Topics

Rulers


Return to top
 ⠀
X