Skip to content

CAD IMPORT PRO

チェクリスト

=確認してほしい拡張子=

■高

  • [x] Support for STEP 3D file format (. Stp,. Step)
  • [x] Support for STL 3D file format (.stl)

■中

  • [x] Support for SolidWorks 3D file format (. sldprt,.sldasm)
  • [x] Support for Solid Edge 3D file format (. par,.psm,.asm,.sldasm)
  • [x] Support for IGES 3D file format (. Igs,. Iges)

■低

  • [ ] ▲Support for Catia V4 3D file format (. model,. dlv,.dlv3,.exp,.session)
  • [x] Support for Catia V5 3D file format (. CATPart,. CATProduct)
  • [ ] ▲Support for Catia V6/3DEXPERIENCE 3D file format (. 3dxml)
  • [x] Support for PARASOLID 3D file format (. x_t,.x_b,.xmt_txt,.xmt_bin)
  • [x] Support for ProE/Creo Parametric 3D file format (. par,.xpr,.asm,.xas)
  • [x] Support for Inventor 3D file format (. ipt,.iam)
  • [x] Support for Rhino 3D file format (.3dm)

■ダメなこと確認済(一応見てもらっても大丈夫です)

  • [x] Support for DWG/DXF 3D file format (. dwg,.dxf)

Read Me.pdf

プロジェクトとしてのエラーが358件出ているが一度試してみる。

対応〇

  • STL 3D file format (.stl)
  • STEP 3D file format (. Stp,. Step)
  • SolidWorks 3D file format (. sldprt,.sldasm)
  • Solid Edge 3D file format (. par,.psm,.asm,.sldasm)
  • IGES 3D file format (. Igs,. Iges)
  • Inventor 3D file format (. ipt,.iam)
  • PARASOLID 3D file format (. x_t,.x_b,.xmt_txt,.xmt_bin)
  • DXF 3D file format (.dxf)

非対応

  • DWG3D file format (. dwg)
  • Catia V5 3D file format (. CATPart,. CATProduct)
  • Rhino 3D file format (.3dm)

モデルについて

ランタイムロードの調査を行っている最中にデモモデルを発見しました。

CADImportProフォルダではなくStreamingAssetsフォルダ内にあります。

image.png

STEP:

2046S.stp

image.png

STL:

Version_2023_-_Part_1.zip

image.png

SolidWorks :

Nebo - Torchy_2K _1.0.SLDPRT

Nebo - Torchy_2K _1.0.glb

image.png

Solid Edge:

BKJ2-4.par

BKJ2-4.glb

image.png

IGES:

LGB2-0105L.igs

image.png

Catia V4:

Catia V5:

AE1-13M.stp

AE1-13M.x3d

AE1-13M.CATProduct

image.png

エラーが出た。時間があったらエラー内容の確認をおこなう

Catia V6/3DEXPERIENCE:

image.png

厳しそう。

PARASOLID :

AE1-13M.x_b

AE1-13M.glb

image.png

ProE/Creo Parametric:

yh-1610.asm

image.png

Inventor:

IONIZER_HOLDER_BRACKET.1_3.0003.ipt

image.png

Rhino :

2.5 Inchi HDD SATA.3dm

image.png

DXF:

4= -1 VSフレキシブル側溝 基本型.dxf

image.png

DWG:

4= -1 VSフレキシブル側溝 基本型.dwg

image.png

エラーが出た。

一番わかりやすい一覧表

https://jp.misumi-ec.com/guide/faq/48.html

image.png

ダウンロードサイト

CAD・図面・取扱説明書|株式会社オンダ製作所|配管資材の総合メーカー

Free CAD Designs, Files & 3D Models | The GrabCAD Community Library

MISUMI(ミスミ) | 総合Webカタログ

RuntimeImportについて

csharp
using CADProImporter;
using UnityEngine;

namespace CADProImporter.Example
{
    public class SimpleRuningImport_01 : MonoBehaviour
    {
        void Start()
        {
            string stpPath = Application.streamingAssetsPath + "/CADModels/SolidWorks/GearReducer.SLDASM";
            GameObject root = CADImporterPro.ImportPro(stpPath, 10, (gameObject, val) =>
            {
                gameObject.transform.localScale = Vector3.one * 100;
                Bounds bounds = gameObject.CalculateBounds();
                FreeCamera.Instance.SetTargetLookAt(bounds.center);
            });
        }
    }
}

Demoシーンのスクリプトより、ファイルの用意とファイルパスの取得さえできればランタイムロードの実装ができそうです。

ランタイムロードをするといっても、アプリ内のファイルに自身でデータを入れてから。。。になりそう。ファイルパスをどのように取得するかはまた問題になりそう。

SFB

Releases · gkngkc/UnityStandaloneFileBrowser

を用いてファイル選択を直接できるように。

今回はpを押したらファイルが開くようにしています。 (CADImportProにキーボードaを使用する機能があるため)

スクリプト

csharp
using CADProImporter;
using UnityEngine;
using System.IO;
using SFB;  // StandaloneFileBrowserの名前空間

namespace CADProImporter.Example
{
    public class demo : MonoBehaviour
    {
        void Update()
        {
            // キー「P」が押されたとき
            if (Input.GetKeyDown(KeyCode.P))
            {
                // StandaloneFileBrowserでファイル選択ダイアログを表示(全てのファイルを対象)
                string[] paths = StandaloneFileBrowser.OpenFilePanel("CADファイルを選択", "", "", false);
                if (paths.Length > 0 && !string.IsNullOrEmpty(paths[0]))
                {
                    string selectedPath = paths[0];

                    // StreamingAssets/Loadフォルダのパスを取得し、存在しなければ作成
                    string loadFolder = Path.Combine(Application.streamingAssetsPath, "Load");
                    if (!Directory.Exists(loadFolder))
                    {
                        Directory.CreateDirectory(loadFolder);
                    }

                    // 選択されたファイル名を取得し、Loadフォルダ内にコピー
                    string fileName = Path.GetFileName(selectedPath);
                    string destPath = Path.Combine(loadFolder, fileName);
                    File.Copy(selectedPath, destPath, true);

                    // コピーしたファイルのパスをログに出力
                    Debug.Log("インポート対象のファイルパス: " + destPath);

                    // コピーしたファイルのパスを用いてデータをインポート&表示
                    GameObject root = CADImporterPro.ImportPro(destPath, 10, (gameObject, val) =>
                    {
                        // 例外情報がある場合はログ出力して処理中断
                        if (val != null)
                        {
                            Debug.LogError("CADインポート中にエラーが発生: " + val.SourceException);
                            return;
                        }

                        // gameObjectがnullの場合もログ出力して処理中断
                        if (gameObject == null)
                        {
                            Debug.LogError("インポートされたGameObjectがnullです。");
                            return;
                        }

                        // 正常にインポートできた場合の処理
                        gameObject.transform.localScale = Vector3.one * 100;
                        Bounds bounds = gameObject.CalculateBounds();
                        if (FreeCamera.Instance != null)
                        {
                            FreeCamera.Instance.SetTargetLookAt(bounds.center);
                        }
                        else
                        {
                            Debug.LogWarning("FreeCamera.Instanceがnullです。");
                        }
                    });
                }
            }
        }
    }
}
image.pngimage.pngimage.png

無事読み込めました。


Author: 水上 | Source: 水上\CAD IMPORT PRO 19faba435ee780f99267f616d49d319e.md