优化:CTRL+1特性面板

pull/2374/head
ChenX 1 year ago
parent fc9827b846
commit dd116b18f3

@ -7,6 +7,7 @@ import { KeyBoard } from '../../../Common/KeyEnum';
import { Curve } from '../../../DatabaseServices/Entity/Curve'; import { Curve } from '../../../DatabaseServices/Entity/Curve';
import { EntityStore } from '../../Store/EntityStore'; import { EntityStore } from '../../Store/EntityStore';
import { ColorModal } from './EntityColorList'; import { ColorModal } from './EntityColorList';
import { GetEntityProperty } from './GetEntityProperty';
@observer @observer
export class EntityModal extends React.Component<{}, {}> { export class EntityModal extends React.Component<{}, {}> {
@ -52,6 +53,8 @@ export class EntityModal extends React.Component<{}, {}> {
options.unshift({ label: "全部" + count.toString(), value: "all" }); options.unshift({ label: "全部" + count.toString(), value: "all" });
} }
let ents = store.GetEntitys() as Curve[]; let ents = store.GetEntitys() as Curve[];
let pers = GetEntityProperty(ents[0]);
return ( return (
<div id="entityModal" className={Classes.CARD} > <div id="entityModal" className={Classes.CARD} >
<div data-id="dragArea"></div> <div data-id="dragArea"></div>
@ -71,22 +74,7 @@ export class EntityModal extends React.Component<{}, {}> {
<li> <li>
<ColorModal store={store} /> <ColorModal store={store} />
</li> </li>
{(ents[0] instanceof Curve) && {pers.map(p => <li>{p}</li>)}
<>
<li>
: {ents[0].Length.toFixed(2)}
</li>
<li>
: {ents[0].Area.toFixed(2)}
</li>
<li>
: {ents[0].IsClockWise ? "顺时针" : "逆时针"}
</li>
<li>
: {ents[0].IsClose ? "闭合" : "不闭合"}
</li>
</>
}
</> </>
} }
</ul> </ul>

@ -0,0 +1,35 @@
import { FixedNotZero } from '../../../Common/Utils';
import { Arc } from '../../../DatabaseServices/Entity/Arc';
import { Circle } from '../../../DatabaseServices/Entity/Circle';
import { Curve } from '../../../DatabaseServices/Entity/Curve';
import { Entity } from '../../../DatabaseServices/Entity/Entity';
import { Line } from '../../../DatabaseServices/Entity/Line';
import { Polyline } from '../../../DatabaseServices/Entity/Polyline';
import { Spline } from '../../../DatabaseServices/Spline';
import { PointToString } from '../../Store/PointToString';
export function GetEntityProperty(en: Entity)
{
let pers: string[] = []; //属性表
if (en instanceof Curve)
{
pers.push(`长度: ${FixedNotZero(en.Length, 3)}`);
if (!(en instanceof Line))
{
pers.push(`面积: ${FixedNotZero(en.Area, 3)}`);
if (en instanceof Polyline || en instanceof Spline)
pers.push(`参数: ${en.EndParam}`);
pers.push(`时针: ${en.IsClockWise ? "顺时针" : "逆时针"}`);
if (en instanceof Polyline || en instanceof Spline)
pers.push(`闭合: ${en.IsClose ? "闭合" : "不闭合"}`);
}
if (en instanceof Arc || en instanceof Circle)
pers.push(`半径: ${FixedNotZero(en.Radius, 3)}`);
pers.push(`起点: ${PointToString(en.StartPoint)}`);
pers.push(`终点: ${PointToString(en.StartPoint)}`);
}
return pers;
}

@ -2,15 +2,15 @@ import { Button, Card, Classes, HTMLSelect } from "@blueprintjs/core";
import { observer } from "mobx-react"; import { observer } from "mobx-react";
import React from "react"; import React from "react";
import { app } from "../../../ApplicationServices/Application"; import { app } from "../../../ApplicationServices/Application";
import { DimStyleRecord } from "../../../DatabaseServices/DimStyle/DimStyleRecord";
import { AlignedDimension } from "../../../DatabaseServices/Dimension/AlignedDimension"; import { AlignedDimension } from "../../../DatabaseServices/Dimension/AlignedDimension";
import { Dimension } from "../../../DatabaseServices/Dimension/Dimension"; import { Dimension } from "../../../DatabaseServices/Dimension/Dimension";
import { DimStyleRecord } from "../../../DatabaseServices/DimStyle/DimStyleRecord";
import { Curve } from "../../../DatabaseServices/Entity/Curve";
import { Entity } from "../../../DatabaseServices/Entity/Entity"; import { Entity } from "../../../DatabaseServices/Entity/Entity";
import { Text } from "../../../DatabaseServices/Text/Text"; import { Text } from "../../../DatabaseServices/Text/Text";
import { CommandWrap } from "../../../Editor/CommandMachine"; import { CommandWrap } from "../../../Editor/CommandMachine";
import { DownPanelStore } from "../../Store/DownPanelStore"; import { DownPanelStore } from "../../Store/DownPanelStore";
import { ColorModal } from "../EntityModal/EntityColorList"; import { ColorModal } from "../EntityModal/EntityColorList";
import { GetEntityProperty } from "../EntityModal/GetEntityProperty";
import { PropertiesStore } from "./PropertiesStore"; import { PropertiesStore } from "./PropertiesStore";
import { Properties_AlignedDimPanel } from "./Properties_AlignedDim"; import { Properties_AlignedDimPanel } from "./Properties_AlignedDim";
import { Properties_DimPanel } from "./Properties_Dim"; import { Properties_DimPanel } from "./Properties_Dim";
@ -110,6 +110,7 @@ export class PropertiesPanel extends React.Component<{}, {}>
else if (count === 0) else if (count === 0)
options.unshift({ label: "无选择", value: "none" }); options.unshift({ label: "无选择", value: "none" });
let ents = store.GetEntitys(); let ents = store.GetEntitys();
let pers = GetEntityProperty(ents[0]);
return ( return (
<div className="properties"> <div className="properties">
@ -138,27 +139,7 @@ export class PropertiesPanel extends React.Component<{}, {}>
<li className="color"> <li className="color">
<ColorModal store={store} /> <ColorModal store={store} />
</li> </li>
{ {pers.map(p => <li>{p}</li>)}
ents[0] instanceof Curve &&
<>
<span className="li-title"></span>
<li>
: {ents[0]['Length'].toFixed(2)}
</li>
<li>
: {ents[0]['Area'].toFixed(2)}
</li>
<li>
:{(ents[0] as Curve).EndParam}
</li>
<li>
: {(ents[0] as Curve).IsClockWise ? "顺时针" : "逆时针"}
</li>
<li>
: {ents[0].IsClose ? "闭合" : "不闭合"}
</li>
</>
}
{ {
ents[0] instanceof AlignedDimension && ents[0] instanceof AlignedDimension &&
<> <>

@ -1,26 +1,17 @@
import { action, autorun, observable, reaction } from 'mobx'; import { action, autorun, observable, reaction } from 'mobx';
import { Vector3 } from 'three';
import * as xaop from 'xaop'; import * as xaop from 'xaop';
import { Command_ToggleUI } from '../../Add-on/ToggleUI'; import { Command_ToggleUI } from '../../Add-on/ToggleUI';
import { app } from '../../ApplicationServices/Application'; import { app } from '../../ApplicationServices/Application';
import { appCache } from '../../Common/AppCache'; import { appCache } from '../../Common/AppCache';
import { ConfigUrls } from '../../Common/HostUrl'; import { ConfigUrls } from '../../Common/HostUrl';
import { PostJson, RequestStatus } from '../../Common/Request'; import { PostJson, RequestStatus } from '../../Common/Request';
import { FixedNotZero, GetIndexDBID } from '../../Common/Utils'; import { GetIndexDBID } from '../../Common/Utils';
import { ObjectSnapMode } from '../../Editor/ObjectSnapMode'; import { ObjectSnapMode } from '../../Editor/ObjectSnapMode';
import { SNAPMODE } from '../../Editor/ShowSnapMenu'; import { SNAPMODE } from '../../Editor/ShowSnapMenu';
import { AxisSnapMode } from '../../Editor/SnapServices'; import { AxisSnapMode } from '../../Editor/SnapServices';
import { userConfig } from '../../Editor/UserConfig'; import { userConfig } from '../../Editor/UserConfig';
import { IndexedDbStore, StoreName } from '../../IndexedDb/IndexedDbStore'; import { IndexedDbStore, StoreName } from '../../IndexedDb/IndexedDbStore';
import { PointToString } from './PointToString';
//点转换为字符串.
function PointToString(pt: Vector3): string
{
return pt.toArray().map(o =>
{
return FixedNotZero(o, 3);
}).join(" , ");
}
export enum ToolBarType export enum ToolBarType
{ {

@ -0,0 +1,11 @@
import { Vector3 } from 'three';
import { FixedNotZero } from '../../Common/Utils';
//点转换为字符串.
export function PointToString(pt: Vector3): string
{
return pt.toArray().map(o =>
{
return FixedNotZero(o, 3);
}).join(" , ");
}
Loading…
Cancel
Save