On Fri, 31 Mar 2006, Donald Ephraim Curtis wrote: > I checkedthis out, it's getting called when you update the values of a > constraint but the constraint isn't getting changed in the engine. I Hello, this is what I tried to explain you earlier ; the constraint is not getting changed in the engine object, because this is the way it is designed to be. Instead of updating the engine object, the engine object must be destroyed and a new one must be created so that the new constraint values could be used. This is a desing that I have deliberately chosen. I think there is a limit when compilicated data structures should be updated, and when they should be discarded and re-built from scratch. For the model <-> engine interface I have chosen that all changes (addition/removal of atom/bond and now also constraint) invalidates the engine object. If you are not sure whether the engine object is discarded, please do the following tricks: 1) draw an extra atom somewhere ; the engine object is destroyed. 2) erase the extra atom ; now the system is as it used to be. Now if you for example compute the energy, the program sees that there is no engine object that could be used, and it creates a new one. When a new engine object is created, you can see at the console this kind of debug messages: creating bt1-terms: 10 terms, 0 errors. creating bt2-terms: 18 terms, 0 errors. creating bt3-terms: 18 terms, 0 errors. Otherwise the operation is not shown to the user. Regards, Tommi