So-net無料ブログ作成
検索選択

認識マークのべたアース逃げ [AD Query]

基板外ならべたアースとのクリアランスは考慮する必要がないでしょうが基板内に配置した場合は
クリアランス値をどうするかが問題になります。

当初はポリゴンカットアウトで対応していましたが、四角形の場合は作図が簡単ですが
円形の場合はそれもやや面倒になります。

そこでデザインルール内でクエリーで逃げるようにしました。
優先度に関しては他にもポリゴン関連の項目がある筈なので高めにしないといけません。

FM_Er.jpg

認識マーク自体は以前にも紹介したようにDelphiスクリプトでフリーパッドを配置し大きなものは
FMというデジグネータで小さいものはFMSとしています。
小さいものは他のクエリーでも問題ないので考慮していません。

続きを読む


nice!(0)  コメント(0) 

ルームによるクエリー [AD Query]

手動でルームに名前を設定した場合にはクエリーとしての利用価値があります。
(デザインルール内の Placemenet > RoomDefinition でRoom1という名前で登録した場合)

Touchesroom('Room1')
WithinRoom('Room1')
などと記述します。

WithinRoom('') や WithinRoom('*') では動作しないようです。

下記の項目で利用が可能です。
Mask > SolderMaskExpansion
Rooting > Width
Rooting > Differential Pairs Routing

クリアランスの項目も設定しましたがクエリー通りではなくパッド近くで併用した場合は有効でした。
(Electrical > Clearance)
ルームという特性なのか部品に関連せず、空いた場所への単独のルーム配置では動作しないという
意味なのかもしれません。


nice!(0)  コメント(0) 

文字パターンのクリアランス [AD Query]

「Altiumm Designer」でのパターン設計時にて、TOP面、BOT面に太めの電源ラインの
説明用に+5Vとか+3.3Vなどと文字入れをしています。
ポリゴンを注入すると自動的に逃げているのでクエリーでも特に設定していませんでした。

しかし、厳密にクリアランスを測定してみると、どのクエリーの設定値が効いているのか
不明でした。

どうやら、何も設定しないとクリアランス項目の最後のOtherの項目が関連しているようです。
当然ながら、個別の文字としてではなく、全体を四角形で表現したエリアとしてのクリアランスです。

厳密な実験の為にクリアランスの項目の最優先で下記のように設定してみます。
上段 Inpoly
下段 Istext
としました。

続きを読む


nice!(0)  コメント(0) 

Altiumの検索機能2 [AD Query]

前の記事でも触れましたが、重いのでこれまでにAltiumの検索機能は殆ど使用していませんでした。
しかし、実際に使い始めると起動させて1回目はそうなのですが、その後はそうでもありません。
どう検索するかの具体例です。

1段目に「74HC」を含み、2段目に「#」をいれ、アドバンスドで And 部分に not を追加して
否定すれば「#」を含まないということで検索が可能です。

プログラミングに慣れていれば当然のことなのですが、初心者だと戸惑うかもしれません。

Find_search_AD_Q.jpg
タグ:Altium Designer
nice!(0)  コメント(0) 

パッドのべたアース回避 [AD Query]

全体をべたアース処理する場合にC10-2ピンがGNDなのに、これだけをサーマル接続の例外に
したい場合はどうするかという場面があります。

Polygon Connect Style にて上段側に
Incomponent('C10')

または
Haspad('C10-2')

で接続スタイルを「No Connect」とすればポリゴンは回避します。
しかし、DRCエラーとなるので別途どこかのGNDの部品とラインで接続する必要があります。
(また、内層で接続する方法もあるでしょう。)

ポリゴンカットアウトと組み合わせたり、他のポリゴンと組み合わせて更にポリゴンの注入方法を
代えることで1点アースなどの処理に対応することが可能です。

Pad_Drc _q.jpg

nice!(1)  コメント(0) 

ネットクラスの利用 [AD Query]

Altium SCHとリンクしている場合は電源ラインの幅などは定義してAltium PCBに伝わります。
しかし、ネットリスト支給の場合はそういう訳にいきません。

その場合は下記の手順で処理すればいいでしょう。
電源ラインを太めのパターン(1-3mm幅)で処理する場合を例にします。

1.Design > Classes にてネットリストの中から電源ラインのネットリストを側に移動し
 クラス名を「power」にする。

2.DRCの設定項目のRouting > Width に新規作成しその中に下記の項目を追加します。
 InNetClass('power')
 そして線幅を適当に指定します。
 ここでは各値を1,2,3mm としておきます。


DRC_NET_Wtdth.jpg


3.後は設計後にDRCチェックを掛けてミスをチェックします。

