メインコンテンツへスキップ
見出し画像

Pythonライブラリ(2DCAD->3D STEP):cad3dify

    1.概要

     2DのCAD図面(手書き、写真、PDF、スクショなど)を3D STEPファイルに変換するライブラリ「cad3dify」を紹介します。

     本ツールは、開発者は日本のエンジニアみたいです。


    1-1.STEPファイルとは

     STEP("Standard for the Exchange of Product Data)ファイルは、ISO規格(ISO 10303)で定められたデータ形式です。

     特定のCADソフト(SolidWorks, AutoCAD, Fusion360など)に依存しない「中間ファイル」であるため、生成されたデータをそのまま自社の使い慣れたCADソフトに取り込み、編集・加工することが可能です。

    1-2.cad3difyの特徴

     cad3difyは、入力された2D画像を解析し、その幾何学的特徴を3Dモデル生成コード(CadQueryなど)に変換するプロセスをAIが担っています。
     使用モデルはGPT-5(またはClaude 4.5 opus、Gemini 3 pro、Vertex AI上のLlama 3.2)などが利用可能です。

    画像
    図 Architecture

    2.環境構築

     本ライブラリで使用されているLangChainの環境構築が難しすぎるため、再現性がない方法ではありますがご紹介します。

    2-1.事前準備:OpenAIのAPI発行

     APIを使用するため、OpenAIのAPIを発行します。

    1. 支払いページへ移動+ログイン:下記アクセスし、ログイン

    2. 支払い方法の登録:

      • 「Add payment details」をクリック

      • クレジットカード情報と住所を入力して登録

    3. 初回チャージと支払い:

      • 初回にチャージする金額(最低$5など)を指定し、支払いを確定

    4. (任意) 自動リチャージ設定:

      • 残高が減った際に自動チャージするか設定

      • デフォルトはONのため、気になる人は外すこと

    画像

    補足:利用制限の設定
     APIの使いすぎを防ぐため、Limitsページで月間の利用上限額を設定できます(https://platform.openai.com/account/billing/limits)。

    2-2.仮想環境の作成

     Anacondaで仮想環境を作成します。

     依存関係の衝突を防ぐため、Anaconda等で専用の仮想環境を作成します。LangChainが対応できるPython 3.10以上が必要なため、今回は3.11を指定しました。

    [Anaconda prompt]
    conda create -n cad3d python=3.11 -y
    conda activate cad3d

     関連するライブラリを入れていきます。

    # 基本的な数値計算・画像処理ライブラリ
    pip install numpy matplotlib shapely pydantic requests
    
    # Webアプリフレームワーク
    pip install streamlit
    
    # AIモデル連携ライブラリ (OpenAI, Google, Anthropic)
    pip install openai google-generativeai anthropic
    
    # 【重要】LangChain関連の修正インストール
    # langchain-communityを入れることで chains の読み込みエラーを解決します
    pip install langchain langchain-community langchain-core langchain-openai langchain-google-genai langchain-anthropic
    
    #その他
    pip install loguru
    pip install cadquery
    pip install reportlab
    pip install svglib

     Versionを確認しました。

    [prompt]
    pip show langchain
    
    [OUTPUT]
    Name: langchain
    Version: 1.1.2
    Summary: Building applications with LLMs through composability
    Home-page: https://docs.langchain.com/
    Author:
    Author-email:
    License: MIT
    Location: C:\Users\kiyo\Anaconda3\envs\cad3d\Lib\site-packages
    Requires: langchain-core, langgraph, pydantic
    Required-by:

     これで準備完了のはずです。(詳細はYAMLファイル参照)

    2-3.コードのリファクタリング

     リポジトリに含まれるコードは古いLangChainの記法を使用している場合があり、そのまま実行するとエラーになる可能性があります。
     手動での修正は困難なため、AIエージェントを使用してコードを最新のLangChainで動作するように書き換えます。概要は以下の通り。

    • プロンプト:以下参照

    • ツール:VS Code 

    • AIモデル:Claude Opus4.5(Preview)

    ゴール
    プロフェッショナルとして、顧客である前提知識がない私が満足するコード
    
    出力
    コードの修正
    
    補足条件
    思考の時間はかけてよいので、Qualityを最大限上げてください。
    遠慮せずに全力を尽くして
    
    #役割
    あなたは「AI」と「プログラミング」のプロフェッショナルです。
    
    #業務内容
    現在のcad3difyのコードは古いLangchainで作成されています。
    これをLangChainの最新Versionに対応したコードにリファクタリングして

     コラム:環境構築の方向性検討

     LangChainとはLangChainとは、LLMを用いたアプリケーション開発を効率的に行うためのライブラリであり、2025年10月22日に LangChain v1.0 が公開されました。

     Version遍歴の中でAPIが大幅に変わっており、昔のコードがそのまま使えないことがあります。まずサクッと使おうとすると”Error importing langchain modules: No module named 'langchain.chains'”がでました。

     下記を試してみたのですが結果的に無理だったため、正しい環境構築ではなくコードのリファクタリングで対応しました。

    • 他の記事を参照し、類似のVersionを導入

    • AIエージェントで発生したエラーに対してパッチを当てていく

    • 環境をGoogle Colab上で実行


    3.Quickstart:CLI

     同様の性能が出るか確認するため、公式の画像を参照しました。ファイル名は"g1-3.jpg"です。

    画像
    cad3dify/sample_data /g1-3.jpg

    3-1.コマンド実行

     下記手順でコマンド実行しました。
    ※PowershellやMacだとコマンドが異なるため、適宜確認のこと

    1. git clone https://github.com/neka-nat/cad3dify.git:ソースコード(リポジトリ)をローカル環境に複製

    2. cd cad3dify:作業ディレクトリを移動

    3. set OPENAI_API_KEY = <自分のAPI>:API認証キーを環境変数として一時的に設定

    4. set PYTHONPATH=.:Pythonのモジュール検索パスに現在のディレクトリを追加し、パッケージインポートエラーを防ぐ

    5. python scripts/cli.py g1-3.jpg:設定済みの環境内で、指定された画像ファイルを使って3D CADモデル生成スクリプトを実行

    [Anaconda Prompt]
    git clone https://github.com/neka-nat/cad3dify.git
    cd cad3dify
    set OPENAI_API_KEY = <自分のAPI>
    set PYTHONPATH=.
    python scripts/cli.py g1-3.jpg

     実行が完了するとStepファイルが生成されました。

    画像

    3-2.結果確認

     結果は以下の通りです。公式と比較してしょぼい結果となりました。おそらく使っているAIモデルがいまいちなのかもしれません。

    画像
    図 今回のOUTPUT
    画像
    図 公式のOUTPUT

    4.Quickstart:GUI

     Streamlitを使ったWebアプリ上での利用も可能です。

     下記コマンドを実行するとWebアプリが開きます。

    streamlit run scripts/app.py

     サイドバーからファイルをアップロードしたら、自動でSTEPファイルが生成されます。

    画像

     直感的には非常に使いやすいですが、得られた結果はCLIと同様です。

    画像

    あとがき

     久しぶりのドツボにハマる環境構築はしんどかった。
     とりあえず2D->STEPファイル変換できるのを知れただけでも良しとしよう。


    参考資料

    cad3dify

    cad3dify
    2D to 3D CAD Conversion Using VLMhttps://t.co/Qkp2d97eBG pic.twitter.com/N0Nf9kyJcb

    — rsasaki0109 (@rsasaki0109) December 1, 2025

    3DCADモデルを作る「cad3dify」というソフトウェアを公開している方を発見!

    2DのCAD図面(手書きスケッチや写真、PDF、スクリーンショットなど)を撮影・アップロードするだけで、自動的に編集可能な3D… https://t.co/cGgMNGtmJ5

    — ShareLab(シェアラボ) (@jpShareLab) December 2, 2025

    Pythonライブラリ

    3Dソリッド


    3D (メッシュ)



    2D図面


     
     

    KIYO

     
     
    普段は製造業で企画/開発/設計しております。記事はプログラミング・機械学習、IoT関係の記事をメインで作成し、なるべく1つの記事で知りたいことを網羅していきます。内容は学術的より実装・アウトプット(ほしくなるもの)を重視して作成しています。 面白そうな仕事があればやりたいです!

    あなたへのおすすめ