This is a bugfix release for 3.5. No changed features. Mainly fixes a bug with some dialog windows not or not cleanly closing with the OK button.
Use this instead of 3.5: http://download.savannah.nongnu.org/releases/pyformex/pyformex-3.5.1.tar.gz
Version 3.5 of pyFormex is available from the download area:
http://download.savannah.nongnu.org/releases/pyformex/pyformex-3.5.tar.gz
Here's a list of the most important additions, improvements and bug fixes in this release:
- pyformex command line has option --workdir to set the current working
directory at startup
- colors.py:
- Color class replaces most of the functions
- color lightness computes the perceived brightness of a color
- colorArray class for large sets of colors
- normalized color names, from three sources: pyformex, x11, xkcd(new)
- camera: restore the truck, pan, tilt functions, add new rotcam method.
Now all operations on real camera movements are (again) available.
The digital replacements are also kept.
- Dialog: add an option to suppress smart placement/sizing
- pyconsole: now supports searching in history
- warnings: clean up existing messages, make clear distinction between
three warnig functions: utils.warn, pf.warning, pf.error
- scripts/apps: menus with a huge number of entries are automatically
split over multiple submenus
- timer module is renamed to timing, with classes Timing and Timings
- new gui.timer module has a Timer class based on QTimer
- new application FileDedup: find duplicate files in the file system
- interactive picking now allows picking from single or multiple actors
- implement multiple wire modes: none, all, feature, border
- improved or new examples: ColorPick, CameraMoves, Lightness, ColorRGBA,
Pickable, FontForge
- pf.debug and pf.verbose functions are deprecated
- add desktop integration on install
- a lot of bug fixes, of which these are prominent:
- arraytools: fix the import of the accelerated nodalsum function
- TriSurface.featureEdges now includes the border edges
- the draw2d plugin now works
- drawing with 4-component color works again
- pass all keyword parameters from FileDialog to Dialog
- some opengl bugs and some printing with f-strings
- wire mode button now works correctly and provides more modes
Highlights of this release:
- Improved installation procedure with more options: system-wide or user install, multiple version or single version.
- Improved Timer class for easy timing of operations
This is now the only version that will be further supported. All users are recommended to upgrade to this version.
More details in the ReleaseNotes file.
Download from http://download.savannah.nongnu.org/releases/pyformex/pyformex-3.4.tar.gz
pyFormex 3.3 comes with a whole bunch of improvements and new functionality:
- NEW PyConsole, combining the message board and console in one,
gives access to full pyFormex machinery, keeps history of
entered commands, allows autocompletion, colored output, easy
indent
- GUI improvements:
- gui.draw.frontview: easily selects screen setup with y or z
axis upwards
- gui.draw.TempPalette allows temporary switching to nondefault
palette
- linking scenes in multiple viewports (illustrated in FourView
example)
- Camera locking can be done separately for direction and
zooming
- Camera.coordsys returns a CoordSys aligned along camera axes
- Image save allows saving a rectanglular area from the viewport
- NEW picking tool (operating with off-screen rendering) allows
to pick only items in front of the rendering. The old picking
tool (only seeing disconnected points) is also retained, but
the new one is made the default.
Picking functionality has been greatly improved and simplified
and allow for easy continuous picking modes.
- New Pick and Query button menus in the toolbar allow faster
access
- New LABELing functionality in tools.py: classes Label, Labels
and functions lablePoints, labelPoints2D allow to interactively
add/edit/remove labels to existing points or newly created
points on a surface or a plane. These new tools even replace
the query 2D functions.
- mergedSurface creates a single merged surface from all current
actors.
- Tools menu has been completely revised and provides interactive
configuring of the labeling/querying tools.
- nurbs.py: new interpolation curves and curve fitting functions,
- cubicInterpolate: local interpolation strategy of degree 3.
- quadraticInterpolate: local interpolation strategy of degree
3.
- cubicSpline: traditional cubic spline with end tangents
- globalInterpolationCurve: global interpolation strategy with
or without tangents at all points or ends
- lsqCurve fits an approximate curve to data points
- optLsqCurve: fits an approximate curve to data points with
required accuracy
- NurbsCurve: can be called as a function and returns the
point(s) at the provided parameter(s); projectPoint also
returns the distance to the foot point; new projectPoints,
distancePoints (convenience to project multiple points)
- Coords: new spiral transform to create spirals and helices, new
dimensions method to get overall shape of the point cloud
- Mesh, Formex: report methods now work similar
- simple.py: grid1 creates a regular 1D grid of points
- arraytools.py: new quadraticEquation function returns both
roots and type
- configurable defaults for precision in float array outputs
- pyformex command line: allow some Python interpreter options to
be passed
- importing the lazy module is deprecated. The new core.py module
is recommended to import everything.
- removed dependency on Python distutils
- AND a really long list of bug fixes and minor improvements
pyFormex 3.2 is available from the Download section.
An overview of the changes:
- curve.py: major cleanup and improvements, moved to core pyformex directory;
improved printing of all Curve classes;
PolyLine: is now subclassed from BezierSpline; new method extend;
improved avgDirections;
BezierSpline: much improved interpolation; 2nd degree planar curves are
now smooth; new methods points and part_points; improved sub_points,
sub_directions and sub_curvature;
CardinalSpline, CardinalSpline2, Arc3 removed; improved Arc;
new functions deCasteljau and splitBezier;
- Mesh: improved methods lengths, areas, length, area;
report now includes length and area when possible
- quad4 Mesh: add functionality to fix improperly defined elements
- coords.py: Coords: now has a rosette method (like Formex);
new function fpattern creates points like Formex 'l:...' string
- TextArray, drawMarks, drawNumbers allow drawing texts with multiple colors;
gravity can be specified in lower or upper case
- tools menu: new/improved functions createPoints, labelPoints, mergedSurface,
drawPointLabels
- path: new methods iterdir, readlines, writelines;
dirs() and files() return now Path strings;
improved methods scandir, list, dirnames, filenames, walk, listTree;
removed method allFiles
- Geometry menu: allows reading multiple files at once
- vtk_itf: add output of vtu type
- nurbs.py: some improved and new functionality, though this is work in
progress: expect more in next release
- arraytools.interleave: allow to interleave multiple arrays
- GUI: MessageBoard.write is improved
- library modules and their emulation are now also documented
- many other improvements and and a whole bunch of bug fixes
A new pyFormex release is available: 3.1
Some highlights of this release:
- New PZF file format to efficiently store almost anything. It is a ZIP file format, and thus can be handled with may other tools as well.
- plugins.http_server provides a local HttpServer and a showHtml function to display local files in a browser over the http
- improved reading of INP format files
- draw() allows drawing objects in a dict
- drawing a Camera object will set the camera accordingly
- new Polygons class to store polygons with variable plexitude
- new and improved functionality in arraytools and Varray
- drawNumbers has a fuse option to draw multiple values at same position
- utils.memoize decorator to automatically save computed values
- 'polygon' element type
- faster drawing of elements with plexitude > 3
- many minor improvements and bug fixes
This is a bugfix of the 3.0 release, fixing an annoying bug in Mesh.subdivide for Lagrange3D type elements and dependent (hex8, hex20, hex27). The bug only occurs when different subdivisions are specified along the axes.
pyFormex 3.0 is available for download.
This version marks some important steps:
- as of now only Python3.x is supported;
- a new installation procedure is used, allowing installation as normal user or as root and supporting parallel installation of multiple versions;
- minimal requirements Python 3.7, NumPy 1.16, PySide2 5.11, Sphinx 1.7;
- PyQt5 supported as alternative for PySide2;
- allow use of non-system Python versions;
- many improvements (a.o. to TriSurface, geomtools, multitask), new functions, bug fixes, tests
- improved documentation
More details in ReleaseNotes.
Enjoy.
We have just released pyFormex version 2.6.
The most important features of this release:
- new internal Trisurface remesh function based on pyacvd
- new TriSurface remesh function based on instant_meshes
- improved gambit NEU support
- process.Process class is replaced with process.run function
- gui.draw.runLongTask runs a background process without waiting and without blocking the GUI.
- new implementation of elements module. Most elements now support subdivision
- new nd improved support for many Mesh export/import formats
- revised Geometry, Mesh and Surface menus
- use setuptools instead of distutils in setup.py
- many functional improvements, bug fixes and documentation enhancements
A new release of pyFormex is available. It provides some important bug fixes, and the following improvements:
- improved Dialogs
- smart Dialog placement
- new customizable FileDialog class and subclasses
- draw supports colors with 4 components (RGBA)
- add interactive nongui console
- improved PLY file reader and writer
- export PLY files from geometry menu
- new arraytools functions: mapArray, resizeAxis, resizeArray
pyFormex 2.4 is available. It comes shortly after the 2.3 release,
because it fixes an important bug in the 2.2 and 2.3 releases that made the drawMarks and drawText functions fail. Rather than creating a bugfix release we opted for a new release, because it also includes some interesting new functionality:
- polygon splitting
- import of polygon models from .obj and .ply files, with automatic polygon splitting
- a customizable FileDialog
Users are urged to upgrade, as there will be no bugfix releases on the pre-2.4 releases.
pyFormex 2.3 is available from the downloads.
With this release all older versions become unsupported.
All users are urged to upgrade.
pyFormex 2.3 Releasenotes
=========================
- Some important bug fixes
- Improvements to widgets/dialogs
- Add a quality tri3 to quad4 remesher using 'Instant Meshes' external
pyFormex 2.2 is now available, with many improvements and bug fixes. See the ReleaseNotes file for more details. Most important are: improved widgets and dialogs, input validation on dialogs, improved image saving, improved video recording. Enjoy.
Version 2.1 of pyFormex is available. It contains an important number of bug fixes and improvements over the 2.0 version. See the file Releasenotes for more details.
Installation and testing of this version has been succesfully performed on Debian 10.5, Ubuntu 18.04 and 20.04.
All users of the 2.0 or 2.0.1 version should upgrade to this version. No further bug fixes will be done on the 2.0 branch.
A new release of pyFormex is now available in the Download section.
The new version number is 2.0. This doesn't mean that the functionality is drastically different from the previous release 1.0.7. We have increased the major version number, because as of this release we do no longer support Python2.x. From now on pyFormex will be Python3 only. And this means that the requirements have changed, and some users will have to install some new sets of dependencies to run this (and later) versions of pyFormex.
There are of course a whole lot of improvements and bug fixes included in this release, so you won't be updating the requirements for nothing.
Soon a new install manual will be made available to help you.
pyFormex 1.0.7 has just been released.
This release is of a special significance for a couple of reasons:
- this month, it is exactly 15 years ago that I started pyFormex,
- this is probably the last release of pyFormex with support for Python2.7. The Python3 version is now stable and the prefered one.
There is a lot of new and improved stuff in this release, like
- anti-aliasing,
- font textures stored in image files ( so you do not depend on available fonts
- using PIL for handling images,
- a Path class for all file/directory handling
- revised (cleaner and saner) implementation of some base classes
And a whole bunch of other improvements and bug fixes.
Enjoy!
pyFormex 1.0.6 has been made available for download.
The most important things in the new release are:
- a new file format for storing geometry and anything else (like camera settings, canvas layout, even code). The new file is a universal format (actually a ZIP file) and allows even adding, deleting or editing objects.
- the Python3 version is now ready for use. The Python2 version will no longer be supported after Jan 1, 2020. Both versions can be installed together from the same codebase. An option -2|-3 specifies which version to run. Example: pyformex -2.
The default is Python2 version, but an environment variable
PYFORMEX_PYTHON=3 will make Python3 the default.
See more change info in file Releasenotes.
It has been some time since the last official release of pyFormex and since the 1.0 series was announced, but finally, here is the new pyFormex 1.0.5 release.
Regular users know that there have been a lot of alpha releases over the past years: I just never had enough time to make an official release. Now the whole community can enjoy the new version.
This is the first official release of the pyFormex 1.0 series.
There is no changelog compared to the 0.9.x release, because the changes are really too important and too numerous to be listed.
The good news is that most of the pyFormex data models and scripting language have remained the same. Where functions changed in a way that could surprise the user, a warning hass been added. Conversion of your scripts from a 0.9.x version should therefore no be too difficult.
For more information, see the docs and the source.
It has been a while since 0.9.1 was released, but pyFormex development has not stalled since then. And thus we are announcing here the soon to be released 1.0.x version, with lots (really: lots) of changes: new things, enhancements, improvements and bug fixes.
Some of the most outstanding new features:
- a fully new rendering engine, allowing interactive changes to the rendering,
- NURBS curves and surfaces,
- more features in the VTK and VMTK interfaces.
Note that the version 1.0 does not mean that we have reached a stable final product. Instead it marks the beginning of the new product line with the new rendering engine.
While there is still some work to be done before the first 1.0.x official release will be made, you can already enjoy the new version by running it directly from a clone the source repository, or use one of the alpha releases available at
ftp://bumps.ugent.be/pub/pyformex/
Meanwhile the website has already been adapted to allow documentation and installation instructions for different versions. Indeed, the 0.9 documentation will be kept online for quite some time. At the same time we already provide (preliminary) docs for the upcoming 1.0 release.
pyFormex 0.9.1 is available for download from
http://download.savannah.gnu.org/releases/pyformex/
While there are no predominant new features in this release, there are lots of new functions in the core, adding to the already wide applicability of pyFormex.
See file ReleaseNotes for more details.
New Debian packages will be available soon in our local repository http://bumps.ugent.be/repos. See the install manual for how to use it.
Getting the packages into the official Debian repositories may take a little longer ;)