polyhedron 多面体
创建一个多面体基于一系列的点和一系列的角度。点列表是所有的形状的顶点,角度列表是如何让点关联到多面体的表面。
Parameters 参数
points 点
数组的点或者顶点( 3 位数组)。
triangles 角度
数组三坐标点( 3 位数组, XYZ )。每一个数字是 0 为基数的点源自数组点。
convexity 凸面
正整数。凸面的参数配置最大数值在前端(后端)一个射线交叉的物体可能穿透。这个参数是仅仅需要正确的显示对象模型在 openCSG 模式,而多面体没有渲染效果。
Syntax example 句法实例:
polyhedron(points = [ [x, y, z], ... ], triangles = [ [p1, p2, p3..], ... ],
convexity = N);
三 角点排序:当看到外边向内的面,这个点必须是顺时针。你可以从新安排次序关于点或者次序参照每一个三角的其他三位数坐标组合。三角的排序是无形的。注意你 的多面体不是左右方向都是一样的,OpenSCAD将会同时显示一个错误或者彻底崩溃,所以特别注意顶点的排序。还有,记住那个‘ pN' 组件冠以三角数组 0 基数参考的点数组组件。
Example, a square base pyramid
实例,一个正方体基的金字塔 :
polyhedron(
points=[ [10,10,0],[10,-10,0],[-10,-10,0],[-10,10,0], // the four points at
base
[0,0,10] ], // the apex point
triangles=[ [0,1,4],[1,2,4],[2,3,4],[3,0,4], // each triangle side
[1,0,3],[2,1,3] ] // two triangles for
square base
);
图形:一个简单的多面体,正方体基的金字塔。
三角的点的排序: 一个实例是一个非常复杂的多面体,展示如何修复多面体的不好的方位多边形。
当你选择: Throw together' 模式观看源自 view 菜单, compile 设计(不是编译和渲染 compileand render) 你将会看到一个正面的,没有方向的多边形突出显示。不幸的是这个突出显示是不可以在OpenCSG 预览模式,因为他干涉 OpenCSG 预览 模式的应用。
下方你可以看见代码和图片关于就像一个有问题的多面体,一个问题的多边形(三角形或者组合的三角形)会呈现粉色。
(首先,只有 F5 键可以编译,仅仅编译, compile, 其他的 F6,F7,F8,F9,F10,F11,F12 都不可以显示;只有在 Throw together 模式才可以看到,或者在菜单栏选择视图模式, View->Throwtogether, )
// Bad polyhedron 坏的多面体
polyhedron
(points = [
[0, -10, 60], [0, 10, 60], [0, 10, 0], [0, -10, 0], [60, -10,
60], [60, 10, 60],
[10, -10, 50], [10, 10, 50], [10, 10, 30], [10, -10, 30], [30,
-10, 50], [30, 10, 50]
],
triangles = [
[0,2,3], [0,1,2], [0,4,5], [0,5,1], [5,4,2], [2,4,3],
[6,8,9], [6,7,8], [6,10,11], [6,11,7], [10,8,11],
[10,9,8], [0,3,9], [9,0,6], [10,6, 0], [0,4,10],
[3,9,10], [3,10,4], [1,7,11], [1,11,5], [1,7,8],
[1,8,2], [2,8,11], [2,11,5]
]
);
图片:多面体有坏的方向多边形
一个正确的多面体将会是以下实例代码:
polyhedron
(points = [
[0, -10, 60], [0, 10, 60], [0, 10, 0], [0, -10, 0], [60, -10,
60], [60, 10, 60],
[10, -10, 50], [10, 10, 50], [10, 10, 30], [10, -10, 30], [30,
-10, 50], [30, 10, 50]
],
triangles = [
[0,3,2], [0,2,1], [4,0,5], [5,0,1], [5,2,4], [4,2,3],
[6,8,9], [6,7,8], [6,10,11],[6,11,7], [10,8,11],
[10,9,8], [3,0,9], [9,0,6], [10,6, 0],[0,4,10],
[3,9,10], [3,10,4], [1,7,11], [1,11,5], [1,8,7],
[2,8,1], [8,2,11], [5,11,2]
]
);
图片:一个正确的多面体。
初学者提示:
如果你的确不明白“方向”,努力识别错误的方向粉色的三角形,然后改变书则的参考点一直到你获得正确的。举例说明,三角形( [0,4,5]) 是一个错误的, 我们修整为 [4,0,5] 。此外,你可能选择“ ShowEdge” (意思是显示边线条)从” View Menu” (视图菜单),显示一个界面抓取和数字都有点和三角形。
在我们的一个实例中,点是黑色的注释,三角形是蓝色的(我这里是黄色的)。转动对象模型,复制一个备份如果需要。这样你可以找到轨迹。
顺时针技术:
方向是定义顺时针索引。这个的意思是如果你观看三角形(就像 [4,0,5]) 源自外边,你会看到顺时针的路径围绕着面的中心。弯曲次序 [4,0,5] 是顺时 针的所以是好的。弯曲次序 [0,4,5] 是逆时针的所以是坏的。同样,所有其他的顺时针 [4,0,5] 工作: [5,4,0]&[0,5,4] 同样 是好的。如果你使用顺时针基数,你将会总是得到你的外表面( OpenSCAD 的外表面,其他程序始终使用逆时针就像是外表面)。
想象它就像是左手定义:
如果你拿着一个三角形并且弯曲你的手指是同样的次序就像点一样,然后你拇指点是向外的。
多面体有一个坏的方向的多边形
成功的描述“多面体”
* 点的定义所有的点和数组在形状上。
* 三角形是一系列的三角形连接起来用点和数组。
每一个点,在点列表中,是定义了三位数组, x,y,z 位置配置。点在点列表中是自动给出定义符从 0 开始使用三角形列表( 0 , 1 , 2 , 3 , ...etc).
每一个三角形,在三角形列表中,是定义选择的 3 个点(使用点定义符 ) 画出点列表。
例如 , triangles=[[0,1,2]] 定义一个三角形从第一个点(点是 0 参考点)到第二个点然后到第三个点。
当看到许多三角形的轮廓是,三角形必须列出 3 个点以顺时针的次序。
转换(此章节在 qcad 中是 ' 编辑 ' 菜单)
转换影响的是子节点(最基础的点位置坐标)就像是名字应用到转换他们用不同的方法,比如moving/rotating, 或者 scaling 节点。转换的级联效应是使用一系列的转换命令完成最终的子节点位置。级联效应是获得嵌套法的描述,例如:
transform() e.g. rotate([45,45,45])
transform() translate([10,20,30])
child() cube(10);
转换可以是应用一个组的子节点使用 '{' & '}' 符号来围住子树(一个组的子组件),例如:
translate(0,0,-5) or the more compact translate(0,0,-5) {
{ cube(10);
cube(10); cylinder(r=5,h=10);
cylinder(r=5,h=10); }
}
高级概念:
就像是 OpenSCAD 使用不同的库用于兼容,这个可以介绍一些和转换不一致的 F5 预览的行为。传统的转换符( translate,rotate, scale, mirror & multimatrix) 是履行使用 OpenGL 的预览,而其他更多的高级转换符,比如 resize, 履行的是 CGAL 操作, CSG 操作的表现就像影响在 下面的对象模型,而不是仅仅转换它。尤其是可以影响显示识别符的字符,具体的是 '#' 和‘ %' , 那里的顶点也许不是直接显示的,就像影响的预先 - 改变尺寸( pre-sizeed) 的对象模型,但是影响的后 - 比例 (post-scale)对象模型。
注意:文字的现行版本模式是不完善的。
|