CAD支援ソフト探索2

プリント基板設計CAD(P-CAD/AltiumDesigner)にSolidoworksを併用

スポンサーサイト

--:-- ...Posted

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Delphiの「XPComboBox」

DelphiのスクリプトをSummer09で動作させる場合に通常の「ComboBox」だと
登録当初は動作しますが、アプリを再起動させると動作しないという状況でした。

フォームである*.dfmをテキストエディタで見ると記載はされているので
何ら問題なくAD14.3などでは動作します。

Summer09で使いたい場合、似たような機能の「XPComboBox」であれば
問題なく動作するようです。

スポンサーサイト

Delphiでフォームを常に最前面にするには

フォームのあるスクリプトでSCHやPCB作業画面中にその画面の裏に隠れてしまうことが
あります。

今まではこれの対策の為に、末尾にcancelを記述することで
即刻終了ということで回避していました。

ネットで調べたらこれを回避する方法がありました。

Form画面にて
「ObjectInspector」内にある「FormStyle」を「fsNormal」から「fsStayOnTop」に
変更してください。

Pad,Viaの配置パレット その2

スクリプトの方はある程度は出来上がりましたがPadとViaは使い道が違うので
それぞれ別のスクリプトにすることにしました。

つまりPadを配置するのは部品作りの場面が殆どで
Viaを配置するのは基板設計業務の時だけで、部品作りでViaを使用することは
極めて稀でしょう。

どちらも似たような形状でありながら使い方が違うので別のスクリプトとするのが
ベストだと考えました。

Viaの直径と穴径(mm)は現状では5種類です。
0.6/0.3
0.7/.35
1.0/.5
1.5/0.8
2.0/1.0

Pad,Viaの配置パレット

Schにて「VCC,GNDの配置パレット」のようなスクリプトを作成したので
そのPCB版として「Pad,Viaの配置パレット」のスクリプトを作成中です。

PadとViaのデフォルトをその都度に細工すれば配置するのはRunProcessで配置が可能
なのですがそういう訳にもいかないようです。
デフォルトを書き換えるAPIがないし、出来てもそれを元に戻してからスクリプト
終了をする必要があるからです。

という訳でRunProcessに頼らずに一から配置するスクリプトを作成することにしましたが
これが手ごわいです。

Roomによるブロック移動

ある程度は構成が決まっているブロックの移動であれば
Design > Rooms でパーツの上にRoomを置けば、それ以降はRoomをつかめば移動する
ことが可能です。

Room内のパーツは自動的にクラス訳されるようなので、個別に部品を分ける場合は
Roomを解除するかこのクラスを削除する必要があります。

Tool > Place Component > Arrange Within Room
にてRoom内に詰める(集合する)ことが可能です。
上部に溜まる場合は、Roomを小さくして再度、実行すれば詰まります。


Re-AnnotateのWasIs

Altium DesignerのPCBファイルにてDesignatorをRe-Annotate(リナンバリング)した場合は
Undoがあるためなのか何もファイルが生成されないようです。
同じAltium DesignerのSCHとペアで使用している場合はこれでも問題ないかもしれません。

しかし、リナンバリングしたPCBデータをOrcadの回路図にバックアノテートするには
それではNGです。

そこで可能性のある方法としては
リナンバリングする前にPick And Placeファイルを作成し、リナンバリング後にも同様に
Pick And Placeファイルを作成します。
次にそれらのファイルをエクセルに読み込んで同じ座標のものがビフォー/アフターだと
わかるマクロを作成すればいいでしょう。

ADスクリプトで利用する色

スクリプトを利用して回路図の部品の色を変えたりする場合は
こちらの情報によれば
http://techdocs.altium.com/display/ADRR/Schematic+Processes

R+256*(G+(256*B))
で記載するようになっています。

具体的には

黒 :Color=0
赤 :Color=255
緑 :Color=65280
青 :Color=16711680

なので、例として下記のように0を記載すればその部分が黒色になります。

AddStringParameter('Color',0);



Place_PP_*** スクリプト その2

今回作成したスクリプトは最終的にはGND系に「Signal GND(下向きの矢印)」を
追加しました。

またネットネームは小文字であっても大文字に自動的に変換する
UpperCase を採用しました。

実際に回路図入力時にこのスクリプトを動作させてみると、かなり楽になり
小文字のままでもよいので、これまでの入力の手間が嘘のようです。
特にVCC系で、-5Vなどの向きをスペースキーで逆にする手間がないのはありがたいです。

スクリプトフォームの前面表示 その2

スクリプトフォームを常に前面に表示する方法に関して特に回避方法がなかった
のでスクリプトの最後のEND;の前に

Close;

を配置して解決しました。
これでスクリプトが終了するので再度設定したショートカットなどで
スクリプトを再実行することになります。




フォームの表示位置はフォーム(名前:Formの時)にそのフォームを
クリックして
Procedure TForm.FormShow(Sender: TObject); をいう項目を作成します。

後は下記のようにフォームの左上の座標(100,100)を記載すれば表示位置を
指定できます。

************************************************
Procedure TForm.FormShow(Sender: TObject);

Begin

Left := 100;
Top := 100;

End;
************************************************


スクリプトフォームの前面表示

Place Power Portスクリプトはほぼ完成したのですがそのスクリプトのフォームが
配置後に回路図シートに隠れて背面になることです。

スクリプトをメニューに登録してショートカットキーを割り振れば改善するかと
思ったのですが、すでにスクリプトが動作中というメッセージが表示されます。

背面に行ったフォームを再度表示させてから作業を開始することになります。

Delphi自体にはフォームを前面に表示する「SetWindowPos」というのがありますが
どうやらAltiumのスクリプトではエラーになるようです。

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。