Skip to content

Releases: subtilitas/Wingdesigner

Wingdesigner v0.7.0

Choose a tag to compare

@github-actions github-actions released this 03 Oct 10:21
1347f03

Added

  • Library holds the 56 MH airfoils of Martin Hepperle, MH 1 to MH 126, included with his written permission. Each
    entry names Martin Hepperle, www.mh-aerotools.de as author and links to the airfoil's coordinate page on
    mh-aerotools.de. Category and use text follow his description: flying wings, sailplanes, pylon racers, high-speed
    models, propellers, wind turbines, hang gliders, paragliders and others; the use text gives the thickness computed
    from the file and, where his page states one, the lowest Reynolds number. Source, permission and changes per file:
    airfoils/NOTICE.md in the release zip file.
  • The XFLR5 and flow5 import finds an airfoil named like an MH airfoil, such as MH 45, in Library.

Changed

  • The wizard presets use MH airfoils of Library, root / tip: Trainer MH 38 / MH 38, Sport MH 32 / MH 32, Glider
    MH 42 / MH 42, Sailplane MH 32 / MH 42, Delta jet, Double delta and Tail surface MH 52 / MH 52, Batwing MH 60 /
    MH 64, Swept flying wing MH 60 / MH 45, Plank MH 45 / MH 45. The sample wing "Sport wing 1500" uses MH 32 at all
    3 sections. With Profile parametrization Uniform, MH 42 fails the airfoil check, so the Glider and Sailplane
    presets build only with Centripetal or Chord length.
  • The wizard fields Root airfoil and Tip airfoil take a NACA designation or the name of a Library airfoil,
    e.g. MH 45; a suggestion list offers the Library names and the NACA presets.
  • Library links the author of every bundled file to the source page of the file; the link opens in a new tab,
    and its tooltip says so.
  • The box of external airfoil sources in the Airfoils tab is named More airfoils (external sites). Its text
    says that the app bundles the MH airfoils with the written permission of their designer; its MH-AeroTools note
    says that the MH airfoils are in Library.

Use: unzip wingdesigner-v0.7.0-site.zip and open index.html in the browser; it runs from the file without a web server (tested in Chromium). A static web server on the folder works as well, e.g. python3 -m http.server. LICENSES.txt holds the licenses of the app and of its bundled libraries.

Wingdesigner v0.6.0

Choose a tag to compare

@github-actions github-actions released this 02 Oct 09:01
cf2d2ae

Added

  • XFLR5 import of the second wing (biplane) and the fin. The second wing imports as the main wing does. The fin
    imports upright, as XFLR5 6.62 builds it: rolled 90° or −90° about its origin (Part roll).
    • A single fin is the left half of the part, with the left-side airfoils; Export > Wing halves >
      Left half only writes it alone.
    • A symmetric fin turns both halves as one body (Left half: Turned with the right half).
    • A double fin is two fins at ±(position y): the fin XFLR5 builds from the right half of the wing, and its mirror
      image.
    • A single or double fin that reaches below its origin (a negative root y_position, as on the Rascal 110 fin at
      −82.55 mm) moves up to y = 0, and the pivot of the part roll moves so that the fin stays in place.
    • A single or double fin with a tilt angle is not available: XFLR5 turns it about z.
    • The fin card of the import dialog states the height of the fin.

Changed

  • Smooth spanwise interpolation builds Mitred section planes: the sections lie in the planes of Linear,
    the roll between them follows the shape-preserving cubic through the section rolls, and the thickness stretch
    follows the slope of the blended reference line, so the wing stays as thick as its airfoil across that line.
    Wings with dihedral move against the vertical planes Smooth built: the profile points of the stations of the
    wizard presets by up to 1.9 mm (Sailplane), of the sample wing by 0.70 mm. Between the sections Checks stops a stretch above 2 (60° between a
    station plane and the blended reference line) and planes that turn faster than the airfoils allow; with
    Vertical section planes Smooth builds as before.
  • Winglet… accepts Smooth spanwise interpolation.

