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

資材調達業務向けソフトウェアは Part.2 [EXCEL Macro]

型番は置換で対応可能ですが、単価やメーカーなどにも対応する必要があります。

ネットリストやSCH系CADから生成した生の部品表から作成するマクロは
「部品表修正マクロ・プロフェッショナル」で実現できました。
しかし、それから更にデータベースなどを利用して置換し再集計するべきでしょう。
特に価格とメーカーと互換性のあるサードパーティの部品の型番やその入手先の
代理店なども必要でしょう。

弊社では部品表太では単純に置換していただけで、資材として利用していなかったので
その情報を持っていません。
今となっては動作しないので引っ張り出すこともむりです。

それはEXCELがいいのかACCESSがいいのかは現時点では判定できていません。


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

部品表修正マクロ・プロ [EXCEL Macro]

ネットリストを読み込んで部品表にするマクロです。
置換機能があるので型番も置換テーブルで差し替え可能です。
ネットリストから部品表を生成する機能なのですが、これまでの部品表修正機能も有しているので
「部品表修正マクロ・プロフェッショナル」と呼ぶことにしました。

これだけで回路設計会社の資材部門、パターン設計者のフットプリント差し替え作業に対応できます。
前者の作業では部品表太の代わりになります。
但し、部品価格などの関連付けには対応できていません。
その場合は、別のデータベースとの関連で処理してもらうことになります。

パターン設計作業としてはこのマクロで顧客からの部品表とネットリストの比較も可能なので
早めに顧客の部品表のミスが洗い出せます。
また、ネットリストを置換しないまま、他のネットリストを読み込んで比較すると両者を比較
できることになります。
これまでの単体のマクロの中では万能に近いツールとなります。

販売価格などは後日、アナウンスする予定です。


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

置換テーブルの具体例 [EXCEL Macro]

EXCELマクロにて型番の文字列を別の文字列に置換する為に置換テーブルを設けています。
その具体例を示します。

CRなどは値で区別必要があります、ICなどはダイレクトに置換すればいいでしょう。
文字数の少ないものは単純に置換すると、似た文字列が置換されるという誤動作をします。
そこで、3項目(列)の内容が一致した時だけ処理する必要があります。
その為、REF番号のアルファベット部分を抽出しなければならずプログラムとしては複雑になります。

置換したものと置換しないオリジナルを区別するには文字を黒から他の色に変化させることも
必要になります。

BCM_PRO_RP_Ex.png

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

ネットリストからBOMを生成するには [EXCEL Macro]

もし回路図からのネットリストを読み込んでその情報から部品表を作成するにはどうすればいいか
EXCELで処理する場合の手順を検討してみました。

1.まずはREF番号、型番、値の3列に分類します。
 ネットリストがテレシス形式の場合はそのまま広げるように並べればいいので簡単です。

2.次に、値の列でソートします。
 回路図からの場合はCRなどは厳密な型番ではない場合が殆どでしょう。

3.更に型番の列でソートします。
 一見、値の列と逆のように見えますが型番が基準なので最後に型番でソートします。

4.内容が同じものを数をカウントします。

5.これらの情報を別のシートなどに記載します。
 しかし、これが一番難しそうです。

ORCADの場合は、型番と値が同じ場合が多いので困りはしていませんでした。
しかし、両社が異なる場合は手順が面倒で未経験です。


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

資材調達業務向けソフトウェアは [EXCEL Macro]

これまで基板設計業者や回路設計者向けについて考えてEXCELマクロを考えてきました。
回路設計会社内の部品調達部署ではネットリストは貰える状態でしょう。
それから部品表を制作するのに設計者ではなくて資材の部署の場合はその作業は辛いでしょう。

知り合いの会社で以前は、部品表太で登録したデータベースを利用して型番を差し替えていました。
しかしWinXP以降は、内部のデータベースが対応しないのか使えないソフトウェアと
なってしまいました。

そこでEXCELマクロで置換テーブルを設けてそれで型番を置換すれば代用になるのではないかと
考えるようになりました。

つまり「資材調達向けマクロ」という構想です。


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

ネットリストから部品表というのは [EXCEL Macro]

