feat:提交
This commit is contained in:
82
tests/dev1/dataHandle/common/core/NestDatabase.ts
Normal file
82
tests/dev1/dataHandle/common/core/NestDatabase.ts
Normal file
@@ -0,0 +1,82 @@
|
||||
import { NestFiler } from '../Filer'
|
||||
import { Part } from './Part'
|
||||
import { Path } from './Path'
|
||||
import { PathGeneratorSingle } from './PathGenerator'
|
||||
|
||||
export const DefaultComparePointKeys = ['xy', 'yx']
|
||||
|
||||
/**
|
||||
* 排料数据库,用这个类来序列化需要排料的数据
|
||||
* 用于在Work间传输
|
||||
*/
|
||||
export class NestDatabase {
|
||||
Bin: Path // 默认的容器
|
||||
OddmentsBins: Path[]// 余料容器列表
|
||||
Paths: Path[] // 所有的Path都在这里
|
||||
Parts: Part[] // 所有的零件
|
||||
ComparePointKeys: string[] = DefaultComparePointKeys// 用来决定零件靠边模式
|
||||
|
||||
// #region -------------------------File-------------------------
|
||||
// 对象从文件中读取数据,初始化自身
|
||||
ReadFile(file: NestFiler) {
|
||||
const ver = file.Read()
|
||||
let count = file.Read() as number
|
||||
this.Paths = []
|
||||
for (let i = 0; i < count; i++) {
|
||||
const path = new Path()
|
||||
path.ReadFile(file)
|
||||
this.Paths.push(path)
|
||||
}
|
||||
this.Bin = this.Paths[file.Read()]
|
||||
PathGeneratorSingle.paths = this.Paths
|
||||
count = file.Read()
|
||||
this.Parts = []
|
||||
for (let i = 0; i < count; i++) {
|
||||
const part = new Part()
|
||||
part.ReadFile(file)
|
||||
this.Parts.push(part)
|
||||
}
|
||||
|
||||
count = file.Read()
|
||||
this.OddmentsBins = []
|
||||
for (let i = 0; i < count; i++) {
|
||||
const path = new Path()
|
||||
path.ReadFile(file)
|
||||
this.OddmentsBins.push(path)
|
||||
}
|
||||
|
||||
if (ver > 1)
|
||||
this.ComparePointKeys = file.Read()
|
||||
return this
|
||||
}
|
||||
|
||||
// 对象将自身数据写入到文件.
|
||||
WriteFile(file: NestFiler) {
|
||||
file.Write(2)
|
||||
file.Write(this.Paths.length)
|
||||
for (const path of this.Paths)
|
||||
path.WriteFile(file)
|
||||
|
||||
file.Write(this.Bin.Id)
|
||||
file.Write(this.Parts.length)
|
||||
for (const part of this.Parts)
|
||||
part.WriteFile(file)
|
||||
|
||||
if (!this.OddmentsBins)
|
||||
this.OddmentsBins = []
|
||||
file.Write(this.OddmentsBins.length)
|
||||
for (const path of this.OddmentsBins)
|
||||
path.WriteFile(file)
|
||||
|
||||
file.Write(this.ComparePointKeys)
|
||||
|
||||
return this
|
||||
}
|
||||
// #endregion
|
||||
|
||||
get File() {
|
||||
const f = new NestFiler()
|
||||
this.WriteFile(f)
|
||||
return f
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user