|
|
 |
Current version is LGS 2D 2.0
The LEDAS Company opens new direction of geometric solvers development with release LGS 2D 2.0.
The main new feature of the recently released version 2.0 is its capability to deal with discrete entities in a geometric model. The difference between real-life engineering and pure math problems is that real designs often contain parts and elements of standardized sizes or sets of predefined mechanisms configurations and models. Describing these problems with the help of continuous entities, has always been a drawback of geometric modeling.
Now any licensee of LGS 2D 2.0 has capability to specify the table constraint which lists all possible combinations of values of different variables in the model and ensures that LGS 2D selects one of these configurations during computations, providing a user with a solution consistent from engineer point of view. In order to limit a particular variable by a set of all possible values, one can use more simple enumeration feature.
Besides, the success rate and naturality of LGS solutions has been increased. A number of bugs, including the lack of unfixed parameter support for Vertical and Horizontal Distance constraints, are fixed.
Summary of changes in LGS 2D 2.0
New
- New functionality of table constraints and enumerations was added. It
allows setting discrete (finite) domain for the values of a parameter or a parameters vector.
Fixed
- Supported the variable parameter for Vertical and Horizontal Distance
- Improved solver stability on the models with zero distances
- MUC behavior on the models with midpoint constraints was enhanced
- Bug arising during optimization of a fixed variable was fixed
Summary of changes in LGS 2D 1.5
New
- New functionality of goal variable optimization was added. It allows the user to maximize or minimize a goal variable taking into account all existing constraints in a variational model.
- The performance of LGS 2D was significantly improved - version 1.5 is more than twice as fast as previous version 1.4.
- The naturality and performance of dynamic move under constraints was significantly improved after implementation and tuning of the heuristic technique initiated by feedback from customers.
- Output transformations for changed objects were provided in order to simplify the integration of LGS 2D 1.5 into different geometric modeling engines
- The Lege'n'd demo application was updated to support the new functionality of LGS2D 1.5. The "Optimize variable" action is accessible through the "Solver" menu
Fixed
- Several minor bugs were fixed in dynamic move under constraints and automated constraining functionalities
- Corrected validation of white-box equations
- Several crashes caused by applying LGS 2D API functions in incorrect order were fixed
Summary of changes in LGS 2D 1.4
New
-
Automated constraining functionality was added to LGS 2D. It allows automated
creating of naturally constrained parametrical models from unconstrained or
partially constrained ones. Host application is able to specify types of
constraints to be used upon automated constraining. The priorities of
the constraints are used in order to obtain the most natural parametrization of the
model. Application can specify its own priorities or use finely tuned
built-in priorities of the LGS 2D
-
Full support of distance constraints for ellipses and user-defined
curves including support for a specification of help parameters
was introduced
-
Support for a new functionality of LGS 2D 1.4 was added to the Lege'n'd demo
application. One can perform automated constraining simply by pressing a
button on the main toolbar. Distance constraints for ellipses and curves are
created in the same way as all other constraints, e.g. via "Quick constraints"
panel
Fixed
-
Computational methods were tuned to be more reliable on the models of
different scales
-
Several cases of an erroneously reported inconsistency were fixed
Summary of changes in LGS 1.3
New
-
Degrees of freedom diagnostics for objects was added. It allows user to
determine which parts of a model are fixed due to constraints and which parts
have degrees of freedom left
-
Support for inequalities was added. It extends the support for variables and
equations appeared in 1.2 version. Now it is possible to define admissible
domains for variables as well as for their algebraic or black-box combinations
-
The Lege'n'd demo application was updated to support new functionality of LGS2D 1.3.
Parts of a model which are fixed due to constraints are emphasized by blue color
(this coloring mode can be turned on via View/Shapes Color/Degrees Of Freedom)
Inequalities can be created
Changed
-
Way of indexing of help-points associated with constraint was changed
Fixed
-
Several errors in the "move under constraints" functionality and the
over-constrained diagnostics were fixed
-
Several cases of unnatural or unstable behavior were fixed
Summary of changes in LGS 1.2
New
- Full support for variables and equations was introduced in LGS.
Variables can be used as parameters of geometrical constraints. Equations are
expressed in an explicit form (via mathematical notation) or as black-boxes
evaluated by an application
- New mechanism of black-box (application-defined) geometrical constraints
was added. In order to introduce a constraint of a new type, application
must provide a mechanism to calculate the constraint's descrepancy within
a given configuration of its arguments.
- Move under constraints functionality was improved in order to gain much performance
and behavior predictability
- Restriction on presence of cyclic constraints in models with splines
(dependent curves) was removed. In the current version a wider class of models with splines
can be solved.
- Implementation of new numerical methods allows to boost performance efficiency by two
or even more times on our test base
- The Lege'n'd test application was updated. In this version the user can
create polylines and impose polyline length constraint. Moreover the support for variables
and algebraic constraints was implemented. User interface was improved as well.
Changed
- Semantics of the distance constraint for circles was modified.
In the current version only positive values are used; a way of distance measurement is
specified by help points. Several new functions concerning help points
management were introduced
- Method of recalculation of application-defined splines was changed. Now
LGS2D passes coordinates of control objects to the callback function
directly
Fixed
- Several floating-point exceptions which occurred in the version 1.1 were fixed
- Few errors which caused crashes of the Lege'n'd application were fixed
Summary of changes in LGS 1.1
New
- The "move under constraints" feature was implemented. This feature enables
the user to modify some parts of a geometric model by simply dragging them
to a new position. Two new functions LGSMoveObjects, LGSRotateObjects
were added to LGS API.
- Methods of overdefined diagnostics were improved significantly. Now
LGS detects overdefinedness for all kinds of constraints including
equal distance and symmetry.
- A number or improvements were done for computational methods.
- For now Lege'n'd test application allows dragging of objects and
colors found overdefined constraints.
Changed
- Sequence of calls to callback function was changed, LGS 1.1 enquiries
coordinates of curve point and its derivatives one by one, instead of
array. If the application doesn't support this new style, LGS 1.1 will
pass an array to the callback function in 1.0 style format.
Fixed
- Bug with changing of angle parameter to zero value was fixed.
- Several bugs affecting naturalness of behavior were fixed.
- Internal constraints validation was corrected.
- Several bugs in Lege'n'd were fixed.
Summary of changes in LGS 1.0
New
- Function LGSGetVersion() was added.
- Help topics were added to Lege'n'd demo-application.
- Now demo-version is Lege'n'd statically linked with LGS library.
Changed
- Return codes of the function LGSApplyChanges() were changed,
an application should examine a state of the context in order to
analyze the result of calculations.
- Constant LGS_CONTEXT_STATE_CHANGED was removed. Zero
status code will be used if model in the context is changed.
- Constant LGS_STATE_UNKNOWN was removed. Objects accept zero
status upon creation.
- Constant LGS_STATE_SOLVED was renamed to LGS_STATE_SATISFIED.
- Functions LGSMoveObjects() and LGSRotateObjects() were removed.
- Fixation constraint for splines in Lege'n'd was reimplemented.
Fixed
- More precise calculation of an initial approximation for numerical
methods was implemented.
- Modification of point parameters is processed correctly when point belongs
to a rigid set.
- Distance and symmetry constraints are processed more correctly when
application changes positions of their arguments.
- Bad return codes of the callback are handled correctly now.
- Bug with multiple incidence constraints between points and
circles was fixed.
- Processing of verticality/horizontality constraints for ellipses and
user-defined curves was corrected.
Summary of changes in LGS 0.9b
New
-
Incidence constraint for pairs of lines and for pairs of circles is
supported now.
- Function LGSObjectModified was implemented to allow application to
notify LGS about changes of user-defined curve.
- Behavior of LGS can be affected by context options now. There are
options that allow the application to turn off partial solution mode
for overconstrained or inconsistent problems.
- Now the application is able to store its own data in the binary dump
of the LGS context. It allows restoring of application's structures
associated with LGS objects simultaneously with context restoring.
Changed
- API part concerned with callback functions was changed significantly.
Now LGS uses only one callback to interact with application.
- Semantics of distance constraint between circles was changed. Now distance constraint imposed for two circles implies
their concentricity.
- LGS doesn't choose an appropriate half-plane according to the objects
initial coordinates when satisfying angle constraint. Now angle is
measured from the first object to the second one and ranged from 0 to
2*Pi.
- Case of concentricity isn't treated as specific when distance between
point and circle is imposed.
- Vertical and horizontal distances for circles aren't supported any
more.
- Vertical (or horizontal) distance between points is signed now -- it's
measured from the first point to the second one according to the
direction of correspondent coordinate axis.
- Directions of lines aren't essential now for the symmetry constraint
for these lines.
Fixed
- Several errors with deletion of objects were fixed.
- Error with removing of one of multiple contexts was fixed.
- Several improvements were made to model recalculation after changing
parameters of objects.
- Storing of rigid sets in the binary dump was corrected.
- Vertical (or horizontal) distance for two points in the same rigid set
isn't ignored now.
- Interruption procedure is called now, so, the application is able to
stop calculations.
- Some formally well-defined but sub-definite configurations are solved
now.
- Incidence constraint for points that are included to the same rigid
set is processed correctly.
- LGS doesn't move circle or ellipse in order to satisfy tangency
constraint between them if they are already tangent.
Summary of changes in LGS 0.8b
New
- Support for partial solutions was implemented. When LGS is not
able to solve an overdefined/inconsistent problem, it tries
to satisfy only those constraints that are not included in the
overdefined/inconsistent area(s).
- Support for splines was implemented in Lege'n'd with
help of dependency constraint.
Changed
- Signature of the function LGSGetObjectParamValue was changed, now it
returns value of object parameter via pointer passed to the function.
- Constants used in the functions LGSGet/ModifyObjectParamValue were unified.
In order to get access to object parameters one should use the same
constants for object of any type. For example, to get a x-coordinate
of an object one should pass LGS_LOCATION_X to the
LGSGetObjectParamValue function.
- Return codes for LGSApplyChanges were changed. Now it returns LGS_OK
if solution is found and LGS_NOT_SOLVED otherwise.
- New constants for state of context were introduced. Use the function
LGSGetCurrentState in order to examine whether the problem is solved,
inconsistent, partially solved etc.
Fixed
- Several corrections were made to model calculation after modifying of
constraint's or geometrical object's parameter.
- Numerical methods were improved to work properly with positive variables
representing circles' and ellipses' radii.
- Tangency constraint for ellipse and user-defined curve work now.
- Bug with unpredictable modifying of circle's radius in case of no
additional constraints on the circle was fixed.
- Bug with symmetry constraint for lines in case when symmetry axis lies
in the rigid set of one of symmetric lines was fixed.
- Updating of help parameter for tangency or incidence constraint with
ellipse after calculation was corrected.
- Horizontal and vertical distance constraints for circles work
correctly in case of existent concentric constraint.
- More detailed version of sample example is included in LGS distributive.
Summary of changes in LGS 0.7b
New
-
Help parameters for incidence and tangency constraints are supported
now.
-
Dependency constraints for user-defined curves were implemented.
-
Support for angle constraints with ellipses and user-defined curves
was added.
-
New internal model simplification method was added.
-
Rigid sets creation is supported now in Legend.
-
Command "Allow drag elements" was implemented in Legend.
Changed
-
Additional attributes and parameters for incidence and tangency
constraints were added in order to manipulate help parameters.
-
Documentation was updated to reflect last changes to functionality.
Fixed
-
Implementation of fixation constraint was improved.
-
Detection for angular overconstrained problems with symmetric
constraints was improved.
-
A bug with changing line-line distance orientation for already parallel
lines was fixed.
-
Delete command processing was optimized in Legend.
-
Few memory leaks were fixed in Legend.
-
Multiple shapes dragging was implemented in Legend.
-
Selection synchronization between tree and 2DView was improved. Now
shapes can be added to a selection via ctrl-left mouse click in
2DView.
Summary of changes in LGS 0.6b
New
-
New computational and decomposition methods were implemented to improve performance of LGS.
-
Horizontality, verticality, angle with OX axis, horizontal and vertical distance are supported now in Lege'n'd.
Changed
-
Now rigid sets are presented as general geometrical objects of LGS API and
have unique descriptors inside an LGS context. It allows using general functions of
LGS API in order to create or destroy rigid sets. Also now only one function is used to
attach new objects (or rigid sets) to existing rigid set. The following functions has been
removed from LGS API due to their uselessness LGSRemoveRigidSet, LGSAddRigidSetsToRigidSet,
LGSRemoveRigidSetsFromRigidSet, instead of them one should use LGSRemoveObject,
LGSAddObjectsToRigidSet, LGSRemoveObjectsFromRigidSet correspondingly.
-
Semantics of directed line-line distance constraint was changed. Now distance is measured
from the first line to the second one according to the direction of normal vector of first line.
-
Header file "LGSCurveProcTypes.h" has been removed from distributive package, its contents
placed into "LGSPublicAPI.h". "LGSPublicAPI.h" is the only one header file needed to organize an
interface between an application program and LGS.
-
Documentation was updated to reflect last changes to functionality.
Fixed
-
Internal caching for objects' coordinates is used now to improve general performance of LGS.
-
Problem with distance constraints imposed for pair of incident points was removed.
-
Calculation of start-point for numerical methods was changed to minimize initial discrepancy.
-
Numerical methods were tuned up to improve their behavior on singular problems.
-
Redrawing of objects has been optimized in Lege'n'd.
Summary of changes in LGS 0.5.2b
New
- Detection of angular overdefined cases implemented. LGS marks
overdefined set of constraints with LGS_STATE_OVERDEFINED state code
and solves overdefined but consistent models.
- Support for rigid sets added. One can create rigid set via function
LGSCreateRigidSet passing to it a list of objects that will be
considered as rigid body. It is possible to add objects or rigid sets
to already existing rigid set.
- Horizontal and vertical distance constraints introduced. Use functions
LGSCreateHorizontalDistance and LGSCreateVerticalDistance in order to
create constraints of these types.
Changed
- Documentation updated to reflect last changes to functionality.
Fixed
- Now an appropriate quarter is selected for constraint of angle with OX
axis.
- More natural behavior achieved for models with symmetric lines and
distance constraints between circles and lines.
- Bug with equations of black-box type containing fixed parameter removed.
Summary of changes in LGS 0.5.1b
New
-
New status constants were introduced for constraints: LGS_STATE_SOLVED,
LGS_STATE_IGNORED. In order to get objects with desired properties
one can use bitwise combinations of status constants.
-
Quick constraints feature added to LEGE'n'D. It allows imposing constraint
of any kind simply by selecting its arguments from objects tree or directly
from sketch.
-
New modification of computational methods was implemented to achieve more
natural behavior on underconstrained problems.
Changed
-
LGSTest application renamed to LEGE'n'D.
-
Switched to OpenCascade 5
- Documentation updated to reflect last changes to functionality and
underlying core.
Fixed
-
Bug with symmetric constraint imposed for two circles removed.
-
More natural behavior on problems with ellipses and user-defined curves was
achieved by choose of appropriate start point for numerical methods.
Summary of changes in LGS 0.5b
New
- Support for user-defined curves added including incidence
and tangency constraints.
- New constraint Equal Radius is introduced to define that radii of two circles are
equal, constraint created by LGSCreateEqualRadius() call.
- LGSTest supports now parabolas and hyperbolas which
are examples of user-defined curves.
Changed
- Signatures of next LGS API functions were changed:
LGSCreateLine(), LGSCreateCircle(), LGSCreateRadius(),
LGSCreateMajorRadius(), LGSCreateMinorRadius(). See
chapters 6.4.4.5 and 6.4.4.6 of LGS Overview for
details
- LGS Overview document updated to reflect recent changes
to LGS API and contains description of user-defined
curves support.
Fixed
- Computational methods improved by performance
- Fixed memory leaks seen in LGS 0.4b
Summary of changes in LGS 0.4b
New
- Radius constraint introduced to fix circle radius,
constraint is created by LGSCreateRadius() call.
- Ellipse geometric object introduced with support of
all neccessery constraints;
- New constraints MajorRadius, MinorRadius are introduced
to fix ellipse radii, constraints are created by
LGSCreateMajorRadius() and LGSCreateMinorRadius() calls
respectively;
- New constraint Equal Distance is introduced to define that
distances withing 2 pairs of geometries are equal,
constraint created by LGSCreateEqualDistance() call.
- New constraint Middle Point is introduced to define that
point lays in the middle between 2 geometric objects,
constraint created by LGSCreateMidPoint() call.
- New constraint Symmetry is introduced to define that
two geometric objects are symmetric relative to given
line. constraint created by LGSCreateSymmetric() call.
- LGSSetObjectId()/LGSGetObjectId() calls added to API,
that allow saving some piece of user data (id) with
the geometric object. This will simplify LGS integration
in applications providing way to associate application's
internal objects with their LGS representation.
- LGSTest supports now ellipses and new types of constraints.
- Mouse drawing is now implemented in LGSTest. Process of sketch
creation and modification is significantly simplified.
- LGS Overview document now contain table summarizing
applicability constraints to object types. See chapter
4.1.3.
Changed
- Circles are now has variable radius, rigid parameter
in LGSCreateCircle() is removed, use Radius constraint
(LGSCreateRadius()) instead.
- Internal architecture changed significantly to support
arbitrary algebraic relations. This already allowed
implemetation of variable-radius circles, ellipses
and various constraints and allow implementing curves
in next pre-release of LGS.
- LGS Overview document updated to reflect recent changes
to LGS API.
Fixed
- Computational methods improved by memory usage and by performace
- Fixed all memory leaks seen in LGS 0.3b
- Cluster types detection improved
|
|
 |
|

|
Address: avenue Lavrent'ev, 6, Novosibirsk, 630 090, Russia
USA: Lyle Fisher
| address: | PO Box 412, New Ulm, MN 56073 |
| e-mail: | usa@ledas.com |
| phone: | +1 507 794 5447 |
Israel: Michael Belman
Belgium: Tomasz Luniewski
| address: | Research Park Haasrode, Technologielaan 3, 3001 Leuven, Belgium |
| e-mail: | belgium@ledas.com |
| phone: | +32 16 40 27 47 |
| fax: | +32 16 40 32 71 |
|
|