FairCurveModeler
Описание
FaiCurveModeler app (ZWCAD, BricsCAD, AutoCAD) for geometric modeling of products with functional curves and surfaces.
The application is implemented based on the innovative FaiCurveModeler section of the C3D geometric kernel. The application implements all the functionality of the C3D©FairCurveModeler section. And in this sense, he is a fullfledged representative of it.
The FaiCurveModeler application is designed for geometric modeling of products with functional curves and surfaces. The geometric parameters of functional surfaces are decisive for the functional characteristics of the designed object as a whole. The use of C3D©FairCurveModeler methods allows you to obtain curves of the highest quality (class F): high order of smoothness (up to 9th order), with a minimum number of curvature extrema, with a smooth change in curvature with limited variation and with a limitation on the rate of change, with a smooth torsion of spatial curve.
First of all, applications of FairCurveModeler is offered for users of specialized CADsystems which program developers declare their ability to model curves and surfaces of high quality. These users really need the features of modeling curves and surfaces of high quality. And such functionality, but provides a better quality of curves and surfaces, they will find in the application FairCurveModeler (see curves comparison FairCurveModeler vs NX and 'Alias Design Studio') and
(see comparison of surfaces FairCurveModeler vs NX, Rhinoceros 3D and Alias Design Studio)
The second group of users who need webapplication FairCurveModeler,  are users who manage in the design of the standard mechanical engineering CADsystems, but who wish to improve consumer properties of a designed product with geometric shapes of high quality in terms of functionality and aesthetics
(see the examples of analyzis and of improving primitive _Helix in ZWCAD).
The third group  users of graphics packages (for example, Corel Draw) and animation programs (for example, 3D MAX Studio)  designers, artists, webdesigners, gamers, animators, who need to draw a just beautiful curve, beautiful surfaces using friendly and intuitive, precise types of geometric descriptors
(see the examples of modeling and editing curves in the application)
The geometry of various products is formed by functional curves and surfaces:
1) the profile of an airplane wing / the profile of a turbine blade creates lift. When modeling an airfoil curve, it is necessary to maximize lift while minimizing drag. The proposed modeling techniques based on the Abbott method, but using class F curves, can significantly improve the aerodynamic characteristics of standard TsAGI, NACA profiles and profiles of turbine and compressor blades.
Comparative testing of the original airfoils and the improved airfoils in the FlowVision system shows a significant increase in aerodynamic efficiency of the improved airfoils.
2) the road route must provide a comfortable, safe ride on the vehicle, therefore it is necessary to achieve maximum smoothness of the route under given restrictions. The unique functions of C3D FairCurveModeler for constructing curves on a tangent polyline allow you to design a road route defined by a polyline of theodolite traverses with high quality smoothness and minimizing the length of the route and its potential energy
3) the cam profile determines the movement of the pusher with the valve to ensure the necessary gas distribution law, therefore, when designing it, it is recommended to achieve shockfree smooth movement of the valve. The proposed modeling techniques in the application allow you to achieve 9th order smoothness! integral curve with exact arcs of circles of the upper and lower “stand”.
The transition section between the sections of the stand in the form of a NURBzS curve of the 8th degree. Provides 7th order of smoothness
4) among the functional curves, a subclass of engineering analytical curves can be distinguished, which provide the design characteristics of the object in the only optimal way. Such curves, for example, include the Archimedes spiral, used to construct the profile of the teeth of a gear, as well as the brachistochrone, the steepest descent curve for transporting objects. A catenary line, used to model the surface of a dome or suspended structure, and a clothoid, used to design superelevation sections with a linear change in centrifugal force starting from zero, are also examples of engineering analysis curves. The proposed approximation techniques in the application make it possible to approximate analytical curves isogeometrically (while preserving the shape and basic properties).
An 8th degree Bspline curve approximates the points of the _Helix AutoCAD primitive. Ideal curvature plot and evolute of a Bspline curve (shown in red). The evolute of the standard _Helix AutoCAD primitive is shown in blue color.
5) in industrial design/engineering problems, the construction of curves with monotonic curvature is often required. In addition to commands for approximating fixed analytical curves in the application allows you to use three additional commands for constructing aesthetic curves:
 the initial section of the clothoid with specifying the length and final curvature;
 Maclaurin Sectrix  a section of a curve with monotonic curvature, defined by an osculating triangle;
 site of a Bspline curve with monotonic curvature by generating the vertices of an open Spolygon with a given link elongation factor and a fixed angle between links.
