So-net無料ブログ作成
ALTIUM DESIGNER ブログトップ
前の20件 | -

部品エリア内のREF番号の検出 [ALTIUM DESIGNER]

部品のシルク内にDesignatorのシルクを移動し忘れる場合をどう検出するかの課題の話です。
パッドの上にシルクが掛かっていればDRCでチェック可能です。
しかし、比較的大きな部品の場合はその内側にシルクを置き忘れます。

これを同検出するかをずっと検討した結果、思いついたのがDesignatorをシルクレイヤではなく
メカニカルレイヤにスクリプトで移動してDRCを掛けることです。
しかし、これでは大きな部品においては完全ではありません。

こちらの手順なら上手くいきそうです。
1.スクリプトでDesignatorの位置と文字高を調べてレポートにする。
2.PCBデータからIDF出力します。
 IDFは各部品のエリアを簡単な図形で認識しています。

3.EXCELマクロで両方のファイルを入力して1.の情報からDesignatorのシルクの占有場所を
 XY座標としてしらべます。
 同様に2.のIDFからそれに対応する部品の敷地を調べ、それが重複しているかどうかを調べます。

これなら処理はできそうですが、EXCELマクロでどうIDFの内容を分析できるかが難題です。


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

ダミーSCHでバリアントを作成 [ALTIUM DESIGNER]

PCBで部品の実装、非実装をしたい場合はバリアントで処理しなくなります。
しかし、回路図がAltiumSCHで支給されていな場合はどうすればいいでしょうか。

AltiumPCB側のBOMの情報からスクリプトでSCH上に仮の部品を配置する方法もありますが
SCHではその手法が不明です。
また、デジグネータとコメントをペアで処理するにはDelphiの配列を利用する必要が
あるでしょう。

そこで適当な2ピンの部品をSCH側にAB***で等間隔で配置しておいてそれをリネームする
方法を思いつきました。

そこで利用できるのがWAS-ISファイルです。
バックアノテートファイルとして作成したWAS-IS(*.WAS)ファイルを読み込んでそれで
リネームするという手法です。

WAS-ISファイルを出力することが可能なのは以前の記事でもわかるように実験済みで
ORCADでも利用可能です。


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

PIK内のコメント欄 [ALTIUM DESIGNER]

ピックアンドプレースファイルにてコメント欄が一番右にあるのが不思議でした。
フットプリントのすぐ右に置けばいいのにと以前から思っていました。

しかし、前の記事のようにフットプリント欄の半角スペースの影響でそれぞれの項目欄が
右にずれてしまう可能性があります。
特に、コメント欄は型番や値や周波数などを半角スペースで区切って記載することが多いようです。
それによって右にずれる可能性があるからコメント欄を一番右にしたのではないでしょうか。

実際にコメント欄に半角スペースを入れてテストを行った結果、右にずれる現象はありませんでした。
フットプリントに半角スペースがあった場合に
Rotation欄が0、コメント欄が10MHzの場合に、ずれて010MHzとなっていました。
コメント欄の右は無いのでそのまま利用するけれど左からずれているのでそれと合成してしまった風の
状態です。

どこかのバージョンでずれに対する対策はしたけれど、ファイル形式としては元に戻せないので
以前の順番であるコメント欄が一番右のままになっているのではないかと想像しています。


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

Altium Designerの各国の割合 [ALTIUM DESIGNER]

こちらに「Altium Designer」の情報がありました。
https://www.octomyze.com/audiences/altium-designer

その中段に各国の割合が載っています。
1.米国が23%
2.中国が17%
3.ドイツが7.5%


8位が日本で2.5%程度
9位のベトナムと殆ど一緒です。

タスマニアでの開発が始まりのプロテルなのにオーストラリアが2%あるかないかです。
上位3国で半数弱となっています。
これでは日本のユーザーのことはどうでもよさそうです。

16500 Individual user per week
週における個人ユーザーが16500となっています。

100000 Engineers worldwide
日曜日を抜いて6で割ると16666となるのでそういう意味でしょうか。


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

Altiumの部品表の並び [ALTIUM DESIGNER]

Altium Designerから部品表を出力することは少ないのでチェックしていませんでしたが
その順序はREF番号を基準にしているようです。
REF番号のアルファベット順に並んでいるのです。
(各欄でソードできるのは承知しています。)

一般的にはコンデンサC*、ダイオードD*となるので下記のようになるでしょう。
(ここではコメント欄の内容は省略)

C1608 C1,C2,C3 3
ISS133 D1,D2 2

弊社のネットリストから作成する部品表ではREF番号、値、フットプリントでソートして
います。
その部品表ではREF番号は一列ではなく、8個で折り返しているのでREF番号でソートし直し
というのは厄介です。
プログラムを直すのは現状では保留にしてあります。

