C360 throwing error but not logging error in error log

C360 throwing error but not logging error in error log

clutsa
Collaborator Collaborator
1,500 Views
14 Replies
Message 1 of 15

C360 throwing error but not logging error in error log

clutsa
Collaborator
Collaborator

I converted my goExcel files back to .xlsx and I'm just ignoring my column load at this time. This is a huge update to the model with probably close to 100 files (about 1/3 of total files) changing names. Everything is working fine in Inv Pro 2018 but not so much in C360. (I made a totally new zip file and went through all the parts to make sure everything should be in the zip and is the most current file)

When I access C360 through our embedded site part of my model updates and part does not (the parts that were re-named from what I can tell) but no error is thrown in the browser. Later (up to an hour) I'll get an e-mail letting me know a user-error occurred but when I go to check the error log through the admin page it doesn't show any errors (the most recent error is from when I was trying to use the .xlsm) 

Is there a way I can debug what's going on in C360? Why am I getting e-mails about errors that aren't in the error log?

 

ErrorEmails.PNGErrorLog.PNG

If I've helped you, please help me by supporting this idea.
Mass Override for Each Model State

Custom Glyph Icon for iMates

Reply
Reply
0 Likes
Accepted solutions (1)
1,501 Views
14 Replies
Replies (14)
Message 2 of 15

tolgay.hickiran
Advisor
Advisor

Debugging like that is not really an option with the software. It's odd that you are getting the emails an hour later though, can you check your email settings? I haven't seen an instance like this before.

 

Whats the unique part in assembly, the excel row count?

 

 


Some worthwhile ideas
Copy Design should rename ilogic Rules too!
Why Nastran In-CAD doesn't have an SDK?IMPLEMENTED!

Tolgay Hickiran
Founding Partner
SignatureSignature

website
emailskypelinkedinyoutubeemail

Reply
Reply
0 Likes
Message 3 of 15

clutsa
Collaborator
Collaborator

My "send mail to admin" was set to "for end-user errors only" but I'm getting the emails just not seeing anything in the log.

I don't understand what you mean "Whats the unique part in assembly, the excel row count?" 

If I've helped you, please help me by supporting this idea.
Mass Override for Each Model State

Custom Glyph Icon for iMates

Reply
Reply
0 Likes
Message 4 of 15

tolgay.hickiran
Advisor
Advisor
I want to understand the size of your assembly and your excel sheet

Some worthwhile ideas
Copy Design should rename ilogic Rules too!
Why Nastran In-CAD doesn't have an SDK?IMPLEMENTED!

Tolgay Hickiran
Founding Partner
SignatureSignature

website
emailskypelinkedinyoutubeemail

Reply
Reply
0 Likes
Message 5 of 15

KKizildemir
Collaborator
Collaborator

Hi @clutsa 

 

These are the limitations of C360 about cases which includes the usage of Excel file:

  • Configurator 360 does not support models that utilize iLogic Excel functions.
  • Configurator 360 does not allow the following in iLogic rules: MessageBox, MsgBox, InputBox, GoExcel, COM Excel functions

To see the whole known limitations and issues list, please see the link below:

https://knowledge.autodesk.com/support/configurator-360/learn-explore/caas/CloudHelp/cloudhelp/ENU/C...

 

I think you're getting this error message just because of that. To avoid getting this error again, create iLogic rule to run your product scenario like you did by using Excel doc.

 

Regards

Signature

website
emailskypelinkedinyoutubeemail
Reply
Reply
0 Likes
Message 6 of 15

clutsa
Collaborator
Collaborator