Removed

  • The info line "Smooth spanwise interpolation builds vertical section planes; mitred section planes need Linear or
    Straight panels."

Use: unzip wingdesigner-v0.6.0-site.zip and open index.html in the browser; it runs from the file without a web server (tested in Chromium). A static web server on the folder works as well, e.g. python3 -m http.server. LICENSES.txt holds the licenses of the app and of its bundled libraries.

Wingdesigner v0.5.0

Choose a tag to compare

@github-actions github-actions released this 02 Oct 04:50
5c0b5e7

Added

  • Integral winglet: Winglet… in the Sections tab appends sections beyond the tip section as one undo step.
    • A circular blend arc tangent to the last panel turns the leading-edge line to the cant angle (−89 to 89°,
      positive = up, default 75°) in steps of at most 15°, one section per step; a straight part runs on to the winglet
      tip. Height along the line 5 to 100,000 mm; blend radius 0 to 100,000 mm, default 0.3 tip chords (0 gives a kink).
    • Leading-edge sweep (−60 to 80°, default 30°), tip chord (5 to 200 % of the wing tip chord, default 60 %) and toe
      (−15 to 15°, default 0°) change linearly along the line; the winglet tip airfoil is selectable.
    • Front-view preview with the number of sections and the position of the winglet tip. Example: the Sport preset
      with the defaults gets 6 sections, the winglet tip 117.7 mm above and 63.4 mm beyond the tip section.
    • Refused with a stated reason for a pointed tip, guide curves, section planes other than Mitred, Smooth
      interpolation, a blend arc not shorter than the height and a winglet panel narrower than 1 mm in y.
  • flow5 import: Open reads flow5 projects (.fl5, formats 500750 and 500754: flow5 7.50 to 7.57) and flow5 plane
    and wing files (.xml) and imports one wing in the import dialog.
    • The dialog lists every wing of the plane. Each imports with its roll (Rx_angle, as Part roll) and tilt
      (Ry_angle, as Part tilt) about the wing origin. A fin (one-sided wing) imports as the half flow5 builds,
      the left half of the part; a one-sided wing turned about z (Ry_angle ≠ 0) is not available.
    • A rolled two-sided wing turns as one body, as in flow5: the import sets Settings > Left half to
      Turned with the right half.
    • Airfoils of a .fl5 project are used with their coordinates (source.kind flow5); an XML file names the
      airfoils or .dat files next to it.
    • Tested with files that flow5 7.57 and 7.56 write: the right half of 8 imported wings, the left half of both
      rolled two-sided wings and both fins lie within 0.15 mm of the analysis mesh flow5 builds.
  • Settings > Left half: Mirror image of the turned right half (default) or Turned with the right half
    (whole wing, as flow5)
    . With a part roll, the turned left half rolls the other way than the mirror image. STEP,
    STL, 3MF, the 3D view and the span in Checks follow it. A project with the turned left half is saved as format
    version 4, which Wingdesigner 0.4.0 refuses; other projects stay version 3.
  • Export > Wing halves > Left half only writes the left half alone (STEP, STL, 3MF): for a one-sided flow5
    wing, the half flow5 builds.
  • Upload .dat files… in the import dialog takes several airfoil files at once and gives each airfoil name the
    file of that name.

Changed

  • The import dialog names the program of the file: Import from XFLR5 or Import from flow5, and the messages
    of the mapping name it too.
  • Open and the restore of the browser copy show a note for every project of format version 1, which may come
    from the XFLR5 import of that version: a tilt angle folded into its sections is exact with Vertical section
    planes only. With Mitred section planes Checks warns, also after the project is saved again.
  • Smooth spanwise interpolation is shape-preserving: per panel a cubic through the two section values with the
    slopes of the natural cubic spline, limited as by Fritsch and Carlson so that no value leaves the range of the two
    sections of its panel; the airfoil blends as mean line and thickness, and every panel is lofted on its own. Unevenly
    spaced sections build, such as an airfoil switch or a chord step between two sections 0.5 mm apart from the XFLR5
    import (the natural spline reached a chord of 6,018.68 mm between sections of 150 to 250 mm), without an overshoot
    error. Wings that built before move where the natural spline left the section values: on the wizard presets
    with Smooth by up to 0.56 mm, on Sailplane 2.55 mm and on Batwing 14.53 mm. The option reads
    Smooth (shape-preserving cubic through sections).

