|
|
|
@ -2,11 +2,11 @@ import { Intent } from "@blueprintjs/core";
|
|
|
|
|
import { Vector3 } from "three";
|
|
|
|
|
import { app } from "../../ApplicationServices/Application";
|
|
|
|
|
import { Log } from "../../Common/Log";
|
|
|
|
|
import { DbText } from "../../DatabaseServices/Text/Text";
|
|
|
|
|
import { Command } from "../../Editor/CommandMachine";
|
|
|
|
|
import { GetBox } from "../../Geometry/GeUtils";
|
|
|
|
|
import { AppToaster } from "../../UI/Components/Toaster";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export class Command_FixView implements Command
|
|
|
|
|
{
|
|
|
|
|
async exec()
|
|
|
|
@ -17,14 +17,25 @@ export class Command_FixView implements Command
|
|
|
|
|
//将实体错误的矩阵恢复
|
|
|
|
|
for (let e of app.Database.ModelSpace.Entitys)
|
|
|
|
|
{
|
|
|
|
|
if (e instanceof DbText && !e.TextString.trim())
|
|
|
|
|
{
|
|
|
|
|
Log("空文字被删除!");
|
|
|
|
|
e.Erase();
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
let isFix = false;
|
|
|
|
|
for (let i = 0; i < e.OCSNoClone.elements.length; i++)
|
|
|
|
|
{
|
|
|
|
|
let v = e.OCSNoClone.elements[i];
|
|
|
|
|
if (v !== (v || 0))//使用|| 而不是 ?? 因为 || 能转 NaN
|
|
|
|
|
{
|
|
|
|
|
e.OCSNoClone.elements[i] = 0;
|
|
|
|
|
// e.OCSNoClone.elements[i] = 0; //这个会导致全部为0
|
|
|
|
|
e.WriteAllObjectRecord();
|
|
|
|
|
e.OCSNoClone.identity();
|
|
|
|
|
e.Update();
|
|
|
|
|
isFix = true;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (isFix) e.Update();
|
|
|
|
@ -34,6 +45,7 @@ export class Command_FixView implements Command
|
|
|
|
|
box.getSize(size);
|
|
|
|
|
if (isNaN(size.x) || isNaN(size.y) || isNaN(size.z))
|
|
|
|
|
{
|
|
|
|
|
e.WriteAllObjectRecord();
|
|
|
|
|
e.OCSNoClone.identity();
|
|
|
|
|
e.Update();
|
|
|
|
|
isFix = true;
|
|
|
|
|