- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Problem with "Automatic Drawings witjh iLogic"
I have downloaded and applied Clint Brown's "Automatic Drawings with iLogic". I have created a my templates (must they be a .dwg?) as an .idw
The file paths for the templates has been changed in the code. I run from the opened window of the part / assembly but it does not give me any views. If I open the template and then that has the views and run the rule, the views change with the new part / assembly but I do not get the "scale" dialog box.
I've gone through the code but can't seem to find the problem. I'm not a code guru but am capable of writing my own rules with iLogic and snippets.
Any ides / help would be deeply appreciated. I think what Clint Brown has written is very and a big help.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Thank you for the reply. I did not make any major changes, but I have pasted the code here.
'Code By @ClintBrown3D 'Originally posted at https://clintbrown.co.uk/automatic-drawings-With-ilogic/ 'Check if this is a drawing file Dim doc = ThisDoc.Document If doc.DocumentType = kDrawingDocumentObject Then GoTo DRAWINGcode : End If 'In parts & asemblies - Write file name and path to temp text file oWrite = System.IO.File.CreateText("C:\TEMP\part.txt") oWrite.WriteLine(ThisDoc.PathAndFileName(True)) oWrite.Close() oFilePather = ThisDoc.Path & "\" 'In parts & asemblies - Write new drawing name to temp text file oWrite = System.IO.File.CreateText("C:\TEMP\partno.txt") oWrite.WriteLine(oFilePather & iProperties.Value("Project", "Part Number") & ".idw") oWrite.Close() 'Read Drawing name from text file oRead = System.IO.File.OpenText("C:\TEMP\partno.txt") EntireFile1 = oRead.ReadLine() oRead.Close() oDrawingName = EntireFile1 'Copy the Template file > keep templates saved in your project workspace, you need a separate part and assembly template Dim oCopyFiler As String = "ANDRITZ USA" If doc.DocumentType = kAssemblyDocumentObject Then oCopyFiler = "C:\Users\Public\Public Documents\Autodesk\Inventor 2019\Templates\English\Automate-Assy.idw" Else If doc.DocumentType = kPartDocumentObject Then oCopyFiler = "C:\Users\Public\Public Documents\Autodesk\Inventor 2019\Templates\English\Automate-Rev.idw" End If ' Check if drawing exists - If it does, opening existing drawing If System.IO.File.Exists(oDrawingName & DWGType) Then MessageBox.Show("Drawing already exists > Opening Existing Drawing", "ANDRITZ USA") ThisDoc.Launch(oDrawingName & DWGType) Return End If 'Launch New drawing Dim oNewFiler As String = EntireFile1 System.IO.File.Copy(oCopyFiler,oNewFiler,(True)) ThisDoc.Launch(oNewFiler) DRAWINGcode : On Error GoTo Exiter 'Check if we have replaced the reference and scaled the drawing already oNumbero = Parameter("Opened") Parameter("Opened") = oNumbero + 1 MsgBox(Parameter("Opened")) If Parameter("Opened") > 2 Then Return End If 'Read in File name - For reference oRead = System.IO.File.OpenText("C:\TEMP\part.txt") EntireFile = oRead.ReadLine() oRead.Close() oPartPath = EntireFile 'Replace Drawing Reference doc = ThisDoc.Document Dim oFileDesc As FileDescriptor oFileDesc = doc.ReferencedFileDescriptors(1).DocumentDescriptor.ReferencedFileDescriptor oFileDesc.ReplaceReference(oPartPath) doc.Update() 'Read in new name for Drawing oRead = System.IO.File.OpenText("C:\TEMP\partno.txt") EntireFile1 = oRead.ReadLine() oRead.Close() oDrawingName = EntireFile1 'Save this drawing ThisDoc.Save 'Scale the Drawing - Note your drawing views names("VIEW1")&("VIEW4") must match the template On Error GoTo Exiter oMyParameter = ThisDrawing.Document.Parameters.UserParameters oParameter = oMyParameter.AddByValue("Scaler", "1:5", UnitsTypeEnum.kTextUnits) MultiValue.SetList("Scaler","1:1", "1:2", "1:4", "1:5", "1:10", "1:20", "1:25", "1:50", "1:100") Scaler = InputListBox("Set Drawing Scale", MultiValue.List("Scaler"), Scaler, Title := "Scale = " & ActiveSheet.View("VIEW1").ScaleString, ListName := "List") ActiveSheet.View("VIEW1").ScaleString = Scaler ActiveSheet.View("VIEW4").ScaleString = Scaler Parameter.Param("Scaler").Delete Exiter : Msgbox("Scale not Changed")