Fixed

  • STEP export of a closed, cusped trailing edge (zero thickness and wedge angle, as on the S1223): the chordwise fit
    takes secant end tangents to the first chord station, so that the upper surface stays above the lower one at the
    trailing edge. With free end tangents the surfaces crossed up to 0.046 mm from the trailing edge (1.2e-4 mm deep at
    240 mm chord), and OpenCascade's BRepCheck reported the end cap of one half as a self-intersecting wire. A closed
    trailing edge gives 2 more control points per station row.

Use: unzip wingdesigner-v0.5.0-site.zip and open index.html in the browser; it runs from the file without a web server (tested in Chromium). A static web server on the folder works as well, e.g. python3 -m http.server. LICENSES.txt holds the licenses of the app and of its bundled libraries.

Wingdesigner v0.4.0

Choose a tag to compare

@github-actions github-actions released this 01 Oct 19:55
3dd88cd

Added

  • Foam-cutting wizard (Foam in the top bar) for hot-wire cutting of the wing in segments.

    • Cuts: proposed at every section and at equal spacing no longer than Longest core (20 to 5000 mm, default 800 mm,
      measured along the dihedral), then moved, added or removed in the dialog; at least 5 mm apart, at most 200 segments
      per half.
    • Each core has parallel end faces square to its axis. Where it meets its neighbour, the root or the tip, the dialog
      lists the wedge to sand to the joint plane: angle, depth along the core and the surface where it is deepest. The
      joint plane is the section plane at a section, else the bisector of the two core axes.
    • Deviation of the straight-line core from the wing per segment. Split segments over the limit halves every
      segment of 10 mm or more above Deviation limit (0.01 to 10 mm, default 0.2 mm) until none is left or 200
      segments are reached. Example: the Sport preset (Linear between Mitred section planes of different
      roll; chord 240 to 144 mm with NACA 2412 to 2410, −1° twist) as one core from y = 0 to 600 mm deviates 0.341 mm,
      as two cores 0.085 mm.
    • Profiles (.dat, ZIP): per segment end a .dat file in mm in the block frame and one normalized to chord 1, with
      equal point counts (point i of both ends on one straight line of the core), segments.csv (cuts, core length,
      axis angle, block size, deviation, chord, leading-edge position, incidence and wedge per end) and README.txt.
    • 1:1 templates as one SVG (Scalable Vector Graphics) sheet, as DXF (Drawing Exchange Format) (AutoCAD R12, layers PROFILE, FRAME, MARKS and TEXT) and as PDF (Portable Document Format) on A4,
      A3 or Letter: a frame 10 mm around the block, the end profile offset by half of Kerf for templates (0 to 5 mm,
      default 0), 21 numbered marks at points of equal index on both ends, a 100 mm scale bar. The PDF keeps each
      template whole on one page where it fits and splits a wider or taller one into strips with 10 mm overlap and registration
      crosses.
    • The settings are kept in the browser; the cuts are not saved with the project. User Guide, section Foam cutting;
      Geometry, section 8; File Formats, section Foam-cutting files.
  • Rigid placement of the part: Settings > Part tilt (positive = leading edge up) and Part roll (positive =
    right tip up), −180 to 180°, with Undo. The half wing is built in its own frame and turned as a rigid body, first the
    roll about the x axis, then the tilt about the y axis, about the leading edge of the root section or, after an XFLR5
    import, about the wing origin. STL, 3MF, STEP, the 3D view and the key figures use the turned part; sections, the
    Planform tab and the foam-cutting wizard stay in the frame of the part. Key figures in the plane axes: MAC position
    and 25 % MAC turn with the part, the span is measured to the turned tip, so a roll shortens it. Geometry, section
    on the part placement.

  • Wizard planform Panels (table): the half span as 1 to 24 panels, each with span share, leading-edge sweep
    (−89.9 to 89.9°), outer chord (0 to 300 % of the root chord) and dihedral (−60 to 60°); a section at every panel end.
    Tip Elliptic (panels only): the last panel ends in a quarter ellipse of 6 sections about its straight 25 % line,
    pointed at the tip.

  • Wizard presets:

    • Sailplane: 3000 mm span, polyhedral 2°, 6° and 10°, elliptic tip, aspect ratio 16.75.
    • Delta jet: leading edge swept 54.9°, straight trailing edge, aspect ratio 1.88.
    • Double delta: strake swept 70°, outer delta 45°, straight trailing edge, aspect ratio 1.90.
    • Batwing: 12 panels after the planform of the Batwing of the 1989 film, ears ahead, scalloped trailing edge,
      rear spikes, aspect ratio 2.51.

