きゃんブロ

きゃんなブログ

自作npm、square-dxf-checker完成までの道のり#1 npmの概要と製作背景

はじめに

こんにちは。
aya-kyanです。

 

昨年の6月24日からFJORD BOOT CAMP(フィヨルドブートキャンプ)というオンラインのプログラミングスクールに通い始めてもうすぐ一年が経ちます。
このブログはfjordに通い始めて早々、ブログを立ち上げるプラクティスがあったことから立ち上げました。
しかし残念ながら1文字も書かれることはなく、現在に至っています。

そんな人が、急にブログを書き始めるとは、何があったのでしょうか。
そうです。ブログのタイトルにある通り、自作npmが完成しました。
この際だからこれをネタにしてブログを書いてみよう!と思い立ちました。(今までネタなかったのか?)

自作npmについても、そのようなプラクティスがあったことから作成をしました。
今回は、どのようなnpmを作成したのか、そして作成しようと思った背景を書こうと思います。

 

npm「square-dxf-checker」の概要

作成したnpmはズバリ、「square-dxf-checker」です!!!

www.npmjs.com

 

この子ができることは下記です。

  • DXFファイルをスキャンして四角形もしくは長方形であるか否かを判断
  • 四角形か長方形であれば下記の情報を出す
    • モデルを構成している辺の情報
    • 側面図から板厚情報を算出
    • 正面図から表面積を算出
  • モデルはプレート(板金もの)を想定している

npm「square-dxf-checker」を作成した背景

自分の実際の仕事と、そこから感じた事を元にこのnpmの構想を考えました。
というのも、私は金属加工業界に特化したプラットフォームを運営している会社で、カスタマーサクセスという仕事をしています(2022年6月現在)。

過去に、発注者さんと工場さんを繋ぐ仲介業をしていたことがありました。
その業務の中で、発注者さんからもらった図面を見積もるという作業をしたことがありました。
「見積もる」というのは、お客様が「この製品を作成したい、いくらでできる?」と図面を持ってくるのに対し、どのくらいの金額で製作できるかを算出することです。
(ちなみに私は板金加工のみを担当していたので、切削加工やその他加工についてはわかりません。)

見積もる過程では、そのモデルの表面積を求めるという作業があります。
表面積は、おもて面だけです。

板厚も見積もりをするのに重要ですが、算出するという大掛かりなものではありません。大体図面に書いてあります。

面積や板厚という情報を手に入れてから、ごにょごにょして見積もり金額が完成!という流れになります。
私はふとこの作業をしていて思いました。

「面積だけでも自動で求めることができれば、見積もり作業はだいぶ楽になるのでは...?」

他のものは大体ロジックが決まっていて、面積や板厚の情報をもとに材質や表面処理などの金額が算出されて、加算されていくだけでした。
面積を算出できれば、それに付随するプログラムも書けるはず。

しかも、「見積もる」という行為は、無駄になることが多いです。
お客さんの図面を見積もっても、必ず受注できるとは限りません。
なので、極力見積もる労力は削減したいところです。

そこで、面積を算出するnpmを作成しよう!と思い立ちました。
以上が背景です。

DXFから面積や板厚を取得するnpmは今までにあったのか?

このnpmを作成するにあたり、すでにこのような面積を算出するnpmはあるのか調べてみました。
「dxf area」「dxf calculate」などと調べてみましたが、見当たりませんでした。
もしかしたら私の調べ方が下手なだけで、あるのかもしれないけど...

このnpmは、四角形と長方形というシンプルな図形しか判定ができませんが、他の複雑な図形のDXFを解析できるnpmがもっと世に出てくれればいいなと思っています。
そうすれば、工場さんの見積もり作業も楽になるツールがもっと出るはず!!!

ただ、このnpmが対象としている四角形や長方形は面積を算出するのに大変ではないので、このnpmの出番はあまりなさそうです。

似たnpmを作成しようとしていて、参考にしてくれる人がいればとても嬉しいです。
次回は、npmからどのように座標や辺の情報を取り出したのかを書きます。