DIRECTORY CD, CDDirectory, Rope; CDExtras: CEDAR DEFINITIONS = BEGIN CreateDummyObject: PROC[design: CD.Design] RETURNS [CD.Object]; EnumerateChildrenObjects: PROC [me: CD.Object, p: CDDirectory.EnumerateObjectsProc, x: REF]; EnumerateDesignObjects: PROC [design: CD.Design, p: CDDirectory.EnumerateObjectsProc, x: REF]; BoundingBox: PROC [design: CD.Design] RETURNS [CD.Rect]; SelectedBox: PROC [design: CD.Design] RETURNS [CD.Rect]; PushedCellName: PROC [design: CD.Design] RETURNS [Rope.ROPE]; RemoveProperties: PROC [design: CD.Design, key: REF]; ToLambda: PROC [n: CD.Number, lambda: CD.Number_1] RETURNS [Rope.ROPE]; PopToTopLevel: PROC [design: CD.Design]; Cellize: PROC [design: CD.Design, name: Rope.ROPE_NIL] RETURNS [cell: CD.Object_NIL, pos: CD.Position]; ToRope: PROC [x: REF, whenFailed: REF_NIL] RETURNS [Rope.ROPE]; GetTechnology: PROC [name: Rope.ROPE] RETURNS [CD.Technology]; END. HCDExtras.mesa (part of ChipNDale) Copyright c 1983, 1984 by Xerox Corporation. All rights reserved. by Ch. Jacobi, October 24, 1983 11:48 am last edited by Ch. Jacobi, October 7, 1985 10:57:31 am PDT This module contains procedures which I think could be of general use but are not used by my own code. Therefore: Each use of these procedure should be reported to me, so I can see their value. Sometimes the procedures are not too good tested. This module contains further procedures which are not yet put into the right module; The procedures might change their module without further notifications. --create a dummy cell object which contains the whole design. --On future changes of the design, the dummy object may or may not --get obsolete. --the cell object is NOT put into any cell library --enumerate me and its children objects --enumerate all objects in directory of design --bounding box of whole design --empty for empty design --bounding box over all selected instances --empty if no selection --tries to remove the propertiy "key" from all objects of "design"; --may be delayed or incomplete --(only from objects, not instances...) --if "design" is pushed in, it will be popped out, either by flushing, --replacing cells or creating new cells --makes a single "cell" of of the "design", removes all instances; --pos: if "cell" is included at position "pos" in an empty design we would get "design" again --if "design" is pushed in, it will be popped out, either by flushing, --replacing cells or creating new cells --far more friendly version of CD.GetTechnology --NIL if not found Κœ˜codešœ"™"Kšœ Οmœ7™BKšœ(™(Kšœ:™:—K˜šΟk ˜ Kšžœ˜—K˜KšΠlnœžœž œ˜Kšžœ˜K˜Kšœτ™τšœœ™œK˜—K˜š Οnœžœ žœ žœžœ ˜?Kšœ=™=KšœB™BKšœ™Kšœ2™2K˜—š œžœžœ1žœ˜\Kšœ'™'K˜—š œžœ žœ1žœ˜^Kšœ.™.K˜K˜—š   œžœ žœ žœžœ˜8Kšœ™Kšœ™K˜—š   œžœ žœ žœžœ˜8Kšœ*™*Kšœ™K˜K˜—š  œžœ žœ žœžœ˜=K˜—š œžœ žœžœ˜5KšœC™CKšœ™Kšœ'™'K˜—š  œžœžœžœ žœžœ˜GK˜—š  œžœ žœž˜(KšœG™GKšœ'™'K˜—š œžœ žœžœžœžœžœžœžœ ˜gKšœC™CKšœ]™]KšœG™GKšœ'™'K˜—š œžœžœžœžœžœžœ˜?K˜—š   œžœ žœžœžœ ˜>Kšœ/™/Kšœ™—K˜Kšžœ˜K˜—…—œ €