フットプリント順がベストだと思っていたので意外な現実でした。


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

認識マークの使い分け [ALTIUM DESIGNER]

これまで認識マークはフットプリントにはせず、単純にパッドを配置してポリゴンの逃げなどは
クエリーで処理していました。
それは部品実装に関係なくて、ピックアンドプレースファイルにも登場しなくできるからです。

しかし、部品実装では認識マークを原点にすることが多いようです。
そこでV-CUTなどで捨て基板上にある場合はフットプリントにしたものをREF番号をFID*で配置します。
基板内に配置するものはこれまで通りにREF番号なしで処理することにしました。

これで捨て基板上の認識マークだけがピックアンドプレースファイルに登場します。
尚且つ、スクリプトで処理しているので、新設のNotes欄に認識マークと掲載できるようにしました。
同じく新設のSMD欄では認識マークはSMDではないのでxと記載しています。


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

ライブラリエディタ画面からの印刷 [ALTIUM DESIGNER]

フットプリントを編集する画面からの印刷の話です。
Summer09では印刷できなくて上部のアイコン画面も薄くなっています。
少なくともAD14.3以降では印刷可能です。

AD19では寸法図を入れられますが、それを顧客に提出する場合は、PCBエディタ画面では
寸法レイヤが消えるのでNGです。
そこで、提出書類作成するにはライブラリエディタ画面からの印刷が必須になります。

単品であればそれで問題ありませんが、複数のフットプリントを集めて印刷するのは
新規フットプリント名をつけるか、単体のPCBLIBを作成して処理することになるでしょう。
スクリプトができればありがたいことですが、まだその案は浮かんでいません。


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

SMDとディスクリートのPCB内での区別 Part.2 [ALTIUM DESIGNER]

記事のアップが遅くなったので話が前後しますが、下記のように解決しました。

表面実装のコネクタで位置決めのNTHがある場合も、前出のSMDだけ出力するスクリプトでは
ディスクリート扱いでした。

下記のマルチレイヤだったらSMDではないという構文がそうしていました。
If Pad.Layer = eMultiLayer Then
SMDcomponent := False;

そこで上段を下記のように更にメッキ穴だったらと追加しました。
If Pad.Plated = True Then

これで解決はしたのですが一部でそうではないものが登場してしまいました。
SMDとして作成したフットプリントにてToplayerのパッドに対して誤ってPlate部分にチェックが
入っていたのです。

という訳で下記のように書き換えて解決しました。
If (Pad.Layer = eMultiLayer) And (Pad.Plated = True) Then

フットプリントを作成する場合にディスクリートのパッドを修正してSMD用のパッドに流用する
場合は、Plate部分にチェックがあるのを消し忘れるミスが発生するのでご注意ください。

SMD_IMD_SCR.png

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

PnPスクリプトの修正のヒント [ALTIUM DESIGNER]

PnPスクリプトのコメント欄として下記のようにしていましたがこれはSCH由来の情報です。
Component.SourceLibReference

PCB由来のコメントが欲しいので、スクリプトを色々と弄くってみたらこちらの記述が浮かびました。

Component.Detail

この結果は、RA18の場合は下記のように出力されます。
Component RA18 Comment:EXB38V473JV Footprint: EXB38V

つまり、Detailの情報にはDesignator、Comment、Footprintが混在で記述されていました。
この文字列を事前に加工すればSCH由来ではなくてPCB由来のものにできそうです。

PnP_Scr_Hint.png
nice!(0)  コメント(0) 

SMDとディスクリートのPCB内での区別 [ALTIUM DESIGNER]

通常、Altiumから出力されるピックアンドプレースファイルではSMDかディスクリートかの区別は
できません。

前出の記事のDelphiスクリプトでは区別をされていますが、どう区別をするかを考察しました。
ここのフットプリント内のパッドをチェックして、一つでもマルチレイヤのパッドがあったら
どのフットプリント(デバイス)はディスクリート部品と解釈していました。

ネットリストに関連するパッドはSMDのように片側でも取り付け穴がマルチレイヤーパッドの
USBコネクタなどもディスクリート部品扱いです。

SMDのコネクタで位置出しのNTHの穴がある場合もスクリプトではディスクリートと解釈されてしまい
ました。


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

機能やモードのシルク [ALTIUM DESIGNER]

コネクタやスイッチなどの機能などの説明にはどういう処理をされているでしょうか。
弊社で、以前はGNDなどの機能は<GND>と記載していました。

しかし、抜き文字が利用できるAltium Designerに代えてからは、それを利用しています。
ただ、抜き文字はバランスが重要なのでフォントも合わせて事前に検討して使用する
必要があります。