Changed

  • Project format version 3, for the part tilt and roll. Wingdesigner 0.3.0 and earlier refuse a version 3 file.
    Version 1 and 2 files open with tilt and roll 0°, except a version 2 file of an XFLR5 import with a folded tilt,
    which gets that tilt as part tilt (see below).

  • XFLR5 import: the tilt angle of the wing becomes the part tilt about the wing origin instead of being folded into the
    sections, and tilted parts get Mitred section planes like untilted ones. On Fixture A (tilt 2°) the trailing
    edges lie within 0.001 mm of XFLR5's construction. Projects of earlier imports (format version 2 with a folded
    tilt) are converted on Open and on restore from browser storage, with a note; the part keeps its shape with
    Vertical section planes and takes XFLR5's shape with Mitred ones. A project with a guide curve that is on or
    edited, or with a twist that would leave ±360°, keeps the folded tilt and says why.

  • Full wing as one body merges the halves only without a part roll; with a roll the file holds two bodies.

  • Top bar: 8 buttons with Foam. At a window width of 460 px or less the buttons take 5 px of padding on each side
    instead of 8 px, at 402 px or less 3 px with 2 px gaps. The English top bar stays in 1 row at every width and
    scrolls sideways below 356 px (364 px in 0.3.0). The German top bar takes 2 rows up to 637 px (563 px in 0.3.0).

Use: unzip wingdesigner-v0.4.0-site.zip and open index.html in the browser; it runs from the file without a web server (tested in Chromium). A static web server on the folder works as well, e.g. python3 -m http.server. LICENSES.txt holds the licenses of the app and of its bundled libraries.

Wingdesigner v0.3.0

Choose a tag to compare

@github-actions github-actions released this 01 Oct 08:21
6580092

Changed

  • Wizard: Dihedral per half accepts −60 to 60° (−15 to 30° in 0.2.0), for V-tails and inverted
    V-tails. 60° is the steepest first panel that Mitred section planes build (stretch 2 at the
    vertical root). Every preset with both planforms, both tips and 2, 3, 5 or 8 sections builds at
    −60, −55, −45, −30, 30, 35, 45, 50, 55, 59.5 and 60°. A short, steep V-tail
    with many sections folds at its root and keeps Create design disabled with the build error:
    Tail surface at 100 mm span with 8 sections and 55°; from 200 mm span, 2 to 8 sections build up
    to 60°.
  • File Formats, section Differences from XFLR5: the distances to XFLR5's STL split into airfoil
    interpolation (largest part on 58 of 93 surfaces), construction (23: twist shear, vertical planes
    of tilted parts, chordwise stations) and flaps (12), each with its mechanism and size. The flap
    row names XFLR5's hinge-split chordwise points (2.41 and 2.62 mm) besides the deflection (1.61 and
    1.76 mm).

