ファイル編集工程を100倍高速化した話

【製造業ベンチャーでソフトウェア開発と業務効率化をした話】シリーズ

「ソフトウェアによる効率化が製造業のベンチャーでも欠かせない」という思いから、FPC 製造のためのソフトウェアを自社開発してきた中で得られた成果そして苦労したところ良かったところなどの体験談を紹介していきたいと思います。

前の記事

【製造業ベンチャーでソフトウェア開発と業務効率化をした話】シリーズ 記事を全部読む

何ができるようになったか

フレキシブル基板の製造には顧客から入稿されたファイルを製造用に変換・編集する工程があります。その工程を自動化するプログラムを開発し、手動だと15分程度かかっていた作業を10秒(約100倍)で処理できるようにしました。

またファイル編集工程を生産管理システムに組み込むことで、基板製造用に作られる大量のファイルを簡単に管理できるようになりました。

開発のきっかけ

フレキシブル基板を注文すると「ファイル編集費」として数万円の費用がかかるケースがあります。かからないメーカーもありますが、そういう費用を取るくらい面倒な作業があるなら、自分たちはそこを効率化して価格を下げたいと思いました。

また、現実的に購入できる市販のソフトウェアが無かったという事情もあります。エレファンテックは導電パターンの印刷にPDFファイルを利用していますが、一般的にプリンテッド・エレクトロニクス(印刷で基板を作る分野)のメーカーではTIFFなど画像ファイルを利用することが多いようで、製造用にPDFを出力できるソフトウェアは今のところ見つけられていません。

このような野心と現実的な理由によりファイル変換・編集ソフトウェアを開発することとなりました。

プログラムの機能

フレキシブル基板の注文に使われるファイルはガーバーと呼ばれる形式(やその他にDXFなど)が一般的ですが、そのガーバーファイルを製造用のPDFファイルやサムネイル用のSVGに自動に変換するプログラムを開発しました。

このプログラムでは単に変換するだけでなく、製造の効率化のために面付け(基板を複製して並べること)や、製造に利用している特殊な導電パターンを追加することで製造用のファイルを作成しています。その他にも、細かいパターンの調整などの機能もあります。


プログラムの機能

ちなみにPDFを使いパターンをベクタ形式で表現することには短所と長所があり、画像のようにピクセルを直接いじれないので精緻な制御が難しい反面、データが遥かに軽くなります。エレファンテックの製造用データの場合、TIFFだと圧縮形式を工夫しても数百MBくらいになりますが、PDFではせいぜい数百KB程度と1000分の1くらいのサイズになります。

開発の流れ

ステージ1- オープンソースを利用

まず初めに利用できる既存のソフトウェアを探したところ、Gerbvというプログラムが一番良く開発・メンテナンスされているようでライセンスも問題なかったので、まずこれを試すことにしました。この頃はP-Flexの仕様も製法もシンプルだったので、必要とされた機能は単に図面が描かれたガーバーファイルをPDFに変換して出力するだけでした。

Gerbvのサンプルプログラムをいろいろ変更しながら必要な機能を試したところ、特に問題は見つからなかったのでGerbvを採用することにしました。GerbvはC言語で書かれているプログラムですが、エレファンテックの生産管理システムはPythonで作られているのでPythonから呼び出せるようなプログラムを開発し、Gerbv自体はほぼそのまま使いました。

開発したプログラムを生産管理システムに組み込み、ファイルをアップロードすると自動で変換する機能を作ることで、スムーズに作業ができるようにしました。

ステージ2 – Gerbvをカスタマイズ

開発した変換プログラムを利用していると、どうも図面によっては変換時にパターンが減っているような問題が見つかりました。

自分が開発したプログラムには問題が見つからなかったのでGerbvのソースコードを調べた結果、どうやらそのままでは製造に使えない仕様があることが分かりました。Gerbvの設計思想ではPDFやSVGはあくまでも画像として確認するためのフォーマットであって、「画像にすると見えない小さなパターンは出力しない」仕様だったのです。それ以外にもバグが見つかりGerbvの開発者の対応も早くないため、結局は自分でカスタマイズすることになりました。

ガーバーファイルの仕様は大きく複雑で、Gerbvが仕様に完璧に対応しているかを確認するのも難しく、また完璧じゃなかったとして自分が全て修正できているかを確認するのも非常に難しいです。そのため現在も変換されたPDFファイルを目で確認するプロセスは欠かせません。自動化と言うとあらゆる問題をプログラムで解決するかのような気持ちになりますが、現実的には開発のコストを考えながら手作業とのちょうどいい分担を探すことになります。

ステージ3 – 製造テンプレート

P-Flexの製造工程が進化していき、様々なデータを取得するために独自の導電パターンを基板と同時に印刷するようになりました。これを「製造テンプレート」と呼び、バージョン管理を始めました。そして変換プログラム側では製造テンプレートを基板の製造ファイルに自動で貼り付けるようにしました。PDFの編集にはreportlabというオープンソースのプログラムを使っています。

