To specify a rectangular or polygonal region on the top side or the bottom side of the board, where components are either allowed in, or not allowed in.
To define a named region (area) on the board, where the named region is then used to scope other design rules. When used in this way the room simply defines an area of the board. To restrict it in other ways, such as to a specific layer, include that in the Query of the rule. There is an example of a Routing Width rule that uses this approach in the image in Tip 7, shown below.
Room Locked - allows you to lock the room in its current position within the design, preventing accidental movement either manually or by the Autoplacers. If you attempt to move the room when it has been locked, a warning dialog will appear asking whether you wish to go ahead with the move. The locked status of the room remains in force after such a manual-override movement.
Components Locked - allows you to lock the position of components arranged within, and associated to, the room. If you attempt to move a component within a room when this option is enable, the room and all components within it, will move.
Define button - enables you to define the area and location of the room. After clicking, you will return to the main design window, the cursor will change to a cross-hair and you will essentially enter room placement mode. Define the polygonal room as required and at the location required. The component membership for the room has to be defined afterwards, it is not created automatically if the room area is defined around placed components in the design.
x1 and y1 - display the coordinates for the location of the lower-left corner of the room's bounding rectangle. These fields are non-editable; if placing the room from within the PCB Rules and Constraints Editor dialog, the Define button must be used.
x2 and y2 - display the coordinates for the location of the upper-right corner of the room's bounding rectangle. These fields are non-editable; if placing the room from within the PCB Rules and Constraints Editor dialog, the Define button must be used.
Layer - defines which side of the board the room is drawn on. The objects that the room contains do not need to be on the same layer, the condition of belonging in or not belonging in the room is established by the rule Query.
Confinement Mode - specifies whether the components targeted by the scope (Full Query) of the rule are to be kept Inside the room or kept Outside of the room.
How Duplicate Rule Contentions are Resolved
All rules are obeyed.
Online DRC and Batch DRC.
A room can only be placed graphically. To position a room at a specific location, place suitable Vertical, Horizontal, or Point (Snap) Guides, and enable snapping to Guides in the Properties panel (in Board mode). Learn more about Guides and configuring the PCB Grids System.
The shape of a room can be edited graphically, or in the Properties panel when the room is selected. Click on a room to select it, then click and drag on a corner or edge vertex to resize it graphically. To edit a polygonal room, or perform polygonal-type edits on a rectangular room, use the Design » Rooms » Edit Polygonal Room Vertices command (or right-click on the room and run the command from the Room Actions sub-menu). Standard polygonal object editing techniques are used, including Shift+Spacebar to cycle through the vertex editing modes (Miter, Incurvate, Move). Keep an eye on the Status bar or Heads up display to check the current mode.
If you need a complex room shape based on precise locations, the shape can be created as an outline by placing a sequence of lines (and arcs), and then selecting and converted this outline to a room by running the Tools » Convert » Create Room from Selected Primitives command. Note that the end points of adjoining track/arc segments must coincide for this command to correctly detect the shape. Hover the cursor over the image below to see the room.
As well as defining a room by clicking the Define button in the design rule, rooms can also be created/edited using the various commands available from the Design » Rooms sub-menu. When placing a room in the design using commands from the Design » Rooms sub-menu, the room can either be placed empty and components associated at a later stage, or it can be placed around components in the design, automatically associating them to the room:
When an empty room is placed in the design, components required to be placed in the room should be grouped together by creating a specific component class (Design » Classes). A Room Definition rule will automatically be created and assigned to the room, with an initial scope (Full Query) of All. Edit this query to target the specific component class previously defined. The components can then be moved to the room by running the Tools » Component Placement » Arrange Within Room command.
By placing a room around one or more components, so that they fall completely within its boundaries, the components will automatically be associated to the room. The scope (or query) for the room's definition rule depends on whether all components are part of an existing component class or not. If they are, then this component class will be used. If not, a new component class is created, with these components as its members. It is therefore possible to have multiple rooms, each with a scope that targets a particular component class, and have one or more mutual component members between those classes.
Use the Create Room from selected components-based commands (Design » Rooms sub-menu) to automatically generate a Rectangular, Orthogonal or Non-Orthogonal shaped room, whose members are the selected components. A component class is automatically defined to include the selection. A room is then created, the Room Definition rule of which is defined to associate the created component class. The room will be sized accordingly, in order to fit all components in the selection, as defined by the limits of their bounding rectangles.
Once components have been assigned to a room they move when the room is moved. To move a room without moving the components, temporarily disable the associated Room Definition rule.
As well as being a design rule in its own right to contain or exclude components, a room can also be used to define the scope of another rule, such as Clearance, Height, Routing Width, Solder Mask Expansion, Power Plane Connections, and so on. As the room is to be used as an object rather than a rule, you can disable the rule, or set the query (rule scope) to False, as shown in the image below. The following two queries can be used when using a room object in another rules' scope definition:
TouchesRoom(RoomName) - use to find objects that are completely or partially within the room.
WithinRoom(RoomName) - use to find objects that are completely within the room.
A Room can be used as a Query for another rule by referring to it by its Name, as shown above.
Note that within the room, the routing width, the plane connection style, and the solder mask expansion have different values from the values outside of the room.