Fixed

  • XFLR5 import: every airfoil frame applies exactly. The leading edge of the fitted curve lies up
    to 1e-3 of the chord off the nose point of real files (32 of 64 airfoil entries); 0.2.0 dropped
    such offsets and put sections up to 0.30 mm off XFLR5's placement (NACA 4415, 391 mm chord).
    Offsets up to 1e-9 of the chord count as round-off. The import report names a move only above
    0.1 % of the chord. The report line says "scaled" only when its figures show a chord other than
    100 %. Against XFLR5's STL of 93 real surfaces, 19 lie closer (NACA 4415 0.094 mm
    instead of 0.325 mm, Clark YS 0.883 mm instead of 1.008 mm) and 32 lie 0.012 to 0.078 mm farther:
    the dropped offset had pointed against XFLR5's straight-segment sag or a construction difference
    (flat wings of Wing Design and Analysis.xfl 0.277 mm instead of 0.229 mm). On 284 generated
    untilted parts with cambered NACA sections, a built section lies at most 0.033 mm from XFLR5's
    placement instead of 0.151 mm.

Use: unzip wingdesigner-v0.3.0-site.zip and open index.html in the browser; it runs from the file without a web server (tested in Chromium). A static web server on the folder works as well, e.g. python3 -m http.server. LICENSES.txt holds the licenses of the app and of its bundled libraries.

Wingdesigner v0.2.0

Choose a tag to compare

@github-actions github-actions released this 30 Sep 21:14
3b9a67c

Added

  • Spanwise interpolation Straight panels (straight lines between sections, as XFLR5)
    (settings.spanwise "straight"): every point of a section joins the point of the same chord
    fraction of the next section in a straight line, as XFLR5 builds its panels. Stations lie at the
    sections only, and no stations are added. A guide curve on stops the build with a message.
  • Setting Section planes (settings.sectionPlanes): Mitred (square to the panels, as XFLR5),
    the default, or Vertical (y = const), the planes of 0.1.0. Mitred planes keep the root
    vertical, put a section between two panels in their bisector plane and the tip square to the last
    panel, and stretch each airfoil in thickness by 1/cos of the angle between its plane and the
    panel, as XFLR5 and flow5 do. The wing is as thick across every panel as its airfoil; vertical
    planes give cos δ (81.9 % on a 35° V-tail). A panel less than 1 mm wide in y counts as no panel:
    the sections at its ends share the bisector plane of the panels around it, as XFLR5 does for
    panels shorter than 0.1 mm. Linear panels between planes of different roll get the spanwise
    stations per panel and a cubic loft. Smooth builds vertical planes, with an info line in
    Checks. Meshes, STEP caps and the project JSON follow the rolled end planes; derived.stations[]
    carries roll and stretch.
  • Build errors of mitred planes: a stretch above 2 (60° between plane and panel; a plane that rounds
    to 60.0° builds, and the message gives the stretch to 3 decimals, 2.366 times for a first panel
    at 65°); with Straight panels, planes of neighbouring sections that meet within the airfoils;
    with Linear, planes that turn along a panel faster than its airfoils allow, at a section for
    both panels next to it; and planes of neighbouring stations that cross within the airfoils after
    the fit.
  • Section field panelAngle and the Sections column Panel angle (shown with Mitred and
    Linear or Straight panels): the angle of the panel to the next section that the mitred
    planes use for rolls and stretches, −89.9999 to 89.9999°. Empty: the dihedral from y and z, shown
    as auto 1.5. It stays when a section moves; + halfway along a panel copies it.
  • Export checkbox Fusion 360 fix: Y up (also SolidWorks) (STEP, STL, 3MF): writes every point
    (x, y, z) as (x, z, −y), so the upper surface faces +Y. CAD programs with Y as the up axis show a
    Z-up file on its side: Fusion 360 set to Y up showed the side of the wing in its top view. The
    checkbox starts as it was at the last export (browser storage, key wingdesigner.upAxis); the
    project JSON keeps the axes of the app.
  • Info lines in the Checks tab, after errors and warnings.

