엑셀 VBA와 MIDAS NX API를 이용해서, 노드를 추가하는 Code를 작성하였다. 노드 데이터는 aNode라는 2차원 배열로 저장하였으며, aNode()에는 Node 번호, X좌표, Y좌표, Z좌표가 저장되어있다. 'Dictionary Dim dicMain As Scripting.Dictionary Dim dicSub1 As Scripting.Dictionary Dim dicSub2 As Scripting.Dictionary Dim sResp As String Dim sWebReq As String Set dicMain = New Dictionary Set dicSub1 = New DictionaryFor iC = 0 To UBound(aNode..

엑셀 VBA와 MIDAS NX API 이용하여, 재료물성을 자동으로 추가하도록 구성하였다. 재료 물성은 MIDAS 내부에 들어있는 DB를 이용하여, 아래와 같이 합성과 강재에 대해서 입력할 수 있도록 입력 데이터를 만들었다. 위와 같이 입력한 물성데이터를 이용해서, MIDAS에 재료물성이 자동으로 추가되도록 아래와 같이 Coding 하였다. 'DictionaryDim dicMain As Scripting.DictionaryDim dicSub1 As Scripting.DictionaryDim dicSub2 As Scripting.DictionaryDim dicSub3 As Scripting.DictionaryDim dicSub4 As Scripting.DictionaryDim sResp As StringD..
엑셀 VBA에서 NX API를 이용하여, Load Case 생성하기. Main 함수에서 아래와 같이 생성할 load case들을 배열로 설정하고, NX_LOADCASE_Add 라는 서브함수를 이용해서 load case가 자동으로 생성되도록 구현하였다. ' 로드케이스 생성 ' aLCase = Array( _ Array("DC", "USER"), _ Array("DW", "USER"), _ Array("LL1", "USER"), _ Array("LL2", "USER"), _ Array(..
NX API를 이용해서, 현재 모델링 내의 요소 정보와 노드 정보를 가져오고 싶을때.. 현재까지 모델링 된 총 요소 정보 가져오기 Dim sJSON As String Dim json As Object Dim elem As Object Dim elemDict As Dictionary sJSON = WebRequest("GET", "/db/elem", "") ' JSON 파싱 Set json = JsonConverter.ParseJson(sJSON) Set elemDict = json("ELEM") ' 배열 초기화 ReDim resultArr(0 To elemDict.Count - 1, 0 To 5) i = 0 For Each..
MIDAS API JSON ManualElement https://support.midasuser.com/hc/en-us/articles/35806934300825-Element MIDAS NX API 를 이용한 요소 (Element) 생성 방법 Basic Grammar{ "Assign": { "198": { "TYPE": "BEAM", "MATL": 1, "SECT": 1, "NODE": [ 30, 74 ], "ANGLE": 0 } }} NX API로 요소를 위와 같이 생성할 경우, MIDA..
VBA에서 배열을 크기를 미리 정하지 않고, 흐름에 따라서 배열 크기를 증가시키면서 사용하는 것을 동적 배열이라 하고, 이 때 redim preserve를 사용하게 된다. 일반적인 사용법을 찾아보면, redim preserve는 일차원 배열에 대해서만 사용가능하다고 나와있어, 다차원 배열을 사용하고자 할때는 어려움이 있었다. 좀 더 내용을 찾아보니, 배열에 배열을 저장하는 방식으로 사용하면, 다차원 배열처럼 사용할 수 있음을 알게 되었다. 일반적인 다차원 배열 저장방식 Sub test_array() Dim aTemp(), aTemp1(), aTemp2() Dim atest ReDim aTemp2(2, 1) aTemp2(0, 0) = "a" aTemp2(0, 1) = 1 aTemp2(1, 0) = "b" ..

3점을 지나는 원곡선의 중심좌표 및 반지름을 구하는 공식을 정리하였다. 원의 기본 방정식 : (X - X0)^2 + (Y - Y0)^2 = R^2 X^2 - 2XX0 + X0^2 + Y^2 - 2YY0 + Y0^2 = R^2 X^2 - 2XX0 + Y^2 - 2YY0 = R^2 - X0^2 - Y0^2 여기서, 반지름 R, 원 중심 X0 및 Y0는 상수이므로, 아래와 같이 C로 치환하면, C = R^2 - X0^2 - Y0^2 X^2 + Y^2 = C + 2XX0 + 2YY0 2X X0 + 2Y Y0 + C = X^2 + Y^2 즉, 세점 (Xi, Yi), (Xj, Yj), (Xk, Yk) 가 주어졌을때, [ 2Xi 2Yi 1 ] [X0] = [ Xi^2 + Yi^2 ] [ 2Xj 2Yj 1 ] [Y0]..
직접 수식을 이용하여 역행렬을 계산하는 알고리즘.행렬크기가 2X2이거나 3X3일때는 다음을 이용하여 계산하면 빠르게 구할 수 있다.소스코드는 Javascript를 이용한 것이므로, 다른 프로그램을 이용할 경우는 해당 프로그램의 문법에 맞춰 수정해야한다. if( mat.length == 2 ){ det = mat[0][0] * mat[1][1] - mat[1][0] * mat[0][1]; if( det == 0 ){ alert( "matrix is singular!"); } else { minv = []; minv.push( [ mat[1][1] / det, -1*mat[0][1] / det ] ); minv.push( [ -1* mat[1][0] / ..