|
|
|
@ -124,27 +124,26 @@ class ActivityLayerBoardTool
|
|
|
|
|
}
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
private BuildNails(initNail: CylinderHole, nailOpt: LayerNailOption, face: Face, fYVec: Vector3)
|
|
|
|
|
private BuildNails(initNail: CylinderHole, nailOpt: LayerNailOption, face: Face, fYVec: Vector3, nailCount: number)
|
|
|
|
|
{
|
|
|
|
|
let fXVec = new Vector3().setFromMatrixColumn(face.OCS, 0);
|
|
|
|
|
let addCount = nailOpt.addCount;
|
|
|
|
|
let count = nailOpt.count;
|
|
|
|
|
let dist = nailOpt.dist;
|
|
|
|
|
let frontDist = nailOpt.front;
|
|
|
|
|
let backDist = nailOpt.behind;
|
|
|
|
|
let singleDist: number;
|
|
|
|
|
//绘制数量为1时,层板钉在中间位置
|
|
|
|
|
if (count === 1)
|
|
|
|
|
if (nailCount === 1)
|
|
|
|
|
singleDist = face.Length / 2 - frontDist;
|
|
|
|
|
else
|
|
|
|
|
singleDist = (face.Length - frontDist - backDist) / (count - 1);
|
|
|
|
|
singleDist = (face.Length - frontDist - backDist) / (nailCount - 1);
|
|
|
|
|
|
|
|
|
|
let buildNails: CylinderHole[] = [];
|
|
|
|
|
|
|
|
|
|
//构建层板钉
|
|
|
|
|
for (let i = 0; i < count; i++)
|
|
|
|
|
for (let i = 0; i < nailCount; i++)
|
|
|
|
|
{
|
|
|
|
|
if (count === 1)
|
|
|
|
|
if (nailCount === 1)
|
|
|
|
|
{
|
|
|
|
|
initNail.ApplyMatrix(MoveMatrix(fXVec.multiplyScalar(singleDist)));
|
|
|
|
|
buildNails.push(initNail);
|
|
|
|
@ -256,12 +255,14 @@ class ActivityLayerBoardTool
|
|
|
|
|
nail.Position = nail.Position.add(new Vector3(xDist, yDist, zDist));
|
|
|
|
|
nail.ApplyMatrix(zRoMat).ApplyMatrix(face.OCS);
|
|
|
|
|
|
|
|
|
|
//层板钉数
|
|
|
|
|
let nailCount = nailOption.count;
|
|
|
|
|
if (option || this.NailRules)
|
|
|
|
|
nailOption.count = this.GetRuleCount(face.Length, rules);
|
|
|
|
|
nailCount = this.GetRuleCount(face.Length, rules);
|
|
|
|
|
|
|
|
|
|
let yVec = new Vector3().setFromMatrixColumn(otherBoard.OCS, 1);
|
|
|
|
|
|
|
|
|
|
let nails = this.BuildNails(nail, nailOption, face, yVec);
|
|
|
|
|
let nails = this.BuildNails(nail, nailOption, face, yVec, nailCount);
|
|
|
|
|
for (let nail of nails)
|
|
|
|
|
nailBoardMap.set(nail, otherBoard);
|
|
|
|
|
allNails.push(...nails);
|
|
|
|
|