抜き文字の部分が薄くなるのである程度は大き目の文字に限るでしょう。
また、それを維持するために過去の設計から一貫して流用する必要があるでしょう。
機能内での更なる機能の場合は[GND]などと括弧を通常の文字で書いてもいいでしょう。


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

修正を考慮したSTEPファイル [ALTIUM DESIGNER]

最初にフットプリントにSTEPファイルを載せても、修正が入ると処理のし直しをしなければ
なりません。

修正されたパターンから再度、専用LIBを「Make Libraly」コマンドで作成しSTEPファイルが
搭載されていないフットプリントが修正された部分なのでそれを手動で処理します。
これを個々にカレントフットプリントで修正を掛けて、次のフットプリントを同様に
処理すればいいでしょう。

ただ、修正したフットプリントが多い場合は、スクリプトで処理すれば可能ですが
一度、重畳させたSTEPファイルがどうなるかは試したことがありません。
プログラム的にはSTEP部分はリセットされる筈なのですが、注意が必要です。


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

PCBLIBをどのバージョンで作成するか [ALTIUM DESIGNER]

「Altium Designer」ではPCBLIBのバージョンの違いもオープン時にメッセージとして
表示されます。

「Altium Designer」のどのバージョンでPCBLIB(フットプリント)を作成されているでしょうか。
弊社ではスクリプトを利用して処理することが多く、連続して複数のフットプリントを
シリーズで作成する場合はAD14.3が殆どです。
簡単な編集や急ぎの単品の場合などは「Summer09」で作成しています。
それ以外のバージョンでは作成していません。

「Altium Designer」では他のPCBCADとは違ってPCBLIBの互換性は高いようですが用心するに
越したことはありません。

