【问题标题】:openscad difference polyhedronopenscad 差分多面体
【发布时间】:2013-10-18 21:31:40
【问题描述】:

当我尝试渲染这段代码时,它只显示梯形的最上面的平面。

我想从这个梯形上切出一个圆柱体,所以里面有一个圆柱孔。我正在使用差异来做到这一点。我很确定我已经正确地绘制了梯形。如果我从代码中删除“差异”,它会呈现良好。如果我把梯形拿出来,圆柱体渲染得很好(在糟糕的分辨率下,我使用了小数字。)

bottomx = 4;
bottomy = 5;
topx = 3;
topy = 5;

difference()
{
    polyhedron (
        points=[ [bottomx,bottomy,0],[bottomx,-bottomy,0],[-bottomx,-bottomy,0],[-bottomx,bottomy,0],
        [topx,topy,5],[topx,-topy,5],[-topx,-topy,5],[-topx,topy,5] ],
    triangles= [ [0,1,2],[2,3,0],
                [4,5,0],[5,1,0],[5,6,1],[6,2,1],[6,7,2],[7,3,2],[7,4,3],[4,0,3],
                [4,5,6],[6,7,4] ]
    );
cylinder([2,2,2], center = true);
}

【问题讨论】:

    标签: polygon openscad


    【解决方案1】:

    你的多面体实际上不是一个有效的对象。尝试只使用多面体进行编译以进行测试。如果无效,则不会显示。我猜三角形顺序是问题所在。

    三角形点排序-- 从外向内看脸时,点必须是顺时针的。您可以重新排列点的顺序或在每个三角形三元组中引用它们的顺序。三角形的顺序无关紧要。请注意,如果您的多边形并非都以相同的方式定向,OpenSCAD 将打印错误或完全崩溃,因此请注意顶点顺序。同样,请记住,三角形向量的“pN”分量是对点向量元素的 0 索引引用。

    另外,请仔细查看错误日志。

    Rendering Polygon Mesh using CGAL...
    CGAL error in CGAL_Build_PolySet: CGAL ERROR: assertion violation!
    Expr: check_protocoll == 0
    File: /usr/include/CGAL/Polyhedron_incremental_builder_3.h
    

    【讨论】:

    • 啊,我确实单独编译了多面体,从各个角度看起来都很好。所以这是另一个问题。它在 wiki 上从外向内说,但这到底是什么意思?是否考虑过z轴?相对于多面体的中心,它是从外部来的吗?三角形的中心?网格的中心开始? . IE。你有两个三角形 A 有点 [0,0,0]、[0,0,1] 和 [1,0,0] B 有 [1,1,0],[2,2,0] [1 ,1.5,0] 你如何为每个三角形排序?从哪一点开始比较合适?
    猜你喜欢
    • 2015-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多