@tolgay.hickiran at this time there are 363 items (148MB) in my zip file (I added an extra 54 iFactory members that I had left out because they shouldn't be configurable anymore so I really only need 309 items... most of those are iFactory members as well) The Excel file has 5 sheets the largest of which has ~350 row and 26 columns. It's the exact same Excel file I was using before I tried to switch to the .xlsm file extension so there shouldn't be any issues there.

 

Now that it's a new day, I've received a spam alert e-mail from our firewall/anti-phishing software that shows two more of the error messages were blocked... that brings my e-mail count to 10 and the errors logged to 11 (10 if I hide admin errors that were set to not send an e-mail) so that's embarrassing. It would appear that my model isn't throwing errors but is simply failing to finish running through it's code. It would appear that the e-mails from the known issue started popping in around the time I got the error fixed and was seeing a different issue. I know I have some welds that broke in a sub assembly... I've been waiting on word from engineering if the part that changed (and caused the break) is going to be acceptable before I fixed all the welds. I've been avoiding configuring anything that used those parts knowing they would throw an error... now I'm wondering if they aren't causing the issue anyway.

 

I have some training going on this week and this part of the project working will have a large part to play in meeting the August 1st deadline and I really didn't expect the changes I made to be a problem as they weren't an issue in Inv. I'll keep playing with this but it looks like I may have cried wolf on this one. 

If I've helped you, please help me by supporting this idea.
Mass Override for Each Model State

Custom Glyph Icon for iMates

Reply
Reply
0 Likes
Message 7 of 15

clutsa
Collaborator
Collaborator

I've tracked it down to the iLogic in my main assembly isn't firing at all. I added 

Dim app As Application = ThisApplication

 to the top of the rule knowing it would throw an error that would show up in the error log... No error... it just doesn't run. "Silent operation" is checked but non of the other options are checked for the rule. The rule is set to trigger "After Open Document" and "Any Model Parameter Change" and there is a Work Plane set to an offset that is linked back to the skeleton model that increments up so a parameter always changes. I've used the technique before and it worked fine... some of the sub-assemblies are set to trigger the same way and they are working fine. I tried uploading the files as a new design just to see if that made a difference but still got nothing.

Does anyone have ideas to get my iLogic to fire?

If I've helped you, please help me by supporting this idea.
Mass Override for Each Model State

Custom Glyph Icon for iMates

Reply
Reply
0 Likes
Message 8 of 15

tolgay.hickiran
Advisor
Advisor
You can't use ThisApplication object on c360 environment.

Some worthwhile ideas
Copy Design should rename ilogic Rules too!
Why Nastran In-CAD doesn't have an SDK?IMPLEMENTED!

Tolgay Hickiran
Founding Partner
SignatureSignature

website
emailskypelinkedinyoutubeemail

Reply
Reply
0 Likes
Message 9 of 15

clutsa
Collaborator
Collaborator

@tolgay.hickiran wrote:
You can't use ThisApplication object on c360 environment.

I know. That's how I know that the rule isn't even trying to run is it should have crashed/thrown an error and it didn't. 

If I've helped you, please help me by supporting this idea.
Mass Override for Each Model State

Custom Glyph Icon for iMates

Reply
Reply
0 Likes
Message 10 of 15

tolgay.hickiran
Advisor
Advisor
Sorry my bad that i've read it wrong 🙂 Thing is it might be being missed with your own logic in the algorithm. You could probably use some debugging on Inventor to see if the algorithm you made is taking a different path then expected.

How did you order your rules?

Like

Sub Main() { rule1; rule2; etc }

sub rule 1 {} sub rule 2 {}

maybe you could divide your rules in to more rules to track the algorithm.
These are just basic stuff that comes to mind without checking the code ofcourse

Some worthwhile ideas
Copy Design should rename ilogic Rules too!
Why Nastran In-CAD doesn't have an SDK?IMPLEMENTED!

Tolgay Hickiran
Founding Partner
SignatureSignature

website
emailskypelinkedinyoutubeemail

Reply
Reply
0 Likes
Message 11 of 15

clutsa
Collaborator
Collaborator

@tolgay.hickiran I want to thank you for taking the time to help with this. 

I'm still only on Inv Pro 2018 (we are updating to 2020 in a few months) so I have no "logger" function to help me debug this.

I have a skeleton part (that has no bones just a ton of parameters) that does all the math and logic. The main assembly has one rule that's just procedural (i'm told iLogic auto wraps this in a main() method). The rule in the main assembly dims all the components, groups them in arraylists and loops thru to exclude (most of) the parts then simply un-excludes the parts the skeleton says to. The rule in Main runs on open and on parameter change. I force a parameter change by linking to a parameter in the skeleton (Count1) that simply increments up at the end of the skeletons compute rule. The linked parameter is then used to move a plane (Work Plane1) that is offset from my YZ origin thru parameter d126. 

I added a part to the main assembly and mated it to Work Plane1 and increased how far Count1 increments so it's very visible if it moved or not. I added a ton of variables to the UserForm in the skeleton so I could see that they are updating (they are.) I load it in C360 and make a change... the part tied to Work Plane1 moves and the sub-assemblies that are linked using the same "run rule on parameter update" update but nothing from the only rule in my main assembly runs. It's like the trigger is missed. I tried running the "Regenerate All Rules" (that claims it can reconnect any linked parameters that may have broke) and adding a new plane (Work Plane3) that is also offset by Count1. Neither of those ideas worked. 

I know this can work because it worked on version 6 of my design. I went back and looked at the parts and code I have saved from version 6 and can't find any major changes (other then a bunch of part name changes) the base concept and implementation are the same. Man Frustrated

 

Again thanks to anyone/everyone for any time and ideas you can spare me. 

If I've helped you, please help me by supporting this idea.
Mass Override for Each Model State

Custom Glyph Icon for iMates

Reply
Reply
0 Likes
Message 12 of 15

tolgay.hickiran
Advisor
Advisor
This is pretty much where you start on design automation. I remember us doing our first prototypes in on entire rule. Then we learned how to structure the code and refactor it. Unfortunately as mech sided people we are, they don't teach us object-oriented software theory ( well i am an industrial eng. and i got a bit of knowledge at uni ). Thus, we end up creating a lot of rule without any structure.