以前から作成した方がいいのか悩ましいのがネットリストからEXCELマクロにて部品表を作成すると
いうこと。
一見、部品表は回路設計CADや基板設計CADから生成できるので無駄のようです。

しかし、部品表を生成する工程またはその後に置換テーブルを利用すれば部品表太と似たような
処理が可能になります。

顧客別にデータベースを作成または選択するのは面倒なのでマクロ自体を顧客の略称を追加して
別名保存すればいいでしょう。

弊社で一番利用しているマクロもネットリストから中間的に擬似部品表のようなものを作成して
置換しているのでベストな手法のように思います。
この擬似部品表の部分を通常の部品表の様式にするのが面倒なので手付かずでした。

NET_DMY_BOM.png

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

部品表内の取り消し線の処理 Part.2 [EXCEL Macro]

取り消し線に関するプログラミングは完了して、スタンダード版に反映しました。

しかし、販売促進版に取り消し線のある部品表を貼り付けた場合は
最後にフォントサイズなどを変更するプログラムによって取り消し線の部分が
通常の表示に代わってしまいます。
支給された部品表の文字サイズが小さい場合に対応していたのですがそれが仇となりました。

そこで販売促進版でも取り消し線に対応することにしました。
(Rev.1.03)

取り消し線の部分は消去することになりますが、部品点数が1個などの場合はその欄が
空白になったりします。
後の工程でエラーになる場合もあるので、その点に注意する必要があります。


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

部品表内の取り消し線の処理 [EXCEL Macro]

部品表修正するEXCELマクロにて取り消し線にも対応すべくプログラミング中です。
そこで気になったのがREF番号ではなくて、型番や数量の部分にも取り消し線がある場合です。

マクロにて取り消し線の部分を消去することは可能なのですが矛盾がある場合は
問題となる場合もあるでしょう。
そういう場合は、手動で編集する場面も出てきそうです。

macro_TH_Str_Th_DEL.png

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

部品表内のアルファベット省略 Part.2 [EXCEL Macro]

部品表内のREF番号の記述にて冒頭のアルファベット以外は削除したものに対応した
マクロが完成しました。

これまで、またこれからアップロードする部品表修正の工程があるマクロに関係があるので
急いで処理しました。

ダウンロード可能な販売促進版のマクロに関しても対応済みです。
https://sophil3.blog.so-net.ne.jp/2019-01-21-2

今回の修正でバージョンは1.01となっています。

BCM_REF_None.png

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

部品表内のアルファベット省略 [EXCEL Macro]

部品表のREF番号に関して、C1,C2,C3ではなくてC1,2,3という風に省略する場合が
あるようです。
更に点数が多くて複数行に渡る場合はその先頭もアルファベットがなく次の行が
4,5,6という風に始まる場合もあるようです。

大規模な部品表ではできるだけ文字数を減らす為の処置なのでしょうが厄介です。

現行の部品表を修正するマクロではこの部分には対応していないので、事前に処理する
工程をマクロ内に設ける必要が出てきました。

これに関連するマクロが5種類もあるので早めに対応する必要が出てきました。


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

販売促進版マクロにスタンダード版を新設 [EXCEL Macro]

部品表修正マクロと部品位置情報修正マクロ共に有料のスタンダード版を設けることになりました。

1.部品表修正マクロBCM・スタンダード版
 Windowsで使用できない文字列をアンダーバーに変換する機能
 クロスリファレンスにて左右の型番などの違いを色分けする機能を有します。

 販売価格は税別で6,000円を予定しています。

2.部品位置情報修正マクロPCM・スタンダード版
 Windowsで使用できない文字列をアンダーバーに変換する機能
 ピックアンドプレースの表からTOP/BOT別々に部品表を生成します。
 (TOP/BOT両方は既に部品表で示しているので生成しません。)

 単体の部品表やピックアンドプレースファイルからTOPとBOTを別々にするのは
 部品実装業者側の負担が大きいので、その機能を装備しました。

 販売価格は税別で5,000円を予定しています。

 どちらもダウンロード版で、振込確認後にメールで解凍用パスワードをお知らせする
 タイプになります。

 ソフトウェアは作成中ですので、リリースは今月末ぐらいを予定しています。
 カタログの内容は販売促進版に追加機能を示す形なので殆ど同じ構成です。
 ダウンロードURLやパスワードを問い合わせするメールアドレスの部分が追加や変更に
 なりそうです。

 これまで部品実装業者向けのソフトウェアは選択肢が限られていたので後者のマクロに
 ご期待ください。


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