Section of a 4th degree Bspline curve with monotonic curvature (elongation factor 2, angle 90 degrees).
Replacing a parabolashaped guide curve in the standard plow design with a clothoid section with the same macroparameters allowed us to obtain an amazing result: the quality of plowing increased and the energy intensity of processing decreased.
6) in reverse engineering, the problem of approximating a curve defined by an array of “noisy” points arises. Precise interpolation results in a curve with oscillation of curvature. The FairCurveModeler commands for constructing smoothing curves solve this problem.
Before and after smoothing.
7) the application implements commands for constructing Bspline surfaces. A framekinematic method for representing a Bspline surface of arbitrary format has been developed. The construction of a framekinematic Bspline surface is divided into 2 stages:
The first stage is the construction of generating Bspline curves of class F.
The second stage is the construction of directing Bspline curves of class F on the columns of the network of Spolygons of forming curves.
The Spolygon frame of the Bspline guide curves forms the Sframe of the Bspline surface.
8) using the option of constructing generators and guides of surface along a tangent allows you to construct surfaces tangent to the original polyhedron from a network of points. This can be useful when freely designing industrial design products. In this case, it is as if an array of material is given and, in order to obtain a masterpiece, in the words of Michelangelo, “everything unnecessary is removed.”
Construction of a surface on a reference network and on a tangent network.
9) the external body surface of a car, architectural curvilinear forms of a building, forms of industrial design products can be classified as functional surfaces, if aesthetics and beauty are considered as a design characteristic of a product, which determines its consumer properties. The absence of oscillation of isoparametric surface curves is extremely important. The presence of oscillating isoparametric curves leads to the effect of “curved mirrors”. The proposed modeling techniques in the application allow us to eliminate oscillating isoparametric curves on the projection.
Before and after correction.
Using FairCurveModeler – is a simple, fast and cheap way to improve the quality of a product!
General Usage Instruction
Command V_Model this is the main command of the Application. The command creates smooth curves and surfaces. The command has a complex structure of bar menustyle options. The specific set of options depends on the selected object:
1) 3D polyline  used to edit and create a smooth Vcurve and approximate the created Vcurve through a rational Bezier spline (NURBzS) curve or Bcurve. A 3D polyline can be used as a reference polyline or tangent polyline, and can be used directly as Spolygons for a Bspline curve. A set of 3D polylines can be combined into a polygon mesh 3D Mesh to construct a Bsurface.
2) Hermite GD (Hermite Geometrical Determinant)  is represented as a '3D polyline' primitive. A 3D polyline passes base points, tangent vectors, curvature vectors in the following sequence: base point > end of tangent vector > return to base point > end of curvature vector > return to base point > move to next base point > ... Thus, a 3D polyline completely provides information about the parameters of the Hermite GD of the 2nd order of fixation. You can edit the Hermite GD using standard CAD tools, preserving the GD structure. You can directly construct a NURBzS curve on the Hermite GD of the 2nd order of fixation. You can directly construct a Bcurve on the Hermite GD of the 1st order of fixation. On the base polyline of the Hermite GD or on the tangent lines of the Hermite GD, you can construct Vcurves with approximation using NURBzScurves or Bcurves. GD parameters at end points and inflection points can be used when constructing a Vcurve. Methods for constructing a Vcurve also make it possible to fix the given directions of the Hermite GD tangents. Detailed .
3) NURBzS curve (created on a 3D polyline or on Ermita GD)  this is the standard form of spline representation in Autodesk® AutoCAD®.
4) NURBS curve (created directly by on a 3D polyline or by Hermite)  this is the standard form of spline representation in AutoCAD . NURBS curve can be edited using Spolygon with quality testing using curvature and evolute graphs.
5) 3D Mesh  the polygonal network is used:  to create generating smooth Vcurves on rows and approximation using Bspline curves, then to construct Bspline guide curves on the columns of 3D Mesh of Spolygons of generating Bspline curves. And on the frame of Bspline guide curves, create a Bspline surface (NURBS surface).
6) The Bcurveframework is used to construct Bspline guides. It is represented by a polygonal network composed of Spolygons of Bcurves. Bspline guide curves are cdeated on the columns of network of the 3D Spolygons to create a Bspline surface (NURBS surface).
7) The NURBS surfaceis created on the frame of guide Bcurves in the Application. You can check the quality of the surface, create parallel surfaces. To convert NURBS Application surfaces to AutoCAD primitives, you must convert Application surfaces geometrically accurately via IGS format to NURBS AutoCAD surfaces. You can edit a Bspline surface using an sframe with quality testing and editing the shape of an arbitrary isoparametric curve.
8) Two additional commands (V_Aesthetic, V_Hermite)are designed for modeling aesthetic and engineering curves based on analytical curves. When designing industrial design products and products with functional curves, curves with certain properties are often required: aesthetic curves with a monotonous change in curvature (clothoid and Maclaurin Sectrix), a chain line for modeling domes or hanging structures; line of steepest descent to synchronize the time of movement of particles under the influence of gravity from any point on the curve to the end point; the same clothoid with a linear change in curvature for tracing the road; etc. The Application allows the use of various analytical curves. Example.
The application does not allow you to test or edit spline polylines directly. Preconvert spline polylines to real NURBS curves: Command:_Spline > Object > Select spline polylines.
Команды
Значок  Команда  Описание команды 