Next step will be learning how to create more functions and calling them because procedurally calling all lines of code becomes really complicated and hard to debug.

You don't need a new inventor version to debug by the way. Your best friend is a Msgbox() function. Or you can also create an array[] and fill it with strings of data and export it somewhere in the code. Remember none of us had any logger functions before. And once you start .NET programming, you are not going to need that.

I'd also suggest you to use something like github with visual studio code because tracking algorithm changes with your ( i assume ) really long lines of code would take forever. Version change softwares would help you find more stuff in less time.

With that said, i'm still trying to similarize your usage with a general usage to see if anything could go wrong. Are you using any event triggers, or is your code running the events? Do you have by any change got the time to refactor your code, meaning that you could maybe create functions with your current code and call your functions in your main subroutine to catch possible errors?

Some worthwhile ideas
Copy Design should rename ilogic Rules too!
Why Nastran In-CAD doesn't have an SDK?IMPLEMENTED!

Tolgay Hickiran
Founding Partner
SignatureSignature

website
emailskypelinkedinyoutubeemail

Reply
Reply
0 Likes
Message 13 of 15

clutsa
Collaborator
Collaborator

Are you using any event triggers, or is your code running the events?

The only event triggers I'm using are the ones you can set from the iLogic Event Triggers dialog box, otherwise I use 

iLogicVb.RunRule("ruleName")

EventTriggers.PNG

 

Do you have by any change got the time to refactor your code,...

No, but it looks like that's what I'm going to have to do.Smiley Tongue

 

As an FYI, I'm technically trained as a machinist. I fell into drafting as a career and have self trained myself into programming (other then the G&M code from being a machinist) I am aware of OO programming I just don't do enough to really grasp it as well as I could. It (usually) makes sense when I see someone else's code but I have a hard time making my own.

If I've helped you, please help me by supporting this idea.
Mass Override for Each Model State

Custom Glyph Icon for iMates

Reply
Reply
0 Likes
Message 14 of 15

clutsa
Collaborator
Collaborator

So I found some code and modified it. This works in Inv Pro 2018 but not in C360. (I need to clean it up because I added bits to help me understand what was happening)

 

Sub Main
	Dim evtListener As New ParamChangeListener(ThisServer, "Test1", Parameter, iLogicVb)
End Sub
Public Class ParamChangeListener
	Private Shared objCount As Integer
	Private WithEvents m_ModEvts As Inventor.ModelingEvents = Nothing
	Private Parameter As Object
	Private iLogicVB As Object
	Private Shared Name As String
	
	Sub New(invServer As InventorServer,Name As String, Parameter As Object, iLogicVB As Object)
		objCount = objCount + 1
		m_ModEvts = invServer.ModelingEvents
		Me.Parameter = Parameter
		Me.iLogicVB = iLogicVB
		Me.Name = Name
	End Sub
	
	Private Sub m_ModEvts_OnChange(DocumentObject As Inventor._Document, Parameter As Inventor.Parameter, BeforeOrAfter As Inventor.EventTimingEnum, Context As Inventor.NameValueMap, ByRef HandlingCode As Inventor.HandlingCodeEnum) Handles m_ModEvts.OnParameterChange
		If objCount > 1 Then
			Call Disconnect
			Return
		End If
		If BeforeOrAfter = Inventor.EventTimingEnum.kAfter And Parameter.Name = "OAL" And DocumentObject.DisplayName = "PCnnnnnnnxnn-nnnxxxx_C360.iam" Then 
			'Me.Parameter("Test") = 0
			iLogicVB.RunRule("PCUpdateAssy")
			'MessageBox.Show("Test", "Title")
		End If
	End Sub
	Sub Disconnect()
		objCount = objCount - 1
		m_ModEvts = Nothing
	End Sub

End Class

I tried the code above as a rule in the main assembly ("PCnn..."), set to run on open and it should call my original rule ("PCUpdateAssy", that I'm supposed to refactor but can't get to run at all). I'm wondering if there is a way to run the above code so that I'm not using the "After Document Open" trigger at all. I'm I even on the right path?

 

 

If I've helped you, please help me by supporting this idea.
Mass Override for Each Model State

Custom Glyph Icon for iMates

Reply
Reply
0 Likes
Message 15 of 15

clutsa
Collaborator
Collaborator
Accepted solution

I suppose the answer to "C360 throwing error but not logging error in error log" was in one of my earlier posts. The first problem had been trying to use a .xlsm file and that was throwing an error and logging the issue but the e-mails hadn't started coming in immediately (I assume because of our firewall.) After that problem was fixed the new problem was that one of my rules wasn't firing when expected. This left the model incorrect but no "errors" were actually happening. At the same time the e-mails for the first problem/errors started popping in my e-mail so I assumed I was getting error e-mails relating to my second problem but not seeing anything new in the error log. My bad. 

If I've helped you, please help me by supporting this idea.
Mass Override for Each Model State

Custom Glyph Icon for iMates

Reply
Reply
0 Likes