[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [2774] branches/geodesic_domes/ geodesic_domes: saving of 114 parameters

Peter K.H. Gragert pkhgragert at gmail.com
Tue Dec 13 16:44:59 CET 2011


Revision: 2774
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=2774
Author:   pkhg
Date:     2011-12-13 15:44:49 +0000 (Tue, 13 Dec 2011)
Log Message:
-----------
saving of 114 parameters 
GD_0.GD is the temporary file
GD_start.GD is the default (if one wants to go back by loading: copy it to GD_0.GD and load)
Kilons help is filled in and usable

Modified Paths:
--------------
    branches/geodesic_domes/geodesic_domes/third_domes_panel.py

Added Paths:
-----------
    branches/geodesic_domes/geodesic_domes/tmp/
    branches/geodesic_domes/geodesic_domes/tmp/GD_0.GD
    branches/geodesic_domes/geodesic_domes/tmp/GD_start.GD

Modified: branches/geodesic_domes/geodesic_domes/third_domes_panel.py
===================================================================
--- branches/geodesic_domes/geodesic_domes/third_domes_panel.py	2011-12-13 10:25:39 UTC (rev 2773)
+++ branches/geodesic_domes/geodesic_domes/third_domes_panel.py	2011-12-13 15:44:49 UTC (rev 2774)
@@ -29,7 +29,7 @@
 
 bpy.types.Scene.geodesic_not_yet_called = BoolProperty(name="geodesic_not_called",default = True)
 
-bpy.types.Scene.gd_help_text_width = IntProperty(name = "Text Width" , description = "The width above which the text wraps" , default = 20 , max = 180 , min = 1)
+bpy.types.Scene.gd_help_text_width = IntProperty(name = "Text Width" , description = "The width above which the text wraps" , default = 60 , max = 180 , min = 20)
 
 class Geodesic_Domes_Operator_Panel(bpy.types.Panel):
     """start a GD object here"""
@@ -49,6 +49,15 @@
     bl_idname = "mesh.generate_geodesic_dome"
     bl_description = "Create object dependent on selection"
     bl_options = {'REGISTER','UNDO'}
+
+#PKHG_NEW saving and loading parameters
+    save_parameters = BoolProperty(name = "save params",\
+           description = "activation save */tmp/GD_0.GD", default = False)
+    load_parameters  = BoolProperty(name = "load params",\
+           description = "read */tmp/GD_0.GD", default = False)
+
+    gd_help_text_width = IntProperty(name = "Text Width" , description = "The width above which the text wraps" , default = 60 , max = 180 , min = 20)
+
     
     mainpages = EnumProperty(
     name="Menu",
@@ -341,11 +350,66 @@
     hstog= BoolProperty(name="hstog", default = False )
     hmeshname= StringProperty(name="hmeshname", description = "Name of an existing mesh needed!", default = "None")
 
+    name_list = ['facetype_menu','facetoggle','face_use_imported_object',
+'facewidth','fwtog','faceheight','fhtog',
+'face_detach','fmeshname','geodesic_types','import_mesh_name',
+'base_type','orientation','geodesic_class','tri_hex_star',
+'spherical_flat','use_imported_mesh','cyxres','cyyres',
+'cyxsz','cyysz','cyxell','cygap',
+'cygphase','paxres','payres','paxsz',
+'paysz','paxell','pagap','pagphase',
+'ures','vres','urad','vrad',
+'uellipse','vellipse','upart','vpart',
+'ugap','vgap','uphase','vphase',
+'uexp','vexp','usuper','vsuper',
+'utwist','vtwist','bures','bvres',
+'burad','bupart','bvpart','buphase',
+'bvphase','buellipse','bvellipse','grxres',
+'gryres','grxsz','grysz',
+'cart','frequency','eccentricity','squish',
+'radius','squareness','squarez','baselevel',
+'dual','rotxy','rotz',
+'uact','vact','um','un1',
+'un2','un3','ua','ub',
+'vm','vn1','vn2','vn3',
+'va','vb','uturn','vturn',
+'utwist','vtwist','struttype','struttoggle',
+'strutimporttoggle','strutimpmesh','strutwidth','swtog',
+'strutheight','shtog','strutshrink','sstog',
+'stretch','lift','smeshname','hubtype',
+'hubtoggle','hubimporttoggle','hubimpmesh','hubwidth',
+'hwtog','hubheight','hhtog','hublength',
+'hstog','hmeshname']    
 
+    def write_params(self,filename):
+        file = open(filename, "w", encoding="utf8", newline="\n")
+        fw = file.write
+    #for Faces!
+        for el in self.name_list:
+            fw(el + ",")
+            fw(repr(getattr(self,el)))
+            fw(",\n")
+        file.close()
+
+    def read_file(self,filename):
+        file = open(filename, "r", newline="\n")
+        result = []
+        line = file.readline()
+        while(line):
+            tmp = line.split(",")
+            result.append(eval(tmp[1]))
+            line = file.readline()
+        return result
+    
+
     def draw(self,context):
         sce = context.scene
         layout = self.layout
-        col = layout.column()        
+        row = layout.row()
+        row.prop(self,"save_parameters")
+        row.prop(self,"load_parameters")
+        col = layout.column()
+        col.label(" ")
         col.prop(self,"mainpages")
         which_mainpages = self.mainpages
         if which_mainpages == 'Main':
@@ -600,7 +664,7 @@
             # other parameters are ui : here you usually pass layout
             # text: is a list with each index representing a line of text
             
-            def multi_label(text, ui,text_width=40):
+            def multi_label(text, ui,text_width=120):
                 for x in range(0,len(text)):
                     el = textwrap.wrap(text[x], width = text_width )
             
@@ -608,14 +672,16 @@
                         ui.label(text=el[y])
 
             box = layout.box() 
-            help_text = ["Help text is put here", 
-                " line 1",
-                 "line 2",
-                 "line 3",
-                 "line 4",
-                 ".etc"]
-            text_width = bpy.context.scene.gd_help_text_width
-            box.prop(context.scene,"gd_help_text_width",slider=True)
+            help_text = ["NEW!", 
+                "New facility: save or load (nearly all) parameters",
+                 "A file GD_0.GD will be used, living in:",
+                 "geodesic_domes/tmp",
+                 "--------",
+                 "After loading you have to change a ",
+                 "parameter back and forth"
+                 "to see it"]
+            text_width = self.gd_help_text_width
+            box.prop(self,"gd_help_text_width",slider=True)
             multi_label(help_text,box, text_width)
 
     def execute(self, context):
@@ -810,9 +876,65 @@
                 obj = bpy.data.objects[-1]
                 obj.name = self.fmeshname
                 obj.location = (0,0,0)
+#PKHG save or load (nearly) all parameters                
+        if self.save_parameters:
+            self.save_parameters = False
+            try:
+                scriptpath = bpy.utils.script_paths()[0]
+                sep = os.path.sep
+                tmpdir = os.path.join(scriptpath,"addons", "geodesic_domes" , "tmp")
+#scriptpath + sep + "addons" + sep + "geodesic_domes" + sep + "tmp"                              
+                if not os.path.isdir(tmpdir):
+                    message = "***ERROR***\n" + tmpdir + "\nnot (yet) available"  
+                    
+                filename = tmpdir + sep + "GD_0.GD"
+#        self.read_file(filename)
+                try:
+                    self.write_params(filename)
+                    message = "***OK***\nparameters saved in\n" + filename
+                    print(message)
+                except:
+                    message = "***ERRROR***\n" + "writing " + filename + "\nnot possible"
+                #bpy.context.scene.instant_filenames = filenames
+                
+            except:
+                message = "***ERROR***\n Contakt PKHG, something wrong happened"
+                
+            context.scene.error_message = message
+            bpy.ops.object.dialog_operator('INVOKE_DEFAULT')
 
+        if self.load_parameters:
+            self.load_parameters = False
+            try:
+                scriptpath = bpy.utils.script_paths()[0]
+                sep = os.path.sep
+                tmpdir = os.path.join(scriptpath,"addons", "geodesic_domes" , "tmp")
+#scriptpath + sep + "addons" + sep + "geodesic_domes" + sep + "tmp"                              
+                if not os.path.isdir(tmpdir):
+                    message = "***ERROR***\n" + tmpdir + "\nnot available"  
+                    print(message)
+                filename = tmpdir + sep + "GD_0.GD"
+#        self.read_file(filename)
+                try:
+                    res = self.read_file(filename)
+                    for i,el in enumerate(self.name_list):
+#            if i < 120:
+                        print(el, res[i], "set")
+                        setattr(self,el,res[i])
+                        
+                    message = "***OK***\nparameters read from\n" + filename
+                    print(message)
+                    
+                except:
+                    message = "***ERRROR***\n" + "writing " + filename + "\nnot possible"
+                #bpy.context.scene.instant_filenames = filenames
+                
+            except:
+                message = "***ERROR***\n Contakt PKHG,\nsomething went wrong reading params happened"
+            context.scene.error_message = message
+            bpy.ops.object.dialog_operator('INVOKE_DEFAULT')
         return {'FINISHED'}
-
+    
     def invoke(self, context, event):
         global basegeodesic
         bpy.ops.view3d.snap_cursor_to_center()

Added: branches/geodesic_domes/geodesic_domes/tmp/GD_0.GD
===================================================================
--- branches/geodesic_domes/geodesic_domes/tmp/GD_0.GD	                        (rev 0)
+++ branches/geodesic_domes/geodesic_domes/tmp/GD_0.GD	2011-12-13 15:44:49 UTC (rev 2774)
@@ -0,0 +1,115 @@
+facetype_menu,'3',
+facetoggle,True,
+face_use_imported_object,False,
+facewidth,0.26006004214286804,
+fwtog,True,
+faceheight,1.0,
+fhtog,False,
+face_detach,False,
+fmeshname,'defaultface',
+geodesic_types,'Geodesic',
+import_mesh_name,'None',
+base_type,'Octahedron',
+orientation,'EdgeUp',
+geodesic_class,'Class 1',
+tri_hex_star,'tri',
+spherical_flat,'spherical',
+use_imported_mesh,False,
+cyxres,5,
+cyyres,5,
+cyxsz,1.0,
+cyysz,1.0,
+cyxell,1.0,
+cygap,1.0,
+cygphase,0.0,
+paxres,5,
+payres,5,
+paxsz,0.30000001192092896,
+paysz,1.0,
+paxell,1.0,
+pagap,1.0,
+pagphase,0.0,
+ures,8,
+vres,8,
+urad,1.0,
+vrad,0.25,
+uellipse,1.0,
+vellipse,1.0,
+upart,1.0,
+vpart,1.0,
+ugap,0.0,
+vgap,0.0,
+uphase,0.0,
+vphase,0.0,
+uexp,0.0,
+vexp,0.0,
+usuper,2.0,
+vsuper,2.0,
+utwist,0.0,
+vtwist,0.0,
+bures,8,
+bvres,8,
+burad,1.0,
+bupart,1.0,
+bvpart,1.0,
+buphase,0.0,
+bvphase,0.0,
+buellipse,1.0,
+bvellipse,1.0,
+grxres,5,
+gryres,2,
+grxsz,2.0,
+grysz,1.0,
+cart,0,
+frequency,2,
+eccentricity,1.0,
+squish,1.0,
+radius,2.8912599086761475,
+squareness,2.0,
+squarez,2.0,
+baselevel,5,
+dual,False,
+rotxy,0.0,
+rotz,0.0,
+uact,False,
+vact,False,
+um,3.0,
+un1,1.0,
+un2,1.0,
+un3,1.0,
+ua,1.0,
+ub,4.0,
+vm,1.0,
+vn1,1.0,
+vn2,1.0,
+vn3,1.0,
+va,1.0,
+vb,1.0,
+uturn,0.0,
+vturn,0.0,
+utwist,0.0,
+vtwist,0.0,
+struttype,0,
+struttoggle,True,
+strutimporttoggle,False,
+strutimpmesh,'GD_mesh',
+strutwidth,1.0,
+swtog,False,
+strutheight,1.0,
+shtog,False,
+strutshrink,1.0,
+sstog,False,
+stretch,1.0,
+lift,0.0010000000474974513,
+smeshname,'defaultstrut',
+hubtype,True,
+hubtoggle,False,
+hubimporttoggle,False,
+hubimpmesh,'None',
+hubwidth,1.0,
+hwtog,False,
+hubheight,1.0,
+hhtog,False,
+hublength,1.0,
+hstog,False,
+hmeshname,'None',


@@ Diff output truncated at 10240 characters. @@


More information about the Bf-extensions-cvs mailing list