You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Three.js使用THREE.ExtrudeGeometry无法冲压切割线性形状孔洞求助

问题原因

Three.js 中 THREE.ExtrudeGeometry 可识别的孔洞必须是封闭的路径区域,你定义的两个线性孔洞仅包含单条线段,属于开放路径,没有围成闭合的面,因此无法被识别为需要挖除的区域,也就不会生效。圆形孔洞能正常生效的原因是圆弧路径本身是闭合的环形区域。

解决方法

如果需要实现细缝效果的孔洞,需要将单条线条转换为带微小宽度的闭合矩形路径,示例修改代码如下:

// 定义细缝的宽度,可根据需求调整数值
const slitWidth = 0.5;

// 第一个细缝孔洞修改为闭合矩形
var hole1 = new THREE.Path();
hole1.moveTo(18, 20 - slitWidth/2);
hole1.lineTo(20, 20 - slitWidth/2);
hole1.lineTo(20, 20 + slitWidth/2);
hole1.lineTo(18, 20 + slitWidth/2);
hole1.lineTo(18, 20 - slitWidth/2); // 闭合路径
boardShape.holes.push(hole1);

// 第二个细缝孔洞同理修改
hole1 = new THREE.Path(); 
hole1.moveTo(25, 25 - slitWidth/2);
hole1.lineTo(27, 25 - slitWidth/2);
hole1.lineTo(27, 25 + slitWidth/2);
hole1.lineTo(25, 25 + slitWidth/2);
hole1.lineTo(25, 25 - slitWidth/2);
boardShape.holes.push(hole1);

额外注意事项

  • 所有孔洞路径必须完全闭合,不能有断点
  • 孔洞路径的环绕方向需要和外轮廓方向相反(你示例中外轮廓是顺时针绘制,孔洞按逆时针绘制即可,上述修改后的代码已经符合该要求)

内容的提问来源于stack exchange,提问作者Bhavin S.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 09:09:02