본문 바로가기
점진적으로 밝아지는 버텍스 칼라를 가진 100개의 plane -- 전체 Plane 개수totalPlanes = 100-- Plane 배열 생성planeArray = #()for i = 1 to totalPlanes do( -- Plane 생성 (1x1 미터, 세그먼트 1x1) myPlane = Plane length:100 width:100 lengthsegs:1 widthsegs:1 -- Plane 위치 설정 (1cm씩 위로) myPlane.position.z = (i - 1) * 1 -- Plane을 Editable Mesh로 변환 convertToMesh myPlane -- Vertex Color 맵 채널 생성 meshop.setMapSupport myPlane 0 true -- 버.. 2024. 6. 27.
구조체 연습 -- 구조체 연습 struct calcurate ( val = 0, fn add a b = ( val = a + b ), fn sub a b = ( val = a - b ), fn mul a b = ( val = a*b ), fn div a b = ( val = a/b ) ) cal = calcurate() val1 = cal.add 11 22 val2 = cal.sub 11 22 val3 = cal.mul 11 22 val4 = cal.sub 11 12.23 format "val 1 :% val 2 :% val 3 :% val 4 :% \n"val1 val2 val3 val4 구조체는 뭐 구조체죠. 별 게 있나 ㅋㅋ 2023. 8. 29.
MacroScript 만들기 macroScript subobject_Vertex ButtonText: "Vertex" category: "Modifier Stack" internalCategory: "Modifier Stack" tooltip: "Vertex Sub Object Mode" icon: #("SubObjectIcons",1) ( ) 이렇게 메크로 스크립트를 만들면 .. 이걸 저장하고 실행하는게 은근히 귀찮습니다. 일단 경로는 맥스 2024인 경우 아래와 같고 C:\Users\userName\AppData\Local\Autodesk\3dsMax\2024 - 64bit\ENU\usermacros 실하면 사실 자동으로 들어갑니다. 메크로스크립트를 인식하는듯.. 그 다음에 이걸 꺼내는게 문제인데 Customize User In.. 2023. 8. 3.
메뉴에 기능 추가하기 macroScript CreateTeapot buttonText: "CreateTeapot" category: "my category" ( startObjectCreation teapot ) macroScript 라는 명령이 있습니다 이 명령의 이름을 CreateTeapot로 하고, 텍스트도 "CreateTeapot" 라고 해줍니다. 카테고리는 "my category" 그리고 이걸 실행하면 teapot 버튼이 누른 상태가 되는 겁니다 . 이 기능은 메뉴에 커스텀으로 버튼을 추가하는데 더 중점을 두고 있습니다. 일단 이걸 실행하면,다음과 같이 됩니다. Customize User Interface 에서 방금 만든 버튼을 찾을 수 있습니다. 너무 많아서 찾기 힘들다면, 카테고리를 지정해 놓았으므로 카테고리를 .. 2023. 8. 1.
Button 만들기 rollout test "test" ( button test_Button "Button" on test_Button pressed do ( test_Button.text = "Button Pressed" ) on test_Button rightclick do ( test_Button.text = "Button RightClick" ) ) CreateDialog test 버튼 만들기는 설명이 필요없을만큼 쉽습니다. 이벤트도 이 두 개 on pressed do on rightclick do 2023. 7. 24.
롤아웃에 비트맵 띄우기 mapName = "D:\Ft00zXfaYAMUWAn.png" map = openBitMap mapName try(DestroyDialog test) catch() rollout test "비트맵 롤아웃" ( ) CreateDialog test width:512 height:512 bitmap:map bmpstyle:#bmp_center #bmp_center #bmp_tile #bmp_stretch bmpstyle:#bmp_tile bmpstyle:#bmp_stretch 2023. 7. 19.
try catch로 롤아웃 하나만 열기 일단 기본적인 롤아웃을 또 만듭시다. rollout test3 "한글이 됨" ( ) CreateDialog test3 width:200 height:200 이 상태에서 계속 만들면 계속 만들어 지는데요 일단 try catch로 창을 닫게 합시다. 닫는 함수는 DestoryDialog try( DestroyDialog test3) catch() rollout test3 "한글이 됨" ( ) CreateDialog test3 width:200 height:200 이러면 test3 다이얼로그를 닫으려 덤비는데, 만약 실패하면 걍 넘어가는게 됩니다. 이렇게 해서 연속적으로 창이 열리는 것을 막을 수 있죠 2023. 7. 18.
롤아웃 이벤트 테스트2 같은거 한 번 더 해 봅니다. CreateDialog https://help.autodesk.com/view/MAXDEV/2024/ENU/?guid=GUID-816D257C-CD2D-4753-A792-6E7AEFAFA6A7 CreateDialog [ ]\ [pos:] [width:] [height:] \ [bgcolor:] [fgcolor:] \ [bitmap:] {bmpstyle: \ [menu:] [style:] [modal:] \ [escapeEnable:] [lockHeight:] [lockWidth:] \ [autoLayoutOnResize:] [parent:] rollout test2 "한글도 잘된다" ( label posTex "Test " pos:[100,50] ) CreateDialog .. 2023. 7. 18.
롤아웃 이벤트 테스트 롤아웃 이벤트를 만듭니다. 역시 UI를 만들어야 재밌.. 롤아웃 껍데기부터 만들게요 rollout test "Hello World" ( ) CreateDialog test width:200 height:200 껍데기를 만들었습니다. 이제 빈 라벨을 카와이하게 넣어볼께요 rollout test "Hello World" ( label xLabel "X : " pos:[70,50] label yLabel "Y : " pos:[70,80] ) CreateDialog test width:200 height:200 이제 빈 라벨을 넣었으니, 마우스가 움직이면 좌표를 넣게 해볼께요 on ~ do 로 실행되는 이벤트 핸들러를 이용하면 됩니다. https://help.autodesk.com/view/MAXDEV/2024.. 2023. 7. 14.
맥스 스크립트 한글 주석이 깨질때 이런 식으로 깨질때 https://diy-dev-design.tistory.com/167 [3DS MAXscript] 스크립트 에디터 한글이 ??? 로 나오는 문제 해결 방법 3DS MAX script 는 정말 훌륭한 개발 언어이지만 아쉬운점이 없는 것은 아닙니다. 대표적인 예가 바로 한글지원 문제인데요. 개발 코드 상에 한글이 지원되는건 바라지도 않습니다. 적어도 주석이라 diy-dev-design.tistory.com 여기서 도움받았음다 Tool / Global Option File을 열어서 대충 186번째줄 근처의 code.page = -1 을 949로 바꿔주고 재시작. 대충 보니까 캐릭터 셋 949가 한글인듯 2023. 7. 14.
특정 문자 치환하기 fn replaceAllstring str findstr replaceStr = ( local newString = copy str while true do ( if keyboard.escPressed do exit f = findString newString findstr if f != undefined then ( newString = replace newString f findstr.count replaceStr ) else exit ) return newString ) s = "철수는 엄마와 함께 저녁을 먹었습니다 . 저녁을 먹고 TV를 보면서 철수는 빵과 과자를 먹었습니다. 새벽2시가 되고 철수는 다시 출출해져서 라면을 먹었습니다 아침이 되자 철수는 너무 많이 먹어서 얼굴이 부었습니다 " new.. 2023. 7. 12.
Break Point myArray = #(10,15,25,35,99) --어레이를 만들고 for i in myArray do ( local aaa = " " break() --브레이크 포인트 ) 어레이를 만들고 그걸 순회하는 코드가 있습니다. 코드 내에서는 사실 어레이를 받기만 하고 사용하는데는 없는데, 그래서 안보이니까 -_- 이걸 중간에 보려고 브레이크 포인트를 잡아 놓은 겁니다. 실제로 저런식으로 변수들이 중간에 어떤 값이 들어 있는지 확인하고 싶은 경우가 종종 있는데, 일일히 프린트 해서 보기도 좀 그렇습니다. 그럴때 디버거 다이얼로그를 열고 스크립트를 실행시키면 브레이크 포인트에서 멈춥니다. 파라미터에서 i 에 들어 있는 어레이 값이 10이라고 밝혀주고 있네요 그리고 맥스 작업이 멈춥니다. 조작이 안돼요 브레이크 .. 2023. 7. 11.
반응형