Skip to content

GeometryHelper 13.4.0

Choose a tag to compare

@nguyenthanguth nguyenthanguth released this 02 Nov 14:53
· 751 commits to main since this release

GeometryHelper 13.4.0, with GeometryHelper.CadConvert, GeometryHelper.IfcConvert and GeometryHelper.TeklaConvert.{2020,2025,2026} at 13.4.0.

NEW IN 13.4.0

A minor release: no public member added, removed or renamed. Nearly all of it is DXF parity with AutoCAD 2021; the
results callers will see change are listed under CHANGED. The one fix outside DXF is in GeometryHelper.IfcConvert.

NEW, DXF
- DxfSpline.FitData fits by the parameters SqrtChord and Uniform too, as AutoCAD 2021 does, and FitData.KnotParam
  reads them; only CustomParameterization is refused now.

CHANGED, DXF: results callers will see change
- An annotative TEXT, ATTRIB, ATTDEF, MTEXT or INSERT with contexts is read where AutoCAD 2021 shows it: its
  place, turn and height (an MTEXT's box and attachment too, an INSERT's scale factors) are those of its context
  of 1:1, else of its default, whatever CANNOSCALE says. Setters write the context read, and the record where it
  is the default; the INSERT's ScaleFactors setter writes every context by its scale, 3 at 1:1 being 6 at 1:2;
  TransformBy carries every context. A text with no context reads and writes as before.
- A copy (Clone, GetTransformedCopy) of an annotative text, attribute, MTEXT or INSERT keeps its original's
  contexts. Clone of plain entities takes some 15 to 20 per cent longer.
- An ATTRIB is annotative as its INSERT is; an attribute made of several lines is held by the top of its MTEXT one
  text height above its point, where it was held by its bottom left; TransformBy of an MTEXT stretches its box.
- DxfMLeader.BlockScale and BlockRotation set, even to the value they have, move the block so that a leader from
  the left meets it at the base point and land its leaders anew; the library left the block where it was.
  BlockRotation reads the multileader's own turn (43), where it read the turn the block is drawn with (46).
  TransformBy leaves the multileader's own block scale and turn as they are: a block scaled by 2 reads a
  BlockScale of 1. BlockPosition leaves the block's matrix as it is.
- A leader added by AddLeader has no landing until the first vertex given its line, which becomes its landing, the
  content left where it is; SetDogleg lands a leader of no landing. Words given by MText bring their text style.
- The first edit of a DxfTable while its drawing is open merges first the rows AutoCAD 2021 merges when it loads a
  file, a change of the table's own colour, layer and the like among the edits.
- DxfTable.ClearTableStyleOverrides keeps the title and header left out. Of 0 or 2 it sets the turn of a cell's
  text or block back to nought, as RemoveAllOverrides does, and leaves a cell emptied in the session of no value;
  of 2 it gives each cell the table's own looks of its row's kind. On a table of 400 rows a clear of 0 or 2 takes
  20 ms on .NET Framework 4.8, where it took 8.
- DxfTable.ResetValue takes the looks of the content away with the value, and of a block cell makes a text cell of
  no value, where it threw. From R2007 on, SetTextString of an empty text leaves no value as ResetValue does.
- DxfTable.Fill with CopyContent and CopyFrom from a cell emptied in the session leave the target's content as it
  was; Fill above or left of its source and longer than it repeats the source from the fill range's far end; Fill
  with CopyFormat turns a value of another kind into the source's.
- DxfTable.SetFormat keeps a format on a number alone, GetOverrides reads a cell's flag of its kind of value as
  DataType | DataFormat, and the flags of merged and new cells and of a value's kind are written as AutoCAD writes
  them.
- A DxfSpline read as the cubic through its fit points gives that cubic's Degree, ControlPoints, Knots, Weights
  and NumControlPoints: five fit points alone of degree 2 are of degree 3 and 7 control points, where the library
  gave 2 and none. ModifyPositionAndTangent and GetSplitCurves keep the fit points. The first geometry read of a
  spline reads its record in one pass, in about half the time on .NET Framework 4.8.

FIXED, DXF
- DxfSpline.ToPolylineWithPrecision cuts a spline not periodic evenly where that gives more pieces than the
  halving, as AutoCAD 2021 does; periodic fit data through three points give AutoCAD's periodic cubic.
- A multileader's leader moved off its landing is landed anew when the content is laid out again; a block mirrored
  by TransformBy is drawn mirrored; a second leader on the right of a block moves it as AutoCAD moves it; words
  that name a text style keep it when the multileader is added to a drawing.

Details in CHANGELOG.md.

Earlier releases: https://github.com/nguyenthanguth/GeometryHelper/blob/main/CHANGELOG.md