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

スクリプトの先行き [ALTIUM DESIGNER]

AD18からNEWメニューからのスクリプト作成はDelphiだけのようでした。
AD19ではそのメニューからスクリプト関連の項目は消えました。
しかし、過去のバージョンで作成したファイル自体は開けるようです。

スクリプト関連作業は他のバージンで作成してくださいと言っているように聞こえてきます。
AD18辺りからメニューの互換性も完全ではなくなってきているので
スクリプトで処理していても1-2割は動作しないことがあります。

今後またはAD20辺りではよりスクリプト関連は厳しくなるのかもしれません。


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

円弧関連のスクリプト [ALTIUM DESIGNER]

スクリプトにて円ではなくて円弧の場合は計算がややこしくなります。
円弧をArcとした場合に
円弧のセンター、半径、スタート、エンドの角度に関する自分用の覚書です。

Arc.XCenter
Arc.YCenter

Arc.Radius

Arc.StartAngle
Arc.EndAngle

Arc.LineWidth
Arc.Layer

これだけあれば計算はできますが、三角関数や円周率も必要です。


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

円弧の角度表示の自動修正 [ALTIUM DESIGNER]

円や円弧の位置を認識するためには始まりと終わりの角度が重要です。
そこでスタートとエンドが同じ値だとどうなのか調べていました。

円の場合は0から360度です。
しかし、180から180度などの数値は試したことがありませんがその結果は
0から360度に自動修正されます。
つまり、円は0度から始まるように修正されるということなのでしょう。

円弧にて、270度から90度というようなキリのいい円弧なら別ですが、そうではない場合は
演算するのが難しく、今後も検討しないとシルクチェックに応用しにくいです。


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

プロジェクトファイルのバリアント [ALTIUM DESIGNER]

プロジェクトファイルの拡張子に.TXTを追加してエディタで編集できるようにして
バリアントを追加してみました。

プロジェクトファイル経由でバリアントが設定されるというのでファイル自体を弄くって
みました。
編集した.TXTを戻し忘れるとバリアントが表示されなくなるのでお気を付けください。
ただ、編集で処理する場面は殆どないでしょう。

Variant_Menu1.png

Variant_txt0.png

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

部品エリア内の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) 
前の20件 | - ALTIUM DESIGNER ブログトップ