Constructs high quality curves and surfaces based on smoothness criteria. 


Constructs sections of the clothoid, the Maclaurin sector, the “typical curve”. 


Constructs NURBS curves based on analytical curves specified by a table of coordinates of points, tangent vectors and curvature values. Preprepare a table of analytical curve parameters in MathCAD Laboratory work. Preparation of NURBS templates of analytical curves for CAD systems 
General construction process
A unified technology for sustainable highquality curve modeling consists of the following steps:
1. The stage of structuring the geometric determinant (GD) of a curve.
2. Stage of constructing a curve on a wellstructured GO.
Stage of structuring the geometric determinant
1.1. Construction of a standard configuration of the GD of a curve.
1.2. Improving the structure of GD.
1.1. Construction of a standard configuration of the GD of a curve
KnowHow of system  creating the socalled virtual curve (Vcurve) on a base polyline or tangent polyline. The Vcurve has no analytical representation. But it belongs to the class of curves C5. It is the high quality of the Vcurve that ensures the construction of class F curves in the FairCurveModeler application.
Comparative testing shows the absolute advantage of methods for modeling curves and surfaces of class F in FairCurveModeler applications over methods for modeling curves and surfaces of class A in NX, AliasDesign, etc. (see modeling comparison curves and surfaces).
The good quality of any product is ensured by the good quality of the raw materials. This is a universal approach in production. Raw materials must meet certain standards.
This is also true when modeling high quality curves. To ensure stability of construction and guarantee the quality of the curve, the initial geometric data must meet a certain standard. This standard is described in the appendix by certain restrictions on the shape of the original polyline. These restrictions are simple, reasonable and obvious. They are based both on the general approach of geometers to modeling highquality curves, regardless of the specifics of the methods, and on the need to ensure the stability of the Vcurve construction algorithms in FairCurveModeler.
The restrictions are as follows:
1) angle between links > 90 degrees; 2) the ratio of adjacent segments Lmin/Lmax is greater than 1.0 / 20.0.; 3) three or more points on a straight line define a straight section of the curve; 4) absence of sawtooth sections; 5) deflection arrow (the ratio of the distance of the current point to a segment of adjacent points to the length of this segment) is greater than 0.01.
Restriction on the configuration of a polyline with inflection areas for a favorable distribution of curvature: the inflection area is formed either by a fixed inflection point (the inflection point must lie exactly on a segment of adjacent vertices of the broken line, dividing the broken line into sections of different shapes) or an expressive transition form (adjacent discrete curvatures of the opposite sign must have comparable values Kmin/Kmax greater than 1.0 / 4.0.).
For the GD type as tangent polyline there is an additional restriction: the polyline along the middles of the links of the polyline must also be of a regular shape.
Restrictions for spatial polyline:
1) A flat development of a polyline (a polyline laid on a plane while maintaining the lengths of the links and angles between the links) must be of a regular shape;
2) The angles between the planes defined by adjacent triangles at the vertices of the polyline must be less than 45 degrees.
Limitations when smoothing:
1) A polyline at even points and a polyline at odd points are regular polylines.
2) The shape of the polyline must uniquely determine the shape of the curve.
3) There should be no consecutive matching points.
For the GD type as tangent polyline there is an additional restriction: the polyline along the middles of the links of the polyline must also be of a regular shape.
If this standard is observed, we will call a polyline as a polyline of regular shape (or simply a regular polyline).
1.2. Improving the structure of GD
The standard structure of the GD of a curve can be improved. The improvement improves the quality of the curve and, as a result, improves the quality of the product geometry.
Improvement tools:
 smoothing the GD of a curve;
 harmonization of the GO of a curve;
 generation of vertices of a typical polyline;
 reparameterization of the curve with the construction of GO;
 transition to the universal Hermite GD and improving the quality of the curve by managing Hermite GD elements and various construction options.
