본문 바로가기

전체 글

[golang] 패키지 만들어보기 패키지 메인 패키지를 임포트해서 사용해보다가 패키지를 만들어보겠습니다.😎 만든 패키지는 만들어서 GOPATH 의 src 아래에 넣어야지 인식이 가능합니다. go env 명령어로 GOPATH 를 확인하고 패키지를 만들어줍니다. 저같은 경우는 C:\go-workspace\src 밑에 cal 폴더를 만들고 안에 sum.go 를 만들었습니다. // Sum.go package cal // Sum function func Sum(a int, b int) int { return a + b } 다른곳에서 이제 사용이 가능합니다. 함수 첫글자를 대문자로 해야지 그 함수를 아래처럼 외부에서 사용가능합니다. package main import ( "cal" "fmt" ) func main() { result := cal.S.. 더보기
[golang] 채널 (Channel) 고루틴 고루틴이 비동기여서, 메인이 먼져 종료가 되여 문제가 있습니다. 아래는 문제의 코드입니다. WaitGroup을 통해 대기하면 되겠지만, 그건 기다리게 할뿐 고루틴 사이에 흐름을 제어하지는 않습니다. package main import "fmt" func main() { var a, b = 10, 5 var result int go func() { result = a + b }() fmt.Printf("두 수의 합은 %d입니다.", result) } 채널 일단 고루틴이 접근할 수 있는 고루틴만의 공간을 채널이라고 생각해봤습니다. 채널은 값을 받을 때까지 대기하고 (main) 채널이 값을 받을 때 까지 고루틴도 대기 합니다. package main import "fmt" func main() { va.. 더보기
[golang] 고루틴(Gorountine) 고루틴 고루틴. 지난번에 공부했는데 기억이 안나서 기록하면서 공부해보려 합니다. 고루틴은 여러함수를 병행(Concurrent)하게 실행할수 있는 논리적 가상 스레드 입니다. 비동기가 그것을 가능하게 해줍니다. package main import ( "fmt" "math/rand" "time" ) func hello(n int) { r := rand.Intn(3) time.Sleep(time.Duration(r) * time.Second) fmt.Println(n) } func main() { for i := 0; i < 100; i++ { go hello(i) // 고루틴 100개 생성 비동기 실행 } fmt.Scanln() } 위의 코드가 비동기가 아니면 얼마나 오래 걸릴지 생각을 해보면 됩니다. 메인.. 더보기
[3dsMax python] Log Logging 모듈 print 문으로 어느 정도 로그를 남겼었지만, 스크립트를 만들어 디자이너에게 줄 경우, 로그파일이 필요해서 합니다. 참고로 맥스에 print 문이 많이 찍히게 되면 맥스가 멈춰서 한참 기다려야합니다. (무거운 파일이면 맥스가 꺼집니다) 그래서 저는 되도록이면 주요 로그는 콘솔에, 주요 로그와 세부로그는 파일로 남겨보겠습니다. 그냥 import 해서 사용하면 됩니다. 빨간 글씨로 출력이 됩니다. 하지만 default 레벨설정이 warning이여서 info 랑 debug는 출력안됩니다. import logging logging.debug("test") logging.info("test") logging.warning("test") logging.error("test") # WARNING.. 더보기
[git] 원격 브랜치 삭제하기 git push origin --delete git add . 취소 git reset HEAD fatal: refusing to merge unrelated histories www.educative.io/edpresso/the-fatal-refusing-to-merge-unrelated-histories-git-error 더보기
[3dsMax python] GUI with pymxs 파일탐색기 Pyside2를 사용하지 않고 파일을 불러와봤습니다. from pymxs import runtime as rt path = os.path.dirname(os.path.abspath(__file__)) path_to_file = rt.getOpenFileName(caption="Open A Test Excel:", filename=path+'\\') 관련자료 맥스스크립트 File Dialogs: help.autodesk.com/view/3DSMAX/2017/ENU/?guid=__files_GUID_D4B43A33_8342_4BC9_80AB_91460861D37C_htm 더보기
[3dsMax python] V-ray material with pymxs V-ray Renderer 이름이 V-ray 입니다. 카오스 그룹에서 만들었습니다. 한국지사도 있습니다. 저는 개발자여서 왜 Default 렌더러인 Arnold와 V-ray가 비슷해보이지만, 그래픽쪽 최전선에 있는 사람들 눈에는 "빛의 표현" 분야에서는 최고라고 합니다. V-ray 재질 생성 Vray가 깔려있다는 전제하에, 인터넷에 돌아다니는 맥스스크립트를 보고 파이썬으로 흉내를 내봤습니다. 놀랍게도 정상작동합니다 😎 from pymxs import runtime as rt if __name__ == '__main__': print 'Hi, velbie!' obj = rt.sphere() material = rt.VRayMtl() material.diffuse = rt.Color(255, 0, 0) # .. 더보기
[3dsMax python] Material with pymxs 모든 재질 가져오기 아래코드를 사용하면 Slate Material Editor에서 Scene Materials 에 모든정보를 가져옵니다. 😎 특정재질을 찾으려면 for문에서 이름만 비교하면 됩니다. 특정재질을 복사하려면 주석부분을 풀면됩니다. import pymxs for m in pymxs.runtime.scenematerials: print m # m2 = pymxs.runtime.copy(m) 재질의 맵에 접근하기 재질은 map을 가지고 있습니다. 그중 Diffuse map에 접근하는 방법입니다. 그렇다면 다른 map에는 어떻게 접근할까요? (이 문서를 참고해주세요) import pymxs for material in pymxs.runtime.scenematerials: print material... 더보기