Changed

  • Project format version 2. A version 1 file opens with Vertical section planes, as designed; an
    app that reads version 1 only refuses a version 2 file. New projects, the wizard and the sample wing
    get Mitred: a preset with dihedral builds more stations (Sport, Trainer, Plank: 9 instead of 2;
    sample wing: 17 instead of 3). The Sport wing has 1.4 % less volume, because the loft follows the
    Linear blend exactly instead of a ruled surface 0.343 mm off it.
  • XFLR5 import: the project gets Straight panels instead of Linear, and an untilted part
    Mitred section planes. Where airfoil frames move the two sections of a panel differently, the
    section stores XFLR5's dihedral as panelAngle (difference above 0.001°), so the planes and
    stretches are XFLR5's. Two sections at one y (an airfoil switch, moved 0.5 mm apart) share one
    plane. A tilted part imports with Vertical section planes and stores its folded tilt
    (foldedTilt: angle, pivot x and z); a part whose mitred planes would fold or stretch an airfoil
    more than 2 times imports vertical too. The report names the section planes and the reason; a
    tilted part set to Mitred later gets a warning with the estimated distance from XFLR5's part.
    Against the STL that the code of XFLR5 6.62 writes (largest distance of an XFLR5 vertex from the
    built surface, first with Linear and Vertical, the settings of the 0.1.0 import, then as
    0.2.0 imports): UltraStick120.xfl main wing 4.17 and 0.04 mm,
    UltraStick25e.xfl main wing 2.00 and 0.03 mm, the 4 untilted 35° V-tails of
    initialAerodynamicSym.xfl 2.87 and 0.013 mm, the 40° V-tail of mini_talon.xfl 2.31 and
    0.025 mm; 80 of 93 real surfaces lie within 0.6 mm.
  • Settings: the option Linear between sections (straight panels) reads Linear between
    sections
    ; linear panels bend where the chord changes together with the airfoil or the twist.
  • The side panel is up to 650 px wide (600 px in 0.1.0), so the Sections table keeps its row buttons
    in view with the Panel angle column; the German headers Schränkung and Feldwinkel break
    at a soft hyphen.

Fixed

  • 3D view after a reload: the empty status bar was 17 px lower at start-up, so the first camera fit
    took a 3D view 17 px higher than the one that followed. A 3D view narrower than high (a desktop
    window with the 650 px side panel, or a narrow window) then showed the wing smaller after a reload
    than after New. The status bar keeps the height of one line from the start.
  • Airfoil check: a crossing of the first and the last outline segment does not count when their free
    ends lie at most 1e-4 of the chord apart (the limit of the check te-crossed). 19 UIUC
    files that start at x = 1.00000 and end at x = 1.00001 (sd7003.dat, sd8000.dat and others)
    and the aerodesign.de copies of s3021.dat and sd7080.dat load; the main wing of the XFLR5
    project Gertie.xfl (airfoil SD8000-089-88) imports.
  • XFLR5 import: .xfl projects of XFLR5 6.10.01 to 6.10.04 read. These versions write the index
    into the reserved blocks of wings and planes (0 to 19 and 0 to 49), which the reader refused as
    damage.
  • XFLR5 import: a library airfoil whose chord line is inclined more than 0.5° gets a warning with the
    angle and the trailing-edge offset at the largest chord of its sections, in place of the info line
    of the airfoil check. The Library Clark Y (2.00° nose up) picked for a level copy such as the UIUC
    CLARK Y AIRFOIL sits 2.00° more nose up than in XFLR5: 14.0 mm at the trailing edge of a 400 mm
    chord.

Use: unzip wingdesigner-v0.2.0-site.zip and open index.html in the browser; it runs from the file without a web server (tested in Chromium). A static web server on the folder works as well, e.g. python3 -m http.server. LICENSES.txt holds the licenses of the app and of its bundled libraries.

Wingdesigner v0.1.0

Choose a tag to compare

@github-actions github-actions released this 30 Sep 18:17
9faa12b