Skip to content

Commit 4412160

Browse files
committed
fix(import): compute ellipse minor axis without MinorAxisEndpoint
ACadSharp removed the computed MinorAxisEndpoint property. Derive the minor axis vector inline using the same formula: Normal × MajorAxis, normalized, scaled by MajorAxis.Length * RadiusRatio. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ka4ocDhmumPuQDD2fDs7ad
1 parent 6f522f5 commit 4412160

1 file changed

Lines changed: 5 additions & 1 deletion

File tree

CADability/ImportDxf.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -552,7 +552,11 @@ private IGeoObject CreateEllipse(ACadSharp.Entities.Ellipse ellipse)
552552
{
553553
GeoObject.Ellipse e = GeoObject.Ellipse.Construct();
554554
GeoVector majorAxisVec = GeoVector(ellipse.MajorAxisEndPoint);
555-
GeoVector minorAxisVec = GeoVector(ellipse.MinorAxisEndpoint);
555+
// MinorAxisEndpoint was removed from ACadSharp; compute it from Normal × MajorAxis × RadiusRatio.
556+
GeoVector normalVec = GeoVector(ellipse.Normal);
557+
GeoVector minorDir = normalVec ^ majorAxisVec;
558+
if (!minorDir.IsNullVector()) minorDir.Norm();
559+
GeoVector minorAxisVec = minorDir * (majorAxisVec.Length * ellipse.RadiusRatio);
556560
e.SetEllipseCenterAxis(GeoPoint(ellipse.Center), majorAxisVec, minorAxisVec);
557561
e.StartParameter = ellipse.StartParameter;
558562
e.SweepParameter = ellipse.EndParameter - ellipse.StartParameter;

0 commit comments

Comments
 (0)