본문 바로가기
반응형

STL/stl- 기초 (numpy stl)5

[파이썬과 STL] 5. 두 점과 평면의 교점 함수 사용해보기 [파이썬과 STL] 5. 두 점과 평면의 교점 함수 사용해보기 지난시간에 정의한 함수를 사용해봅시다. import numpy as np def po2pl1(p,q,a,N): P_p=np.dot(N,p)-np.dot(N,a) P_q=np.dot(N,q)-np.dot(N,a) result=P_p*P_q if result>0: print("no intersection point") else : return abs(P_q)/(np.abs(P_p)+np.abs(P_q))*p+abs(P_p)/(np.abs(P_p)+np.abs(P_q))*q 평면은 (0,5,0)을 지나고, 법선벡터로 (0,1,0)을 갖는 평면입니다. a=np.array([0,5,0])N=np.array([0,1,0]) 점은 아래와 같이 세 점이 있.. 2020. 11. 12.
[파이썬과 STL] 4. 두 점과 평면의 교점 함수 [파이썬과 STL] 4. 두 점과 평면의 교점 함수 지난시간에 두 점과 평면의 교점을 구한 코드를 가져옵시다. import numpy as np #두 점p=np.array([2,4,5])q=np.array([-4,-2,-6]) #평면a=np.array([1,3,2])N=np.array([2,3,5]) #두 점의 평면의방정식 함수값P_p=np.dot(N,p)-np.dot(N,a)P_q=np.dot(N,q)-np.dot(N,a) #결과, 음수인 경우 교점 존재result=P_p*P_q #교점inter_p=abs(P_q)/(np.abs(P_p)+np.abs(P_q))*p+abs(P_p)/(np.abs(P_p)+np.abs(P_q))*q 이제 함수로 바꿔봅시다. 아래와 같이 바꿨습니다. def po2pl1(p,.. 2020. 11. 12.
[파이썬과 STL] 3. 두 점과 평면의 교점 [파이썬과 STL] 3. 두 점과 평면의 교점 STL 을 평면으로 잘라서 section 을 얻고 싶습니다. 이를 위해 평면과 두 점을 입력하면 두 점을 연결한 선분과 평면의 교점을 구해주는 함수가 필요합니다. 교점이 없는 경우는 아무 것도 반환하지 않고, 교점이 있는 경우는 점을 반환합니다. 평면은 한 점과, 법선벡터로 정의됩니다. 한점 (a,b,c)법선벡터 (n1,n2,n3) 위 두 조건을 만족하는 평면의 방정식은 아래와 같습니다. P(x,y,z)라고 놓겠습니다. P(x,y,z)=n1(x-a)+n2(y-b)+n3(z-c)=0 아래와 같이 벡터의 내적 형태로도 놓을 수 있습니다. P(x,y,z)=[n1,n2,n3][x,y,z]-[n1,n2,n3][a,b,c]=0 임의의 두 점을 (p1,p2,p3) (q1.. 2020. 11. 12.
[파이썬과 STL] 2. STL 데이터 접근하기 [파이썬과 STL] 2. STL 데이터 접근하기 지난 시간에 만든 코드에 이어서 설명하겠습니다. import osfrom stl import mesh path="C:/Users" os.chdir(path)ctl = mesh.Mesh.from_file('CAT.stl') stl 데이터가 ctl 이라는 변수에 저장되었습니다. stl 파일을 다룰 수 있는 여러가지 매소드가 있습니다. 점에 접근하는 메소드만 살펴봅시다. 1) points 매소드 점에 접근하는 method 는 points 입니다. >>> ctl.pointsarray([[ 613.4, -21935.7, 31444.1, ..., 553.4, -21868.2, 31515.9], [ 613.4, -21935.7, 31444.1, ..., 546.4, -.. 2020. 11. 12.
[파이썬과 STL] 1. STL 불러오기 stl 포멧은 3차원 형상의 표면을 삼각형 매쉬형태로 저장한 것입니다. stereolithography의 줄임말이고, 3D 시스템즈가 개발했습니다. 파이썬에서 STL 파일을 불러오고, STL을 원하는 대로 다루는 방법을 공부하려고 합니다. Section 생성, 측정 등을 할 예정입니다. 먼저 STL 파일을 구해야하는데요. 아래 홈페이지에서 고양이 obj 파일을 받아서 stl로 변환했습니다. https://free3d.com/ 다운로드 -> 다운로드 후 원하는 위치에 저장합니다. 저는 C드라이브 Users 폴더에 저장했습니다. STL을 불러와봅시다. stl 패키지가 설치되어 있어야 하며 아래와 같이 설치합니다. pip install numpy-stl 설치한 후 파이썬에서 아래와 같은 코드를 이용하여 slt.. 2020. 10. 15.
반응형