令我有点惊讶的是,我找不到将
linear_extrusion()
函数的缩放和扭曲参数指定为函数本身的选项。但只能作为标量或向量。这是一个相当严重的限制。考虑到 OpenSCAD 建模所采用的数学方法,这让我感到惊讶。
我错过了什么吗?
目前我必须使用循环作为解决方法。它创建 1000 个相同形状的实体,每次迭代时这些实体都会稍微挤压、扭曲和缩放。这有效,在预览中创建一个可用的表面。但是渲染挂起,SDL 导出也挂起,我只能假设这是由于我创建的实体数量所致?
还有其他解决方法或替代方案吗?
我发现了
linear_extrude_fs()
和 linear_extrude_ft()
的实现试图实现这一点,但内部使用了相同的解决方法。另外,这是一个“丑陋”的解决方案,因为由于编译器解析,我必须为每次形状或参数的修改直接修改该模块。
linear_extrude(height = 50, center = true, convexity = 10, twist = -110, slices = 20, scale = 10.0, $fn = 16)
translate([2, 0, 0])
circle(r = 1);
您可以在此页面中找到更多示例: https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/2D_to_3D_Extrusion
黑客快乐!