Community
AutoCAD Forum
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Fatal Crash Erasing Entity Following GRIP_STRETCH - AutoCAD 2015 Only

2 REPLIES 2
Reply
Message 1 of 3
jason.teagle
232 Views, 2 Replies

Fatal Crash Erasing Entity Following GRIP_STRETCH - AutoCAD 2015 Only

We have hit a problem that is unique to 2015, regarding erasing entities. It is not unique to our custom entities - it can be achieved with a standard AutoCAD line.

 

We have a situation in which the user can select our objects, and with the middle grip, move them - standard stuff (GRIP_STRETCH command). These objects are, however, part of a larger assembly and so if the user moves them out of bounds of the larger assembly, they are erased (think of dragging something out of bounds to dump it).

 

Up until now - from AuoCAD 2007 through to 2013 (not sure about 2014) - this has worked without any problem. In 2015, however, it is now causing the system to come up with the 'Drawing xxxx has a command in progress' --> Cancel / Retry message, and regardless of whether you cancel it or retry, it then crashes fatally (a 0xC0000005 - access violation).

 

Due to my other problem of not being able to download the symbols for all Autodesk DLLs (see http://forums.autodesk.com/t5/autocad-2013-2014-2015/unable-to-load-important-pdb-files-for-autocad-... I can only tell you that it dies in accore.dll.

 

If we don't call erase, the crash doesn't happen - but we obviously need to remove that entity somehow. Removing from the database and deleting the now non-DB-resident entity has the same effect - the crash. Even just *calling* erase() on the object - even if we override subErase() and deny the call to the base class (which I believe should not erase it in the first place?) - still causes the crash. Not calling erase() is the only way to stop it.

 

To simulate this yourselves, create a project and add a reactor derived from AcEditorReactor so that you can have a commandEnded(). During commandEnded(), look for the command being GRIP_STRETCH and then grab and erase any AcDbLine entities in the drawing (it is important not to ask the user to select one, you must grab them yourself). Then start a drawing, add a line, select it to get the grips and move it by its middle grip, triggering that little bit of code - and for us, that causes the crash.

 

Any suggestions on what is wrong, and how we can fix / overcome this? If we're doing something fundamentally wrong then please let us know.

 

2 REPLIES 2
Message 2 of 3

Hi,

 

>> To simulate this yourselves, create a project and add a reactor derived from AcEditorReactor [...]

Sorry, you landed in the wrong forum, as you speak about ObjectARX and reactors you should ask in the forum for >>>ObjectARX<<<.

 

Good luck, - alfred -

PS: also inform the group what service pack you have installed (for AutoCAD) and other environment like OS, .. and if you are working with a vertical product.

------------------------------------------------------------------------------------
Alfred NESWADBA
Ingenieur Studio HOLLAUS ... www.hollaus.at ... blog.hollaus.at ... CDay 2024
------------------------------------------------------------------------------------
(not an Autodesk consultant)
Message 3 of 3

Apologies - done. Let me know if you want me to erase this post (assuming I can). 

 

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report

”Boost