qzの自由帳

多趣味はいいぞ

CADデータの管理・整頓

この記事は学ロボ Advent Calendar 2023の13日目の記事です。
複数人による制作プロジェクトにおいての、CADデータの共有や管理、ファイルの命名規則についてのお話です。 adventar.org

CADデータの共有・管理

GrabCADとの別れ・代替探し

2023年5月末、GrabCAD Workbenchのサービスが終了しました。
下記の条件を全て満たしており、制作プロジェクトにおけるCADデータの共有ツールとしてとても優れていました。
多くのロボコンサークルが困ったことでしょう。
blog.grabcad.com

代替サービスの理想の条件は以下の通りでした。

  1. 利用料無料
  2. 容量制限なし
  3. 自前のサーバーやクラウドが不要
  4. クライアントアプリが存在する
  5. バージョン管理が容易(過去のバージョンを復元できる)
  6. 編集履歴の衝突の解消が容易

10数個のサービスを試してみましたが、これらの条件を全て満たすようなものは見つかりませんでした。GrabCADが如何に神だったかわかりますね。

結果として、
GitFork
を組み合わせると一番扱いやすいことがわかり、実際に導入する事になりました。
現在運用して半年ほどになりますが、これまで特に問題は生じておらず、上手くいってます。

Fork

Forkとは、Gitのクライアントアプリです。
Gitへの理解が浅い機構班の人間でも、簡単に扱えるアプリを探していたところ見つけました。
本来はGitについてちゃんと学ぶべきなのですが許してください。あくまでも設計共有を円滑に行うためのツールとして、即戦力となることを優先しました。
git-fork.com

メリット

  • わかりやすいUI
    commit履歴もたどりやすく、push/pullも左上のボタン一つでできます。
    右上のConsoleからコマンドを直接叩くこともできます。
    また、commitするファイルの選択(stage/unstage)も簡単です。

  • 衝突時の処理が楽
    衝突した場合、リモートかローカルどちらで上書きしてmergeするかをファイルごとに選択できます。

注意点

  • Git for Windows のインストールを忘れずに
    gitforwindows.org

  • ファイルの最大容量は100MBまで
    100MBを超えると、Git LFSを使う必要があります。大抵のGit LFSには容量制限があるため、基本は使わないようにしましょう。
    パーツやアセンブリファイルで100MBを超えることは基本ない(Inventor基準)ですが、解析のファイルなどは超えてしまいます。その都度消すか、.gitignoreで拡張子ごと弾いてしまいましょう。
    エクスプローラー上のローカルリポジトリフォルダ内で、"サイズ:>100MB"と検索すると100MBを超えるファイルがわかるので、気になるときは使ってみましょう。

  • 一度にpushできるのは2GBまで(GitHub)
    大量のファイルをpushしたいときは、何回かに分けてcommit→pushしましょう。

CADファイルの整頓

円滑なCADファイルの共有だけでなく、フォルダ構造やファイル名の規則を設け、整頓することも大切です。
Part1,2,3,...といった名前のパーツファイルが並ぶだけだと、設計者以外の人が見たときに何も伝わりません。なんなら設計者本人が後から見たときにも分からなくなります。過去の自分をぶっ飛ばしたくなりますね。

あのスマブラの生みの親、桜井さんもYouTubeでお話されています。

youtu.be

ここでは弊サークルで推奨している規則について述べます。この規則の大抵は私が定めました。 サークル内部用wikiの私が書いた記事から主に引用しています。

ファイル命名規則

  1. 命名は英語で。表現しにくい場合は日本語でも可。

  2. アセンブリファイル =「アセンブリ名_vN.iam」(vNのN≧1) (vはversionのv)
     例) RollerShoot_v1.iam → RollerShoot_v2.iam → ...
     vNのNの更新タイミングは、大きく設計変更するときが目安

  3. パーツファイル =「アセンブリ名_vN_分類_パーツ名(_gK).ipt」(gKのK≧2) (gはgradeのg)
    例) RollerShoot_v1_ASP_PillarFront.ipt → RollerShoot_v1_ASP_PillarFront_g2.ipt → ...

    1. 分類

      材料 ファイル表記
      アルミ角パイプ ASP
      板金 Plate
      丸棒 Shaft
      3Dプリンターパーツ 3DP
    2. パーツ名 = 用途 + 位置 or 固有名

      1. 用途

        用途 ファイル表記
        土台、基礎 Base
        Beam
        Pillar
        補強 Support
        スペーサー Spacer
        サブのなにか Sub~
        ~の取り付け用 ~Mount
        ~用の軸 Shaft
      2. 位置

        位置 ファイル表記
        Front
        Back
        Left
        Right
        側面 Side
        中央 Center
        内側 Inside
        外側 Outside
        ~側 ~Side
      3. 固有名(例)

        固有名 ファイル表記
        パラメータ Parameter
        フレームジョイント FrameJoint
        回路置き場 CircuitBoard

フォルダ構造

アセンブリ全体を包括するフォルダの中に、サブアセンブリごとの構成要素をまとめたフォルダをつくると、整理整頓されすっきりします。

例えばこの3輪オムニユニットについては、フォルダ構造&ファイル名は以下の通りです。

サブアセンブリの一つの、Chassisのフォルダ内は以下の通りです。 少し前のデータなため、命名規則と異なるところが少しありますが、整理整頓されていると思います。


以上、CADデータの共有・管理・整頓についてのお話でした。
他に良さげなCAD共有手段や、各サークルで設けてるルールなどがあれば是非教えてください!
より良いロボコンライフを~