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

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) 

PCB部品配置 [EXCELマクロ]

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

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

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

続きを読む


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

SCHの位置でPCB部品配置は? その5 [EXCELマクロ]

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

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

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


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

続きを読む


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

Like & "*"で置換テーブル [EXCELマクロ]

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

続きを読む


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

フットプリント名を既存LIB型番にて [EXCELマクロ]

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

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

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

続きを読む


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

Simple Bom を利用 [EXCELマクロ]

Altium DesignerではSCH、PCB共にSimple Bomが同じフォーマットで出力されます。
定型というのがExcelのマクロで処理するにはありがたいタイプです。

BOMは他のマクロでも利用しているので列の並びを決めているのですが
Simple Bomを加工する方が人の手が入らないのでミスが出にくいでしょう。

そのマクロの方は途中まではできていますが、Designatorが折り返さずにカンマで
区切って連続しているので、それをどう折り返す処理ができるかに掛かっています。

続きを読む


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