2016년 6월 7일 화요일

인벤터 강좌 - iLogic으로 도면을 PDF로 변환하는 방법(다중 시트포함)

인벤터(Inventor) iLogic을 이용하여 인벤터 도면을 PDF로 변환하는 방법에 대해 알아보자.

다음과 같이 두 가지 방법을 예로 들겠다.

첫번째 :

ThisDoc.Document.SaveAs(ThisDoc.ChangeExtension(".pdf"), True)

이 방법은 흔히들 사용하는 방법이다. 하지만 시트가 하나의 경우에만 변환되고 다중시트일 경우에는 적합하지 않다.

파일저장은 해당 도면이 저장된 폴더에 저장된다.

위에 코드는 다른 형식으로 변환할 때도 사용된다.

dwg로 변환 : ThisDoc.Document.SaveAs(ThisDoc.ChangeExtension(".dwg"), True)
JPG로 변환 : ThisDoc.Document.SaveAs(ThisDoc.ChangeExtension(".jpg"), True)

두번째 :

아래의 방법은 인터넷 검색하다 찾았는데 출처가 어딘지 기억이 나질 않아 출처를 표시할수가 없다.

첫번째의 방법은 다중시트가 안되고 폴더 변경이 안되었다.
하지만 아래 코드는 그 문제를 해결했다고 본다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
oPath = ThisDoc.Path
oFileName = ThisDoc.FileName(False'without extension
oRevNum = iProperties.Value("Project""Revision Number")
oPDFAddIn = ThisApplication.ApplicationAddIns.ItemById _
("{0AC6FD96-2F4D-42CE-8BE0-8AEA580399E4}")
oDocument = ThisApplication.ActiveDocument
oContext = ThisApplication.TransientObjects.CreateTranslationContext
oContext.Type = IOMechanismEnum.kFileBrowseIOMechanism
oOptions = ThisApplication.TransientObjects.CreateNameValueMap
oDataMedium = ThisApplication.TransientObjects.CreateDataMedium
If oPDFAddIn.HasSaveCopyAsOptions(oDataMedium, oContext, oOptions) Then
oOptions.Value("All_Color_AS_Black"= 1
oOptions.Value("Remove_Line_Weights"= 1
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"
'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 & "\" & oFileName & ".pdf"
'Publish document
oPDFAddIn.SaveCopyAs(oDocument, oContext, oOptions, oDataMedium)
cs

댓글 없음:

댓글 쓰기