List of Errors



This is a list of specific errors that we have found the solution to (or at least have a hunch as to its cause) For general tips on troubleshooting, see CAA RADE Troubleshooting

wincore.cpp Error

This Error is caused because you did not include a void* DummyInput input parameter in a function that you used as an ActionMethod of a CATStateCommand. All you have to do to fix it is add "void* Dummy" to the function declaration in the class header and the corresponding function definition in the .cpp file. You'll notice that the automatically generated function called "ActionOne" that the CAA Wizard generates puts that parameter in automatically, but when I create subsequent action methods, I usually forget to add this parameter.

[edit] Don't know what kind of CATIA object it is

I had this situation after importing an iges file and trying to work with the results. It was a faceted model made of thousands of small triangular surfaces. I was trying to access the vertex data of the triangular surfaces, but was unable to figure out what kind of CATIA object it was. After several weeks of tinkering, I thought of the following procedure to figure out what kind of object it is. I wrote a quick macro to help automate the process of coding this thing up, so if I were you I would utilize the file [[1]] that I created (that is, if you are having the same problem.)

#include... a whole bunch of stuff

	CATIMfRsur* pointer2 = NULL;
	res = spUnknownObj->QueryInterface(IID_CATIMfRsur,(void**)&pointer2);
	if (pointer2!=NULL)
		int stop = 0;
	pointer2 = NULL;
  • in the linked file, there are a LOT of included files. You actually do need most of them, but not all of them.
  • I went through the documentation and found the object name of every single possible CATIA object that I thought a surface could be or even involve, and performed a check like the one above for it. I had about 38 separate checks just like the one above.
  • I included a stop point on every single "int stop = 0" line and ran it in debug mode
  • Each time the code stopped, I took note of the object name. In this manner I was able to determine what object I needed to deal with.
  • To generate the code, I made a quick macro that would write all of this code based on a keyword that I had highlighted. I would then highlight the CATIA object name and run the macro. It was actually a pretty quick way to generate all of the code.
  • The linked file does not include all the right objects for your application most likely, but if you decide to do this, you should just add to the document that I started and eventually we will have a comprehensive check for any object type.