105 lines
2.5 KiB
TypeScript
105 lines
2.5 KiB
TypeScript
|
import type { PolylineProps } from 'cadapi'
|
||
|
import { CADFiler, Polyline } from 'cadapi'
|
||
|
import { Vector2 } from 'three'
|
||
|
import { copyTextToClipboard } from '../base/CAD'
|
||
|
|
||
|
export class ClipboardTest {
|
||
|
public static writePolyline1(pl: Polyline, pts1) {
|
||
|
// pl 原图
|
||
|
// pts :偏移后的点
|
||
|
|
||
|
const lined: PolylineProps[] = []
|
||
|
const count = pts1.length
|
||
|
for (let i = 0; i < count; i++) {
|
||
|
const p0 = pts1[i]
|
||
|
lined.push({ pt: new Vector2(p0.x, p0.y), bul: 0 })
|
||
|
}
|
||
|
const pl1 = new Polyline(lined)
|
||
|
pl1.CloseMark = true
|
||
|
|
||
|
const f = new CADFiler()
|
||
|
f.Clear()
|
||
|
f.Write(2)
|
||
|
f.WriteObject(pl)
|
||
|
f.WriteObject(pl1)
|
||
|
|
||
|
const test = JSON.stringify(f.Data)
|
||
|
|
||
|
// for (let pl of lined)
|
||
|
// f.WriteObject(pl)
|
||
|
copyTextToClipboard(test)
|
||
|
}
|
||
|
|
||
|
public static writePolyline2(pl: Polyline, pts1, pts2) {
|
||
|
// pl 原图
|
||
|
// pts :偏移后的点
|
||
|
|
||
|
const lined: PolylineProps[] = []
|
||
|
const count = pts1.length
|
||
|
for (let i = 0; i < count; i++) {
|
||
|
const p0 = pts1[i]
|
||
|
lined.push({ pt: new Vector2(p0.x, p0.y), bul: 0 })
|
||
|
}
|
||
|
const pl1 = new Polyline(lined)
|
||
|
|
||
|
const lined2: PolylineProps[] = []
|
||
|
const count2 = pts2.length
|
||
|
for (let i = 0; i < count2; i++) {
|
||
|
const p0 = pts2[i]
|
||
|
lined2.push({ pt: new Vector2(p0.x, p0.y), bul: 0 })
|
||
|
}
|
||
|
const pl2 = new Polyline(lined2)
|
||
|
|
||
|
const f = new CADFiler()
|
||
|
f.Clear()
|
||
|
f.Write(3)
|
||
|
f.WriteObject(pl)
|
||
|
f.WriteObject(pl1)
|
||
|
f.WriteObject(pl2)
|
||
|
const test = JSON.stringify(f.Data)
|
||
|
|
||
|
// for (let pl of lined)
|
||
|
// f.WriteObject(pl)
|
||
|
copyTextToClipboard(test)
|
||
|
}
|
||
|
|
||
|
public static writeClipboard(pts) {
|
||
|
const lined: PolylineProps[] = []
|
||
|
const count = pts.length
|
||
|
for (let i = 0; i < count; i++) {
|
||
|
const p0 = pts[i]
|
||
|
lined.push({ pt: new Vector2(p0.x, p0.y), bul: 0 })
|
||
|
}
|
||
|
|
||
|
const pls = new Polyline(lined)
|
||
|
const f = new CADFiler()
|
||
|
f.Clear()
|
||
|
f.Write(1)
|
||
|
f.WriteObject(pls)
|
||
|
const test = JSON.stringify(f.Data)
|
||
|
|
||
|
// for (let pl of lined)
|
||
|
// f.WriteObject(pl)
|
||
|
copyTextToClipboard(test)
|
||
|
}
|
||
|
|
||
|
public static writePolyLine(pls) {
|
||
|
const f = new CADFiler()
|
||
|
f.Clear()
|
||
|
f.Write(1)
|
||
|
f.WriteObject(pls)
|
||
|
const test = JSON.stringify(f.Data)
|
||
|
copyTextToClipboard(test)
|
||
|
}
|
||
|
|
||
|
public static write2PolyLine(pls, pls2) {
|
||
|
const f = new CADFiler()
|
||
|
f.Clear()
|
||
|
f.Write(2)
|
||
|
f.WriteObject(pls)
|
||
|
f.WriteObject(pls2)
|
||
|
const test = JSON.stringify(f.Data)
|
||
|
copyTextToClipboard(test)
|
||
|
}
|
||
|
}
|