Undo buffer?
Is there any way I can switch UNDO off completely while my own LISP routines change entities? I am running into issues where my LISP changes entities (such as color, line-type etc.) but then the memory uses goes on increasing because (I think) the UNDO buffer holds on to those changes. If someone wants to test this: write a routine that changes color of all lines in a drawing. Then open a drawing (hopefully big) and call that LISP/SDS routine to change the color. You will see that the memory usage has gone up on every successive call to the LISPfunction. My function is more complicated because I have to change extended entity data on entities as well.On big drawings I have seen memory use increasing by 10MB everytime I perform a function on a big drawing. That memory is released only when I quit ICAD (not even when the drawing is closed).
Comments
-
Yes, you can completely switch off the UNDO buffer. As a matter of fact the UNDO command has three statuses: ALL, ONE and NONE.Type UNDO at the command prompt, then choose CONTROL. Now you can select the UNDO status.
0 -
There is a similar problem with image tiles in intellicad lisp, memory used is not released back to the system. In the end this causes a system crash. Switching off undo has no effect on this. I assume you are using entmod since eedata is involved. Perhaps this is a bug with the entmod function.
0 -
Yes, I am using sds_entmod. It seems to be hoarding the memory. As a test I also did sds_entget and then followed it with sds_entmod without making any changes. The whole thing takes 5 MB of memory on my big drawing.My next action will be to actually look at ICAD code and see if I can change the code.Thanks for the input.Any other way to do it?
0