FreeCAD上で作成したジオメトリを点群データとしてascファイルでエクスポートしたのですが、
下記例の様に7カラムに収まるように桁数が自動で調整されています。
後工程でascファイルのデータを使って別の計算を実行するので、
より細かい数値までエクスポートできるようにしたいと思っています。
FreeCADにおいてエクスポート時の桁数、もしくはジオメトリの計算精度を指定する方法はありますか?
例)
x y z
10.3689 728.225 9.01787
ascファイルエクスポート時の精度
-
- Posts: 4
- Joined: Sun Apr 25, 2021 2:22 pm
Re: ascファイルエクスポート時の精度
該当部分のソースコード読んでみましたが、そのような機能は無いようです。
そもそも出力時の実数が float なので有効桁数は7桁までしかありません。
該当部分を double に書き換えて自分でFreeCADをコンパイルすれば対応はできるとは思います。
・該当部分のソースコード
https://github.com/FreeCAD/FreeCAD/blob ... p/Points.h
49行目
https://github.com/FreeCAD/FreeCAD/blob ... Points.cpp
228行目
そもそも出力時の実数が float なので有効桁数は7桁までしかありません。
該当部分を double に書き換えて自分でFreeCADをコンパイルすれば対応はできるとは思います。
・該当部分のソースコード
https://github.com/FreeCAD/FreeCAD/blob ... p/Points.h
49行目
Code: Select all
typedef float float_type;
typedef Base::Vector3<float_type> value_type;
228行目
Code: Select all
void PointKernel::save(std::ostream& out) const
{
out << "# ASCII" << std::endl;
for (std::vector<value_type>::const_iterator it = _Points.begin(); it != _Points.end(); ++it) {
out << it->x << " " << it->y << " " << it->z << std::endl;
}
}
-
- Posts: 4
- Joined: Sun Apr 25, 2021 2:22 pm
Re: ascファイルエクスポート時の精度
早速、調べていただきましてありがとうございます。
FreeCADのソースコードを変更することで対応できる可能性があるとのことですが、
以下のコードを
次の様に書き換えれば良いのでしょうか?
また、FreeCADのコンパイルはFreeCAD Documentationにある手順に従って進めれば良いのでしょうか?
・FreeCAD Documentation CompileOnWindows/jp:
https://wiki.freecadweb.org/CompileOnWi ... 4.E3.83.AB
あまりプログラミングに詳しくないため、
質問ばかりで恐れ入りますがご回答宜しくお願いします。
FreeCADのソースコードを変更することで対応できる可能性があるとのことですが、
以下のコードを
Code: Select all
typedef float float_type;
typedef Base::Vector3<float_type> value_type;
Code: Select all
typedef double float_type;
typedef Base::Vector3<float_type> value_type;
また、FreeCADのコンパイルはFreeCAD Documentationにある手順に従って進めれば良いのでしょうか?
・FreeCAD Documentation CompileOnWindows/jp:
https://wiki.freecadweb.org/CompileOnWi ... 4.E3.83.AB
あまりプログラミングに詳しくないため、
質問ばかりで恐れ入りますがご回答宜しくお願いします。
Re: ascファイルエクスポート時の精度
実際に試してないので確かなことは言えませんが、基本的にはそれで動くと思います(「typedef double float_type;」は命名的には良くないですが)。ただ、座標値を計算している上流の部分がfloatだと最後の出口だけdoubleにしても精度は上がらないので、そういう部分がないか上流側にさかのぼって確かめた方がいいと思います。
コンパイルについては使用しているOSやFreeCADのバージョンがわからないのでなんとも言えませんが、仮にWindows、FreeCAD最新版なのであれば以下でしょうか。
・Compile on Windows - FreeCAD Documentation
https://wiki.freecadweb.org/Compile_on_Windows
FreeCADのビルドはそこそこ大変なのでプログラミング(ソフトウェア開発)に詳しくない方にはあまりお勧めはしません。
コンパイルについては使用しているOSやFreeCADのバージョンがわからないのでなんとも言えませんが、仮にWindows、FreeCAD最新版なのであれば以下でしょうか。
・Compile on Windows - FreeCAD Documentation
https://wiki.freecadweb.org/Compile_on_Windows
FreeCADのビルドはそこそこ大変なのでプログラミング(ソフトウェア開発)に詳しくない方にはあまりお勧めはしません。
-
- Posts: 4
- Joined: Sun Apr 25, 2021 2:22 pm
Re: ascファイルエクスポート時の精度
座標計算に関わる変数の型もチェックした方がよいとの旨、承知いたしました。
追える範囲で確認してみたいと思います。
コンパイルについては、Windows+FreeCAD最新版を利用しているので、
紹介していただいたリンク先がぴったり当てはまります。
ビルドは難易度が高いようですがコンパイル環境を整備しながら少しずつトライしてみます。
ソースコード調査からFreeCADビルドのことまで、色々とご助言をいただきありがとうございました。
私では解決の糸口さえ掴めなかったので大変助かりました。重ねて御礼申しあげます。
追える範囲で確認してみたいと思います。
コンパイルについては、Windows+FreeCAD最新版を利用しているので、
紹介していただいたリンク先がぴったり当てはまります。
ビルドは難易度が高いようですがコンパイル環境を整備しながら少しずつトライしてみます。
ソースコード調査からFreeCADビルドのことまで、色々とご助言をいただきありがとうございました。
私では解決の糸口さえ掴めなかったので大変助かりました。重ねて御礼申しあげます。