- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
I got a problem with an external rule. That rule worked fine as internal rule, but now there's a failure at one expression
Dim oApp As Application Dim oDoc As DrawingDocument Dim oSheet As Sheet Dim oRevTable As RevisionTable Dim myPoint As Inventor.Point2d oApp = ThisApplication oDoc = ThisDoc.Document oSheet = oDoc.ActiveSheet oRevTable = oSheet.RevisionTables.Item(1) If oSheet.RevisionTables.Count = 0 Then MsgBox("There is no RevisionTable on this sheet.") Exit Sub End If Dim PointX As Double Dim PointY As Double Dim SizeX As Double Dim SizeY As Double SizeX = oRevTable.RangeBox.MaxPoint.X - oRevTable.RangeBox.MinPoint.X SizeY = oRevTable.RangeBox.MaxPoint.Y - oRevTable.RangeBox.MinPoint.Y PointX = PointX-SizeX PointY = PointY myPoint = oApp.TransientGeometry.CreatePoint2d(PointX, PointY) oRevTable.Position = myPoint
This is the failure text:
System.ArgumentException: Falscher Parameter. (Ausnahme von HRESULT: 0x80070057 (E_INVALIDARG))
bei System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags flags, Object target, Int32[] aWrapperTypes, MessageData& msgData)
bei Inventor.RevisionTables.get_Item(Object Index)
bei ThisRule.Main()
bei Autodesk.iLogic.Exec.AppDomExec.ExecRuleInAssembly(Assembly assem)
bei iLogic.RuleEvalContainer.ExecRuleEval(String execRule)
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
place this line after the check if there is a revision table.
oRevTable = oSheet.RevisionTables.Item(1)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
In addition to the previous suggestion you could use a Try/Catch statement here.
I hope this helps.
Best of luck to you in all of your Inventor pursuits,
Curtis
http://inventortrenches.blogspot.com
Dim oApp As Application Dim oDoc As DrawingDocument Dim oSheet As Sheet Dim oRevTable As RevisionTable Dim myPoint As Inventor.Point2d oApp = ThisApplication oDoc = ThisDoc.Document oSheet = oDoc.ActiveSheet Try oRevTable = oSheet.RevisionTables.Item(1) Catch MsgBox("There is no RevisionTable on this sheet.",,"iLogic") Exit Sub End Try Dim PointX As Double Dim PointY As Double Dim SizeX As Double Dim SizeY As Double SizeX = oRevTable.RangeBox.MaxPoint.X - oRevTable.RangeBox.MinPoint.X SizeY = oRevTable.RangeBox.MaxPoint.Y - oRevTable.RangeBox.MinPoint.Y PointX = PointX-SizeX PointY = PointY myPoint = oApp.TransientGeometry.CreatePoint2d(PointX, PointY) oRevTable.Position = myPoint
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Yeah guys... that's the clue.
Now everything works fine. Don't know, why I didnt't recognize, that there was no revisiontable on drawing.