功能:支持弧长标注

pull/2165/MERGE
ChenX 1 year ago
parent 9a07b86306
commit 567ee955cc

@ -192,6 +192,31 @@ export function Conver2DxfEntity(e: Entity, dxf: DxfWriter, blkName?: string)
else if (e instanceof ArcDimension)
{
//弧长标注 在acad中 使用角度标注 然后改TextString就行了
option.extrusion = e.Normal;
e.PraseArc();
let arc = e.Arc;
let p1 = arc.StartPoint.applyMatrix4(e.OCSNoClone);
let p2 = arc.EndPoint.applyMatrix4(e.OCSNoClone);
let angleOp = option as AngularDimLines;
angleOp.text = e.TextString;//一定要在ParseText前
e.ParseText();
let p3 = arc.StartPoint.applyMatrix4(e.OCSNoClone);
let p4 = arc.EndPoint.applyMatrix4(e.OCSNoClone);
return new AngularDimLines(
{
start: p1,
end: p3
},
{
start: p2,
end: p4
},
arc.Midpoint.applyMatrix4(e.OCSNoClone),
option
);
}
// else 我们暂时没有实现坐标标注
else if (e instanceof Board || e instanceof SweepSolid || e instanceof RevolveSolid || e instanceof ExtrudeHole)

@ -13,6 +13,7 @@ import { CADFiler } from "../DatabaseServices/CADFiler";
import { Database } from '../DatabaseServices/Database';
import { LineAngularDimension } from '../DatabaseServices/Dimension/2LineAngularDimension';
import { AlignedDimension } from '../DatabaseServices/Dimension/AlignedDimension';
import { ArcDimension } from '../DatabaseServices/Dimension/ArcDimension';
import { RadiusDimension } from '../DatabaseServices/Dimension/RadiusDimension';
import { DimStyleRecord } from '../DatabaseServices/DimStyle/DimStyleRecord';
import { Arc } from '../DatabaseServices/Entity/Arc';
@ -290,7 +291,7 @@ export class SaveToDxf implements Command
Filter: {
filterTypes: [
Line, Arc, Circle, Polyline, Ellipse, AlignedDimension, LineAngularDimension, RadiusDimension, DiameterDimension,
Board, Text, SweepSolid, CompositeEntity, ExtrudeHole
Board, Text, SweepSolid, CompositeEntity, ExtrudeHole, ArcDimension
]
}
});

@ -42,6 +42,13 @@ export class ArcDimension extends Dimension
return this._Text;
}
get Arc()
{
if (!this._Arc)
this.PraseArc();
return this._Arc;
}
set TextRadiusAdd(ra: number)
{
if (equaln(ra, this._TextRadiusAdd)) return;
@ -176,7 +183,7 @@ export class ArcDimension extends Dimension
arrow2.updateMatrix();
}
private ParseText()
ParseText()
{
this._Text.TextString = this.TextString;
@ -203,7 +210,7 @@ export class ArcDimension extends Dimension
this.Text.DeferUpdate();
}
private PraseArc()
PraseArc()
{
this._Arc.AutoUpdate = false;

Loading…
Cancel
Save