Search found 7106 matches

Fri Nov 29, 2019 3:24 pm
Forum: Python scripting and macros
Topic: How to find out that the constraint is an angle
Replies: 6
Views: 158

Re: How to find out that the constraint is an angle

Sketch objects have Constraints property. Find the constraint with the right name, and check if its .Type == "Angle".
Fri Nov 29, 2019 1:38 am
Forum: Assembly
Topic: Reimplementing constraint solver [all solvers implemented]
Replies: 49
Views: 2997

Re: Reimplementing constraint solver [LM solver is up!]

BFGS solver is up!

Interestingly, it fails on my simple test problem. Yet if I change c.dist.Value to 4, it does the job. Maybe there is some bug in the implementation, but I suspect it's just unluck, combined with the lack of maxstep restriction. Seems ok otherwise.
Thu Nov 28, 2019 5:29 pm
Topic: Geometry Error: Part Design -> Part -> Connect?
Replies: 3
Views: 99

Re: Geometry Error: Part Design -> Part -> Connect?

openBrain wrote:
Thu Nov 28, 2019 3:59 pm
I guess this is an OCC problem that we have to live with.
refinement algorithm is actually FreeCAD. There are OCC routines for it too (and knowledgeable people said they are good), but they are not used in FreeCAD.
Thu Nov 28, 2019 11:29 am
Forum: Assembly
Topic: Reimplementing constraint solver [all solvers implemented]
Replies: 49
Views: 2997

Re: Reimplementing constraint solver [LM solver is up!]

LM's damping factor changer function double dF = e.squaredNorm() - e_new.squaredNorm(); double dL = h.dot(mu*h+g); if (dF>0. && dL>0.) { // reduction in error, increment is accepted double tmp=2*dF/dL-1.; mu *= std::max(1./3., 1.-tmp*tmp*tmp); // <- this multiplier is plotted
Thu Nov 28, 2019 11:17 am
Forum: Assembly
Topic: Reimplementing constraint solver [all solvers implemented]
Replies: 49
Views: 2997

Re: Reimplementing constraint solver [LM solver is up!]

I closely followed a paper (or excerpt of a bock, not sure anymore). I will have a look this evening if I still can find it on my other machine. That'd be very nice to have, as I'm struggling to find a good source for dogleg for example. LM is decently explained on Wikipedia (although I'm still str...
Thu Nov 28, 2019 12:27 am
Forum: Assembly
Topic: Reimplementing constraint solver [all solvers implemented]
Replies: 49
Views: 2997

Re: Reimplementing constraint solver [dogleg solver is up!]

LM solver is up! Here's a log where it solves the same super-simple test problem: Begin Levenberg-Marquardt solving iteration 0 err = 2.000000 max(abs(gradient[i])) = 1.600000 damping factor = 0.000640, computing step... sq(step) = 1.998721 step changed the error by 4.000000 (expected: 4.000000) ste...
Wed Nov 27, 2019 10:07 pm
Forum: Assembly
Topic: Reimplementing constraint solver [all solvers implemented]
Replies: 49
Views: 2997

Re: Reimplementing constraint solver [dogleg solver is up!]

They already proved useful in sketcher constraints, there is just no question about it. In the implementation so far, they aren't very useful, because I have not written geometry and constraints yet. The two I wrote are too trivial to say "dual numbers were useful", but for more complex stuff, dual ...
Wed Nov 27, 2019 6:44 pm
Forum: Assembly
Topic: Reimplementing constraint solver [all solvers implemented]
Replies: 49
Views: 2997

Re: Reimplementing constraint solver [dogleg solver is up!]

toralf wrote:
Wed Nov 27, 2019 6:40 pm
Could you make use of the dual numbers?
I am, see first post of the thread
Wed Nov 27, 2019 6:42 pm
Topic: Saved work inaccessible
Replies: 4
Views: 87

Re: Saved work inaccessible

The problem was that it had saved it as a PDF file and I was unable to open that as it was not recognised as a PDF file. Sounds like you've actually typed in a ".pdf" extension when saving. I have a hard time imagining how else can it be possible. Try renaming your file to have .FCStd extension (if...
Wed Nov 27, 2019 5:32 pm
Forum: Assembly
Topic: Reimplementing constraint solver [all solvers implemented]
Replies: 49
Views: 2997

Re: Reimplementing constraint solver [dogleg solver is up!]

Now onto LM solver, I immediately stumbled on the reason it has accuracy problems . Its termination condition is: e1^2 + e2^2 + .. < eps , where default eps = 1e-10 In dogleg, it is: max(abs(e1), abs(e2), ...) < tolf , where tolf default is again 1e-10 Since DL is comparing linearly and LM is compar...