製造テンプレートは現在も頻繁に更新されていて、ここから得られたデータが製造工程の進歩に活用されています。

ステージ4 – 自動面付け

時間・コスト・資源など様々な意味で効率的な製造には「面付け」、つまりフィルムに基板を並べて配置することが必須です。これまで面付けは手動で行っていましたが、時間がかかる上にパターンの抜けなどの単純ミスもありました。

そこで、自動で最適な配置を計算した上で面付けをするプログラムを開発しました。特に小さい基板(=たくさん面付けできる基板)で役に立っています。

ステージ5 – ファイル形式の追加

製造する前にサムネイルでパターンを確認したいという希望と、製造工程の進歩に伴って面付けをされた状態のガーバーファイルが必要になったことにより、PDFに加えてSVG(サムネイル)とガーバーファイル(製造用)を出力する機能を開発しました。

サムネイルを画像でなくベクター形式のSVGにしたのは、必要に応じて拡大すれば詳細を確認できるようにです。またサムネイルでは面付けされていない状態の基板を確認できるようにするため面付けをしていません。

ステージ6 – パターン面積計算

ファイル編集とは少し違いますが、ファイル変換時に同時に銅パターン(導体部分)の面積を計算するプログラムを開発しました。パターン面積は製造には非常に重要なデータで、例えばめっき工程では消費した薬液を正しい量だけ補充するためにパターン面積が必要になります。また、印刷後の乾燥時間をパターン面積によって動的に変更することも可能になります。

これまでは人が感覚で面積を求めていましたが、開発後に実際に計算した値と比較すると大きく異なっていて、人が予想した値は実際の値の2倍くらいになっているケースがほとんどでした。例えば線がびっしり敷き詰められているパターンだとパターンの割合が80%くらいあるような気持ちになりますが実際は50%程度、「パターン面積はだいたい半分くらいかな」と思った図面でも実際は20%程度でした。人間は注目する部分を大きく認識する傾向があるのかもしれません。

ステージ7 – Adobe Illustratorのスクリプト

ここまで色々開発してきましたが、工程の複雑化に伴い結局今も手動でのファイル編集が一部必要になっています。出力したPDFファイルの編集にはAdobe Illustratorを使っているので、レイヤー処理などスクリプトで一括処理できる部分はIllustratorのスクリプトを書いています。具体的にはレイヤーの整理(命名とオブジェクトの分配)と不要なクリッピングマスクの解除をするスクリプトを書いています。

どれくらい高速化できたのか

このように開発を続けてきた結果、実際にファイル編集の工程はどれくらい高速化できたのでしょうか?この記事を書くために定量的なデータを出そうとしたのですが、よく考えるとプログラムの行なっている作業を手動でする機会がないため、全くデータがありませんでした。

そこでファイル編集作業を手作業で行いそれぞれの作業時間を計測してみました。実験に用いる図面は、エレファンテックが設計したセンサモジュールです。


手動で面付け作業中

結果

プログラム 10.5秒
手動 28分

結果はプログラム10秒に対し手動28分でプログラムの圧勝でした。

手作業をプログラムに置き換えたら速くなるのは当然ではありますが、どれだけの時間を節約できてるのかを改めて数字で確認するのは開発した甲斐があってとても嬉しかったです。(プログラムが168倍高速でしたが、記事のタイトルでは人は習熟すると速くなることを考慮して100倍と書きました。)

なおこの手動の作業中に、サムネイルを間違えて面付けしてしまうというミスがありました。慣れていないのも原因ではありますが、こういう単純ミスを減らせるという自動化の利点を改めて確認する結果になりました。またそもそも習熟が必要ないということ自体がプログラムの利点であるということも改めて感じました。

苦労したところと良かったところ

前述しましたがGerbvのPDF出力は製造用に作られた機能ではないため、現在もガーバー→PDF変換が完全と言えないのは難しいところです。少しずつ変換の問題を見つけては修正してきましたがなかなか完璧とは自信を持って言える状態にはなっていません。それでもファイル編集作業が、時間を改めて測定しなければ感じられないくらい通常の作業の一部となっていることは、開発して良かったと感じられる点です。

記事のタイトルには「100倍」と書きましたが、本当は数値で高速化したことを実感するよりも存在に気づかれないくらいに日常の作業に溶け込んでいることが理想だなと改めて感じます。

次回予告

次回は、本記事でも触れられていた生産管理システムについて書きます。生産管理システムはいま最も活発に開発されているプログラムで、現在生産中の注文一覧、各工程で製造中の基板や製造装置のデータなどがリアルタイムに更新されていて、生産管理者や製造者はこのシステムを使うと全ての情報を一目で見渡すことができるようになっています。

生産管理システムがどのように開発されてきたのか、どこに苦労しているのかなどを書いていきます。

コメントを残す