2017-10-18 3 views
0

openscad에서 두 객체 사이의 날카로운 모서리를 피하는 방법을 알고 싶습니다.openscad에서 객체 사이의 날카로운 모서리를 부드럽게하십시오

MWE : 다음과 같은 코드를 사용하여 실린더와 구형 오브젝트 사이의 날카로운 모서리를 제공합니다.

sphere (r=0.3, $fn=50); 

rotate([90,0,0]) 
{ 
cylinder (h=2, r=0.1, center=true, $fn=20); 
} 

rotate([0,90,0]) 
{ 
cylinder (h=2, r=0.1, center=true, $fn=20); 
} 

실제로 무엇을 찾고 있습니까?

실린더와 구체를 연결하는 '360 도의 3D 아크'입니다. 팽창하는 기둥 같은 것.

minkowski() 함수 (아래 코드)를 사용하여 몇 가지 다른 조합을 시도했지만 구체와 관련하여 실린더 끝이 부드럽게되지 않습니다.

module draw(){ 
sphere (r=0.3, $fn=50); 

rotate([90,0,0]) 
{ 
cylinder (h=2, r=0.1, center=true, $fn=20); 
} 

rotate([0,90,0]) 
{ 
cylinder (h=2, r=0.1, center=true, $fn=20); 
} 

} 

minkowski(){ 
draw(); 
sphere(0.01); 
} 

아무에게도 나에게 힌트를 줄 수 있습니까?

답변

0

부정적인 도너츠는 어떨까요? 당신은 아마 여기에 수학에 개선 할 수 있도록

sphere (r=0.3, $fn=50); 

rotate([90,0,0]) 
    cylinder (h=2, r=0.1, center=true, $fn=20); 
rotate([0,90,0]) 
    cylinder (h=2, r=0.1, center=true, $fn=20); 

for(r = [0 : 90 : 270]) 
    rotate([90,0,r]) negative_donut(); 

module negative_donut() { 
    difference(){ 
     translate([0, 0, 0.3]) donut(0.1,0.05); 
     translate([0, 0, 0.345]) donut(0.2,0.1); 
    }  
} 

module donut(r1, r2){ 
    rotate_extrude($fn=50) 
    translate([r1, 0, 0]) 
    circle(r = r2);  
} 

enter image description here

나는, 크기와 거리를 eyeballed.