2013-07-15 2 views
0

내 문제는 간단합니다 : 내가 원하는 것을 렌더링하는 코드가 있지만 모듈에 넣을 때 최상위 개체가 없다는 메시지를 렌더링하면 OpenSCAD에서 오류가 발생합니다.모듈에서 OpenSCAD 코드를 바꿈 코드

difference() 
    { 
     flipper(length, res, chord, xlambda, xA, ylambda, yA, phase); 
     //dye channels 
     dye_channel(len_dye_1, loc_dye_1, chord, xlambda, xA, ylambda, dye_r_1); 
     dye_channel(len_dye_2, loc_dye_2, chord, xlambda, xA, ylambda, dye_r_2); 
     //dye_outlet 
     translate([0,0,len_dye_1*floor(xlambda*chord)]) rotate([0,90,0]) cylinder(r=dye_r_1,h=loc_dye_1,$fn=25); 
     translate([0,0,len_dye_2*floor(xlambda*chord)]) rotate([0,90,0]) cylinder(r=dye_r_2,h=loc_dye_2,$fn=25); 
     //screw holes 
     translate([loc_screw_1,0,0]) cylinder(r=screw_r_1,h=len_screw_1); 
     translate([loc_screw_2,0,0]) cylinder(r=screw_r_2,h=len_screw_2); 
    } 

모듈에 넣으면 오류가 발생합니다. 다른 루틴의

module dye_flipper(len_dye_1, len_dye_2, loc_dye_1, loc_dye_2, len_screw_1, dye_r_1, 
    dye_r_2, len_screw_2, loc_screw_1, loc_screw_2, screw_r_1, screw_r_2, length, res, 
    chord, xlambda, xA, ylambda, yA, phase) 
    {...} 

기능은 조금 복잡하다, 그리고 나는 우리가 블랙 박스로 취급 할 수 상상한다. 차이 코드 자체만으로 원하는 객체를 생성합니다. 좋은 프로그래밍 연습처럼 보이기 때문에 모듈에 넣고 싶습니다.

+0

모듈로 렌더링 할 때도 같은 결과가 나타납니다. 그러나, 나는 여분의 모듈을 가지고 있지 않다. 문제를 일으킬 수있는 유일한 사실은 내부 openscad 함수 이름 인'length'라는 변수가 있다는 것입니다. 이름을 바꿔서 문제가 해결되는지 확인할 수 있습니다. –

답변

2

간단하지만 ... 실제로 모듈을 정의한 후에 모듈을 호출하고 있습니까? dye_flipper (...)