回路図とのノードの不具合チェック Part.2 [EXCEL Macro]

主にDとQなどでノード名をAKやECBではなくて123などの数字で指定している場合を
チェックするEXCELマクロを作成しました。
AVRなども4ピンぐらいまではアサインが不規則な場合もあるのでUでもチェックできる
ようにしました。

それ以外に指定したフットプリントとコメント欄に完全一致したものも追加で含めます。
それはCRは通常は1や2などのピンアサインなのでリストに加えると増えるので除外します。
しかし、電解コンデンサなどでPとNではなくて1と2とされる顧客もいらっしゃいます。
それに対応するにはこのように個別に型番で指定する必要があったからです。

下記の画像がその結果ですが、同じフットプリントやコメントはどれか一つを調べることで
確認することが多いので、代表するものは黒でそれ以外は灰色にしました。

ノードは自動で発行してリンク先が存在していたら記載して、更にハイパーリンクを貼って
います。

これまでに使用したことがないEXCELの関数やメソッドを使用したので非常に勉強になりました。

Node_check_Macro.png

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

REF番号の検索 [EXCEL Macro]

REF番号を検索するEXCELのVBAでは、Instr関数を使います。
しかし、REF番号特有でR5を検索しようとすると
VR5も該当してしまいます。
トランジスタはQが多いですがTR*であればそれも該当します。
L*を検索すると、RL*も該当するなど含まれます。

こういう点に気をつける必要があります。
Instr関数では文字の始まりの位置を返すので完全一致は指定できません。

そこでFINDメソッドで完全一致を指定することになります。
ただ、FINDメソッドでは前回の条件を覚えているようなので引数を指定しておかないと
検索結果に再現性がなくなるようです。

SEARCH関数というものもありますが、こちらは大文字小文字を区別してくれないので
これまでに使用したことはありません。


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

EXCELでのハイパーリンク [EXCEL Macro]

これまでURLなどの情報をセルに書き込むことはしていましたが
セルの文字列に対して、同じファイル内の別のシートにリンクすることに挑戦しました。

実際にはネットのノードをクリックすると別のネット名があるシートにジャンプして
他のノードとの接続関係を見るためです。

このハイパーリンクに気が付かなかったら、表示(表現)が複雑になっていたところです。

しかし、これは手動での話しです。
これをVBAで自動処理するにはどうしたらいいか、まだトライしていません。

先日、触れたネットリスト内のノード名の宣言などのミスをチェックするEXCELのマクロに
利用しようと思っています。

実際に処理をしてみると、セルの座標(i、j)などの指定では処理できず、通常のECXELのように
A1、B4などの記述でないと動作しないようです。
j部分ををアルファベットに変換するようにプログラミングして対処します。


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

PnPスクリプトのコメント欄の修正マクロ [EXCEL Macro]

SCHとリンクを取ったPCBの場合は前出のPnPスクリプトでのコメント欄はSCH由来のものとなります。
しかし、場合によっては値が入っていないことがあります。

特にORCADから変換したSCHの場合は、値ではなくてLIB_REFらしい名称が出力されてしまいます。
本来、スクリプトはありがたいのですが、このスクリプトはAPIとの絡みもあってPCBのコメント欄を
出力することができないお粗末な仕様です。

そこで通常出力したPnPファイル(ミリ系でCSV形式)を読み込んでそのコメント欄をVlookup関数を
使用して差し替えるマクロを作成しました。

前出のPnPスクリプトから出力されたファイルはタブ形式なので、事前に同じフォルダに収めて
置いても、選択時に間違えることは少ないというEXCELマクロの仕様です。
通常は、2行目は空白ですが、3行目のデータを上に詰めております。


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

REF番号リナンバリング対応 [EXCEL Macro]

