|
|
|
@ -812,19 +812,23 @@ export class ExtrudeSolid extends Entity
|
|
|
|
|
for (let pts of ptsList)
|
|
|
|
|
{
|
|
|
|
|
// ------- 求相交面索引 begin ----------
|
|
|
|
|
intersectFaceIndexs = []; let checkBox = new Box3Ext().setFromPoints(pts);
|
|
|
|
|
intersectFaceIndexs = [];
|
|
|
|
|
let checkBox = new Box3Ext().setFromPoints(pts);
|
|
|
|
|
|
|
|
|
|
for (let i = 0; i < faces.Faces.length; i++)
|
|
|
|
|
{
|
|
|
|
|
let face = faces.Faces[i];
|
|
|
|
|
let region = face.Region.Clone();
|
|
|
|
|
region.ApplyMatrix(this.OCSInv.multiply(face.OCS));
|
|
|
|
|
if (checkBox.intersectsBox(region.BoundingBox))
|
|
|
|
|
if (checkBox.intersectsBox(region.BoundingBox, 1e-3))
|
|
|
|
|
intersectFaceIndexs.push(i);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!intersectFaceIndexs.length)
|
|
|
|
|
{
|
|
|
|
|
InteractionLog([{ msg: `${this.Name}`, entity: [this] }, { msg: "侧面造型切割面解析失败, 无法生成侧面造型!" }], LogType.Error);
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
else if (intersectFaceIndexs.length === 1)
|
|
|
|
|
intersectFaceIndex = intersectFaceIndexs[0];
|
|
|
|
|
else
|
|
|
|
|