MIDAS NX API

[MIDAS NX API] 재료물성 추가하기

마구자바 2025. 7. 1. 17:25
반응형

 

 

 

 

엑셀 VBA와 MIDAS NX API 이용하여, 재료물성을 자동으로 추가하도록 구성하였다.

 

재료 물성은 MIDAS 내부에 들어있는 DB를 이용하여, 아래와 같이 합성과 강재에 대해서 입력할 수 있도록 입력 데이터를 만들었다.

 

위와 같이 입력한 물성데이터를 이용해서, MIDAS에 재료물성이 자동으로 추가되도록 아래와 같이 Coding 하였다.

 

'Dictionary
Dim dicMain As Scripting.Dictionary
Dim dicSub1 As Scripting.Dictionary
Dim dicSub2 As Scripting.Dictionary
Dim dicSub3 As Scripting.Dictionary
Dim dicSub4 As Scripting.Dictionary

Dim sResp As String
Dim sWebReq As String

' 엑셀 시트 선택
Worksheets("input").Activate

Set dicMain = New Dictionary
Set dicSub1 = New Dictionary

For iRow = 1 To 3

	' 재료물성값 불러오기
    sName = ActiveSheet.Cells(iCol + iRow - 1, 3)
    sStandard1 = ActiveSheet.Cells(iCol + iRow - 1, 4)
    sCode1 = ActiveSheet.Cells(iCol + iRow - 1, 5)
    sStandard2 = ActiveSheet.Cells(iCol + iRow - 1, 6)
    sCode2 = ActiveSheet.Cells(iCol + iRow - 1, 7)
    
    ' NX
    Set dicSub2 = New Dictionary
    Set dicSub3 = New Dictionary
    Set dicSub4 = New Dictionary
    
    ' standard2가 입력이 없으면 SRC..
    If sStandard2 <> "" Then         ' SRC
    
        dicSub3.Add "STANDARD", sStandard1
        dicSub3.Add "DB", sCode1
        dicSub3.Add "P_TYPE", 1
            
        dicSub4.Add "STANDARD", sStandard2
        dicSub4.Add "DB", sCode2
        dicSub4.Add "P_TYPE", 1
        
        dicSub2.Add "PARAM", Array(dicSub3, dicSub4)
    
        dicSub2.Add "TYPE", "SRC"
        dicSub2.Add "NAME", sName
    
    Else                                    ' STEEL
    
        dicSub3.Add "STANDARD", sStandard1
        dicSub3.Add "DB", sCode1
        dicSub3.Add "P_TYPE", 1
                    
        dicSub2.Add "PARAM", Array(dicSub3)
    
        dicSub2.Add "TYPE", "STEEL"
        dicSub2.Add "NAME", sName
    
    End If
    
    dicSub1.Add iRow, dicSub2

    Set dicSub2 = Nothing
    Set dicSub3 = Nothing
    Set dicSub4 = Nothing

Next iRow

dicMain.Add "Assign", dicSub1

sWebReq = JsonConverter.ConvertToJson(dicMain)
sResp = WebRequest("POST", "/db/MATL", sWebReq)
 
Set dicMain = Nothing
Set dicSub1 = Nothing

 

 

 

 

반응형