시각화(3D) > 정사각형 원추(격자 모양의 디폴트로 구성) > GitHub+STL 렌더링의 디스플레이 >make_cubeGroup_180520.py v0.1

작업 환경
GeForce GTX 1070 (8GB)
ASRock Z170M Pro4S [Intel Z170chipset]
Ubuntu 16.04.4 LTS desktop amd64
TensorFlow v1.7.0
cuDNN v5.1 for Linux
CUDA v8.0
Python 3.5.2
IPython 6.0.0 -- An enhanced Interactive Python.
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu)
scipy v0.19.1
geopandas v0.3.0
MATLAB R2017b (Home Edition)
ADDA v.1.3b6
gnustep-gui-runtime v0.24.0-3.1
PyMieScatt v1.7.0

연관

  • Ref1. geometry(3D)>격자형 디폴드로 정사각추의 내부를 채우기>volfil_tetrahedron_180519.py>v0.1|결과 가시화|v0.2:Numpy 파일로 출력
  • Ref2. 시각화(3D) > GitHub > STL > Cube 디스플레이 > STL Writer 사용 > 방향에 따라 면을 표시하지 않음 > 그리지 않음 조건: 교점은 시계 방향으로 회전합니다.
  • Ref3. 시각화 > GitHub 표시 > STL > Cube > STL Writer 사용
  • GitHub STL 렌더링


    환경에 관계없이 Ref1 구현 결과를 렌더링합니다.
    Unity 렌더링을 사용하여 최대 52만 개를 시도했습니다.
    단위/geometry>droxtal 디스플레이>v0.4>13만 개droxtal 디스플레이/52만 개
    그러나 유니티가 없는 환경에서도 열람할 수 있다면 장래의 참조성은 더욱 높아질 것이다.
    GitHub STL 렌더링의 경우 열람할 수 있는 환경이 넓어집니다.

    활동 개요


  • Ref1의 v0.2 정사각추 디폴드를 사용하여volumetric filling 파일 생성
  • 출력 파일:dipole_180520.res
  • 다음 코드에 따라 STL 파일 형식으로 설정
  • 출력 파일: cubeGroup_180520_t0950.stl
  • STL 파일push를 GitHub 저장소로 가져옵니다
  • 1단계 출력 파일:dipole_180520.res


    형식은 다음과 같다.
    run
    $ head dipole_180520.res 
    -9.0000000 -9.0000000 9.0000000
    -9.0000000 -6.0000000 6.0000000
    -9.0000000 -3.0000000 3.0000000
    -9.0000000 0.0000000 0.0000000
    -9.0000000 3.0000000 -3.0000000
    
    volumetric filling 중인 디폴트의 좌표를 표시합니다.

    STL 파일로 변환


    STL 파일로 변환할 때 STL Writer를 사용합니다.
    그러나 STL Writer가 그대로 유지되는 경우 GitHub의 렌더링에 문제가 있으므로 수정(Ref.2 참조)
    STL Writer의 예제에서는 Ref.3을 참조했습니다.
    make_cubeGroup_180520.py
    import numpy as np
    import sys
    
    import STLWriter as STLWR
    # STLWriter
    # code from
    # http://code.activestate.com/recipes/578246/
    # by Manfred Moitzi
    # (renamed as STLWriter.py from recipe-578246-1.py)
    
    #
    
    '''
    v0.1 May, 20, 2018
      - read dipole positions from [IN_FILE]
      - add python_list_add()
      - get_cube() takes [size] arg
      - add make_cubeGroup()
    '''
    
    
    def python_list_add(in1, in2):
        wrk = np.array(in1) + np.array(in2)
        return wrk.tolist()
    
    
    def make_cubeGroup():
        def get_cube(size=3, origin=[0, 0, 0]):
            # cube corner points
            s = size
            p1 = python_list_add(origin, (0, 0, 0))
            p2 = python_list_add(origin, (0, 0, s))
            p3 = python_list_add(origin, (0, s, 0))
            p4 = python_list_add(origin, (0, s, s))
            p5 = python_list_add(origin, (s, 0, 0))
            p6 = python_list_add(origin, (s, 0, s))
            p7 = python_list_add(origin, (s, s, 0))
            p8 = python_list_add(origin, (s, s, s))
    
            print(p1)
    
            # define the 6 cube faces
            # faces just lists of 3 or 4 vertices
            #
            # [NOTE]
            # vertices must be defined [anticlockwise] to be seen on GitHub
            # otherwise, the face is not drawn
            #
            return [
                [p1, p3, p7, p5],  # bottom
                [p1, p5, p6, p2],  
                [p5, p7, p8, p6],
                [p7, p3, p4, p8],  # rear 
                [p1, p2, p4, p3],  # left            
                [p2, p6, p8, p4],
            ]
    
        IN_FILE = 'dipole_180520.res'  # from [volfil_tetrahedron_180519.py] v0.2
        OUT_FILE = 'cubeGroup_180520_t0950.stl'
        DIPOLE_SIZE = 5
    
        with open(IN_FILE, 'rb') as rfp:
            dipoles = np.genfromtxt(IN_FILE)
    
        with open(OUT_FILE, 'wb') as wfp:
            writer = STLWR.Binary_STL_Writer(wfp)
    
            for adipole in dipoles:
                cube = get_cube(DIPOLE_SIZE, adipole)
                writer.add_faces(cube)
    
            writer.close()
        print('OUT:', OUT_FILE)
    
    if __name__ == '__main__':
        make_cubeGroup()
    
    

    실행 예


    run
    $ python3 make_cubeGroup_180520.py
    ...
    [9.0, 0.0, 0.0]
    [9.0, 3.0, 3.0]
    [9.0, 6.0, 6.0]
    [9.0, 9.0, 9.0]
    OUT: cubeGroup_180520_t0950.stl
    
    작성된 파일은 다음과 같습니다.
    cubeGroup_180520_t0950.stl @ GitHub
    디폴트의 수는 119입니다.
    이 환경 (첫 번째 기록) 에서 회전 작업을 할 때 응답이 매우 빠르다.

    좋은 웹페이지 즐겨찾기