「Altium Designer」の新しいバージョンによってはPCBLIBを作り易い場合もありますが
互換性を知りながら作成する必要があるでしょう。
やむ終えず互換性がないPCBLIBを作成したい場合はそれだけを別名またはアクセスしにくい
ように別フォルダーで管理すればいいでしょう。
(但し、フットプリント名は、管理の都合から通常のままがいいかもしれません。


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

Libサーチの検索内容 [ALTIUM DESIGNER]

単純な型番で部品検索すると変わった結果となる場合があるので不思議でした。
例えば、BA*で東芝の製品がリストアップされてしまいます。

調べてみたら、Description欄に「TOSHIBA」と書かれていたので最後の「BA」を
検索した為でした。

検索できるのはフットプリントだけだと思っていたので意外でした。
最近作成したフットプリントのDescription欄にはなるべくメーカー名を記載するようにして
いるのでヒットし易くなりそうです。

尚、LIB検索は比較的新しいCPUを搭載したPCでないと遅い筈です。
(Core-i7の第三世代以降であれば大丈夫です。第二世代は所有していないので不明。)

ただ、それでも一回目はやや遅いのですが、二回目以降はすばやく検索できます。

LIB_Search_Maker.png
nice!(0)  コメント(0) 

PCBDOCファイルの中身が変化 [ALTIUM DESIGNER]

以前にも触れたことがありますが、あるPCBDOCファイルからSTEPファイルを出力すると
そのPCBDOCファイルの中身がSTEPファイルになってしまいます。

中身がSTEPファイルなのに拡張子がSTEPなのでファイルが開けなくて焦ります。
STEPファイルのサイズが比較的大きい場合にこの現象が起こるようです。

ファイル保存などの処理をする場合はソフトウェアの内部処理のヒストリーなどの関係で
コピー作業をしているようですがそこでのエラーなのでしょう。

回避方法は見つからないので、他のファイルとして保存する場合は予めPCBDOC自体を手動で
バックアップを取っておいて、後から両者のファイルサイズをチェックしておくといいでしょう。

主にSummer09で症状がでていますが、他のファイル形式で保存する場合も同様の注意を
した方がいいでしょう。

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

複数のシンプルBOMを連続インポートできたら Part.2 [ALTIUM DESIGNER]

Excelマクロで処理する方法が見つからなかったのですが次のバッチファイルをクリックすれば
同じフォルダ内にある*.csvファイルを勝手に合成してくれました。
再度実行したとしてもバッチファイルで生成した名前のCSVファイルは除外されるようで
更に足すことはないので何度でも試せます。
拡張子はCSVだけではなく、TXTでも可能です。

COPY_And_MERGE_CSV.bat
******************************

COPY *.CSV MERGE.CSV

******************************
MERGE.CSVのMERGE部分は別名にして問題ありません。
勿論、バッチファイル名も変えても大丈夫です。

ただ、末尾のEOF辺りに何かあるようでマクロで読み込むと→矢印になってしまいます。
特にその部分はマクロでは関係ないので何も処理していません。
バッチファイルで処理したファイルをテキストエディタで一旦読み込んで、何もしないで
セーブするとこの問題は解決します。
(ファイルサイズが1バイト分減るようです。)

このバッチファイルを編集したい場合は一旦*.TXTに拡張子を変えてください。

Altiumの場合は複数のヘッダーがあるのでそれをどう後処理するかが問題です。
これで、連続インポートする問題は解決しました。

ただ、複数のPCBDOCから一旦、シンプルBOMを作成するのが面倒ではあります。
Delphiスクリプトで出来ればいいのですが、途中までトライして断念しました。


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

複数のシンプルBOMを連続インポートできたら [ALTIUM DESIGNER]

複数の基板にSTEPファイルを貼りつける依頼があります。
しかし見積り時に、別機種であってもフットプリントのダブりなどがあると、通常通りに処理して
しまうと高めの価格になるのが難点です。

そこで考えたのが複数の基板からシンプルBOMを出力し、一箇所のフォルダに集めてそれを一括で
インポートできるマクロができたら便利でしょう。

1つのシンプルBOMを一旦まとめ、それをEXCELのセルにスタックしていく必要があります。
しかし、これまでにトライしたことがないプログラミングです。

これまで基板が数機種であればコピペでスタックしていましたが、15機種以上の場合もあるので
このマクロは必須です。


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

STEP化のより具体的な見積もり Part.3 [ALTIUM DESIGNER]

Altiumから生成したシンプルBOMをEXCELマクロにて整理して型番とREF番号の2列にすることで
次のマクロの前処理とします。

作業時間から見積りをするのですが、15分単位を基本として計算することにしました。
簡単なものは15分ぐらいでできるのでそれを1単位とします。
コネクタなどは難しいので4単位つまり60分で仕上げるということになります。
それ以上の時間を掛けて形状を作りこむことはしないのでこの4単位で十分です。

自社のSTEPファイルのデータベースから別のEXCELマクロで有無を調べます。
既に存在しているものは0単位とし、無いものは取り合えず1単位とします。

次にREF番号を参考にして下図のように重み付けして2-4に変化させます。
後は単位を合計して1単位の価格(弊社では1,000円)を掛けて合計します。
これに管理費や別の費用を足して見積りとしますがこれは別途計算することになります。

この考え方は基板設計時にも使えますが、ある程度は具体的にならないとREF番号などが
出力できないのでSCHと併用しないといけないでしょう。

STEP_Case_CNJ.png

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

STEP化のより具体的な見積もり Part.2 [ALTIUM DESIGNER]

STEP化する部品のジャンルによって難度が異なるのでそれが悩みどころです。
そこでREF番号を利用する手を思いつきました。

JやCNが難しく、その次がSW、RL、RYで、CHやLはやや面倒でしょう。
IC、Uなどは雛形があるので問題なしです。

しかし、これまではフットプリント名だけでREF番号は参照してこなかったのでEXCELマクロは
作り直しです。
シンプルBOMからフットプリント名とREF番号を抽出するマクロを既存のマクロの追加機能として
処理した方がいいでしょう。

複数の基板の場合はこのマクロでの作業を何度か繰り返して、別のセルにスタックし後から
重複処理すればいいでしょう。


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

STEP化のより具体的な見積もり [ALTIUM DESIGNER]

「Altium Designer」にSTEPファイルを貼りつける作業でも事前に見積もりを取る会社が
殆どです。
提出される資料が少ない場合はその見積もりには不安がでるので高めの価格となります。

何度も依頼をされる場合は、以前と似たような、または同じ部品があるのに見積もり価格が高いと
顧客側は感じてしまうようです。

これまでは、部品作成の時間を15分単位として機構部品は2単位、LCRなどの一般部品は1単位として
計算はしてきましたが、リスクがあるので以前に作成した部品との重複は処理していませんでした。
つまり、以前と重複したものがあっても新規部品として計算し計上しているという意味です。

これまでEXCELのマクロでどの部品が新規作成しなければいけない部品かはわかるようになっています。
そこでそれを発展させて、新規作成部品に作成時間の単位を1から4まで分類して計算させるマクロを
作ればいいのではないかと考えました。
それをPDFで出図すればより現実的です。
この考え方は基板設計にも通じる部分です。

LCR類はこれまで通りで1単位で15分程度で、新規作成しないといけない半導体などは2から3単位と
なるでしょう。

スイッチ類は4単位なので1時間掛かるという意味です。
これ以上の時間が掛かる3D形状の作りこみはしないという意味もあります。

基板の管理費も1単位として計算しています。
複数の基板で部品を共有する場合もありますが、まだそれは想定していません。
そういう場合は使用部品をEXCELのセル上で追記して重複処理をしてトータルで見積もるという
手法がいいのでしょう。


nice!(0)  コメント(0) 
前の20件 | - ALTIUM DESIGNER ブログトップ