DRC_NET_Wtdth_E.jpg

以上で終わりですが、表面実装部品のパッドなどはこの値より小さくなるのでDRCエラーに
なる場合が多いでしょう。
その為にチェック後に上層の「Width」をクリックして一覧を表示させた後に「Enabled」の
チェックを外すことで回避させます。



続きを読む


nice!(0)  コメント(0) 

個別のレジストマスクの増加 [AD Query]

フットプリントのパッドにてレジストマスクの増加を個別に処理したい場合があります。
個々にフットプリントのパッドを調整してフットプリント名を別名保存することで管理すれば
いいのでしょう。
しかし、STEPファイルなど他にも同フットプリント名で管理する場合はそれもコピーして
同名で管理しておかないと整合性が取れなくなる問題があります。
その場合は下記のようにDRCをクエリーを追加や修正すればよいでしょう。

Design Rules > Mask > SolderMaskExpansionにて
優先度を上位にして該当させるフットプリント名をALLから具体的なものに指定します。
下記のようにワイルドカードを使用してチップ類をざっくりと指定することも可能です。

HasFootprint('*2012*','*1608*')

このクエリーはSolderMaskExpansionだけでなく、その下の項目である
PasteMaskExpansion にも応用できるクエリーです。


nice!(0)  コメント(0) 

部品以外のアイテムのコピー [AD Query]

パターンだけをブロックコピーして他の場所に同じようにコピーしたい場合があります。
その場合は「PCB Filter」の項目に下記のクエリーを記述します。
意味は選択したもので部品では無いものということです。

IsSelected And Not((ObjectKind = 'Component'))

Sel_Comp1.jpg

"Deselect"をチェックして"Normal"モードにしてApplyボタンを押します。

続きを読む


nice!(0)  コメント(0) 

AGNDとDGNDの一点アース [AD Query]

ネットタイ自身の話ではないのですがそれに関連した記事です。

SCH、PCB共にネットタイを用いていない場合に
AGNDとDGNDを一点アースして欲しいという急な要望があった場合の対処法です。
設計後に単純にWireやFillを配置します。
(①の部分)

A_D_GND.jpg

それがDRCにてエラーにならないようにクエリーを作成してその部分に対処します。

1st Object(上段)に2つのネット名を記載すれば対応可能です。

急な場合はクエリーを思い出すのが大変なので事前にひな型を用意していた方が
いいかもしれません。
(通常は誤動作しないように長めのネット名をつけておきます。)

GND_Fill.jpg

続きを読む


nice!(0)  コメント(0) 

クエリー構文のガイドブック [AD Query]

Altium Designerではクエリーを作成しないとDRCが掛けられないので構文作成が必須
です。
しかし、これといって有用なガイドブックがありません。

まずは抜粋として4ページぐらいにまとめたPDFを作成しました。
必要でしたらメールでお知らせください。

もっと詳しいガイドブックを作成していますが何ページになるか不明です。
たぶん20ページは超えるでしょう。

作成していて感じたのはクエリーはプログラミングによく登場するIf文だということです。
しかし、If文ならその対象外になったものを捌くElse文がありますがそれがありません。
厳密に処理する場合はここがネックです。
Else文に相当するものは優先順位を下げて別途クエリー構文を作成しないといけません。

続きを読む


nice!(0)  コメント(0) 

反転文字のクリアランス回避 [AD Query]

以前の記事で上手くいかないといっていた部分の回避策です。
Istextでは駄目でIsTextInvertedにするのがミソでした。
以下、そのクエリーの内容です。

=========================

InNamedPolygon('ABC')   

Vs

IsTextInverted  

=========================

続きを読む


nice!(0)  コメント(0) 

べたアースでの切り文字の配置 [AD Query]

切り抜き文字ではポリゴンからある程度のクリアランスが発生してしまいます。
その手法ではない方法をご紹介します。
(ポリゴンでは、ポリゴン名の指定でクリアランス0mmのクエリーが必要)


切り抜き文字の四角の周りをクリアランス以上の幅のGNDネットのトラックまたは
Fillで囲みます。
Fillの場合は短冊状のものを四つ、一つ目にGNDネットを割り付けると他は自動的に
GNDへの割り付け処理されるのでこちらの方が場所はとりますが便利です。

続きを読む


nice!(0)  コメント(0) 

KEEPOUT以外でポリゴンから逃げる手法 [AD Query]

ICなどであるピンにだけからポリゴンを逃げて欲しいという要望があります。
(ポリゴンカットアウト以外での話です)

内層であればKEEPOUTで対応が可能ですがTOP/BOTではそのパッドからも他のパッドに
TRACKが引かれている場合もあるのでDRCでエラーとなります。

