1

座標を解析して抽出したい次の .stl ファイルを取得しました。

solid WEMtoSTL_0
facet normal 0.999309 0.0262812 0.0262796
outer loop
vertex -49.9111 85.733 -1357.76
vertex -49.9346 86.6265 -1357.76
vertex -49.9346 85.733 -1356.86
endloop
endfacet
facet normal 0.999158 0.0290085 0.0290067
outer loop
vertex -49.9346 85.733 -1356.86
vertex -49.9346 86.6265 -1357.76
vertex -49.9633 86.6745 -1356.82
endloop
endfacet
facet normal 0.996327 0.0262471 0.0815064
outer loop
vertex -49.9346 85.733 -1356.86
vertex -49.9633 86.6745 -1356.82
vertex -50.0151 85.733 -1355.88
endloop
endfacet
endsolid WEMtoSTL_0

facetおよびタグはendfacet、必要なだけ繰り返すことができます。

これは私が試したものです:

Scanner face_scanner = new Scanner(file);
face_scanner.useDelimiter("solid | facet normal | outer loop | vertex | endloop | endfacet");

しかしface_scanner.next()、私が取得したい次の結果にはなりません:

0.999309 0.0262812 0.0262796
-49.9111 85.733 -1357.76
-49.9346 86.6265 -1357.76
-49.9346 85.733 -1356.86
and so on...

編集:私は今、次のことを試しました:

Scanner face_scanner = new Scanner(file);
face_scanner.useLocale(Locale.US);
face_scanner.useDelimiter("\\s|\n");

while (face_scanner.hasNext()) {
    if (face_scanner.hasNextFloat()) {
        float curr = face_scanner.nextFloat();
    } else {
        String s = face_scanner.next();
    }
}

22402 行のサンプル ファイルの場合、これには 2 分以上かかります。数秒またはそれ以下でそれを行うことは可能ですか? 2分は私には長すぎます。

4

1 に答える 1