A few modeling features, bunches of usability tweaks, some tiny performance improvements, and an equal dose of bug fixes. Something for everyone here, enjoy an update.
I generally get (very limited) positive feedback from these release notes. Would you prefer something more concise — or more detailed? Perhaps you love mystery and would rather read the source to find what has changed. Let me know on social media or come to the Google Group to discuss your preference.
The most user-visible changes in 3.27.0 are some new modeling capabilities.
You’re most likely to use Edit Curve corner rounding. Cubic Bezier and Linear Edit Curves can now apply corner rounding to any sharp corners in the curve. Simply specify the radius and the corner will be replaced with a circular rounded corner. This reduces the number of parameters needed to represent many shapes — while improving shape precision and making control much easier. This seems like a small change, but will have big impact for those who make use of it.
OpenVSP bodies (Stack, Fuselage) have traditionally been made from 2D curves placed in 3D space and then skinned or lofted to form a surface. Have you ever wondered what you could do if the curves were 3D? There are now two ways to do so.
First, 3D Edit Curves. In the curve editor, you now have freedom to control the out-of-plane dimension of curves too. You can also change the view perspective to work with the curves from top and side views.
3D Edit Curves are extremely powerful — but my experience shows they should be used sparingly. If you don’t _need_ them, don’t use them.
They are most effective when a body doubles back on itself — like the lip of an inlet.
I have a feeling that there are going to be tons of new user questions on this feature where the answer is “don’t use it”.
The second way to achieve 3D curves is with the new Chevron capability. Chevrons allow a wave-like perturbation to be applied to any curve type. A short description does not do this feature justice. It allows easy parametric generation of extremely complex shapes.
Most of the rest of the changes are less obvious.
The chevron work and edit curve corner rounding led to another round of improvements to the corner rounding work — you may notice that rounded rectangle corner rounding limits have been relaxed.
The Measure tool can now be constrained to construct axis-aligned rulers. Mike R. will enjoy this.
The Bezier surface intersection algorithms have seen several improvements. These should improve quality and robustness of CFDMesh, FEAMesh, and intersected STEP/IGES exports. Thanks to William C. for the help finding some of these problems and to AJ for providing a test case that found some problems with the fixes.
A small step to improve our testing framework has been taken. Tests written in AngelScript and Python can now be added to a centralized testing framework. This seems simple and obvious — but was quite complex to achieve. Hopefully next time there will be a host of tests added because of this.
View clipping Parms are now linkable and discoverable. Precision has been added to the parameter linking GUI and to any files written by ResultsMgr. Thanks to Andy H. for pushing for those.
I was convinced by Jeff V. that our transformations for wing dihedral and twist were applied in the wrong order. This has been fixed. Unfortunately, this will result in a slightly different shape for identical inputs. I don’t like to make changes like this, but it is the right way to go.
Rotate foils to make dihedral is now a per-XSec variable along with a global setting. There is also now an option to correct airfoil thickness for airfoil rotation due to dihedral.
Advanced link editing and broken link behavior has been generally improved thanks to input from AJ.
The Edit Curve control point browser now resizes thanks to Anwarmou. They also contributed a handful of code cleanups and bug fixes. Thanks much.
Irian O. found some problems with v2 import while doing an archaeological dig through ancient supersonic VSP files.
Another large round of source code typo fixes by Luz Paz.
The vspaero viewer save movie path problem should be fixed — hopefully I didn’t make it worse. Testing appreciated (particularly on Windows).
Plenty of other bugs were fixed too.
No changes to the VSPAERO solver in this drop. I expect the next release will be heavy on VSPAERO updates.
- Edit Curve corner rounding
- 3D Edit Curves
- Improvements to corner rounding
- Ruler measure single-component mode
- Numerous improvements to surface intersection calculations
- Set up unit test framework based on AngelScript scripts
- Set up unit test framework based on Python API
- Make view clipping Parms visible for linking and discovery
- Increase output precision of ResultsMgr CSV files
- Increase displayed precision in simple parameter linking
- Rotate foils to match dihedral is now a per-xsec option
- Add option to scale airfoils to correct for dihedral thinning
- Add pop-up warning when a link becomes invalid
- Mark advanced link as red when invalid
- Protect for duplicate Var names in AdvLink when drag-n-drop creating
- Populate var browser when variable selected in Advanced Link
- Pass script return value to command line in batch mode
- Make control point list resizable – Anwarmou
- Scale of FileFuse XSecs when importing v2 file
- Fix sign of wing twist on v2 import
- Feature line DO pre-allocation performance bug
- Make VSPAERO GUI automatic time stepping calc match VSPAERO
- Correct order of dihedral and twist transformations
- Fix treatment of propellers by parasite drag tool
- Make XSec Cut behave as expected with Linking
- Do better job showing group edit screen
- Cache hyperbolic tangent stretching calcs — insignificant speedup
- Fix spelling error in VSPAERO GUI – Brandon L.
- Add GetVSPVersion() to C++ API – was in AngelScript – Jason W.
- Fix lots of typos – Luz Paz
- Fix botched assert – Acxz
- Handful of bug fixes & source cleanups – Anwarmou
- Drop comma from Selig airfoil export – Anwarmou
- Fix propeller cylinder projection problem
- Fix VSPAERO viewer save movie path name issue