So-net無料ブログ作成
検索選択
EXCELマクロ ブログトップ
前の20件 | -

ネットリストの重複行削除3 [EXCELマクロ]

秀丸エディタでのマクロ処理はまだ途中なのですが
EXCELのマクロでの処理は比較的簡単に処理できました。

ネットリストのフォーマットはAltium、プロテル、Tango形式での話しです。
ネットリストの最終行=接続情報の終わりの括弧の)です。
そして、先頭の括弧の(の行を求めて「For Next」文で、通常とは逆に最終行から重複削除
すればOKです。

先頭の括弧の(を見つけるには最終行から最初に登場する鍵括弧の]を探してその行数に1を足せば
いいでしょう。
ネット名とノード名が同じ場合をチェックするためにその2つ前が括弧(でないこともIf文で
チェックしています。


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

Utilityの多さ [EXCELマクロ]

EXCELマクロやDelphiスクリプトや秀丸マクロを使用していますが
機能が重複しないように作成はしています。

しかし、種類が多いので作成した自分自身が利用頻度が低いUtilityは忘れてしまい
似たような機能のUtilityを作ってしまいそうです。

これからはなるべくこれらを併用してUtilityを作らないようにしないといけない
時期になってきました。

単機能なのか色々使えるUtilityがいいのかも悩ましいです。


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

SCHとPCBのネットリストの比較 [EXCELマクロ]

顧客由来のSCHのネットリストのフットプリントやコメントと自社差し替えのPCBの
ネットリストを比較EXCELのマクロで処理しています。

弊社の取引先の場合は接続情報だけではなくてある程度は理解が可能な範囲のネットリストなので
そのままECXELマクロの基準として使用しています。

しかし、その前に顧客由来のSCHのネットリストは接続情報だけでフットプリントや
コメントも信頼度がない場合があります。

VBA_NET3_Util.jpg

続きを読む


タグ:Altium Designer
nice!(1)  コメント(0) 

ECXELマクロによる3D化作業手順の変化 [EXCELマクロ]

自社の場合は。よほど簡単な小物以外は3D化に対応しているので問題ないのですが、他のCADの
ものを3D化して欲しいという依頼の場合は下記のような手順になります。

一部分をECXELマクロで処理することでこれまでとは少し違った手順となります。
それを箇条書きで示します。

1.基板のネットリストとピックアンドプレースファイルを依頼先より取り寄せます。

2.ネットリストから仮のピックアンドプレースファイルをEXCELマクロで作成します。
 この時点では部品の座標情報がないのでX、Y共に0mmにしてあります。

3.顧客のピックアンドプレースファイルではトップやボトムなどの表記が異なるので
 それを事前に修正処理をします。
 倍率など不要な項目は列を削除します。

4.EXCELマクロの該当するシートに3.で修正したデータを手動で貼り付けます。

5.EXCELマクロを実行させてその座標データをピックアンドプレースファイルに反映します。
 基準点が異なる場合などはオフセットをEXCELマクロ側で実行します。
 最後にPIKファイルとして出力させておきます。

6.「Altium Designer」で専用のライブラリを作成し仮のシルクと登録位置を示した部品を
 登録します。この登録位置は依頼先の座標と一致している必要があります。

7.これを通常のパターン設計のように部品をロードします。
 配置場所は適当で問題ありません。手動でのロードでもOKです。

8.ここでPIKファイルをロードさせてその位置に自動配置させます。

9.座標が問題なければIDFファイルを出力します。
 「Altium Designer」は3種類の座標体系があるので機構部品などは微妙にずれる場合があります。

3D化
 これ以降は3DCAD側で2D部品を新たに同じ座標で作成した3D部品に置換するので
 3D化が可能となります。



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

PIKのオフセットなどのEXCELマクロ [EXCELマクロ]

ピックアンドプレースファイルを修正したりオフセットを掛けたり、数値を丸めたりなど
することのできるEXCELのマクロを作成しました。

別のCADのピックアンドプレースファイルもある程度フォーマットを合わせればそのシートを
参考にして転記するようにもしました。

これで別のCADからでもライブラリ作りは別として基板の再設計もすることが可能になりました。
できればこのデータでIDF出力ができれば3D化も可能ですがそれには未対応です。

振り返ると、ピックアンドプレースファイルが入手可能で3D化をして欲しいという要望が
あったのでこのマクロを作成するきっかけでした。


タグ:Excel
nice!(0)  コメント(0) 

EXCELのフォーム機能 [EXCELマクロ]

EXCELでネットリストを入力する場合に「フォーム機能」を利用すると
プロテル形式の3行を3列として横に見えるように処理できます。
「フォーム機能」の利用の仕方に関してはインターネット検索でお願い致します。

追記も可能です。
セルに味気なく単純入力するよりは、こちらの方がミスが減っていいでしょう。

ただ、後からVBAで[と]と空行を出力するマクロができる方に限ります。

Excel_Input_Form.jpg
nice!(0)  コメント(0) 

部品の座標の桁落ちを修正するマクロ [EXCELマクロ]

以前にこちらの記事でふれた部品の座標がmm系でも小数第4位程度まで細かくなってしまう現象への
対処です。
http://sophil3.blog.so-net.ne.jp/2016-10-31-1

CSVファイル形式で保存したピックアンドプレースファイルをEXCELで読み込ませます。
次に一旦、mmの文字を削除した後でROUND関数で四捨五入(実際には銀行丸め)させます。
その後でまたmmの文字を追加します。

また部品の配置角度が360度と表示されている場合は0度にします。

それを同じパスに*.PIKで別名保存します。
そのまま部品実装会社に提出するも良し、「Altium Designer」に読み込んで部品の位置を
微調整することも可能です。
ただし、ポリゴン処理をしている場合は、再度ポリゴン注入をしないとDRCにてクリアランスで
エラーになるでしょう。

PIK_RND.jpg

続きを読む


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

改版時のREF番号の比較 [EXCELマクロ]

改版時には色々な情報で回路図のどの部分を変更したかを調査します。
両方のネットリストが存在する場合はそのREF番号(Designator)を比較することで
片方では減少を、もう一方では増加を調べることができます。

これまではREF番号以外の情報は比較させていましたが、肝心のREF番号の増減には着目
させていませんでした。

現在、EXCELのマクロでそれを実現するためにプログラミング中です。
表示の仕方をどうするかだけの状態までは出来上がっています。


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

Comment欄の書き換え [EXCELマクロ]

以前にもこちらの「トリッキーなComment書き換え」という記事でも触れたコメント欄に関する内容の
続きです。
http://sophil3.blog.so-net.ne.jp/2016-10-13-1

顧客の部品表に従ってコメント欄を直さなければいけない場合もあるでしょう。
(設計済みのAltium DesignerのデータからもBOMを出力したい?)

弊社で使用しているEXCELのマクロではネットリストや部品表からネットリストのフットプリント欄を
差し替えていますがその時にコメント欄の修正にも対処しています。

後者のマクロを利用すればそのマクロの改造なしで部品表のコメント欄をネットリストとし、設計基板の
コメント欄を差し替え可能です。
(フットプリント名の自社形状名との差し替えはしないまま。)

ネットリストの読み込み作業時に、フットプリント名の部分は書き換えしないように対処するのは
当然です。


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

FootPrintの置換テーブル [EXCELマクロ]

顧客の回路図から生成したネットリスト内のフットプリント名は自社のフットプリント名とは
異なるので変換が必要です。

EXCELマクロで細かく処理していますが規則性のある部分はEXCELマクロ内に別シートとして
置換テーブルを設けています。

これまでは汎用マクロとしていましたが、置換させるのに限度があるので顧客別にEXCELマクロ自体を
別名保存して顧客別に対応することにしました。

欠点としてはEXCELマクロ自体を(バグ)修正すると、顧客別の複数のEXCELマクロを修正するのが面倒に
なります。
この修正もEXCELマクロで処理することが可能なのか検討中です。

これ以外の方法として
秀丸エディタのマクロでReplaceallなどのコマンドで細かく置換させる手もあります。
74HCシリーズなど似たような型番を置換させるには行数が増えて大変です。


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

トリッキーなComment書き換え [EXCELマクロ]

「Altium Designer」では通常はネットリストのCommentを書き換える修正作業をし、それを
プロジェクトファイルドラッグして比較することでCommentの書き換えの処理ができます。

これ以外にPIKファイルでの修正方法もあります。
作業がややトリッキーなのでまずは手動でバックアップファイルを取っておきます。
以下、手順です。

1.基板設計ファイルからピックアンドプレースファイルをmm系のCSVでファイル生成します。

2.EXCELでそのファイルを読み込みます。
3.編集しやすいようにB列のFootprintでソートしますが3行目から最終行までをマウスで指定し
 ソート範囲も拡張してください。
4.K列にComment欄があるのでそれを編集します。
5.編集済みのファイル名を*.PIKファイルとして保存します。
 (*.CSVで保存した後に*.PIKにリネームします。)

6.「Altium Designer」にて Tools > Component Placement > Place From File を実行し
 編集した*.PIKをインポートすればCommentだけが書き換わります。


すべての工程でEXCELマクロもスクリプトも使用しないので初心者でも処理できるでしょう。
ネットリストのテキストエディタでの修正作業よりは早いでしょう。

続きを読む


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

フットプリント・アサイン [EXCELマクロ]

基板設計業者の場合はSCHからのネットリストのフットプリントが使用できません。
何らかの手法で自社のフットプリントライブラリーからPCB設計に使用するフットプリントを
アサインする必要があります。

弊社では2種類のEXCELのマクロのどちらかでライブラリー検索をさせてほぼ自動で
アサインさせてネットリストの部品情報を差し替えています。

インターネットで検索してもKICADぐらいしか関連記事がありません。
皆さんはテキストエディタなどで手動で差し替えるか、事前に部品表を基準にして部品を
配置させておいて後から接続情報だけをロードさせているのでしょうか。

どちらにしても手間が掛かりますが、弊社では10分程度しか掛けていません。
ミスがでるのが怖いのですが、再度ネットリスト同士のフットプリント部分もコンペア
させるので安心してマクロを使用しています。

基板設計者の場合は一度決めた手法から抜け出せない呪縛のようなものがあるように
感じます。

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

フットプリント検索 [EXCELマクロ]

Excelのマクロで事前に集めた全フットプリントと照合してネットリストの部品情報部分を
差し替えています。
しかし、サフィックスが似ている細かい部分はマクロでの完全な割付には無理があります。

その部分だけは全フットプリントから手動で検索するVBのメニューを追加しました。
これでフットプリントの割付は格段にやり易くなりました。

VBAはある程度は慣れていますが初めてメニュー(Form)を採用しました。
「Altium Designer」で使用するスクリプトDelphiやVBのIDEとは少し違うので戸惑いが
ありました。

Macro_DB_SR_New.jpg
nice!(1)  コメント(0) 

EXCELマクロ(VBA) [EXCELマクロ]

基板設計CADですべての処理ができればいいのですがそういう訳にもいきません。
そこでユーティリティーが必要になります。
⼀つはDelphiスクリプトなどで実現可能ですが、表や⽂字列であればEXCELの⽅が馴染み
易いでしょう。
それをさらに加⼯できるようにVBA(Visual Basic6から発展)で処理することを意味します。
基板設計ではネットリストの変換にネットリストコンバータが必要となる場合もありますが
既知の簡単な2種類のネットの変換であればEXCELマクロでも作成することが可能です。
Alitum DesignerではEXCELのファイル形式でレポート出⼒する場⾯が多いのでこのマクロに
トライする価値があるでしょう。
筆者は10種類以上のEXCELマクロを作成し基板設計に利⽤しています。
nice!(0)  コメント(0) 

回路図から全ピン数を算出 [EXCELマクロ]

ネットリストから使用ピン数を算出することが可能です。
しかし、使用している部品の全ピン数を調べることはできません。

そこで、Altiumの回路図にてLibref、Pin数、個数をBOMとして出力し、それをEXCEL
マクロで処理すれば算出することが可能です。

見積もりは使用ピン数で算出するので低めにでます。
個々の部品作りの難度はピン数に比例します。
全ピン数 / 使用ピン数 を係数として見積もりに反映した方がよさそうです。



タグ:マクロ VBA
nice!(0)  コメント(0) 

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

前の記事の続きです。

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

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

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

続きを読む


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

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

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

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

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

続きを読む


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

ピックアンドプレースファイルの応用 [EXCELマクロ]

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

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

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

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

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

続きを読む


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

PCB部品配置 その3 [EXCELマクロ]

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

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

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

続きを読む


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

PCB部品配置 その2 [EXCELマクロ]

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

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

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

続きを読む


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