ルームを使ってエリアごとにデザインルールを設定
![ルームを使ってエリアごとにデザインルールを設定](jpg/%e3%83%ab%e3%83%bc%e3%83%a0%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e3%82%a8%e3%83%aa%e3%82%a2%e3%81%94%e3%81%a8%e3%81%ab%e3%83%87%e3%82%b6%e3%82%a4%e3%83%b3%e3%83%ab%e3%83%bc%e3%83%ab%e3%82%92%e8%a8%ad%e5%ae%9a-72663.jpg)
電子機器の小型化に伴い、一枚の基板上に複数のテクノロジが混在する場合が増えてきています。例えば、デジタル回路とアナログ回路が混在していたり、電源回路が含まれていたりします。
これらには、それぞれ異なった設計上の制約があり、個別にデザインルールを設定しなくてはなりません。そこで役立つのがAltium Designerのルームです。ルームは、デザインルールのスコープとして利用できるので、いろいろな種類の回路が混在するような場合にも、各エリアをルームで囲む事により、それぞれの制約条件を満たすデザインルールを設定する事ができます。
ルームの作成
マルチシートの回路図では、シートごとにルームが自動生成されます。しかし、基板上でエリア指定を行う場合には通常、このルームを使用せず手作業で作成します。
ルームを作成する為のコマンドは、[デザイン] - [ルーム] メニューに用意されており、新規に作成するだけでなく分割などの編集や移動が可能です。このルームの作成と編集については、「ルームをより有効に活用する」で解説していますので、まだご覧になっていない場合にはこちらを先にご覧ください。
![図1. ルームの作成と編集の為のコマンド](png/%e5%9b%b31.%20%e3%83%ab%e3%83%bc%e3%83%a0%e3%81%ae%e4%bd%9c%e6%88%90%e3%81%a8%e7%b7%a8%e9%9b%86%e3%81%ae%e7%82%ba%e3%81%ae%e3%82%b3%e3%83%9e%e3%83%b3%e3%83%88%e3%82%99.png)
ルームは様々なデザインルールで使用できる
以前の記事、「ルームをより有効に活用する」では、ルームで囲んだエリアに [Width] ルールを設定し、ネックダウンを自動的に行う例を紹介しましたが、それ以外にもいろいろなデザインルールで利用する事ができます。
ルームで部品の配置禁止領域を指定する
どのような基板でも、部品の実装に使えないエリアが必ずあり、この禁止体の指定にもルームが使用できます。
これを行う場合は、まず、[デザイン] - [ルーム] メニューに用意されているコマンドを使って、対象エリアをルームで囲みます。そして、このルームに対して次の設定を行います。
- 配置したルームをダブルクリックすると、[Edit Room Definition] ダイアログボックスが表示されます。まず、この画面で、名称を適切なものに変えます。すべてのコンポーネントに対してこのエリアへの配置を禁止するために、[Where The First … ] を [All] にします。
- 制約条件の一番下のオプションを [Keep Objects Outside] に設定します。また、配置したルームを不用意に移動しないようにするには [ルームロック] オプションを有効にします。
![図2. ルームで部品の配置を禁止する為の設定](png/%e5%9b%b32.%20%e3%83%ab%e3%83%bc%e3%83%a0%e3%81%a6%e3%82%99%e9%83%a8%e5%93%81%e3%81%ae%e9%85%8d%e7%bd%ae%e3%82%92%e7%a6%81%e6%ad%a2%e3%81%99%e3%82%8b%e7%82%ba%e3%81%ae%e8%a8%ad%e5%ae%9a%20.png)
この設定により、ルームの内側にコンポーネントが配置されると、エラーが表示されるようになります。
エリアごとに高さを制限する
基板上の電源部に背の高い部品が載っていたり、通気の為のスペースが必要であったりする場合があります。このような場合には、エリアを指定して高さ制限を行います。
高さ期限を設けるには、ルームに対してクエリでコンポーネントの高さ制限を設定します。
まず、対象エリアにルームを配置し、次の設定を行います。
- ルームをダブルクリックし、クエリを設定します。例えば、5mmより高い部品を配置したくない場合は、[IsComponent And (AsMM(Height) > 5)] と設定します。
- 制約条件を [Keep Objects Outside] に設定します。
![図3. ルームで高さ制限を行う為の設定](png/%e5%9b%b33.%20%e3%83%ab%e3%83%bc%e3%83%a0%e3%81%a6%e3%82%99%e9%ab%98%e3%81%95%e5%88%b6%e9%99%90%e3%82%92%e8%a1%8c%e3%81%86%e7%82%ba%e3%81%ae%e8%a8%ad%e5%ae%9a%20.png)
これで、5mmを超える高さの部品が、ルームで定義したエリア内に配置されると、エラーになります。
エリアごとにレジストのサイズを設定
ソルダーマスクのオーバーサイズ(Solder Mask Expansion)の最適値が基板の場所によって異なる場合があります。このような場合、ルームを使ってパッドやビアの [Solder Mask Expansion] の値を他のエリアと異なる値に設定する事ができます。
まず、対象エリアをルームで囲んだ後、次のように設定します。
- [デザイン] – [デザインルール] を実行し、表示されたダイアログの左側にある [Mask] カテゴリの [Solder Mask Expansion] を選び、さらに右クリックして表示されるメニューから [新しいルール] を選びます。
- [SolderMaskExpansion_1] という名称のルールが追加されます。そして、追加されたルールの適用範囲を [All] (基板全体)ではなく、ルームで囲まれたエリアに変更します。このためにまず、[Where The First Object Macthes] で [Custom Query] を選び、クエリヘルパー ボタンをクリックします。
- [Query Helper] ダイアログが表示されますので [All] を削除して、ここに対象となるオブジェクトを指定する為のクエリを入力します。
仮に、ルーム名が [RoomDefinition_1] であった場合、[WithinRoom('RoomDefinition_1')] と入力します。なお、ここでは、[WithinRoom … ] (ルームの内側) [TouchesRoom … ] (ルームに接触している範囲)などが使用できます。
- 元の設定画面に戻り、距離の部分の値を設定します。
![図4. ルームでレジストのサイズを設定](png/%e5%9b%b34.%20%e3%83%ab%e3%83%bc%e3%83%a0%e3%81%a6%e3%82%99%e3%83%ac%e3%82%b7%e3%82%99%e3%82%b9%e3%83%88%e3%81%ae%e3%82%b5%e3%82%a4%e3%82%b9%e3%82%99%e3%82%92%e8%a8%ad%e5%ae%9a.png)
エリアごとにクリアランスを設定
部分的に高い電圧を扱う箇所や、配線密度を上げたい箇所などがある場合、エリアごとに配線クリアランスを、異なった値に指定したい場合があります。このような場合にもルームが役立ちます。
まず、対象エリアをルームで囲み、次の設定を行います。
- 配置したルームをダブルクリックします。そして、表示された [Edit Room Definition] ダイアログボックスで名称(例えば、Clearance0.1mm)を設定します。
- [Where The First Object Macthes] で [Custom Query] を選び、クエリヘルパーボタンをクリックし、[Not IsComponent] と入力します。これは、コンポーネントをルームの対象から外すための設定です。
![図5. 限定されたエリアに、クリアランス値を指定するためにルームを用意](png/%e5%9b%b35.%20%e9%99%90%e5%ae%9a%e3%81%95%e3%82%8c%e3%81%9f%e3%82%a8%e3%83%aa%e3%82%a2%e3%81%ab%e3%80%81%e3%82%af%e3%83%aa%e3%82%a2%e3%83%a9%e3%83%b3%e3%82%b9%e5%80%a4%e3%82%92%e6%8c%87%e5%ae%9a%e3%81%99%e3%82%8b%e3%81%9f%e3%82%81%e3%81%ab%e3%83%ab%e3%83%bc%e3%83%a0%e3%82%92%e7%94%a8%e6%84%8f.png)
クエリにより、コンポーネントがクリアランスルールの対象から外されています。
- クリアランスのルールを追加し、[ First Object ] を [ WithinRoom ('ルーム名')]、(例:[WithinRoom('Clearance0.1mm')] )に設定します。そして、 [Second Object] で [レイヤ] を選択し、ドロップダウンリストで対象レイヤを指定します。
![図6. ルームをスコープとして使用し、クリアランスを設定](png/%e5%9b%b36.%20%e3%83%ab%e3%83%bc%e3%83%a0%e3%82%92%e3%82%b9%e3%82%b3%e3%83%bc%e3%83%95%e3%82%9a%e3%81%a8%e3%81%97%e3%81%a6%e4%bd%bf%e7%94%a8%e3%81%97%e3%80%81%e3%82%af%e3%83%aa%e3%82%a2%e3%83%a9%e3%83%b3%e3%82%b9%e3%82%92%e8%a8%ad%e5%ae%9a.png)
コンポーネントの配置角度をチェック
フットプリントの配置角度をチェックすることができます。その手順をフットプリント「R2012-0805」を例にとり紹介します。
まず、対象エリアをルームで囲みます。そして、配置したルームをダブルクリックします。表示された画面で [制約条件] の部分で対象レイヤを選び、その下を [Keep Objects Outside] に設定します。そして、次のクエリに、「(Footprint = 'R2012-0805') And (Rotation <> '0') and (Rotation <> '360') and (Rotation <> '180')」と記入します。
このクエリは、配置角度が 0度、360度、180度では無い、R2012-0805というフットプリントを指しており、これに当てはまるコンポーネントがルーム内に見つかった場合にはエラーを返します。これにより、0度(360度)と180度以外での配置はできなくなります。
![図7. ルームでコンポーネントの配置角度を制限](png/%e5%9b%b37.%20%e3%83%ab%e3%83%bc%e3%83%a0%e3%81%a6%e3%82%99%e3%82%b3%e3%83%b3%e3%83%9b%e3%82%9a%e3%83%bc%e3%83%8d%e3%83%b3%e3%83%88%e3%81%ae%e9%85%8d%e7%bd%ae%e8%a7%92%e5%ba%a6%e3%82%92%e5%88%b6%e9%99%90.png)
ここまで、エリアごとのルール設定について紹介してきました。デザインルール機能のスコープとして利用できるだけでなく、ルームに制約条件を直接設定する事ができるため、緻密なデザインルールの設定を率良く行う事ができます。
参考:ルームを使わないエリア指定の方法
ルーム以外に、[InRegion] というクエリを使って、エリア指定によるデザインルールの設が可能です。
[InRegion]の書式は、「InRegion (0, 0, 2000, 2000)」のようにX/Y座標を (x1, y1, x2, y2)のように記述します。また、このInRegionには、InRegionAbsolute, InRegionRelativeの2種類があり、システム原点からの座標値指定、又はユーザー原点からの座標値指定のいずれも可能です。
ルームに対する優位点は特に見当たりませんが、ルームに代わる選択肢として役立つ場面が出て来るかもしれません。
今すぐAltium Designerの無償評価版をリクエストして、世界最高のPCB設計ソリューションをお試しください!ご不明な点などございましたら、お問い合わせフォームにご入力ください。