Skip to content

Commit

Permalink
Update zome.rb
Browse files Browse the repository at this point in the history
  • Loading branch information
zuperninja authored Nov 27, 2017
1 parent 461c60a commit c199fa0
Showing 1 changed file with 91 additions and 91 deletions.
182 changes: 91 additions & 91 deletions zome.rb
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,15 @@ def seconds_2_dhms (secs) #from makefaces.rb 1.4 Smustard.com(tm) Ruby Script
time /= 60
hours = time % 24
days = time / 24
if (days > 0) then days = days.to_s<<" Jours(s), " else days = " " end
if (hours > 0) then hours = hours.to_s<<" Heures(s), " else hours = " " end
if (days > 0) then days = days.to_s<<" Day(s), " else days = " " end
if (hours > 0) then hours = hours.to_s<<" Hour(s), " else hours = " " end
if (minutes > 0) then minutes = minutes.to_s<< " Minute(s), " else minutes = " " end
seconds = seconds.to_s<< " Seconde(s)."
seconds = seconds.to_s<< " Second(s)."
return (days<<hours<<minutes<<seconds).strip!
end
def start
$mo = Sketchup.active_model
Sketchup::set_status_text("Modélisation du Zome en cours ...")
Sketchup::set_status_text("Zome modelisation in progress...")
$mo.start_operation "PolarZonahedron - Structure Processing"
@t1 = Time.now
$entities = $mo.active_entities.add_group.entities
Expand All @@ -35,8 +35,8 @@ def ending
$mo.commit_operation
if not $surikat_z_l
UI.messagebox("\nZome Creator" <<
"\nLogiciel libre développé par Jo - [email protected]" <<
"\nhttps://github.com/surikat/zome-polar-rhombizonahedron/", "Zome Creator - Logiciel libre")
"\nLogiciel libre developped by Jo - [email protected]" <<
"\nhttps://github.com/surikat/zome-polar-rhombizonahedron/", "Zome Creator - Open software")
$surikat_z_l = true
end
end
Expand Down Expand Up @@ -204,15 +204,15 @@ def create_polarzonaedre(draw, bases, niveaux, sinus, cosinus, hypotenus)
pt1 = points[i][j][1]
pt3 = points[i][j][3]
pt4 = points[i][j][0]
if($surikat_zome['T_Tirants']=='Horizontaux')
if($surikat_zome['T_Ties']=='Horizontal')
if(i<niveaux)
pt2 = points[i][j][2]
faces.push [pt1,pt2,pt3]
end
faces.push [pt1,pt4,pt3]
faces.push [pt3,pt1,pt4] #tirants
end
if($surikat_zome['T_Tirants']=='Aucun')
if($surikat_zome['T_Ties']=='None')
if(i<niveaux)
pt2 = points[i][j][2]
faces.push [pt4,pt1,pt2,pt3]
Expand All @@ -227,7 +227,7 @@ def create_polarzonaedre(draw, bases, niveaux, sinus, cosinus, hypotenus)
diametre_r = (points[niveaux-1][0][2].distance [0,0,0]) *2
if(draw==true)
# if($surikat_zome['T_Tuiles2D']=='Oui')
# if($surikat_zome['T_Tuiles2D']=='Yes')
# create_tiles $surikat_zome
# end
msg += rapport_complet $surikat_zome
Expand All @@ -243,33 +243,33 @@ def rapport_complet params
tubes_length = tubes_length.inch
rayonConnecteurs = params["L_RayonConnecteurs"].inch
msg = ""
msg += " Côtés: #{params["N_Cotes"]} \n"
msg += " Niveaux: #{params["N_Niveaux"]} \n"
msg += " Hauteur: #{params["L_Hauteur"]} \n"
msg += " Diamètre au sol: #{params["L_Diametre"]} \n"
msg += " Sides: #{params["N_Cotes"]} \n"
msg += " Layers: #{params["N_Niveaux"]} \n"
msg += " Height: #{params["L_Hauteur"]} \n"
msg += " Ground diameter: #{params["L_Diametre"]} \n"
# msg += " Aire au sol: #{@ground_area}² \n"
msg += "\n Nombre de Connecteurs: #{@connecteurs_nb} \n"
msg += " #{params['N_Cotes']} x Connecteurs 4 branches \n"
msg += " #{sixbranch_connection} x Connecteurs 6 branches \n"
msg += " #{params['N_Cotes']} x Connecteurs 5 branches \n"
msg += " 1 x Connecteur #{params['N_Cotes']} branches \n"
msg += "\n Rayon des connecteurs: #{rayonConnecteurs} \n"
msg += " -> Longueur de tube nécessaire: #{tubes_length} \n"
msg += "\n Nombre Total de Segments: #{@segments_nb} \n"
msg += "\n Number of connectors: #{@connecteurs_nb} \n"
msg += " #{params['N_Cotes']} x Connector 4 branches \n"
msg += " #{sixbranch_connection} x Connector 6 branches \n"
msg += " #{params['N_Cotes']} x Connector 5 branches \n"
msg += " 1 x Connector #{params['N_Cotes']} branches \n"
msg += "\n Radius of the connectors: #{rayonConnecteurs} \n"
msg += " -> Length of tubes needed: #{tubes_length} \n"
msg += "\n Segments total number: #{@segments_nb} \n"
# msg += " Longeur totale des segments: #{segments_lenth} \n"
msg += " Nombre de Tirants: #{@tirants_nb} \n"
msg += " Number of Ties: #{@tirants_nb} \n"
return msg
end
def zome_al
config = [
['N_Cotes',10,'Côtés de Révolution'],
['N_Niveaux',5,'Niveaux en Hauteur'],
['L_AngleDeForme',35.2643896827547,'Angle de forme'],
['L_Arrete',1.m,'Arrête'],
['T_Tirants','Horizontaux','Tirants',"Horizontaux|Aucun"],
['L_RayonConnecteurs',150.mm,'Rayon des Connecteurs'],
['T_Ground','Non','Sol',"Oui|Non"],
['N_Cotes',10,'Sides of rotation around the axis'],
['N_Niveaux',5,'Vertical Layer'],
['L_AngleDeForme',35.2643896827547,'Shape angle'],
['L_Arrete',1.m,'Edges'],
['T_Ties','Horizontal','Ties',"Horizontal|None"],
['L_RayonConnecteurs',150.mm,'Radius of the connectors'],
['T_Ground','No','Ground',"Yes|No"],
['T_Modelisation','Faces','Modélisation',"Squelette|Faces|Tubes"]
]
$surikat_zome = {} if not $surikat_zome
Expand All @@ -291,19 +291,19 @@ def zome_al
end
}
begin
results = UI.inputbox prompts,defaults,drops,'Zonohèdre Polaire sur Angle de forme et Arrête'
results = UI.inputbox prompts,defaults,drops,'Zonohèdre Polaire based on Shape angle and Edges'
return unless results
0.upto(config.length-1){ |i|
$surikat_zome[config[i][0]] = results[i]
}
#<validation>
raise "Nombre de niveaux différents du nombre de côtés requis" if ( $surikat_zome['N_Niveaux'] == $surikat_zome['N_Cotes'] )
raise "Nombre de niveaux non nulle requis" if ( $surikat_zome['N_Niveaux'] <= 0 )
raise "Minimum 2 niveaux requis pour un Zome cohérent" if ( $surikat_zome['N_Niveaux'] < 2 )
raise "Nombre de côtés non nulle requis" if( $surikat_zome['N_Cotes'] <= 0 )
raise "Minimum 3 côtés pour un Zome cohérent" if ( $surikat_zome['N_Cotes'] < 3 )
raise "Hauteur non nulle requise" if ( $surikat_zome['L_Hauteur'] <= 0 )
raise "L'angle ne peux pas être à 90" if ( $surikat_zome['L_AngleDeForme'] == 90 )
raise "Number of layers different from the number of needed sides" if ( $surikat_zome['N_Niveaux'] == $surikat_zome['N_Cotes'] )
raise "Required a number of layers not equal to null" if ( $surikat_zome['N_Niveaux'] <= 0 )
raise "Minimum 2 layers required for coherent Zome" if ( $surikat_zome['N_Niveaux'] < 2 )
raise "Required a number of sides not equal to null" if( $surikat_zome['N_Cotes'] <= 0 )
raise "Minimum 3 sides required for coherent Zome" if ( $surikat_zome['N_Cotes'] < 3 )
raise "Required height not equal to null" if ( $surikat_zome['L_Hauteur'] <= 0 )
raise "Angle can't be equal to 90" if ( $surikat_zome['L_AngleDeForme'] == 90 )
#</validation>
rescue
UI.messagebox $!.message
Expand All @@ -314,7 +314,7 @@ def zome_al
results_tubes = UI.inputbox ['Diamètre des Tubes'],[28.mm],[],'Modélisation Tubes'
return unless results_tubes
$surikat_zome['L_TubesDiametre'] = results_tubes[0]
raise "Valeur non nulle requise" if ( $surikat_zome['L_TubesDiametre'] <= 0 )
raise "Required a value not equal to none" if ( $surikat_zome['L_TubesDiametre'] <= 0 )
rescue
UI.messagebox $!.message
retry
Expand All @@ -331,12 +331,12 @@ def zome_al
cosinus = sin(angle_forme)
retour = create_polarzonaedre(true,$surikat_zome['N_Cotes'],$surikat_zome['N_Niveaux'],sinus,cosinus,hypotenus)
msg += "Bases: #{$surikat_zome['N_Cotes']} \n"
msg += "Niveaux: #{$surikat_zome['N_Niveaux']} \n"
msg += "Diamètre: #{retour[0].inch} \n"
msg += "Hauteur: #{retour[1].inch} \n"
msg += "Angle de forme: #{angle_forme.radians} \n"
msg += "Arrête: #{hypotenus.inch} \n"
msg += "Sides: #{$surikat_zome['N_Cotes']} \n"
msg += "Layers: #{$surikat_zome['N_Niveaux']} \n"
msg += "Diameter: #{retour[0].inch} \n"
msg += "Height: #{retour[1].inch} \n"
msg += "Shape angle: #{angle_forme.radians} \n"
msg += "Edges: #{hypotenus.inch} \n"
msg += retour[2]
Expand All @@ -346,13 +346,13 @@ def zome_al
def zome_ah
config = [
['N_Cotes',10,'Côtés de Révolution'],
['N_Niveaux',5,'Niveaux en Hauteur'],
['L_AngleDeForme',35.2643896827547,'Angle de forme'],
['L_Hauteur',3000.mm,'Hauteur au Sommet'],
['T_Tirants','Horizontaux','Tirants',"Horizontaux|Aucun"],
['L_RayonConnecteurs',150.mm,'Rayon des Connecteurs'],
['T_Ground','Non','Sol',"Oui|Non"],
['N_Cotes',10,'Sides of rotation around the axis'],
['N_Niveaux',5,'Vertical Layer'],
['L_AngleDeForme',35.2643896827547,'Shape angle'],
['L_Hauteur',3000.mm,'Height au Sommet'],
['T_Ties','Horizontal','Ties',"Horizontal|None"],
['L_RayonConnecteurs',150.mm,'radius of the connectors'],
['T_Ground','No','Ground',"Yes|No"],
['T_Modelisation','Faces','Modélisation',"Squelette|Faces|Tubes"]
]
$surikat_zome = {} if not $surikat_zome
Expand All @@ -374,18 +374,18 @@ def zome_ah
end
}
begin
results = UI.inputbox prompts,defaults,drops,'RhombiZonaèdre Polaire sur Angle de forme et Hauteur'
results = UI.inputbox prompts,defaults,drops,'RhombiZonaèdre Polaire sur Shape angle et Height'
return unless results
0.upto(config.length-1){ |i|
$surikat_zome[config[i][0]] = results[i]
}
#<validation>
raise "Nombre de niveaux non nulle requis" if ( $surikat_zome['N_Niveaux'] <= 0 )
raise "Minimum 2 niveaux requis pour un Zome cohérent" if ( $surikat_zome['N_Niveaux'] < 2 )
raise "Nombre de côtés non nulle requis" if( $surikat_zome['N_Cotes'] <= 0 )
raise "Minimum 3 côtés pour un Zome cohérent" if ( $surikat_zome['N_Cotes'] < 3 )
raise "Hauteur non nulle requise" if ( $surikat_zome['L_Hauteur'] <= 0 )
raise "L'angle ne peux pas être à 90" if ( $surikat_zome['L_AngleDeForme'] == 90 )
raise "Required a number of layers not equal to null" if ( $surikat_zome['N_Niveaux'] <= 0 )
raise "Minimum 2 layers required for coherent Zome" if ( $surikat_zome['N_Niveaux'] < 2 )
raise "Required a number of sides not equal to null" if( $surikat_zome['N_Cotes'] <= 0 )
raise "Minimum 3 sides required for coherent Zome" if ( $surikat_zome['N_Cotes'] < 3 )
raise "Required height not equal to null" if ( $surikat_zome['L_Hauteur'] <= 0 )
raise "Angle can't be 90" if ( $surikat_zome['L_AngleDeForme'] == 90 )
#</validation>
rescue
UI.messagebox $!.message
Expand Down Expand Up @@ -421,24 +421,24 @@ def zome_ah
retour2 = create_polarzonaedre(true,$surikat_zome['N_Cotes'],$surikat_zome['N_Niveaux'],sinus,cosinus,hypotenus)
msg += "Bases: #{$surikat_zome['N_Cotes']} \n"
msg += "Niveaux: #{$surikat_zome['N_Niveaux']} \n"
msg += "Layers: #{$surikat_zome['N_Niveaux']} \n"
msg += "Diamètre: #{retour2[0].inch} \n"
msg += "Hauteur: #{retour2[1].inch} \n"
msg += "Angle de forme: #{angle_forme.radians} \n"
msg += "Arrête: #{hypotenus.inch} \n"
msg += "Height: #{retour2[1].inch} \n"
msg += "Shape angle: #{angle_forme.radians} \n"
msg += "Edges: #{hypotenus.inch} \n"
msg += retour2[2]
add_note msg
ending
end
def zomes_ad
config = [
['N_Cotes',10,'Côtés de Révolution'],
['N_Niveaux',5,'Niveaux en Hauteur'],
['L_AngleDeForme',35.2643896827547,'Angle de forme'],
['L_Diametre',6000.mm,'Diamètre au sol'],
['L_RayonConnecteurs',150.mm,'Rayon des Connecteurs'],
['T_Ground','Non','Sol',"Oui|Non"],
['N_Cotes',10,'Sides of rotation around the axis'],
['N_Niveaux',5,'Vertical Layer'],
['L_AngleDeForme',35.2643896827547,'Shape angle'],
['L_Diametre',6000.mm,'Ground diameter'],
['L_RayonConnecteurs',150.mm,'radius of the connectors'],
['T_Ground','No','Ground',"Yes|No"],
['T_Modelisation','Faces','Modélisation',"Squelette|Faces|Tubes"]
]
$surikat_zome = {} if not $surikat_zome
Expand All @@ -460,15 +460,15 @@ def zomes_ad
end
}
begin
results = UI.inputbox prompts,defaults,drops,'RhombiZonaèdre Polaire sur Angle de forme et Diamètre'
results = UI.inputbox prompts,defaults,drops,'RhombiZonaèdre Polaire sur Shape angle et Diamètre'
return unless results
0.upto(config.length-1){ |i|
$surikat_zome[config[i][0]] = results[i]
}
#<validation>
raise "Nombre de niveaux non nulle requis" if ( $surikat_zome['N_Niveaux'] <= 0 )
raise "Number of niveaux non nulle requis" if ( $surikat_zome['N_Niveaux'] <= 0 )
raise "Minimum 2 niveaux requis pour un Zome cohérent" if ( $surikat_zome['N_Niveaux'] < 2 )
raise "Nombre de côtés non nulle requis" if( $surikat_zome['N_Cotes'] <= 0 )
raise "Number of côtés non nulle requis" if( $surikat_zome['N_Cotes'] <= 0 )
raise "Minimum 3 côtés pour un Zome cohérent" if ( $surikat_zome['N_Cotes'] < 3 )
raise "Diamètre non nulle requis" if ( $surikat_zome['L_Diametre'] <= 0 )
raise "L'angle ne peux pas être à 90" if ( $surikat_zome['L_AngleDeForme'] == 90 )
Expand Down Expand Up @@ -506,25 +506,25 @@ def zomes_ad
retour2 = create_polarzonaedre(true,$surikat_zome['N_Cotes'],$surikat_zome['N_Niveaux'],sinus,cosinus,hypotenus)
msg += "Bases: #{$surikat_zome['N_Cotes']} \n"
msg += "Niveaux: #{$surikat_zome['N_Niveaux']} \n"
msg += "Layers: #{$surikat_zome['N_Niveaux']} \n"
msg += "Diamètre: #{$surikat_zome['L_Diametre'].inch} \n"
msg += "Hauteur: #{retour2[1].inch} \n"
msg += "Angle de forme: #{angle_forme.radians} \n"
msg += "Arrête: #{hypotenus.inch} \n"
msg += "Height: #{retour2[1].inch} \n"
msg += "Shape angle: #{angle_forme.radians} \n"
msg += "Edges: #{hypotenus.inch} \n"
msg += retour2[2]
add_note msg
ending
end
def zome_dh
config = [
['N_Cotes',10,'Côtés de Révolution'],
['N_Niveaux',5,'Niveaux en Hauteur'],
['L_Diametre',6000.mm,'Diamètre au sol'],
['L_Hauteur',3000.mm,'Hauteur au Sommet'],
['T_Tirants','Aucun','Tirants',"Horizontaux|Aucun"],
['L_RayonConnecteurs',150.mm,'Rayon des Connecteurs'],
['T_Ground','Non','Sol',"Oui|Non"],
['N_Cotes',10,'Sides of rotation around the axis'],
['N_Niveaux',5,'Vertical Layer'],
['L_Diametre',6000.mm,'Ground diameter'],
['L_Hauteur',3000.mm,'Height au Sommet'],
['T_Ties','None','Ties',"Horizontal|None"],
['L_RayonConnecteurs',150.mm,'radius of the connectors'],
['T_Ground','No','Ground',"Yes|No"],
['T_Modelisation','Squelette','Modélisation',"Squelette|Faces|Tubes"]
]
$surikat_zome = {} if not $surikat_zome
Expand All @@ -546,18 +546,18 @@ def zome_dh
end
}
begin
results = UI.inputbox prompts,defaults,drops,'RhombiZonaèdre Polaire sur Diamètre et Hauteur'
results = UI.inputbox prompts,defaults,drops,'RhombiZonaèdre Polaire sur Diamètre et Height'
return unless results
0.upto(config.length-1){ |i|
$surikat_zome[config[i][0]] = results[i]
}
#<validation>
raise "Nombre de niveaux non nulle requis" if ( $surikat_zome['N_Niveaux'] <= 0 )
raise "Number of niveaux non nulle requis" if ( $surikat_zome['N_Niveaux'] <= 0 )
raise "Minimum 2 niveaux requis pour un Zome cohérent" if ( $surikat_zome['N_Niveaux'] < 2 )
raise "Nombre de côtés non nulle requis" if( $surikat_zome['N_Cotes'] <= 0 )
raise "Number of côtés non nulle requis" if( $surikat_zome['N_Cotes'] <= 0 )
raise "Minimum 3 côtés pour un Zome cohérent" if ( $surikat_zome['N_Cotes'] < 3 )
raise "Diamètre non nulle requis" if ( $surikat_zome['L_Diametre'] <= 0 )
raise "Hauteur non nulle requise" if ( $surikat_zome['L_Hauteur'] <= 0 )
raise "Height non nulle requise" if ( $surikat_zome['L_Hauteur'] <= 0 )
#</validation>
rescue
UI.messagebox $!.message
Expand Down Expand Up @@ -596,12 +596,12 @@ def zome_dh
retour2 = create_polarzonaedre(true,$surikat_zome['N_Cotes'],$surikat_zome['N_Niveaux'],sinus,cosinus,hypotenus)
msg += "Bases: #{$surikat_zome['N_Cotes']} \n"
msg += "Niveaux: #{$surikat_zome['N_Niveaux']} \n"
msg += "Layers: #{$surikat_zome['N_Niveaux']} \n"
msg += "Diamètre: #{$surikat_zome['L_Diametre'].inch} \n"
msg += "Hauteur: #{$surikat_zome['L_Hauteur'].inch} \n"
msg += "Arrête: #{hypotenus.inch} \n"
# msg += "Angle de forme: #{asin(cosinus).radians} \n"
msg += "Angle de forme: #{acos(sinus).radians} \n"
msg += "Height: #{$surikat_zome['L_Hauteur'].inch} \n"
msg += "Edges: #{hypotenus.inch} \n"
# msg += "Shape angle: #{asin(cosinus).radians} \n"
msg += "Shape angle: #{acos(sinus).radians} \n"
msg += "Angle entre l'axe et l'arrête du dernier niveaux: #{asin(sinus).radians} \n"
msg += retour2[2]
Expand Down

0 comments on commit c199fa0

Please sign in to comment.