안녕하세요.
오랜만에 글을 올립니다.
인벤터 도면을 AutoCAD DWG 파일로 내보내는 ILOGIC 을 찾다 보니..하기 경로의 코드가 맘에 들어서 적용해보고 있는데
에러 및 문의 사항이 생기네요~
링크 : https://forums.autodesk.com/t5/inventor-programming-ilogic/name-and-location-in-code/td-p/7416320
1) 첫 구문은 에러가 발생/~
--------------------------------------
Imports SysIO = System.IO Sub Main() 'See if there are any open views If (ThisApplication.Views.Count > 0) Then 'Setup Translator to dwg Dim DWGAddIn As TranslatorAddIn = ThisApplication.ApplicationAddIns.ItemById("{C24E3AC2-122E-11D5-8E91-0010B541CD80}") Dim oContext As TranslationContext = ThisApplication.TransientObjects.CreateTranslationContext oContext.Type = kFileBrowseIOMechanism ' Create a NameValueMap object Dim oOptions As NameValueMap = ThisApplication.TransientObjects.CreateNameValueMap ' Create a DataMedium object Dim oDataMedium As DataMedium = ThisApplication.TransientObjects.CreateDataMedium 'Go through each view and save if it's a drawing document For Each view As View In ThisApplication.Views If view.Document.DocumentType = kDrawingDocumentObject Then 'Get the directory file is saved in. Can replace this with specific directory Dim dwgDir = SysIO.Path.GetDirectoryName(view.Document.FullFileName) Get name Of file without the extension And add _acad2k To it. oDataMedium.MediumType = kFileNameMedium oDataMedium.FileName = dwgDir & "\\" & _ SysIO.Path.GetFileNameWithoutExtension(view.Document.FullFileName) & _ "_acad2k.dwg" ' Check whether the translator has 'SaveCopyAs' options If DWGAddIn.HasSaveCopyAsOptions(view.Document, oContext, oOptions) Then 'Use Export To DWG to save drawing configuration and set here Dim strIniFile As String = "C:\Export Copy Main Directory\dwg\Format2000DONOTDELETE.ini" ' Create the name-value that specifies the ini file to use. oOptions.Value("Export_Acad_IniFile") = strIniFile 'Save File Call DWGAddIn.SaveCopyAs(view.Document, oContext, oOptions, oDataMedium) End If End If Next End If End Sub
-------------------------------
Dim dwgDir = SysIO.Path.GetDirectoryName(view.Document.FullFileName) 부분에서 오류가 뜨네요~~
해당 구문을 Dim dwgDir = "C:\Export Copy Main Directory\dwg\" 으로 변경했더니 작동은 하는데
내보내기 경로의 용도를 알수가 없네요..
고수들의 자문 부탁 드립니다.
Solved! Go to Solution.
Solved by doohyun.kimRP8YD. Go to Solution.
고수는 아니지만... 화장실에 있다가 소환 당했습니다...ㅠㅠ
AutoCAD 2000 이면 24년전 제품인가요?
AutoCAD 2018 기준으로 첨부 구성 파일을 사용하시면 됩니다.
C:\TEMP 경로에 첨부 파일 압축을 풀어 저장하시고 아래 iLogic 코드 실행해 보시기 바랍니다.
Dim oApplicationAddIns As ApplicationAddIns = ThisApplication.ApplicationAddIns Dim oDWGTranslatorAddIn As TranslatorAddIn = Nothing For Each oApplicationAddIn As ApplicationAddIn In oApplicationAddIns Dim sDisplayName As String = oApplicationAddIn.DisplayName If (sDisplayName.Contains("DWG") = True) Then oDWGTranslatorAddIn = oApplicationAddIn Exit For End If Next If oDWGTranslatorAddIn Is Nothing Then MessageBox.Show("Inventor DWG Translator AddIn을 찾을 수 없습니다.", "AddIn 찾기 오류", MessageBoxButtons.OK, MessageBoxIcon.Information) Exit Sub End If Dim oDrawingDocument As DrawingDocument = ThisDoc.Document If oDrawingDocument.FileSaveCounter <= 0 Then MessageBox.Show("현재 파일을 저장한 적이 없습니다." + vbCrLf + _ "현재 파일을 저장 후 다시 시도 하세요.", "현재 파일 미 저장 오류", MessageBoxButtons.OK, MessageBoxIcon.Information) Exit Sub End If Dim oTransientObjects As TransientObjects = ThisApplication.TransientObjects Dim oTranslationContext As TranslationContext = oTransientObjects.CreateTranslationContext oTranslationContext.Type = IOMechanismEnum.kFileBrowseIOMechanism Dim oNameValueMap As NameValueMap = oTransientObjects.CreateNameValueMap If oDWGTranslatorAddIn.HasSaveCopyAsOptions(oDrawingDocument, oTranslationContext, oNameValueMap) = True Then Dim sIniFile As String = "C:\TEMP\Export_ACAD_DWG.ini" If IO.File.Exists(sIniFile) = True Then oNameValueMap.Value("Export_Acad_IniFile") = sIniFile Else MessageBox.Show(sIniFile + " 파일을 찾을 수 없습니다.", "파일 없음 오류", MessageBoxButtons.OK, MessageBoxIcon.Information) Exit Sub End If Dim oDataMedium As DataMedium = oTransientObjects.CreateDataMedium oDataMedium.FileName = oDrawingDocument.FullFileName.Replace(".idw", ".dwg") If IO.File.Exists(oDataMedium.FileName) = True Then If MessageBox.Show(oDataMedium.FileName + " 파일이 이미 있습니다." + vbCrLf + _ "덮어 쓰시겠습니까?", "파일 덮어쓰기 경고", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) = DialogResult.Cancel Then Exit Sub End If End If Try oDWGTranslatorAddIn.SaveCopyAs(oDrawingDocument, oTranslationContext, oNameValueMap, oDataMedium) Catch ex As Exception MessageBox.Show(oDataMedium.FileName + " 파일을 저장할 수 없습니다." + vbCrLf + _ ex.Message, "파일 저장 오류", MessageBoxButtons.OK, MessageBoxIcon.Information) End Try End If
Autodesk Community
Can't find what you're looking for? Ask the community or share your knowledge.