I will show you my three files … like that, it will be clearer
file ruby
require 'sketchup.rb'
require_relative 'ruby/plugin.rb'
#require_relative 'ruby/observer/entities_observer'
#require_relative 'observer/materiels_observer'
module Heron
module Heron_rangebox
def self.run()
### run the code here
UI.messagebox('créer un projet')
end
def self.parametredlg
dlg_html = Sketchup.find_support_file "Heron_rangebox/html/formulaire2.html", "Plugins"
creation_dialog=UI::HtmlDialog.new(
{
:dialog_title => "Création Projet ",
:preferences_key => "com.sample.plugin",
:scrollable => true,
:resizable => true,
:width => 600,
:height => 400,
:left => 100,
:top => 100,
:min_width => 730,
:min_height => 620,
:max_width =>730,
:max_height => 620,
:style => UI::HtmlDialog::STYLE_DIALOG
})
creation_dialog.set_file( dlg_html)
creation_dialog.add_action_callback("form2") {|dialog, arg|
begin
# ...
rescue => e
puts(e.message)
puts(e.backtrace.join($/))
end
#arr= arg.to_s
#UI.messagebox(arr)
}
# Display the dialog box
if RUBY_PLATFORM.index "drawin"
creation_dialog.show_modal
else
creation_dialog.show
end
#creation_dossier.set_file path
#creation_dossier.add_action_callback("dlg_html") {|d, arg|
# arr= arg.to_s
# UI.messagebox(arr)
#}
#if RUBY_PLATFORM.index "drawin"
#creation_dossier.show_modal
# else
#creation_dossier.show
# end
end
unless file_loaded?(__FILE__)
# Setup Menuu
menu = UI.menu
submenu = menu.add_submenu('Boite de rangement de dessin ')
#(plugin.get_i18n_string( " " ))
item_array= ["Créer Nouveau Dessin ", "Ouvrir Un Dessin "]
def hash(i)
hash = {item_array(i) => msg(i) }
end
def self.choix
# Default code, use or delete...
mod = Sketchup.active_model # Open model
entities = mod.entities # All entities in model
number = entities.count
if number==0
filepath = UI.openpanel("Open SKP File", "c:/", " .skp")
else
fileactuel= UI.messagebox("Voulez vous enregistrer le projet actuel", MB_YESNOCANCEL)
if fileactuel==IDYES
path_to_save_to = UI.savepanel("","..//folder","file.png||*.stl||*.stlb|")
UI.messagebox(" toujours je suis à l'interieur de block IDYES")
else
if fileactuel==IDNO
secondrespond=UI.messagebox("êtes-vous sûre de quitter sans vouloir sauvegarder le projet,à défaut le projet sera complètement détruit",MB_YESNO)
if secondrespond==IDNO
UI.messagebox ("retour au case de départ")
else
UI.messagebox(" vous avez choisi de ne pas sauvegarder , tout le projet sera detruit block1")
end
else
UI.messagebox("retour au projet")
end
end
end
return if filepath.nil? # user cancelled
#UI.messagebox("return if filepath.nil?")
mod = Sketchup::active_model
#UI.messagebox("mod = Sketchup::active_model")
cdef = mod.definitions.load(filepath)
#UI.messagebox("cdef = mod.definitions.load(filepath)")
return unless cdef # good practice
# could be "next unless cdef" inside a loop
#UI.messagebox("return unless cdef")
point = Geom::Point3d::new( 0, 0, 0 ) # loaded from external file
#UI.messagebox("point = Geom::Point3d::new( 10, 10, 0 )")
cinst = mod.active_entities.add_instance(
cdef,
Geom::Transformation::new( point )
)
UI.messagebox("cinst = mod.active_entities.add_instance(
cdef,
Geom::Transformation::new( point )
)")
#ent =Sketchup.active_model.entities # Open model
#ent.load filepath
#UI.messagebox("étape déroulé avec succés")
cinst.explode
#UI.messagebox("image éclaté")
end
for i in (0.. 1)
submenu.add_item(item_array[i]) { UI.messagebox i;}
end
#submenu.add_item('tab.paramètres.title') { self.parametredlg
#UI.messagebox('réglages paramètres')
#}
# Setup Toolbar
toolbar = UI::Toolbar.new('Heronrangement')
cmd1 = UI::Command.new('Heronrangement') { self.parametredlg;
#UI.messagebox('réglages paramètres')
}#{ UI.messagebox('Créer Un Nouveau Dessin') }
cmd2 = UI::Command.new('Heronrangement') { self.choix;
}#UI.messagebox('Ouvrir un Dessin')
cmd1.small_icon = 'img/ik1.png'
cmd1.large_icon = 'img/ik1.png'
cmd2.small_icon = 'img/ik2.png'
cmd2.large_icon = 'img/ik2.png'
cmd1.tooltip = (' Créer un nouveau dessin')
cmd2.tooltip = ('Ouvrir un dessin existant ')
cmd1.status_bar_text = ('Pour créer un nouveau dessin ')
cmd2.status_bar_text = ('Pour ouvrir un dessin existant ')
#cmd.menu_text = plugin.get_i18n_string('core.toolbar.command')
toolbar = toolbar.add_item(cmd1)
toolbar = toolbar.add_item(cmd2)
toolbar.show
file_loaded(__FILE__)
end
end
end
file javascript
function sendData()
{
alert("begin step")
var ids = new Array ("dt","soc","nompr","np","adres","cp","vil","pys","mou","mail1","moe","mail2","hti","nbetg","lati","longi","ssol","nbessol");
var arg = "" ; var entry = "" ; var valid = true ;
// Iterate through the text boxes to form output argument
alert("step2")
for (i in ids) {
entry = document.getElementById(ids[i]).value
arg = arg + entry + " , ";
alert(arg)
}
window.location = \'skp:form2@\' + arg ;
}
file html
<html name="dlg_html">
<head>
<meta charset="utf-8">
<title> FORMULAIRE CREATION PROJET </title>
<link rel="stylesheet" type="text/css" href="../css/formulaire2.css" media="all" />
<script type="text/javascript" src="../js/scriptformulaire2.js">
</script>
</head>
<body>
<fieldset id="fieldset4">
<legend id="legend">
Paramètres du Projet: </legend>
<form>
<!-- Location of the first vertex -->
<fieldset id="fieldset1">
<legend id="legend"> Données Dossier </legend>
<div id="blocdiv1">
<div id="div1">
<label for="dt"> Date </label> <input type="date" id="dt" value="20/12/2015" required />
</div>
<div id="div2">
<label for="soc"> Société </label> <input type="text" id="soc" value="EFEMI" required />
</div>
<div id="div3">
<label for="nompr"> Nom/Pénom </label> <input type="text" id="nompr" value="Mr.LOUZA FRED" required />
</div>
</div>
</fieldset>
<fieldset id="fieldset2">
<legend id="legend">Données Projet</legend>
<label for="np">Nom Du Projet: </label>
<input type="text" id="np" placeholder="résidence gammarth" value="france" required></br>
<label for="adres" > Adresse Du Projet: </label>
<textarea type="text" id="adres" placeholder="15 rue de pascal" value ="" required></textarea></br>
<label for="cp" > Code Postal:</label>
<input type="text" id="cp" placeholder="75020" value="" required></br>
<label for="vil">Ville </label>
<input type="text" id="vil" placeholder="Paris" value="" required></br>
<label for="pys" >Pays </label>
<input type="text" id="pys" placeholder="France" value="" required></br>
<label for="mou">Maitre D'ouvrage </label>
<input type="text" id="mou" placeholder="MOU" value=""></br>
<label for="mail1"> Email </label>
<input type="email" id="mail1" placeholder="mou@mou.com" value="" ></br>
<label for="moe">Maitre D'oeuvre </label>
<input type="text" id="moe" placeholder="MOE" value="" ></br>
<label for="mail2">Email </label>
<input type="email" id="mail2" placeholder="moe@moe.com" value="" ></br>
</fieldset >
<fieldset id="fieldset3" >
<legend id="legend"> Données Immeuble </legend>
<label for="hti">Hauteur D'immeuble:</label>
<input type="number" id="hti" placeholder="15" value="" required></br>
<label for="nbetg">Nombre D'étage </label>
<input type="number" id="nbetg" placeholder="2" value="" required></br>
<label for="lati" >Latitude </label>
<input type="text" id="lati" placeholder="latitude" value="100.000"></br>
<label for="longi" >Longitude </label>
<input type="text" id="longi" placeholder="longitude" value="100.000"></br>
<label for="ssol" > Sous-sol </label>
<input type="text" id="ssol" placeholder="OUI/NON" value="OUI"></br>
<label for="nbessol">Nombre De Niveau Sous-sol </label>
<input type="number" id="nbessol" placeholder="1" value="1"></br>
</fieldset>
<br /><br />
<!-- Send points to JavaScript -->
<div id="div4">
<input type="button" style= "color:white;background-color:green" value="Annuler" accesskey="a" onclick="self.close()";/>
<input type="button" style ="color:white;background-color:green" onclick="sendData();" accesskey="c" value="Enregistrer" />
</div>
</form>
</fieldset>
</body>
</html>