LEDAS Ltd


   LGS 2D

Release status
Features and benefits
Applications
At a glance
Technology
Catalogue

FlashLGS

Download
EAP

   DOWNLOAD

LGS 2D

LGS 2D Overview.pdf
Documentation

lgslegend2d20_oc62.exe
Ledas 2D Geometric Solver v2.0 with Lege'n'd 2D demonstration application based on OpenCascade 6.2 Technology









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

 


   CATALOGUE

Catalogue of models:

   CONTACT

Address:
avenue Lavrent'ev, 6,
Novosibirsk, 630 090,
Russia


phone: +7 383 335 65 04
fax: +7 383 335 62 56
e-mail:info@ledas.com

 

USA: Lyle Fisher


address:PO Box 412, New Ulm, MN 56073
e-mail:usa@ledas.com
phone:+1 507 794 5447

Israel: Michael Belman


e-mail:israel@ledas.com
phone:+972 2 676 12 24
phone:+972 547 659 599

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
     
  Copyright © 2002-2006 LEDAS Ltd