View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0001223||GCS||Bug||public||2013-08-18 18:09||2018-04-27 22:59|
|Priority||normal||Severity||minor||Reproducibility||have not tried|
|Summary||0001223: Dimensional constraint - Unknown C++ exception (LevenbergMarquardt)|
|Description||I 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 Information||OS: Debian GNU/Linux 6.0.7 (squeeze)|
Version: 0.13.2041 (Git)
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
bug_cpp_exception.zip (572,925 bytes)
> 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?
AL kryci plech bug.fcstd (25,842 bytes)
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.
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.
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
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.
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:
- Edge/Edge Tangency
- Point on line
||Downgrade to "Minor" because the exception handling part is fixed.|
|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|