Maxon Developers Maxon Developers
    • Documentation
      • Cinema 4D Python API
      • Cinema 4D C++ API
      • Cineware API
      • ZBrush Python API
      • ZBrush GoZ API
      • Code Examples on Github
    • Forum
    • Downloads
    • Support
      • Support Procedures
      • Registered Developer Program
      • Plugin IDs
      • Contact Us
    • Categories
      • Overview
      • News & Information
      • Cinema 4D SDK Support
      • Cineware SDK Support
      • ZBrush 4D SDK Support
      • Bugs
      • General Talk
    • Unread
    • Recent
    • Tags
    • Users
    • Login

    C4D Illegal Performance Error

    SDK Help
    0
    5
    518
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • H
      Helper
      last edited by

      THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

      On 26/06/2003 at 23:50, xxxxxxxx wrote:

      User Information:
      Cinema 4D Version:   7.303 
      Platform:   Windows  ;   
      Language(s) :   C.O.F.F.E.E  ;

      ---------
      Hi,
      I have created a plugin using C.O.F.F.E.E That plugin is just to create cubes of different sizes, and moving the points here and there. When I do so, I always get Illegal Performance problem and it shuts down my C4D. What could be the reason? Here I have sent the exact error message that I am getting.
      ----- Error Description -------
      CINEMA_4D_XL caused an invalid page fault in
      module CINEMA_4D_XL.EXE at 0187:00725d3c.
      Registers:
      EAX=013de8c0 CS=0187 EIP=00725d3c EFLGS=00210202
      EBX=00000000 SS=018f ESP=013de8ac EBP=04abd750
      ECX=00000367 DS=018f ESI=00000002 FS=3a2f
      EDX=03f1e7dc ES=018f EDI=00000000 GS=0000
      Bytes at CS:EIP:
      8b 4f 2c 52 6a 00 81 c1 9c 31 00 00 e8 d3 b7 00
      Stack dump:
      00000367 00000002 013de8c0 00000000 03f1e7a4 00000000 00000000 013df9b0 00865e0b 00000008 040ff40c 013dea98 bff7b9b6 00000000 00000000 00000000

      1 Reply Last reply Reply Quote 0
      • H
        Helper
        last edited by

        THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

        On 28/06/2003 at 02:11, xxxxxxxx wrote:

        That error message doesn't tell us anything. You'll have to post some code, preferably the part that you have narrowed down the problem to.

        1 Reply Last reply Reply Quote 0
        • H
          Helper
          last edited by

          THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

          On 30/06/2003 at 00:20, xxxxxxxx wrote:

          Hi Michael,
          Here is one of the programs which I used in my plug-in. Like this i have many programs. Pls guide me...

              
              
              
              
              include "asciitochar.coh" // to covert ascii character into alphabet.
              
              
              
              
              // Plug-ID definition
              
              
              
              
              var PLUGIN_ID = 911118;
              
              
              
              
              var vPilecapName, vHeight, vWidth, vDepth;
              
              
              
              
              // Plug-in DialogBox Creation
              
              
              
              
              class dlgPilecap : GeDialog  
              {
              
              
              
              
               public:  
                dlgPilecap();  
                Init();  
                CreateLayout();  
                Command(id,msg);  
              }
              
              
              
              
              dlgPilecap::dlgPilecap()  
              {  
               super(PLUGIN_ID);  
              }
              
              
              
              
              dlgPilecap::Init()  
              {  
               SetString(1002, "Pilecap"); // Name of the Pilecap  
               SetFloat(1005, 200, 0, 1000, 1); // Width   
               SetFloat(1008, 100, 0, 1000, 1); // Height  
               SetFloat(1011, 200, 0, 1000, 1); // Depth  
               SetFloat(1016, 0, 0, 1000, 1); // Width   
               SetFloat(1019, 0, 0, 1000, 1); // Height  
               SetFloat(1022, 0, 0, 1000, 1); // Depth  
               SetFloat(1027, 0, -1000, 1000, 1); // X  
               SetFloat(1030, 0, -1000, 1000, 1); // Y  
               SetFloat(1033, 0, -1000, 1000, 1); // Z  
              }
              
              
              
              
              dlgPilecap::CreateLayout()  
              {
              
              
              
              
               SetTitle("Square Pilecap...");
              
              
              
              
               AddGroupBeginH(1000,0,1,"",0);  
                AddStaticText(1001,0,0,0,"Name ",0);  
                AddEditText(1002,0,200,0);  
               AddGroupEnd();
              
              
              
              
               AddGroupBeginH(1003,0,1,"",0);  
                AddStaticText(1004,0,0,0,"Width ",0);  
                AddEditNumber(1005,0,200,0);  
               AddGroupEnd();
              
              
              
              
               AddGroupBeginH(1006,0,1,"",0);  
                AddStaticText(1007,0,0,0,"Height ",0);  
                AddEditNumber(1008,0,200,0);  
               AddGroupEnd();
              
              
              
              
               AddGroupBeginH(1009,0,1,"",0);  
                AddStaticText(1010,0,0,0,"Depth  ",0);  
                AddEditNumber(1011,0,200,0);  
               AddGroupEnd();
              
              
              
              
               AddGroupBeginH(1012,0,1,"",0);  
                AddStaticText(1013,0,0,0,"Rotation  ",0);  
               AddGroupEnd();
              
              
              
              
               AddGroupBeginH(1014,0,1,"",0);  
                AddStaticText(1015,0,0,0,"H      ",0);  
                AddEditNumber(1016,0,200,0);  
               AddGroupEnd();
              
              
              
              
               AddGroupBeginH(1017,0,1,"",0);  
                AddStaticText(1018,0,0,0,"P      ",0);  
                AddEditNumber(1019,0,200,0);  
               AddGroupEnd();
              
              
              
              
               AddGroupBeginH(1020,0,1,"",0);  
                AddStaticText(1021,0,0,0,"B      ",0);  
                AddEditNumber(1022,0,200,0);  
               AddGroupEnd();
              
              
              
              
               AddGroupBeginH(1023,0,1,"",0);  
                AddStaticText(1024,0,0,0,"Position  ",0);  
               AddGroupEnd();
              
              
              
              
               AddGroupBeginH(1025,0,1,"",0);  
                AddStaticText(1026,0,0,0,"X      ",0);  
                AddEditNumber(1027,0,200,0);  
               AddGroupEnd();
              
              
              
              
               AddGroupBeginH(1028,0,1,"",0);  
                AddStaticText(1029,0,0,0,"Y      ",0);  
                AddEditNumber(1030,0,200,0);  
               AddGroupEnd();
              
              
              
              
               AddGroupBeginH(1031,0,1,"",0);  
                AddStaticText(1032,0,0,0,"Z      ",0);  
                AddEditNumber(1033,0,200,0);  
               AddGroupEnd();
              
              
              
              
                
               AddGroupBeginH(1034,0,1,"",0);  
                AddButton(1035,0,0,0,"Insert");  
               AddGroupEnd();
              
              
              
              
               return TRUE;  
              }
              
              
              
              
              dlgPilecap::Command(id,msg)  
              {  
               var obj, cnt, i, j=0, cubarr, bs, ObjPilecap, conPilecap;  
               var pt, doc, pos, activeobj_con, len;  
               var Obj1, Obj2, mat1, mat2, vec1, vec2, PilecapPos, mid;  
               var objFile, ptrFile;  
               var Rot_H, Rot_P, Rot_B;  
               var posX, posY, posZ;  
               var vFound, temp, ObName, vStr;
              
              
              
              
               switch(id)  
               {  
                case 1035:
              
              
              
              
                  vPilecapName = GetString(1002);  
                  vHeight = GetFloat(1008);   
                  vWidth = GetFloat(1005);  
                  vDepth = GetFloat(1011);  
                  Rot_H = GetFloat(1016);  
                  Rot_P = GetFloat(1019);  
                  Rot_B = GetFloat(1022);  
                  posX = GetFloat(1027);  
                  posY = GetFloat(1030);  
                  posZ = GetFloat(1033);
              
              
              
              
                  doc = GetActiveDocument();  
                  obj = GetActiveObject(doc);
              
              
              
              
                  cnt = obj->GetPointCount();  
                  bs = obj->GetPointSelection();
              
              
              
              
                  for(i=0; i<=cnt; i++)  
                  {   
                   if(bs->IsSelected(i))  
                   {   
                     pos = obj->GetPoint(i);  
                     pos.y = pos.y + vHeight/2;  
                     break;  
                   }  
                  }
              
              
              
              
                
                  if(doc->FindObject(vPilecapName))  
                  {  
                   TextDialog("Object Name already exists!", DLG_ICONSTOP + DLG_OK);  
                   break;  
                  }
              
              
              
              
                 // To create a Pilecap - Cube of size 200x200x200  
                    
                  ObjPilecap = new(PrimitiveObject);  
                  ObjPilecap->SetPrimitiveType(PRIMITIVE_CUBE);  
                  conPilecap = ObjPilecap->GetContainer();  
                  conPilecap->SetData(PRIM_CUBE_LEN, vector(vWidth,vHeight,vDepth));  
                    
                  ObjPilecap->SetContainer(conPilecap);  
                  ObjPilecap->SetName(vPilecapName);   
                  doc->InsertObject(ObjPilecap,NULL,NULL); 
              
              
              
              
                  ObjPilecap->SetRotation(vector(Rot_H, Rot_P, Rot_B));
              
              
              
              
                  SendModelingCommand(MCOMMAND_MAKEEDITABLE, doc, ObjPilecap, conPilecap, MODIFY_ALL);  
                   
                  ObjPilecap=doc->FindObject(vPilecapName); 
              
              
              
              
                  pos.x = pos.x + posX;  
                  pos.y = pos.y + posY;  
                  pos.z = pos.z + posZ;
              
              
              
              
                  ObjPilecap->SetPosition(pos);
              
              
              
              
                  GeEventAdd(REDRAW_ALL);
              
              
              
              
                  //CHECKING PILECAP.TXT BEFORE INSERTING THE NAME
              
              
              
              
                  objFile = GeGetRootFilename();  
                  objFile->RemoveLast();  
                  objFile->AddLast("Pilecap.txt");
              
              
              
              
                  ptrFile = new(BaseFile);
              
              
              
              
                  ptrFile->Open(objFile, GE_READ, FILE_NODIALOG);
              
              
              
              
                  vStr = ptrFile->ReadString(ptrFile->GetLength());  
                    
                  if(!vStr)  
                   vStr=" ";
              
              
              
              
                  ptrFile->Close();  
                    
                  if(strstr(vStr, vPilecapName)<0) //Object already there in text file  
                  {  
                   if(ptrFile->Open(objFile, GE_APPEND))  
                   {  
                    vPilecapName = stradd(vPilecapName, "!");  
                    ptrFile->WriteString(vPilecapName);  
                    ptrFile->Close();  
                   }   
                  }  
               }
              
              
              
              
              }
              
              
              
              
              // Plug-in Menu Creation
              
              
              
              
              class mnuPilecap : MenuPlugin  
              {  
               public:  
                mnuPilecap();
              
              
              
              
                GetID();   
                GetName();   
                GetHelp();   
                Execute(doc);  
              }
              
              
              
              
                
              mnuPilecap::mnuPilecap()   
              {   
               super();   
              }
              
              
              
              
              mnuPilecap::GetID()    
              {   
               return PLUGIN_ID;  
              }
              
              
              
              
              mnuPilecap::GetName()        
              {   
               return "Square Pilecap...";   
              }
              
              
              
              
              mnuPilecap::GetHelp()        
              {   
               return "Creates a Square Pilecap on top of the active object...";   
              }
              
              
              
              
              mnuPilecap::Execute(doc)  
              {   
               //When plugin is selected, pop-up dialog box.  
               var d = new(dlgPilecap);  
               d->Open(TRUE,-1,-1);  
              }
              
              
              
              
               
              
              
              
              
              main()  
              {  
               Register(mnuPilecap);  
              }  
              
              
              
              
          
          1 Reply Last reply Reply Quote 0
          • H
            Helper
            last edited by

            THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

            On 18/07/2003 at 02:11, xxxxxxxx wrote:

            Mikael, have you come across any possible reasons why my C4D shows Illegal Performance Error?

            1 Reply Last reply Reply Quote 0
            • H
              Helper
              last edited by

              THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

              On 18/07/2003 at 07:02, xxxxxxxx wrote:

              Sorry, I cannot confirm the crash. Your code works fine, at least as long as a polygon object with at least one point selected is active.
              Could you try to narrow down the crash to a certain part of the code? Just remove stuff until it stops crashing and then find out what you need to put in to make it crash again.
              Fwiw, I'm running this in 7.303 on a WinXP PC.

              1 Reply Last reply Reply Quote 0
              • First post
                Last post