feat: 提交
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -41,15 +41,15 @@ export class ModelProcessPointsProc extends ProcessorBase<ModelProcessPointsInpu
|
|||||||
*
|
*
|
||||||
* 先处理放置方式 在处理 优化坐标 会简单很多
|
* 先处理放置方式 在处理 优化坐标 会简单很多
|
||||||
*/
|
*/
|
||||||
let res = this.handleByPositionType(context.input.block, context.input.targetPosition)
|
|
||||||
|
|
||||||
let res1 = this.handleByPlaceXY(res.models, placeX, placeY)
|
|
||||||
|
|
||||||
res.models = res1
|
let resBlock = this.handleByPositionType(context.input.block, context.input.targetPosition)
|
||||||
|
|
||||||
|
let res1 = this.handleByPlaceXY(resBlock.models, placeX, placeY)
|
||||||
|
|
||||||
|
resBlock.models = res1
|
||||||
output.block = {
|
output.block = {
|
||||||
...output.block,
|
...output.block,
|
||||||
...res,
|
...resBlock,
|
||||||
// positionType:context.input.targetPosition
|
|
||||||
}
|
}
|
||||||
context.output = output
|
context.output = output
|
||||||
resolve()
|
resolve()
|
||||||
@@ -71,7 +71,7 @@ export class ModelProcessPointsProc extends ProcessorBase<ModelProcessPointsInpu
|
|||||||
* 提要:models内的造型数据 都是以小板正面 为基准
|
* 提要:models内的造型数据 都是以小板正面 为基准
|
||||||
* 即 PositionType.FRONT
|
* 即 PositionType.FRONT
|
||||||
* 需要 以下几种情况
|
* 需要 以下几种情况
|
||||||
* 加工项所在的面 -- 2种 正 反
|
* 加工项所在的面 -- 2种 正 反 -- 但实际 在改处理器应该是不考虑的
|
||||||
* 小板放置方式 -- 8 种 详见 PositionType 处理器入参 默认为 PositionType.FRONT
|
* 小板放置方式 -- 8 种 详见 PositionType 处理器入参 默认为 PositionType.FRONT
|
||||||
*
|
*
|
||||||
* 细节:
|
* 细节:
|
||||||
@@ -102,19 +102,22 @@ export class ModelProcessPointsProc extends ProcessorBase<ModelProcessPointsInpu
|
|||||||
let _width = block.width
|
let _width = block.width
|
||||||
|
|
||||||
let _length = block.length
|
let _length = block.length
|
||||||
|
let temp = JSON.parse(JSON.stringify(block))
|
||||||
|
let resBlock: ModelProcessPointsInputBlock = {
|
||||||
|
...temp
|
||||||
|
}
|
||||||
/** 默认 正面 */
|
/** 默认 正面 */
|
||||||
if (block.positionType == undefined) {
|
if (resBlock.positionType == undefined) {
|
||||||
block.positionType = PositionType.FRONT
|
resBlock.positionType = PositionType.FRONT
|
||||||
}
|
}
|
||||||
|
|
||||||
//#region 板件 进行分析 翻面 以及 行为
|
//#region 板件 进行分析 翻面 以及 行为
|
||||||
let face = this.getFace(block.positionType)
|
let face = this.getFace(resBlock.positionType)
|
||||||
let targetFace = this.getFace(targetPosition)
|
let targetFace = this.getFace(targetPosition)
|
||||||
|
|
||||||
if (face == -1) {
|
if (face == -1) {
|
||||||
// 异常情况
|
// 异常情况
|
||||||
console.log(`block-${block.id}:block.positionType is invalid`)
|
console.log(`block-${resBlock.id}:block.positionType is invalid`)
|
||||||
}
|
}
|
||||||
if (targetFace == -1) {
|
if (targetFace == -1) {
|
||||||
// 异常情况
|
// 异常情况
|
||||||
@@ -124,12 +127,10 @@ export class ModelProcessPointsProc extends ProcessorBase<ModelProcessPointsInpu
|
|||||||
const isTurn = !(face == targetFace)
|
const isTurn = !(face == targetFace)
|
||||||
|
|
||||||
/** 翻面后的 放置方式 */
|
/** 翻面后的 放置方式 */
|
||||||
let tempPosition = block.positionType
|
let tempPosition = resBlock.positionType
|
||||||
if(block.id =='25044454400'){
|
|
||||||
debugger
|
|
||||||
}
|
|
||||||
if (isTurn) {
|
if (isTurn) {
|
||||||
tempPosition = this.getPositionAfterTurnFace(block.positionType)
|
tempPosition = this.getPositionAfterTurnFace(resBlock.positionType)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取行为 左|右|翻转|不操作
|
// 获取行为 左|右|翻转|不操作
|
||||||
@@ -138,8 +139,8 @@ export class ModelProcessPointsProc extends ProcessorBase<ModelProcessPointsInpu
|
|||||||
//#endregion
|
//#endregion
|
||||||
|
|
||||||
// 处理造型的部分
|
// 处理造型的部分
|
||||||
for (const i in block.models) {
|
for (const i in resBlock.models) {
|
||||||
let model = {...block.models[i]}
|
let model = { ...resBlock.models[i] }
|
||||||
/** 如果要 翻面 那就先把面 翻过来 */
|
/** 如果要 翻面 那就先把面 翻过来 */
|
||||||
if (isTurn) {
|
if (isTurn) {
|
||||||
// 翻面 x 不变 Y 变
|
// 翻面 x 不变 Y 变
|
||||||
@@ -178,17 +179,12 @@ export class ModelProcessPointsProc extends ProcessorBase<ModelProcessPointsInpu
|
|||||||
models.push(model)
|
models.push(model)
|
||||||
}
|
}
|
||||||
|
|
||||||
let handleData = {
|
|
||||||
width: _width,
|
|
||||||
length: _length,
|
|
||||||
models,
|
|
||||||
positionType:targetPosition,
|
|
||||||
offsetInfo: block.offsetInfo
|
|
||||||
}
|
|
||||||
/** 左转 或者 右转 长宽值 要互换 */
|
/** 左转 或者 右转 长宽值 要互换 */
|
||||||
if (action == 'turnLeft' || action == 'turnRight') {
|
if (action == 'turnLeft' || action == 'turnRight') {
|
||||||
handleData = {
|
resBlock = {
|
||||||
...handleData,
|
...resBlock,
|
||||||
width: _length,
|
width: _length,
|
||||||
length: _width,
|
length: _width,
|
||||||
}
|
}
|
||||||
@@ -197,37 +193,37 @@ export class ModelProcessPointsProc extends ProcessorBase<ModelProcessPointsInpu
|
|||||||
/** 更加行为 以及是否 翻转 转换 板件的偏移值 */
|
/** 更加行为 以及是否 翻转 转换 板件的偏移值 */
|
||||||
if (isTurn) {
|
if (isTurn) {
|
||||||
// 翻面 左右封边互换 上下不变
|
// 翻面 左右封边互换 上下不变
|
||||||
block.offsetInfo = {
|
resBlock.offsetInfo = {
|
||||||
...block.offsetInfo,
|
...resBlock.offsetInfo,
|
||||||
top: block.offsetInfo.bottom,
|
top: resBlock.offsetInfo.bottom,
|
||||||
bottom: block.offsetInfo.top
|
bottom: resBlock.offsetInfo.top
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (action) {
|
switch (action) {
|
||||||
case 'turnAround':
|
case 'turnAround':
|
||||||
// 翻转
|
// 翻转
|
||||||
block.offsetInfo = {
|
resBlock.offsetInfo = {
|
||||||
top: block.offsetInfo.bottom,
|
top: resBlock.offsetInfo.bottom,
|
||||||
bottom: block.offsetInfo.top,
|
bottom: resBlock.offsetInfo.top,
|
||||||
left: block.offsetInfo.right,
|
left: resBlock.offsetInfo.right,
|
||||||
right: block.offsetInfo.left
|
right: resBlock.offsetInfo.left
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'turnLeft':
|
case 'turnLeft':
|
||||||
block.offsetInfo = {
|
resBlock.offsetInfo = {
|
||||||
top: block.offsetInfo.right,
|
top: resBlock.offsetInfo.right,
|
||||||
right: block.offsetInfo.bottom,
|
right: resBlock.offsetInfo.bottom,
|
||||||
bottom: block.offsetInfo.left,
|
bottom: resBlock.offsetInfo.left,
|
||||||
left: block.offsetInfo.top
|
left: resBlock.offsetInfo.top
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
case 'turnRight':
|
case 'turnRight':
|
||||||
block.offsetInfo = {
|
resBlock.offsetInfo = {
|
||||||
top: block.offsetInfo.left,
|
top: resBlock.offsetInfo.left,
|
||||||
left: block.offsetInfo.bottom,
|
left: resBlock.offsetInfo.bottom,
|
||||||
bottom: block.offsetInfo.right,
|
bottom: resBlock.offsetInfo.right,
|
||||||
right: block.offsetInfo.top
|
right: resBlock.offsetInfo.top
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
default:
|
default:
|
||||||
@@ -235,16 +231,16 @@ export class ModelProcessPointsProc extends ProcessorBase<ModelProcessPointsInpu
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return handleData
|
return resBlock
|
||||||
}
|
}
|
||||||
/** 获取翻面 后的 放置方式 */
|
/** 获取翻面 后的 放置方式 */
|
||||||
private getPositionAfterTurnFace(v: PositionType) {
|
getPositionAfterTurnFace(v: PositionType) {
|
||||||
let res = transitions_PositionTurnFace[v]
|
let res = transitions_PositionTurnFace[v]
|
||||||
|
|
||||||
return res
|
return res
|
||||||
}
|
}
|
||||||
/** 获取行为 左|右|翻转|不需要操作 */
|
/** 获取行为 左|右|翻转|不需要操作 */
|
||||||
private getDir(v1: PositionType, v2: PositionType) {
|
getDir(v1: PositionType, v2: PositionType) {
|
||||||
let flag: RotationAction = 'doNothing'
|
let flag: RotationAction = 'doNothing'
|
||||||
try {
|
try {
|
||||||
flag = transitions_PositionToAction[v1][v2]
|
flag = transitions_PositionToAction[v1][v2]
|
||||||
@@ -254,8 +250,11 @@ export class ModelProcessPointsProc extends ProcessorBase<ModelProcessPointsInpu
|
|||||||
}
|
}
|
||||||
return flag
|
return flag
|
||||||
}
|
}
|
||||||
/** 右转 */
|
/** 右转
|
||||||
private change_turnRight(model: ModelProcessItem, valueX: number, valueY: number) {
|
* @param model 造型数据
|
||||||
|
* @param valueX 排版长
|
||||||
|
*/
|
||||||
|
change_turnRight(model: ModelProcessItem, valueX: number) {
|
||||||
let newModel = { ...model }
|
let newModel = { ...model }
|
||||||
for (const i in newModel.pts) {
|
for (const i in newModel.pts) {
|
||||||
newModel.pts[i] = {
|
newModel.pts[i] = {
|
||||||
@@ -266,8 +265,11 @@ export class ModelProcessPointsProc extends ProcessorBase<ModelProcessPointsInpu
|
|||||||
return newModel
|
return newModel
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 左转 */
|
/** 左转
|
||||||
private change_turnLeft(model: ModelProcessItem, valueX: number, valueY: number) {
|
* @param model 造型数据
|
||||||
|
* @param valueX 排版长
|
||||||
|
*/
|
||||||
|
change_turnLeft(model: ModelProcessItem, valueX: number) {
|
||||||
let newModel = { ...model }
|
let newModel = { ...model }
|
||||||
for (const i in newModel.pts) {
|
for (const i in newModel.pts) {
|
||||||
newModel.pts[i] = {
|
newModel.pts[i] = {
|
||||||
@@ -277,8 +279,12 @@ export class ModelProcessPointsProc extends ProcessorBase<ModelProcessPointsInpu
|
|||||||
}
|
}
|
||||||
return newModel
|
return newModel
|
||||||
}
|
}
|
||||||
/** 翻转 改变 xy 坐标 */
|
/** 翻转 改变 xy 坐标
|
||||||
private change_turnAround(model: ModelProcessItem, valueX: number, valueY: number) {
|
* @param model 造型数据
|
||||||
|
* @param valueX 排版长
|
||||||
|
* @param valueY 排版宽
|
||||||
|
*/
|
||||||
|
change_turnAround(model: ModelProcessItem, valueX: number, valueY: number) {
|
||||||
let newModel = { ...model }
|
let newModel = { ...model }
|
||||||
for (const i in newModel.pts) {
|
for (const i in newModel.pts) {
|
||||||
newModel.pts[i] = {
|
newModel.pts[i] = {
|
||||||
@@ -292,7 +298,7 @@ export class ModelProcessPointsProc extends ProcessorBase<ModelProcessPointsInpu
|
|||||||
|
|
||||||
|
|
||||||
/**翻面 改变 y坐标 */
|
/**翻面 改变 y坐标 */
|
||||||
private change_turnFace(model: ModelProcessItem, valueY: number) {
|
change_turnFace(model: ModelProcessItem, valueY: number) {
|
||||||
let newModel = { ...model }
|
let newModel = { ...model }
|
||||||
for (const i in newModel.pts) {
|
for (const i in newModel.pts) {
|
||||||
newModel.pts[i].y = valueY - newModel.pts[i].y
|
newModel.pts[i].y = valueY - newModel.pts[i].y
|
||||||
@@ -300,7 +306,7 @@ export class ModelProcessPointsProc extends ProcessorBase<ModelProcessPointsInpu
|
|||||||
return newModel
|
return newModel
|
||||||
}
|
}
|
||||||
/** 给 弧度值 取反 */
|
/** 给 弧度值 取反 */
|
||||||
private reverseBuls(model: ModelProcessItem) {
|
reverseBuls(model: ModelProcessItem) {
|
||||||
let newModel = { ...model }
|
let newModel = { ...model }
|
||||||
for (const i in newModel.buls) {
|
for (const i in newModel.buls) {
|
||||||
newModel.buls[i] = -newModel.buls[i]
|
newModel.buls[i] = -newModel.buls[i]
|
||||||
@@ -308,21 +314,22 @@ export class ModelProcessPointsProc extends ProcessorBase<ModelProcessPointsInpu
|
|||||||
return newModel
|
return newModel
|
||||||
}
|
}
|
||||||
/**正面的放置方式 集合*/
|
/**正面的放置方式 集合*/
|
||||||
private frontArr = [
|
frontArr = [
|
||||||
PositionType.FRONT,
|
PositionType.FRONT,
|
||||||
PositionType.FRONT_TURN_BACK,
|
PositionType.FRONT_TURN_BACK,
|
||||||
PositionType.FRONT_TURN_LEFT,
|
PositionType.FRONT_TURN_LEFT,
|
||||||
PositionType.FRONT_TURN_RIGHT
|
PositionType.FRONT_TURN_RIGHT
|
||||||
]
|
]
|
||||||
|
|
||||||
/** 反面的放置方式 集合*/
|
/** 反面的放置方式 集合*/
|
||||||
private backArr = [
|
backArr = [
|
||||||
PositionType.BACK,
|
PositionType.BACK,
|
||||||
PositionType.BACK_TURN_BACK,
|
PositionType.BACK_TURN_BACK,
|
||||||
PositionType.BACK_TURN_LEFT,
|
PositionType.BACK_TURN_LEFT,
|
||||||
PositionType.BACK_TURN_RIGHT
|
PositionType.BACK_TURN_RIGHT
|
||||||
]
|
]
|
||||||
/** 根据放置方式 获取面 */
|
/** 根据放置方式 获取面 */
|
||||||
private getFace(positionValue: PositionType) {
|
getFace(positionValue: PositionType) {
|
||||||
let res = -1
|
let res = -1
|
||||||
if (this.frontArr.includes(positionValue)) {
|
if (this.frontArr.includes(positionValue)) {
|
||||||
res = FaceType.FRONT
|
res = FaceType.FRONT
|
||||||
@@ -338,10 +345,10 @@ export class ModelProcessPointsProc extends ProcessorBase<ModelProcessPointsInpu
|
|||||||
handleByPlaceXY(models: ModelProcessItem[], placeX: number, placeY: number) {
|
handleByPlaceXY(models: ModelProcessItem[], placeX: number, placeY: number) {
|
||||||
let newModels: ModelProcessItem[] = []
|
let newModels: ModelProcessItem[] = []
|
||||||
for (const model of models) {
|
for (const model of models) {
|
||||||
let newModel:ModelProcessItem = {...model}
|
let newModel: ModelProcessItem = { ...model }
|
||||||
let newPts = []
|
let newPts = []
|
||||||
for (const k in newModel.pts) {
|
for (const k in newModel.pts) {
|
||||||
let p = {
|
let p = {
|
||||||
x: model.pts[k].x + placeX,
|
x: model.pts[k].x + placeX,
|
||||||
y: model.pts[k].y + placeY
|
y: model.pts[k].y + placeY
|
||||||
}
|
}
|
||||||
@@ -431,6 +438,7 @@ export interface ModelProcessItem {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** 加工面 */
|
||||||
export enum FaceType {
|
export enum FaceType {
|
||||||
/** 正面 */
|
/** 正面 */
|
||||||
FRONT = 0,
|
FRONT = 0,
|
||||||
@@ -438,8 +446,10 @@ export enum FaceType {
|
|||||||
BACK = 1,
|
BACK = 1,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** 点坐标类 */
|
||||||
export interface IPoint { x: number, y: number; }
|
export interface IPoint { x: number, y: number; }
|
||||||
|
|
||||||
|
/** 小板的放置方式 */
|
||||||
export enum PositionType {
|
export enum PositionType {
|
||||||
/** 正面 */
|
/** 正面 */
|
||||||
FRONT = 0,
|
FRONT = 0,
|
||||||
|
@@ -1 +1 @@
|
|||||||
{"version":"3.2.4","results":[[":modelProcessPoints.test.ts",{"duration":7.6438000202178955,"failed":false}]]}
|
{"version":"3.2.4","results":[[":modelProcessPoints.test.ts",{"duration":3100989.710500002,"failed":true}]]}
|
Reference in New Issue
Block a user