そこで考えられるのが下記の手法です。
(U5の5,6ピンからべたアースを回避する。)

Inpoly
vs
haspad('U5-5','U5-6')  

ここで例えばクリアランス値を1mmぐらいに設定します。

続きを読む


nice!(0)  コメント(0) 

ポリゴンのクエリー3 [AD Query]

ポリゴンとパッドのクリアランス設定の場合はこのようにして
下部に0.3mmなどの値を入れます。

InPoly
vs
IsPad

しかし、表面実装のAVRなど単純なパッドではない場合はパッド部分の代わりに
Solid Regionを配置します。
しかし、クエリーの設定が甘いとその部分は他のクエリーの値によりクリアランスが
少な目になってしまいます。

それを回避するには

続きを読む


nice!(0)  コメント(0) 

フリーパッドのべた回避 [AD Query]

取り付け穴などのフリーパッドから1-2mm程度、べたアースを逃がしたい場合は
どうするかです。

通常はKEEPOUTで逃げるのでしょうか。

クエリーで逃げるには下記のようにすればいいでしょう。

InpPoly

vs

HasPad('Free-0') 

クリアランス値を1-2mm程度に設定

Free-0はフリーパッドでそのデジグネータが0の場合です。
自分でデジグネータを変更している場合はその文字を記載します。

続きを読む


nice!(0)  コメント(0) 

ポリゴンのクエリー2 [AD Query]

QFPの下などにGNDではなくてべた電源の処理をしたい場合があります。
その時はクエリー内のPolygon Connect Sytle にて
Direct Connect を選択することが多いでしょう。

私自身も実際にはそういう処理をしていました。

しかし、別の方法がありました。

Polygon Connect Sytle にて
VIAはDirect Connect を選択する設定にすることが多いでしょう。
これを利用してQFPのパッドから予めTrack(Wireで)引き出してVIAにしておけば
何も設定は不要です。
但し、半田面側には必ずそのVIAを利用したパスコンを配置しないとそのVIAの意味が
ありません。

続きを読む


nice!(0)  コメント(0) 

ポリゴンのクエリー [AD Query]

「AltiumDesigner」のポリゴンクエリーにて
ポリゴン自体をソリッドではなくてハッチングで処理する場合はポリゴンが
トラックとアークの集合体になります。
そこで問題なのがトラックはIsWireだということです。

クリアランスのクエリーの中で( vs : 上段、下段の意味)
IsWire vs IsWire
で数値を設定しているとそれを優先される場合があります。

それを防ぐにはそれより順位を優位にして
InPoly vs IsWire
で別途数値を指定する必要があるようです。

続きを読む


nice!(0)  コメント(0) 

Has*クエリー [AD Query]

Has関連の構文を列挙しました。

HasPad('U22-11','U24-7')
カンマ区切りで複数のパッドを指定する。

HasFootprint('DIP*')

HasFootprintPad('DIP16P','16')
フットプリントの部分を''と空にあればすべてのフットプリントとなる。
HasFootprintPad('','7')

続きを読む


nice!(0)  コメント(0) 

取り付けパッドの分類 [AD Query]

取り付け用パッドといっても表面実装用はサーマル接続することが多く
ディスクリート部品の場合は直径が3.2mm以上の貫通穴の場合が殆どです。
これをクエリーで区別するのは面倒になります。

そこで、パッド名(プロパティでのデジグネータ)を設定して置く方が良さそうです。
今まではさほど意識せずにDummy1、Dummy2...という風にしていました。
中には本体のパッドと連番にされている方も多いようです。

新たに設定し直したバッドでは
表面実装部品ではホールドということでH1,H2..... とし
ディクスリート部品ではマウントということでMNT1,MNT2... としています。

NCも考えたのですがリレーなどでは実際にNCというパッドもありえるので止めています。
パッド名をSMDとディスクリートで区別させているのでクエリーでフィルタリングが可能です。

基板取り付け用パッドは特に設定していませんが
MNT0 にしようと思っています。

続きを読む


nice!(0)  コメント(0) 

ポリゴンの塗り分け [AD Query]

調整の為に交換する可能性のあるチップCRに関してポリゴンからのクリアランスを少し
広げたい為にはフットプリント名で分類することが可能です。
併せて特定のREF番号を指定したい場合はこのようにすれば良さそうです。

**********************************************************

HasFootprint('C2012') Or HasFootprint('R2012') Or
InComponent('FB*','RL*','U1')

**********************************************************
一行目はこのように略しても動作しています。
HasFootprint('C2012','R2012') Or

続きを読む


タグ:クエリー
nice!(0)  コメント(0)