以前に記事にした回路図をリナンバリングされたものの改版への対応ができました。
新旧でREF番号が異なっていても、かなりの部品の配置場所を以前と同じ位置にしたい場合の話です。

以下、その手順です。
1.新旧の回路図からWAS/ISファイルを手動で作成します。
 区切り文字はタブ形式に限定しました。

2.旧PCB(改版対象)からピックアンドプレースファイルを出力します。
 AD17より形式が代わってしまったのでそれ以前のバージョンで出力などの処理をします。

3.作成したEXCELマクロにて両方のファイルを入力します。

4.該当するREF番号を置換して、対象外のREF番号の行は削除して新PIKファイルとして出力します。

5.これをAD17より前のバージョンにて、新PCBのファイルにロードすれば該当する部品が移動します。
 (Tools > Component Placement > Placement From File)


WAS/ISファイルは手動で作成するので一度に多くのREF番号の変更処理をするとミスしてしまいます。
大物デバイスの周辺ごとに作成し、何度も同様の置換処理をすればいいでしょう。



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

ネットリスト比較のマクロの改善 [EXCEL Macro]

SCHとPCBなどの2つのネットリストを比較するマクロは主にSCHを基準に比較しています。
しかし、そのSCHのREF番号に誤りなどがあって部品点数が少ない場合は、チェックできない
ものが出てきます。

そこで、両者のREF番号の数を数えておいて、それを書き込んでおいたセルの内容を比較する
ように改善しました。
数ではなくてセルの内容自体を比較し、同じでなければ「部品点数が異なります」という
メッセージを出すようにしています。



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

DelphiからVBAへ [EXCEL Macro]

AltiumのDelphi ScriptからEXCELのVBAに6種類のスクリプトを移植中です。
そこで気が付いたのがVBAのメニューフォームは味気ない感じがします。
ボタンの影の付き方やページコントロールの枠の境界なども見辛いです。

逆にVBAの方がプログラミングはし易いです。
驚いたのは平方根の記述です。
移植して動作チェックをしてみると答えがDelphiスクリプトと異なる場合がありました。
結局、Sqrという関数が違っていました。
VBAでは平方根はSqrなのですが、DelphiでSqrは二乗のことで、平方根はSqrtでした。
Delphiの値が正しいという基準で処理していたので、Delphiの関数の記述が違って
いるのに気が付くのに時間が掛かってしまいました。


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

Delphi ScriptのEXCELへの移植 [EXCEL Macro]

「Delphi Script」は「Altium Designer」上でないと動作しないので、他のPCBCADをお使いの
方がこのブログを訪問されるとがっかりされていることでしょう。

実際に、ダウンロードのカテゴリーでは「Delphi Script」より「EXCEL Macro」の方が閲覧数が
多いようです。
知り合いの基板設計者からも、そういう指摘がありました。

伝送線路関連や「VIAの抵抗値」などのスクリプトはEXCELに移植をした方が良さそうです。
個別ではなくてこれらをまとめて一つのマクロにした方が便利でしょう。

現状ではこれらを含んだ4つぐらいをまとめる予定でおります。


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

ノード名置換マクロの件数変更 [EXCEL Macro]

これまでにネットリストのノード名をフットプリント名で変更するマクロにて、そのフットプリント名は
10件までとしていました。
これ以上は危険が伴うからという理由でした。
フットプリント名での置換なので、複数使いが多い筈なので置換できる点数としてはかなりの数に
なるでしょう。

しかし、規模の大きな基板のネットリストの場合に、それが14件ほど必要となりました。
その場でマクロのプログラムを修正するのは危険なので同じプログラムを2回利用すれば20件まで
対応できる筈なので、それで対処しました。

仕事が終了した後で、マクロにて修正できる件数を30件まで増加させました。
無制限にというのもどうなのかと悩ましいです。
フットプリント側で修正するという手もあるのですが、それでは改版時に影響がでます。
PCBDOC側を修正することで対処も可能ですが、再修正時に困惑するかもしれません。

何がいいのか、未だに手探りです。
主に置換しているのは電解コンデンサ、ダイオード、トランジスタです。


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