/* in Datei 3dfunc41.ulp ergänzen */ //Gibt einen formatierten String zurück der eine Drahtbrücke zeichnen kann //erwartet Angaben in units // t = Cu-Dicke // dis = Leiterplattendicke string create_bridge(int ix1, int iy1, int ix2, int iy2, int iwid, real t, real dis, int c_x1, int c_x2, real pcb_height) { string out,tmp; real x1 = u2mm(ix1); real x2 = u2mm(ix2); real y1 = u2mm(iy1); real y2 = u2mm(iy2); real width = u2mm(iwid); real angel,length; real sgn =dis < 0 ? -1 : +1; real xk,yk; real hb = 0.4*sgn; if(c_x1==1) sprintf(out,"cylinder{<0,0,0><0,%f,0>%f translate<%f,%f,%f>}\n",t,width/2,x1,dis,y1); if(c_x2==1) sprintf(tmp,"cylinder{<0,0,0><0,%f,0>%f translate<%f,%f,%f>}\n",t,width/2,x2,dis,y2); out=out+tmp; if(x1,0.25 <0,%f,0>,0.25 <0,0,0>,0.25 <0,%f,0>,0.25 <1,%f,0>,0.25 <%f,%f,0>,0.25 <%f,%f,0>,0.25 <%f,%f,0>,0.25 } \n", -3.0*sgn, -2.9*sgn, hb*3, hb, length/4,hb, length*2/3-0.1,hb, length*2/3,hb); out=out+tmp; sprintf(tmp,"union { object {w} object{w rotate<0,180,0> translate<%f,0,0> } rotate<0,%f,0> translate<%f,%f,%f> texture{col_bgs} } \n", length, angel,xk,dis,yk); out=out+tmp; sprintf(tmp,"cylinder { <1.5,0,0><%f-1.5,0,0>0.45 rotate<0,%f,0> translate<%f,%f,%f> M_ISOLIATION(rand(global_seed))}\n", length, angel,xk,hb+dis,yk); return out+tmp; } /* in Datei 3d50.ulp einfügen */ unter dem Text... //************************************************************************************* //* Leiterbahnen * //************************************************************************************* ... kommt irgendwann mal ... for(i=0;i turbulence 1.0 scale <0.1,0.1,0.1> pigment_map{ [ 0.1 C_isol transmit 0.8 filter 0.0] [ 0.8 C_isol transmit 0.8 filter 0.0] [ 0.9 C_isol transmit 0.1 filter 0.0]}} finish {F_Dull}} interior {fade_power 2 fade_distance 1.0} } #end //----------------------------------------------------------------------