Autodesk Inventor iLogic: Xuất Bản Vẽ 2D từ DWG Sang PDF Và DXF

Để chia sẽ bản vẽ 2D Inventer sang các phần mềm khác, để xem cũng như gia công thì ta cần chuyển định dạng bản vẽ của Inventor là .dwg sang các định dạng phổ biến như là .pdf và .dxf.

Trong Inventor có lệnh Export nhưng với số lượng bản vẽ lớn thì làm thủ công mất thời gian và dễ sai sót. Vì vậy việc xuất tự động và hàng loạt là cần thiết. Dưới đây là đoạn code iLogic thực hiện chức năng xuất bản vẽ 2D của Inventor sang định dạng file .pdf và .dxf một cách nhanh chóng và chính xác.

Code iLogic:

Sub Main()
  Dim myDate As String = Now().ToString("yyyy-MM-dd HHmmss")
  myDate = myDate.Replace(":","")  ' & " - " & TypeString
 userChoice = InputRadioBox("範囲を定義した", "This Document", "All Open Documents", True, Title := "Defined the scope")
 UserSelectedActionList = New String(){"DXF & PDF", "PDF Only", "DXF Only"}
  UserSelectedAction = InputListBox("選択したビューでどのようなアクションを実行する必要がありますか?", _
          UserSelectedActionList, UserSelectedActionList(0), Title := "Action to Perform", ListName := "オプション")
      Select UserSelectedAction
   Case "DXF & PDF": UserSelectedAction = 3
   Case "PDF Only": UserSelectedAction = 1
   Case "DXF Only":    UserSelectedAction = 2
   End Select
 If userChoice Then
   Call MakePDFFromDoc(ThisApplication.ActiveDocument, myDate, UserSelectedAction)
  Else
   For Each oDoc In ThisApplication.Documents
    If oDoc.DocumentType = kDrawingDocumentObject
     Try
      If Len(oDoc.File.FullFileName)>0 Then
       Call MakePDFFromDoc(oDoc, myDate, UserSelectedAction)
      End If
     Catch
     End Try
    End If
   Next
  End If
 End Sub
 Sub MakePDFFromDoc(ByRef oDocument As Document, DateString As String, UserSelectedAction As Integer)
 ' oPath = oDocument.Path
 ' oFileName = oDocument.FileName(False) 'without extension
  'oDocument = ThisApplication.ActiveDocument
  oPDFAddIn = ThisApplication.ApplicationAddIns.ItemById _
  ("{0AC6FD96-2F4D-42CE-8BE0-8AEA580399E4}")
  oContext = ThisApplication.TransientObjects.CreateTranslationContext
  oContext.Type = IOMechanismEnum.kFileBrowseIOMechanism
  oOptions = ThisApplication.TransientObjects.CreateNameValueMap
  oDataMedium = ThisApplication.TransientObjects.CreateDataMedium
 oFullFileName = oDocument.File.FullFileName
  oPath = Left(oFullFileName, InStrRev(oFullFileName, "\")-1)
  oFileName = Right(oFullFileName, Len(oFullFileName)-InStrRev(oFullFileName, "\"))
  oFilePart = Left(oFileName, InStrRev(oFileName, ".")-1)
 'oRevNum = oDocument.iProperties.Value("Project", "Revision Number")
  'oDocument = ThisApplication.ActiveDocument
 ' If oPDFAddIn.HasSaveCopyAsOptions(oDataMedium, oContext, oOptions) Then
  oOptions.Value("All_Color_AS_Black") = 0
  oOptions.Value("Remove_Line_Weights") = 0
  oOptions.Value("Vector_Resolution") = 400
  oOptions.Value("Sheet_Range") = Inventor.PrintRangeEnum.kPrintAllSheets
  'oOptions.Value("Custom_Begin_Sheet") = 2
  'oOptions.Value("Custom_End_Sheet") = 4
 ' End If
 'get PDF target folder path
  'oFolder = Left(oPath, InStrRev(oPath, "\")) & "PDF"
  oFolder = oPath & "\DXF-PDF (" & DateString & ")"
 'Check for the PDF folder and create it if it does not exist
  If Not System.IO.Directory.Exists(oFolder) Then
   System.IO.Directory.CreateDirectory(oFolder)
  End If
 'Set the PDF target file name
  oDataMedium.FileName = oFolder & "\" & oFilePart & ".pdf"
 'Publish document
  If (UserSelectedAction = 1) Or (UserSelectedAction = 3) Then
   oPDFAddIn.SaveCopyAs(oDocument, oContext, oOptions, oDataMedium)'For PDF's
  End If
  If (UserSelectedAction = 2) Or (UserSelectedAction = 3) Then
   oDocument.SaveAs(oFolder & "\" & oFilePart & ".dxf", True) 'For DXF's
  End If
  'oDocument.SaveAs(oFolder & "\" & ThisDoc.ChangeExtension(".dxf"), True) 'For DXF's
  '------end of iLogic-------
 End Sub

Bạn có thể tùy chỉnh các thông số cho phù hợp với công việc của mình.

Cách sử dụng:

Copy code vào trình soạn văn bản như NotePad, lưu lại dưới dạng file .iLogicVb (ví dụ ExportDXF-PDF.iLogicVb) hoặc .txt cũng được (ExportDXF-PDF.txt).

Mở các file bản vẽ cần xuất.

Vào Tab Mange -> iLogic Browser -> Phải chuột chọn Add External Rule -> Chọn đến đường dẫn chứa file vừa lưu.

Phải chuột vào Rule ExportDXF-PDF chụn Run Rule.

Hộp thoại xuất hiện. Nếu xuất một file bản vẽ hiện hành đang mở chọn This Document, nếu xuất tất cả các file bản vẽ đang mở thì chọn All Open Documents.

Nhấn OK, hộp thoại tiếp theo xuất hiện các tùy chọn xuất.

Chọn một tùy chọn rồi nhấn OK.

Nếu lần đầu tiên chạy Rule hộp thoại sẽ xuất hiện để thiết lập thông số xuất bản vẽ. Nhấn Next để thiết lập phù hợp với yêu cầu của mình. Các lần sau hộp thoại sẽ không xuất hiện nữa.

Nhấn Finish. Một thư mục mới sẽ được tạo để chứa các file vừa xuất có tên là DXF-PDF (năm-tháng- ngày giờphútgiây).

Hoàn thành.