<> <> <> <> DIRECTORY CD, CDBasics, CDDefaults, CDInstances, CDMarkObjects, CDOps, CDPinObjects, CDSequencer, Rope, TerminalIO; CDSymbolicObjectsCommands: CEDAR PROGRAM IMPORTS CDBasics, CDDefaults, CDInstances, CDMarkObjects, CDOps, CDPinObjects, CDSequencer, Rope, TerminalIO = BEGIN MakePin: PROC [comm: CDSequencer.Command] = BEGIN name: Rope.ROPE; r: CD.Rect = CDBasics.ToRect[comm.pos, comm.sPos]; pinInstance: CD.Instance; layer: CD.Layer _ CDDefaults.CurrentLayer[comm.design]; TerminalIO.WriteRope[Rope.Cat["Draw Pin (", CDOps.LayerName[layer], ")\n"]]; name _ TerminalIO.RequestRope[" type name of pin: "]; pinInstance _ CDPinObjects.CreatePinInstance[rect: r, lev: layer, name: name]; CDOps.IncludeInstance[comm.design, pinInstance]; END; DrawMarkComm: PROC [comm: CDSequencer.Command] = BEGIN name: Rope.ROPE; mark: CD.Instance; TerminalIO.WriteRope["draw mark object\n"]; name _ TerminalIO.RequestRope[" type name: "]; mark _ CDInstances.NewInstance[CDMarkObjects.markOb, comm.pos]; CDMarkObjects.SetMarkName[mark, name]; CDOps.IncludeInstance[comm.design, mark]; END; CDSequencer.ImplementCommand[$DrawMark, DrawMarkComm]; CDSequencer.ImplementCommand[$DrawPin, MakePin]; END.