View Issue Details

IDProjectCategoryView StatusLast Update
0001223GCSBugpublic2018-04-27 22:59
Reportercejka Assigned Tochrisb  
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionfixed 
Product Version0.13 
Summary0001223: Dimensional constraint - Unknown C++ exception (LevenbergMarquardt)
DescriptionI tried to do some 2mm thick plate with pockets. So I did plate borders as one sketch and pocket as another sketch and create pad from it. Because I want to place cca 40 pockets (for milling) onto that plate and I did not find any tool in the sketcher to place multiple occurence of the same sketch I just create one sketch for pocket and do Edit->Duplicate selection and change dimensional constraint for every copy of pockets to be 10mm next to the previous copy. But when I tried to change dimensional constraint of twentieth pocket (want to change constraint 215 to 225mm) i get a dialog window with the title: "Dimensional constraint" and inner text "Unknown C++ exception".

I don't know if I do the right design process of my plate but the freecad allowed me to do that until the exception appears.

Please see the attached screenshots.
Additional InformationOS: Debian GNU/Linux 6.0.7 (squeeze)
Platform: 64-bit
Version: 0.13.2041 (Git)
Branch: master
Hash: fe19cb09cc7a07629ae224a64f58167780284987
Python version: 2.5.5
Qt version: 4.6.3
Coin version: 3.1.3
SoQt version: 1.4.2a
OCC version: 6.3.0
TagsSolver, trim
FreeCAD Information

Relationships

related to 0001865 closedabdullah Sketch Solving problems (LevenbergMarquardt) 

Activities

2013-08-18 18:09

 

bug_cpp_exception.zip (572,925 bytes)

wmayer

2013-08-19 12:06

administrator   ~0003496

> I don't know if I do the right design process of my plate but the freecad allowed me to do that until the exception appears.
Have a look at the linear pattern feature.

Can you also upload the project file which is causing the C++ exception, please?

2013-08-19 19:23

 

AL kryci plech bug.fcstd (25,842 bytes)

cejka

2013-08-19 19:25

reporter   ~0003499

OMG! The easy way. Thanks!

I've just uploaded file: AL kryci plech bug. Try to open sketch of element "drazka chlazeni [1,21]" and try to change dimension constraint of 215 to 225. The exception dialog appears then.

wmayer

2013-09-03 15:09

administrator   ~0003544

An exception was thrown inside GeomArcOfCircle::setRange() because u and v are of the same value 2*PI. The Standard_Failure is converted into a Base::Exception.

But the actual problem remains, i.e. u and v get the same value.

wmayer

2013-09-04 06:58

administrator   ~0003546

Reminder sent to: logari81

This might be of interest for you:
When performing the steps as described you'll get a log message:

"Important: the LevenbergMarquardt solver succeeded where the DogLeg solver had failed.
If you see this message please report a way of reproducing this result at
https://sourceforge.net/apps/mantisbt/free-cad/main_page.php"

Further messages are:
Updating geometry: Error build geometry(2): Geom_TrimmedCurve::U1 == U2
Invalid solution from DogLeg solver.


An exception is raised because inside Sketch::updateGeometry() when setting the range of the arc the values *myArc.startAngle and *myArc.endAngle are 2*PI.

Now the OCC exception is converted into a Base::Exception which causes the solver to use the Levenberg-Marquardt algorithm that returns a valid result.

Another interesting aspect is if you change the constraint from 215 to 220 and then again to 225 everything works perfectly.

logari81

2013-09-04 14:41

developer   ~0003550

oh, this is actually a very badly constrained sketch (which is a good test for the sketcher solver). Basically the solution found by the sketcher is mathematically valid:
the arcs become circles, the vertical lines lie on top of each other and the short construction line becomes zero-length and all constraints are still satisfied.

Of course we should add some restrictions to the sketcher solver to drive it away from solutions involving zero length edges. However, users have also to learn to create robust sketches. Good constraints to use are:

-Horizontal/vertical length.
-Horizontal/vertical constraint.
-Point/Point tangency.

bad constraints:
- Length.
- Edge/Edge Tangency
- Point on line
- Symmetry

wmayer

2014-06-18 09:31

administrator   ~0004756

Downgrade to "Minor" because the exception handling part is fixed.

Issue History

Date Modified Username Field Change
2013-08-18 18:09 cejka New Issue
2013-08-18 18:09 cejka File Added: bug_cpp_exception.zip
2013-08-19 12:06 wmayer Note Added: 0003496
2013-08-19 19:23 cejka File Added: AL kryci plech bug.fcstd
2013-08-19 19:25 cejka Note Added: 0003499
2013-09-03 15:09 wmayer Note Added: 0003544
2013-09-04 06:58 wmayer Note Added: 0003546
2013-09-04 14:41 logari81 Note Added: 0003550
2014-06-18 09:31 wmayer Note Added: 0004756
2014-06-18 09:31 wmayer Severity crash => minor
2014-12-29 00:28 wmayer Relationship added related to 0001865
2017-01-12 14:26 Kunda1 Tag Attached: Solver
2017-05-12 12:22 Kunda1 Summary Dimensional constraint - Unknown C++ exception => Dimensional constraint - Unknown C++ exception (LevenbergMarquardt)
2017-05-12 12:23 Kunda1 Tag Attached: trim
2017-12-13 15:20 Kunda1 Project Sketcher => GCS
2018-04-27 22:59 chrisb Assigned To => chrisb
2018-04-27 22:59 chrisb Status new => closed
2018-04-27 22:59 chrisb Resolution open => fixed