当前位置: 首页 > news >正文

第05章:基础几何、坐标系与变换

第05章:基础几何、坐标系与变换

1. 坐标系

OpenSCAD 使用右手坐标系。通常 X 向右、Y 向后或屏幕深度方向、Z 向上。建模时最重要的是统一零件原点:是放在底面中心、几何中心、装配基准点,还是某个安装孔中心。

推荐原则:

  • 单个对称零件常以几何中心为原点。
  • 盒体和支架常以底面中心为原点,便于放到打印平台。
  • 装配件常以主要接口或基准孔为原点。
  • 库模块必须说明原点和朝向。

2. cube

cube 可创建立方体或长方体:

cube(10);
cube([40, 20, 5]);
cube([40, 20, 5], center = true);

center = true 会让几何体以原点为中心。布尔运算中常用居中对象,因为切除体对称更容易计算。3D 打印导出时,如果希望模型底部在 Z=0,则可不用居中或最后整体平移。

3. sphere

sphere 创建球体:

$fn = 64;
sphere(r = 10);
sphere(d = 20);

球体常用于圆角近似、端头、装饰、铰接球头、支撑点。注意球体面数高会显著增加渲染时间。小零件用 $fn = 32 或 48 已经足够,大尺寸可提高。

4. cylinder

cylinder 可创建圆柱、圆锥、截锥和多边形柱:

cylinder(h = 20, r = 5);
cylinder(h = 20, d = 10, center = true);
cylinder(h = 20, r1 = 8, r2 = 4);
cylinder(h = 5, r = 10, $fn = 6); // 六边形柱

孔、轴、柱、倒角、沉头、螺母槽都离不开 cylinder。圆孔切除时,切除体高度应略大于实体厚度,避免共面导致渲染或导出问题。

5. polyhedron

polyhedron 通过点和面创建任意多面体:

points = [[0,0,0], [20,0,0], [20,20,0], [0,20,0],[10,10,15]
];
faces = [[0,1,2,3],[0,4,1], [1,4,2], [2,4,3], [3,4,0]
];
polyhedron(points = points, faces = faces);

使用 polyhedron 时要注意面顶点顺序、法线方向和闭合性。非闭合或自交多面体可能导致 F6 渲染失败。

6. translate

translate 平移子对象:

translate([10, 0, 5]) cube(10, center = true);

建议把变换读作“对子对象应用平移”,而不是“移动当前坐标”。多层变换从外向内书写、从内向外理解都可以,但要保持一致。

7. rotate

rotate 支持欧拉角或轴角形式:

rotate([0, 0, 45]) cube([20, 5, 5], center = true);
rotate(a = 30, v = [0, 1, 0]) cylinder(h = 20, d = 4);

角度单位是度,不是弧度。旋转前后的平移顺序不同会产生完全不同的结果:

rotate([0,0,45]) translate([20,0,0]) cube(5);
translate([20,0,0]) rotate([0,0,45]) cube(5);

第一个围绕原点旋转位置,第二个只旋转自身后再平移。

8. scale 与 resize

scale 按比例缩放,resize 调整到目标尺寸:

scale([2, 1, 0.5]) sphere(10);
resize([40, 20, 10]) sphere(10);

机械件中应谨慎使用非均匀缩放,因为孔径、壁厚和标准件接口会被一起改变。更推荐用参数重新计算几何。

9. mirror

mirror 按法向镜像:

mirror([1, 0, 0]) translate([10, 0, 0]) cylinder(h = 5, d = 6);

对称结构可用镜像减少重复代码。设计左右件时要注意螺纹、沉头、卡扣方向和装配基准是否也需要镜像。

10. color

color 只影响预览显示,不改变导出 STL 的几何本质:

color("red") cube(10);
color([0, 0.5, 1, 0.4]) translate([15,0,0]) sphere(8);

可以用颜色区分功能区、调试切除体、装配零件和参考几何。

11. minkowski 与 hull

hull 生成子对象的凸包,常用于圆角矩形、胶囊形、平滑连接:

hull() {translate([-20,0,0]) cylinder(h = 5, d = 10);translate([ 20,0,0]) cylinder(h = 5, d = 10);
}

minkowski 是闵可夫斯基和,可用于圆角膨胀,但计算非常慢:

minkowski() {cube([30, 20, 5], center = true);sphere(2);
}

工程项目中优先使用专门的圆角构造或 2D 偏移再拉伸,谨慎在大型模型上使用 minkowski

http://www.jsqmd.com/news/764561/

相关文章:

  • gh_mirrors/im/im_service测试与压测:构建高可用IM系统的必备技能
  • Ansys Fluent 通用流体CFD仿真,代理商推荐 - 品牌2026
  • 别再乱转了!聊聊WGS84和火星坐标(GCJ-02)反复转换的精度损耗与最佳实践
  • 7个实用技巧:Nativefier构建日志分析与问题定位指南
  • 第07章:二维图形、拉伸、旋转与投影
  • 2026年,揭秘水性丙烯酸乳液源头工厂直供热线 - GrowthUME
  • 终极JupyterHub配置备份指南:5分钟完成完整导出
  • Nettu Meet:3大核心功能打造企业级远程协作与在线教学平台
  • 终极开源Modbus主站测试工具:OpenModScan完全技术解析与实战指南
  • Ansys代理商有哪些 - 品牌2026
  • 第一篇 跨界破局:旅游本科悟量子,从AI固有瓶颈到量子算力革命
  • 掌控你的Dell笔记本散热:3步实现从噪音困扰到静音高效的完整方案
  • TensorFlow/Keras模型初始化踩坑实录:手把手教你排查‘serialized_options‘这类TypeError
  • 创业团队如何借助 Taotoken 低成本快速验证多个大模型效果
  • 如何轻松解密QQ音乐文件:qmcdump终极解决方案指南
  • unrolled/render 字符编码与内容类型配置完全指南
  • 2026年4月国内靠谱的天窗厂家推荐,软硬包/墙布/工装软硬包/遮光窗帘/卷帘/办公室软硬包,天窗定制厂家哪家好 - 品牌推荐师
  • 第06章:CSG 布尔建模方法
  • 2026年贵阳毛坯房装修全链条服务商深度横评:从选择困境到省心交付 - 年度推荐企业名录
  • 体验 Taotoken 多模型聚合在创意写作中的灵活切换效果
  • LubeLogger高级技巧:10个提升车辆管理效率的实用方法
  • Poseidon插件开发:自定义日志解析和数据处理函数
  • 告别手动拼接字符串:用cJSON库5分钟搞定C语言JSON数据打包(附完整代码)
  • 将Claude Code编程助手对接至Taotoken平台详细步骤
  • 第10章:导入导出、命令行与自动化
  • 通过Taotoken控制台实时观测各模型API调用成功率与状态
  • 为内部知识问答机器人集成Taotoken多模型后备增强回答可靠性
  • MelonLoader终极指南:Unity游戏模组加载器从入门到精通
  • 第09章:列表推导、递归与算法建模
  • 使用curl命令直接测试Taotoken的API连通性与基础功能