0

八角柱(polyhedron関数を使用)で「カップ」形状(一方の端が開いた中空)を作成しようとしています。コードをレンダリングすると、OpenSCAD は底面と内側の面をレンダリングしません。私は何を間違っていますか?

ありがとう!

私のコード:

difference() {
    polyhedron(points = [ [21.5,51.9,0],[51.9,21.5,0],
    [-21.5,51.9,0],[-51.9,21.5,0],
    [-21.5,-51.9,0],[-51.9,-21.5,0],
    [21.5,-51.9,0],[51.9,-21.5,0],
    [21.5,51.9,100],[51.9,21.5,100],
    [-21.5,51.9,100],[-51.9,21.5,100],
    [-21.5,-51.9,100],[-51.9,-21.5,100],
    [21.5,-51.9,100],[51.9,-21.5,100] ], faces = [
    [0,1,9,8],[2,0,8,10],[3,2,10,11],[5,3,11,13],
    [4,5,13,12],[6,4,12,14],[7,6,14,15],[1,7,15,9],
    [0,1,7,6,4,5,3,2],[8,9,15,14,12,13,11,10] ]);

    polyhedron(points = [ [19,49.4,5],[49.4,19,5],
    [-19,49.4,5],[-49.4,19,5],
    [-19,-49.4,5],[-49.4,-19,5],
    [19,-49.4,5],[49.4,-19,5],
    [19,49.4,100],[49.4,19,100],
    [-19,49.4,100],[-49.4,19,100],
    [-19,-49.4,100],[-49.4,-19,100],
    [19,-49.4,100],[49.4,-19,100] ], faces = [
    [0,1,9,8],[2,0,8,10],[3,2,10,11],[5,3,11,13],
    [4,5,13,12],[6,4,12,14],[7,6,14,15],[1,7,15,9],
    [0,1,7,6,4,5,3,2],[8,9,15,14,12,13,11,10] ]);
}

私のレンダリングの問題のイメージ:

ここに画像の説明を入力

4

1 に答える 1

1

使用するpolyhedron()場合は、ここで説明されているように、常に面の向きを確認する必要があります: documentation openscad

どちらの場合も、下面の向きが間違っていることがわかります。ここであなたの内側polyhedron()

間違った向きの底面

[0,1,7,6,4,5,3,2]底面を次のように置き換えると[2,3,5,4,6,7,1,0]、カップが得られます。 ここに画像の説明を入力

于 2016-01-14T10:58:45.073 に答える