I have been searching around for a tutorial that identifies all the steps for automating a drawing file using iLogic and I can't seem to find anything, what I do find is information that is steps ahead but doesn't start from the very beginning. I understand it is a complex topic but I am looking for a tutorial that identifies and explains all the steps.
If anyone can provide some information(video, PDF, ...etc) on
- Creating a drawing from an .ipt
- Place a few views in the .idw
I have no coding experience and have tried messing around with iLogic on my own but I am struggling.
I am running Inventor 2019.
Any help would be very much appreciated.
Solved! Go to Solution.
Solved by Sergio.D.Suárez. Go to Solution.
Hi, this is an example in ilogic.
It can be executed in a part or assembly file.
"oSep" is the separation between views.
It is an example, a more complex code can be made as more functions are added, but it can serve as a starting point for learning.
Dim oDoc As Document = ThisDoc.Document ' Part Document or Assembly Document Dim oSep As Double = 2 'Create a drawing from the drawing template Dim oFileDlg As Inventor.FileDialog = Nothing ThisApplication.CreateFileDialog(oFileDlg) oFileDlg.Filter = "Inventor Files (*.idw)|*.idw" oFileDlg.DialogTitle = "Select Drawing Template" oFileDlg.InitialDirectory = ThisApplication.FileOptions.TemplatesPath oFileDlg.CancelError = True On Error Resume Next oFileDlg.ShowOpen() If Err.Number <> 0 Then Exit Sub ElseIf oFileDlg.FileName <> "" Then MasterFile = oFileDlg.FileName End If Dim oDrawingDoc As DrawingDocument = ThisApplication.Documents.Add(DocumentTypeEnum.kDrawingDocumentObject,templateFile,True) oDrawingDoc.Activate() Dim oSheet As Sheet = oDrawingDoc.Sheets.Item(1) Dim oCentralPoint As Point2d = ThisApplication.TransientGeometry.CreatePoint2d(oSheet.Width/2, oSheet.Height/2) Dim oView As DrawingView oView = oSheet.DrawingViews.AddBaseView(oDoc,oCentralPoint, 1, ViewOrientationTypeEnum.kBottomViewOrientation, DrawingViewStyleEnum.kHiddenLineDrawingViewStyle) Dim V1Point2D As Point2d = ThisApplication.TransientGeometry.CreatePoint2d(oView.Center.X + 10, oView.Center.Y) Dim V2Point2D As Point2d = ThisApplication.TransientGeometry.CreatePoint2d(oView.Center.X, oView.Center.Y - 10) Dim V3Point2D As Point2d = ThisApplication.TransientGeometry.CreatePoint2d(oView.Center.X + 10, oView.Center.Y - 10) Dim oView1 As DrawingView = oSheet.DrawingViews.AddProjectedView(oView, V1Point2D, DrawingViewStyleEnum.kFromBaseDrawingViewStyle) Dim oView2 As DrawingView = oSheet.DrawingViews.AddProjectedView(oView, V2Point2D, DrawingViewStyleEnum.kFromBaseDrawingViewStyle) Dim oView3 As DrawingView = oSheet.DrawingViews.AddProjectedView(oView, V3Point2D, DrawingViewStyleEnum.kFromBaseDrawingViewStyle) oView1.Position= ThisApplication.TransientGeometry.CreatePoint2d(oView.Center.X + oView.Width / 2 + oSep + oView1.Width / 2, oView1.Center.Y) oView2.Position = ThisApplication.TransientGeometry.CreatePoint2d(oView.Center.X, oView.Center.Y - oView.Height / 2 - oSep - oView2.Height / 2) oView3.Position = ThisApplication.TransientGeometry.CreatePoint2d(oView.Center.X + oView.Width / 2 + oSep + oView3.Width / 2, _ oView.Center.Y - oView.Height / 2 - oSep - oView3.Height / 2) oView3.ViewStyle = oView.ViewStyle
I hope this can be useful. Cheers!
Sergio Daniel Suarez
Mechanical Designer
| Upwork Profile | LinkedIn
Thank you for the reply Sergio.
I appreciate you providing that code but I am looking for information that would go through each line and break down what it is and why it is used. Everything I have found skips this portion and assume the user understands this already, this is what I am struggling with as I do not have a coding background.
I have been trying to teach myself but i am struggling with the language.
Again, any basic/beginner information or direction on this would be of great help.
There are no "simple" instructions for what you just asked. In fact it is one of the things that are often asked, and I tried to create a code as simple as possible to achieve that and shared it.
Why are there no simple instructions? because the ilogic language is based on object language based on VB.net, and each object that provides each given access must be identified.
Ilogic has "shortcuts" of the accesses to access certain properties of a file, but not all the properties and all the different and complex accesses have ilogic shortcuts.
I think you should familiarize yourself with the inventor API, it's a lot of material, but even today I consult it daily.
The question you should have asked would be:
How to learn programming? or where to consult bibliography to learn programming in inventor?
Check any material related to programming in VBA, ilogic, VB.net, there is a lot of material on the internet.
Place doubts about codes you experience in the customization threads
Sergio Daniel Suarez
Mechanical Designer
| Upwork Profile | LinkedIn
Thank you again for your reply.
Indeed, it does appear to be not as "simple" as I was hoping but it couldn't hurt to ask the community, maybe there was something out there I hadn't found.
I will continue to familiarize myself with the API, it's tough but I'll work on it.
I appreciate your time Sergio. Thank you.
In the case of the previous code, you first identify the active document
Dim oDoc As Document = ThisDoc.Document ' Part Document or Assembly Document
Now you define the separation between the views
Dim oSep As Double = 2
Now you need to open the dialog box to select a drawing template, look in the template path, look at the detail in red
'Create a drawing from the drawing template
Dim oFileDlg As Inventor.FileDialog = Nothing
ThisApplication.CreateFileDialog(oFileDlg)
oFileDlg.Filter = "Inventor Files (*.idw)|*.idw"
oFileDlg.DialogTitle = "Select Drawing Template"
oFileDlg.InitialDirectory = ThisApplication.FileOptions.TemplatesPath
oFileDlg.CancelError = True
On Error Resume Next
oFileDlg.ShowOpen()
If there is an error or you do not select anything, leave the code without returning an error box
If Err.Number <> 0 Then
Exit Sub
ElseIf oFileDlg.FileName <> "" Then
MasterFile = oFileDlg.FileName
End If
Now you will create a new drawing file from the selected template
Dim oDrawingDoc As DrawingDocument = ThisApplication.Documents.Add(DocumentTypeEnum.kDrawingDocumentObject,templateFile,True)
Now activate the drawing
oDrawingDoc.Activate()
Dim oSheet As Sheet = oDrawingDoc.Sheets.Item(1)
Now take the center point of the sheet
Dim oCentralPoint As Point2d = ThisApplication.TransientGeometry.CreatePoint2d(oSheet.Width/2, oSheet.Height/2)
Now place the base view at the center point of the sheet
Dim oView As DrawingView
oView = oSheet.DrawingViews.AddBaseView(oDoc,oCentralPoint, 1, ViewOrientationTypeEnum.kBottomViewOrientation, DrawingViewStyleEnum.kHiddenLineDrawingViewStyle)
Create projected views in arbitrary locations
Dim V1Point2D As Point2d = ThisApplication.TransientGeometry.CreatePoint2d(oView.Center.X + 10, oView.Center.Y)
Dim V2Point2D As Point2d = ThisApplication.TransientGeometry.CreatePoint2d(oView.Center.X, oView.Center.Y - 10)
Dim V3Point2D As Point2d = ThisApplication.TransientGeometry.CreatePoint2d(oView.Center.X + 10, oView.Center.Y - 10)
Dim oView1 As DrawingView = oSheet.DrawingViews.AddProjectedView(oView, V1Point2D, DrawingViewStyleEnum.kFromBaseDrawingViewStyle)
Dim oView2 As DrawingView = oSheet.DrawingViews.AddProjectedView(oView, V2Point2D, DrawingViewStyleEnum.kFromBaseDrawingViewStyle)
Dim oView3 As DrawingView = oSheet.DrawingViews.AddProjectedView(oView, V3Point2D, DrawingViewStyleEnum.kFromBaseDrawingViewStyle)
Correct the positions of the views according to the separation entered and depending on the width and length of each view
oView1.Position= ThisApplication.TransientGeometry.CreatePoint2d(oView.Center.X + oView.Width / 2 + oSep + oView1.Width / 2, oView1.Center.Y)
oView2.Position = ThisApplication.TransientGeometry.CreatePoint2d(oView.Center.X, oView.Center.Y - oView.Height / 2 - oSep - oView2.Height / 2)
oView3.Position = ThisApplication.TransientGeometry.CreatePoint2d(oView.Center.X + oView.Width / 2 + oSep + oView3.Width / 2, _
oView.Center.Y - oView.Height / 2 - oSep - oView3.Height / 2)
oView3.ViewStyle = oView.ViewStyle
Sergio Daniel Suarez
Mechanical Designer
| Upwork Profile | LinkedIn
There are a few AU classes/demos like this about the topic..
A google search of "Inventor Drawing Automation ilogic" yielded quite a few links to relevant training information.. Enough to keep you busy for hours and hours..
These are places that I consult a lot and are very good, I hope they can serve you
https://modthemachine.typepad.com/
http://inventortrenches.blogspot.com/
Here a pdf that seems interesting, I have not studied it yet
Sergio Daniel Suarez
Mechanical Designer
| Upwork Profile | LinkedIn
Are these code working? I tried it with Inventor 2020, it only run up to "Select Drawing Template". I selected a template nothing happend when I click OK.
Can't find what you're looking for? Ask the community or share your knowledge.