반응형
Inventor에서 3D 설계 후 2D 조립도, 부품도를 작성해서 PDF 출력을 아주 많이 하게 됩니다.
iLogic으로 PDF 출력을 쉽게 할 수 있는 방법에 대해 알아 보겠습니다.
물론! dwg를 열고 하나씩 수동으로 PDF출력을 할 수 있지만!!
2D 도면을 많이 출력 하는 회사의 경우 출력해야할 도면을 누락할 수도 있고,
은근히 도면을 PDF로 변환하는 시간도 오래 걸립니다.
오늘은 PDF 저장 방법을 두 가지 정도에 대해 알아보겠습니다.
- 하나의 2D 도면의 여러 시트를 개별의 PDF 파일로 저장하기
- 하나의 2D 도면의 여러 시트를 하나의 PDF 파일로 저장하기
- 추가로 저장 폴더가 없을 경우를 대비해서 VB.NET 의 폴더 유무 확인, 폴더 생성 코드
1. 하나의 2D 도면에서 여러시트를 개별의 PDF 파일로 저장하기
oDrawDoc = ThisApplication.ActiveDocument
oAllSheets = oDrawDoc.Sheets '→ 2D 도면 파일에서 생성된 모든 Sheet를 집합체로 가져옴.
For Each Sheet In oAllSheets '→ 집합체가 나오면 반드시 For Each문을 사용해서 접근.
oSheetName = Sheet.Name '→ Sheet의 이름을 가져옴.
oDrawDoc.Sheets(oSheetName).Activate '→ Sheet를 이름을 지정해서 활성화.
oNewDWGName = oSheetName.Split(":")(0) '→ pdf 파일이름에 사용할 Sheet이름 재가공
'※ 파일 이름에는 ":"가 사용이 안됨.
oPrintMgr = Sheet.Parent.PrintManager '→ Sheet의 PrintManager를 가져옴.
oPrintMgr.Printer = "Microsoft Print to PDF" '→ 프린터 이름 설정.
'※ 만약 실제 종이로 프린터를 하고 싶다면 그 프린터 이름을 입력!
oPrintMgr.AllColorsAsBlack = True '→ 인쇄 속성 : 모든 색상을 검은색으로
oPrintMgr.NumberOfCopies = 1 '→ 인쇄 속성 : 인쇄 매수
oPrintMgr.Orientation = kLandscapeOrientation '→ 인쇄 속성 : 인쇄 방향
oPrintMgr.PaperSize = kPaperSizeA3 '→ 인쇄 속성 : 프린트 Size
oPrintMgr.ScaleMode = kPrintBestFitScale '→ 인쇄 속성 : 축척
oPrintMgr.PrintRange = kPrintCurrentSheet '→ 인쇄 속성 : 활성 시트에 대한 설정
'※ 이 부분 때문에 oDrawDoc.Sheets(oSheetName).Activate를 적용했던 것!
oPrintMgr.PrintToFile("E:\Inventor\iLogic\"+ oNewDWGName + ".pdf") '→ 프린트를 파일로 저장
'※ PrintToFile() 괄호 안에 저장할 File Path(경로)와 파일이름.확장자 입력
Next
2. 하나의 2D 도면에서 여러시트를 하나의 PDF 파일로 저장하기
oDrawDoc = ThisApplication.ActiveDocument
oDrawDocName = oDrawDoc.DisplayName '→ pdf 파일 이름을 지정하기 위해 dwg File 이름을 가져옴.
oPrintMgr = oDrawDoc.PrintManager '→ PrintManager를 가져옴.
oPrintMgr.Printer = "Microsoft Print to PDF" '→ 프린터 이름 설정.
'※ 만약 실제 종이로 프린터를 하고 싶다면 그 프린터 이름을 입력!
oPrintMgr.AllColorsAsBlack = True '→ 인쇄 속성 : 모든 색상을 검은색으로
oPrintMgr.NumberOfCopies = 1 '→ 인쇄 속성 : 인쇄 매수
oPrintMgr.Orientation = kLandscapeOrientation '→ 인쇄 속성 : 인쇄 방향
oPrintMgr.PaperSize = kPaperSizeA3 '→ 인쇄 속성 : 프린트 Size
oPrintMgr.ScaleMode = kPrintBestFitScale '→ 인쇄 속성 : 축척
oPrintMgr.PrintRange = kPrintAllSheets '→ 인쇄 속성 : 활성 시트에 대한 설정
'※ kPrintAllSheets dwg File에 있는 모든 시트를 선택해서 프린트 함.
oPrintMgr.PrintToFile("E:\Inventor\iLogic\" + oDrawDocName + ".pdf") '→ 프린트를 파일로 저장
'※ PrintToFile() 괄호 안에 저장할 File Path(경로)와 파일이름.확장자 입력
※ 프린트의 인쇄 속성은 인벤터의 API도움말에 검색하면 자세히 나옵니다!!
3. 저장 폴더가 없을 경우를 VB.NET 의 폴더 유무 확인, 폴더 생성 코드
oFolder = "E:\Inventor\iLogic\" '→ 필요한 폴더 경로.
If System.IO.Directory.Exists(oFolder) = False Then '→ 폴더 경로가 실제로 있는지 확인하고 없다면,
System.IO.Directory.CreateDirectory(oFolder) '→ 폴더를 생성.
ElseIf System.IO.Directory.Exists(oFolder) = True Then '→ 폴더 경로가 실제로 있다면,
'※ 폴더가 있다면 해야할 명령 입력
End If
반응형
'인벤터로 배우는 코딩(iLogic) > inventor API 연구소' 카테고리의 다른 글
[iLogic] Assembly(조립품)에서 Tap Size 측정 하기 (0) | 2023.04.09 |
---|