Community
인벤터 Inventor - 한국어
프로그램에 관한 사용 방법, 기술, 정보 등을 검색하고, 질문을 통해 서로 도움을 주고 받을 수 있습니다.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

[ilogic] Inventor idw를 AutoCAD DWG 내보내기 저장 구문 문의

6 REPLIES 6
SOLVED
Reply
Message 1 of 7
손광호
293 Views, 6 Replies

[ilogic] Inventor idw를 AutoCAD DWG 내보내기 저장 구문 문의

안녕하세요.

오랜만에 글을 올립니다.

인벤터 도면을 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\" 으로 변경했더니 작동은 하는데

내보내기 경로의 용도를 알수가 없네요..

고수들의 자문 부탁 드립니다.
 

 

줌인테크 Techanical Support Engineer
6 REPLIES 6
Message 2 of 7
daeun_jun
in reply to: 손광호

고수님 소환 합니다 @doohyun.kimRP8YD 
이 에러는 어떻게 해야할까요?

Autodesk Community


Product Specialist, Daeun Jun
Message 3 of 7
손광호
in reply to: 손광호

^^ 지정하신 고수님이 빨리 봐주시면 감사~

 

가볍게 해결해주실듯 합니다.~

줌인테크 Techanical Support Engineer
Message 4 of 7

고수는 아니지만... 화장실에 있다가 소환 당했습니다...ㅠㅠ

 

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

 

Message 5 of 7
손광호
in reply to: 손광호

제시해주신 부분으로 적용해서 실행했는데

 

_0-1715924561652.png

 

 

상기 이미지 처럼 저장되어 있는 원본 도면을 덮어 씌울건지만 나오네요~.

다시 한번 봐주세요..

 

줌인테크 Techanical Support Engineer
Message 6 of 7
손광호
in reply to: 손광호

앗..실수.!

제가 idw 테스트 해야 하는데 dwg로 테스트해보니 

위와 같은 메세지가 나왔네요~

idw로는 AutoCAD DWG가 잘 저장 되네요~

줌인테크 Techanical Support Engineer
Message 7 of 7

아잉~부끄럽게;;; 뭐또 그런 상황까지.... ㅋㅋ
역시... 고수 맞으셨어요!!!! 감사합니다. 🙂

Autodesk Community


Product Specialist, Daeun Jun

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums