CAD支援ソフト探索2

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

スポンサーサイト

--:-- ...Posted

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

EXCELマクロの販売

これまで作成してきたEXCELマクロの販売をすることに致しました。
機能を説明した動画はこちらにあります。

部品配置マクロ1 パターン設計用 https://youtu.be/c4M6vc_bg14
部品配置マクロ2 パターン設計用 https://youtu.be/LBqdOri_rs8
NET_EDITORマクロ パターン設計用 https://youtu.be/UX5E6WGlFOg
NETLIST_XREFマクロ パターン設計用 https://youtu.be/gmnuOZ_rMmk
部品形状リスト作成マクロ 部品リスト作成 https://youtu.be/fxJpwrrleL0
ネットリストのノード置換 パターン設計用 https://youtu.be/8EE91K8WoeY
BOMとネットリストとの比較 パターン設計用 https://youtu.be/K1pUiMvRsks
LIB検索マクロ パターン設計用 https://youtu.be/c-lRzyPlm1I
NET_NET_COMPマクロ パターン設計用 https://youtu.be/m_6XGldLS7k
BOMとネットリストの比較 パターン設計用 https://youtu.be/YSBvgjOsHCw
線路の遅延時間のマクロ パターン設計用 https://youtu.be/j-4EHwrxjAY
IDFを修正するマクロ 3DCAD用 https://youtu.be/nWOVWfV7zyY
SWデータ検索マクロ ソリッドワークス用 https://youtu.be/v14eg9Yiay8
STEPファイルの検索マクロ Altiumの3D化 https://youtu.be/xN6oE37HbX0


スポンサーサイト

テレシスフォーマットの読み込みマクロ2

前の記事の続きです。

実際にマクロにてテレシスフォーマットのネットリストが読み込めるようにしてみました。
まだ、全部のマクロには対応していませんが簡単なものから3点ほど処理しました。

テレシスの特徴は、前にも触れたように先頭の文字列が「$PACKAGES」なので「$NETS」
までを処理すれば部品情報になります。
先頭の文字を認識したら別の処理をすることで「Altium」との区別を自動認識させること
が可能でした。

実務としては楽になりましたが、プログラムとしては片方がよければ片方がNGになったり
で苦労しました。


テレシスフォーマットの読み込みマクロ

今までプロテル(Altium)フォーマットに限定したEXCELのマクロにしていました。
しかし、要望があったので有名なテレシスフォーマットにも対応しようと思うように
なりました。

別の処理ボタンであれば問題はありませんが、自動でフォーマットを認識して処理できる
かは不安が残ります。

テレシスは先頭の文字が独特なのでそれを検知してIF文などで処理しようと思っています。

ピックアンドプレースファイルの応用

タイトルは変えていますが以前から記事にしていたピックアンドプレース関連の話です。

顧客とのやりとりとして部品の寸法を確認する図面が必要な場合があります。
その場合の手法の一つです。

ネットリストをエクセルのマクロで加工して使用するフットプリントを1つずつ発行
させるための新たなネットリストを生成します。

それを別の新規PCBDOCファイルにロードします。
それだとバラバラな位置にあります。

前出のマクロにて同時にピックアンドプレースファイルを生成しておきます。
それは部品の間隔を50-100mm程度になるようにプログラミングします。


PCB部品配置 その3

ピックアンドプレースファイルの利用の仕方としてレイアウトの変更があります。
顧客に提出するレイアウトが1種類ならともかく複数ある場合はそのPCBDOCを保存して
いることでしょう。

パターンを引いてないレイアウトの時点であればピックアンドプレースファイルを
保存して別名で管理すればよいのではないでしょうか。

それをロードすれば部品が勝手に移動してくれるからです。
何といってもファイルサイズが小さいので長年の設計で保存ファイルが増加してしまう
ことの防止にもなります。

PCB部品配置 その2

ピックアンドプレースファイルにてフットプリントがない場合にどうなるのかテストして
みました。
すると次の列であるMid-Xをフットプリントと認識するようです。
しかし、部品は配置されているので異なっていても無視されます。
問題となるのは次々に列がずれることで
最後のRotationの列がPad-Yと解釈されてしまいます。

するとRotationの代わりにコメントが割り振られます。
コメント欄が例えば74HC04AFと書かれていたら74度と解釈されて回転してまいます。

当然ながらその前の項目も違っているので異なった座標に移動します。
コメント欄自体は未記入の場合もあるので通常の動作ではなくてもいいはずです。

PCB部品配置

基板の周辺に部品発行したばかりのPCBにて
そのネットリストを読み込んでEXCELのマクロで処理してピックアンドプレースファイルに
することに成功しました。

それを読み込んで下記の手順で部品を移動できます。
 Tools > Componet Placement > Place From File

縦横10mm間隔での配置としましたが大きなコネクタなども想定していたほど他の部品と
被らないので問題ありませんでした。
CRなどは連番となっているので探しやすいです。

SCHの位置でPCB部品配置は? その5

SCHからPCBへ座標を流用するマクロが完成し複数ページのSCHから生成したものから
ピックアンドプレースファイルを作成できました。

PCBの位置もそのファイル*.PIKをロードすることで予想通りの位置に再配置できました。
これから実務で利用して更にブラッシュアップしていくことになります。

複数のシートの場合はどのように配置するか悩みましたが事前に5x5で25シートを最大
とし、オフセット値をCASE文にて、具体的な数値を記載させることで解決しました。


SCHの位置情報が使えない場合も想定して、部品をDesignatorのアルファベット順に
左下から10mmずつ配置できるようなマクロを考えています。

Like & "*"で置換テーブル

VBAなどでフットプリントなどの型番を置換したい場合に置換テーブルを作成したりします。
VLOOKUPやREPLACE以外に使えるのがLIKEです。
クエリーでもこれが登場します。
下記のような使い方をします。

"ABCDE" Like ("ABCD*") = True

これを書き換えて
"ABCDE" Like ("ABCD" & "*") = True

具体的にはIf文などで下記の例のように記述します。
(別のシート同士で処理している例)

If NET.Cells(i, 3) Like (RP.Cells(j, 14) & "*") = True Then

NET.Cells(i, 5) = RP.Cells(j, 15)

またRA1,R2などが混在している場合にRだけを該当させるには下記のようにします。
(Left(NET.Cells(i, 1), 1) = "R") And (Mid(NET.Cells(i, 1), 2, 1) Like "[0-9]") Then


フットプリント名を既存LIB型番にて

顧客のネットリストを読み込んでも顧客のフットプリントを鵜呑みや参考にはできません。
コメント欄を基準に置換をするマクロで処理してフットプリントを差し替えています。

しかし、置換テープルなどで手を尽くしても限度があります。
ICなどは既存ライブラリ内にある型番を置換テーブルの代わりに利用すればいいと考えて
それに該当していればその型番に変換するマクロにしました。

弊社では顧客でコメント欄がまじめにそれも規則的に記載されている場合は
9割ぐらいはマクロで変換処理が可能です。
作業時間が数分で基板設計用のネットリストに変換が可能です。

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