This rule specifies a rectangular region where components are either allowed in, or not allowed in.
Default constraints for the Room Definition rule.
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.
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 rectangular or 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 layer the room can be placed on.
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, Batch DRC and during autoplacement with the Cluster Placer.
As well as defining a room by clicking the Define button here in the design rule, rooms can also be created/edited using the various commands available from the Design » Rooms sub-menu.
When placing a rectangular or polygonal room in the design (using commands from the Design » Rooms sub-menu), it 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 (Room Definition), a room can also be used as an object when defining the scope of another rule, such as Clearance or Height. As the room is to be used as an object rather than a rule, you can disable the rule. 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.