|
|
I am trying to draw several bonding wires between electronics components. I
opted to use sphere_sweep because the wires should roughly follow a parabola.
However, when I add too many instances to my design, only a small part of the
wires is represented.
Here is the code to reproduce the problem:
//#version 3.6;
#include "colors.inc"
global_settings {
assumed_gamma 1.0
max_trace_level 10
}
camera{
location <-20,10, -4>
direction 1.5*z
right x*image_width/image_height
look_at <4,0,-4>
}
background {color rgb <1,1,1>}
light_source {
<0, 0, 0> // light's position (translated below)
color rgb <1, 1, 1> // light's color
translate <-30, 30, -30>
}
#macro Bonding(Inizio,Fine)
#local Distanza= vlength(Fine-Inizio);
#local Raggio = 0.020;
sphere_sweep{
cubic_spline
4,
Inizio + <0,-Distanza,0>, Raggio
Inizio, Raggio
Fine, Raggio
Fine + <0,-Distanza,0>, Raggio
tolerance 0.1
texture{pigment{Red}}
}
#end
#declare Altezza_base = 0.5;
#declare Altezza_gradino = 1;
#declare Altezza_cima_package = Altezza_base+Altezza_gradino;
#declare Altezza_ceramica = 0.5;
#declare Altezza_pellet = 0.5;
#declare Altezza_peltier = Altezza_ceramica*3+Altezza_pellet*2;
#declare Altezza_Base = 0.63;
#declare Altezza_scheda = 1.2;
#declare Quota_scheda =
Altezza_cima_package+Altezza_peltier-Altezza_scheda+Altezza_Base;
#declare Pos_x_ceramica = 0;
#declare Pos_z_ceramica = 0;
// Posizione pad
#declare Pad_Ceramica_base_esterni_1 = <Pos_x_ceramica,
Quota_scheda+Altezza_scheda, Pos_z_ceramica> + <-3.40, 0, -3.15>;
#declare Pad_Ceramica_base_esterni_2 = <Pos_x_ceramica,
Quota_scheda+Altezza_scheda, Pos_z_ceramica> + <-2.60, 0, -3.15>;
#declare Pad_Ceramica_base_esterni_3 = <Pos_x_ceramica,
Quota_scheda+Altezza_scheda, Pos_z_ceramica> + <-2.20, 0, -3.15>;
#declare Pad_Ceramica_base_esterni_4 = <Pos_x_ceramica,
Quota_scheda+Altezza_scheda, Pos_z_ceramica> + <-1.80, 0, -3.15>;
#declare Pad_Ceramica_base_esterni_5 = <Pos_x_ceramica,
Quota_scheda+Altezza_scheda, Pos_z_ceramica> + <-1.40, 0, -3.15>;
#declare Pad_Ceramica_base_esterni_6 = <Pos_x_ceramica,
Quota_scheda+Altezza_scheda, Pos_z_ceramica> + <-1.00, 0, -3.15>;
#declare Pad_Ceramica_base_esterni_7 = <Pos_x_ceramica,
Quota_scheda+Altezza_scheda, Pos_z_ceramica> + <-0.60, 0, -3.15>;
#declare Pad_Ceramica_base_esterni_8 = <Pos_x_ceramica,
Quota_scheda+Altezza_scheda, Pos_z_ceramica> + <-0.20, 0, -3.15>;
#declare Pad_Ceramica_base_esterni_9 = <Pos_x_ceramica,
Quota_scheda+Altezza_scheda, Pos_z_ceramica> + <0.20, 0, -3.15>;
#declare Pad_Ceramica_base_esterni_10 = <Pos_x_ceramica,
Quota_scheda+Altezza_scheda, Pos_z_ceramica> + <0.60, 0, -3.15>;
// Posizione pad
#declare Pad_Ceramica_scheda_1 = <Pos_x_ceramica-3.40,
Quota_scheda+Altezza_scheda, Pos_z_ceramica-4.70> + <-0.0, 0, 0>;
#declare Pad_Ceramica_scheda_2 = <Pos_x_ceramica-3.40,
Quota_scheda+Altezza_scheda, Pos_z_ceramica-4.70> + <0.8, 0, 0>;
#declare Pad_Ceramica_scheda_3 = <Pos_x_ceramica-3.40,
Quota_scheda+Altezza_scheda, Pos_z_ceramica-4.70> + <1.2, 0, 0>;
#declare Pad_Ceramica_scheda_4 = <Pos_x_ceramica-3.40,
Quota_scheda+Altezza_scheda, Pos_z_ceramica-4.70> + <1.6, 0, 0>;
#declare Pad_Ceramica_scheda_5 = <Pos_x_ceramica-3.40,
Quota_scheda+Altezza_scheda, Pos_z_ceramica-4.70> + <2.0, 0, 0>;
#declare Pad_Ceramica_scheda_6 = <Pos_x_ceramica-3.40,
Quota_scheda+Altezza_scheda, Pos_z_ceramica-4.70> + <2.4, 0, 0>;
#declare Pad_Ceramica_scheda_7 = <Pos_x_ceramica-3.40,
Quota_scheda+Altezza_scheda, Pos_z_ceramica-4.70> + <2.8, 0, 0>;
#declare Pad_Ceramica_scheda_8 = <Pos_x_ceramica-3.40,
Quota_scheda+Altezza_scheda, Pos_z_ceramica-4.70> + <3.2, 0, 0>;
#declare Pad_Ceramica_scheda_9 = <Pos_x_ceramica-3.40,
Quota_scheda+Altezza_scheda, Pos_z_ceramica-4.70> + <3.6, 0, 0>;
#declare Pad_Ceramica_scheda_10 = <Pos_x_ceramica-3.40,
Quota_scheda+Altezza_scheda, Pos_z_ceramica-4.70> + <4.0, 0, 0>;
object{Bonding(Pad_Ceramica_base_esterni_1, Pad_Ceramica_scheda_1)}
object{Bonding(Pad_Ceramica_base_esterni_2, Pad_Ceramica_scheda_2)}
object{Bonding(Pad_Ceramica_base_esterni_3, Pad_Ceramica_scheda_3)}
object{Bonding(Pad_Ceramica_base_esterni_4, Pad_Ceramica_scheda_4)}
object{Bonding(Pad_Ceramica_base_esterni_5, Pad_Ceramica_scheda_5)}
object{Bonding(Pad_Ceramica_base_esterni_6, Pad_Ceramica_scheda_6)}
object{Bonding(Pad_Ceramica_base_esterni_7, Pad_Ceramica_scheda_7)}
object{Bonding(Pad_Ceramica_base_esterni_8, Pad_Ceramica_scheda_8)}
object{Bonding(Pad_Ceramica_base_esterni_9, Pad_Ceramica_scheda_9)}
object{Bonding(Pad_Ceramica_base_esterni_10, Pad_Ceramica_scheda_10)}
If I comment out the last line, however, the wires are drawn in their entirety.
Could someone explain what am I doing wrong here?
Thank you in advance
Post a reply to this message
|
|