When editing a GD with improvement tools, the quality of the curve built on the edited GD is checked.
Curve quality analysis parameters:
 order of smoothness;
 smoothness of curvature;
 number of extrema of curvature;
 variations of curvature;
 rate of change of curvature;
 potential energy of the curve.
The stage of structuring the GO according to the standard and improving the GD with harmonization, smoothing, and fine editing of the Ermite GD is the most important stage in the process.
The harmonize option is especially useful when approximating a Vcurve with a Bcurve. The effectiveness of this option can be easily checked on a polyline with a circle without harmonization and with harmonization. This uses Bspline curves on a UNIFORM GRID.
Without tricks for selecting a vector of nodes in accordance with the lengths of the polyline links, as is common in other CAD systems.
A uniform knot vector is important for matching the Bcurve framework when constructing a Bsurface.
2. Stage  constructing a curve on a wellstructured GD
Vcurve approximation options:
 construction of a Vcurve and approximation using a rational Bezier spline curve (NURBzS curve);
 construction of a Vcurve and approximation using a Bcurve of high even degree 6/8/10.
Installation/Removal
Unzip to C:/ with the option "to current folder"
FairCurveModeler.zip
Two folders should appear:
c:/FairCurveModeler
c:/FairCurveModeler_TEMP
Run c:/FairCurveModeler/Exec/WebFairCurveExe.exe as administrator.
Confirm your registration in the registry.
Launch ZWCAD / BricsCAD / AutoCAD.
Load ZWCAD / BricsCAD / AutoCAD applications from the folder
c:/FairCurveModeler/Lisp/
LISP_C3DFCModeler_Com.lsp
s_init_zwcad.lsp
Create a new drawing.
Use the scripts in the Scripts folder to
1) checking the functionality of the application;
2) for training.
Calling help information in the CAD system:
V_Help_Ru
Calling references from folders
c:/FairCurveModeler/Help_RU/Help_Ru.html
Start executing commands yourself.
Deleting an application
Run as administrator
c:/FairCurveModeler/Exec/v_unreg.bat
Delete folders
c:/FairCurveModeler
c:/FairCurveModeler_TEMP