moved add_column to branches/broken_stuff/add_mesh_column.py it is broken for months...
authorBrendon Murphy <meta.androcto1@gmail.com>
Sun, 7 Oct 2012 23:11:02 +0000 (23:11 +0000)
committerBrendon Murphy <meta.androcto1@gmail.com>
Sun, 7 Oct 2012 23:11:02 +0000 (23:11 +0000)
merge add stairs & wall factory to add_mesh_cad_objects

12 files changed:
add_mesh_cad_objects/Blocks.py [moved from add_mesh_walls/Blocks.py with 100% similarity]
add_mesh_cad_objects/Wallfactory.py [moved from add_mesh_walls/Wallfactory.py with 99% similarity]
add_mesh_cad_objects/__init__.py
add_mesh_cad_objects/general.py [moved from add_mesh_stairs/general.py with 100% similarity]
add_mesh_cad_objects/post.py [moved from add_mesh_stairs/post.py with 100% similarity]
add_mesh_cad_objects/rail.py [moved from add_mesh_stairs/rail.py with 100% similarity]
add_mesh_cad_objects/retainer.py [moved from add_mesh_stairs/retainer.py with 100% similarity]
add_mesh_cad_objects/stairbuilder.py [moved from add_mesh_stairs/stairbuilder.py with 98% similarity]
add_mesh_cad_objects/stringer.py [moved from add_mesh_stairs/stringer.py with 77% similarity]
add_mesh_cad_objects/tread.py [moved from add_mesh_stairs/tread.py with 100% similarity]
add_mesh_stairs/__init__.py [deleted file]
add_mesh_walls/__init__.py [deleted file]

similarity index 99%
rename from add_mesh_walls/Wallfactory.py
rename to add_mesh_cad_objects/Wallfactory.py
index c027449dd43b86e4285359283bd23ceb4a8e1734..df35b3bae4a922049eeb2e8267c8303136a7cd69 100644 (file)
@@ -32,7 +32,7 @@
 import bpy
 import mathutils
 from bpy.props import *
-from add_mesh_walls.Blocks import *
+from add_mesh_cad_objects.Blocks import *
 #from add_mesh_walls.preset_utils import *
 
 
index a083652afbf81c09ebf8631e5f998fe6ad503a63..af0d3760d6605b0bf588e2b6d6eda363f1d3936f 100644 (file)
@@ -16,7 +16,7 @@
 #
 # ##### END GPL LICENSE BLOCK #####
 # Contributed to by
-# SAYproductions, meta-androcto #
+# SAYproductions, meta-androcto, jambay, brikbot#
 
 bl_info = {
     "name": "Cad Objects",
@@ -39,12 +39,16 @@ if "bpy" in locals():
     imp.reload(add_mesh_sove)
     imp.reload(add_mesh_window)
     imp.reload(add_mesh_beam_builder)
+    imp.reload(Wallfactory)
+    imp.reload(stairbuilder)
 
 else:
     from . import add_mesh_balcony
     from . import add_mesh_sove
     from . import add_mesh_window
     from . import add_mesh_beam_builder
+    from . import Wallfactory
+    from . import stairbuilder
 
 import bpy
 
@@ -65,6 +69,10 @@ class INFO_MT_mesh_objects_add(bpy.types.Menu):
             text="Sove")
         layout.operator("mesh.add_say3d_pencere",
             text="Window")
+        layout.operator("mesh.wall_add",
+            text="Wall Factory")
+        layout.operator("mesh.stairs",
+            text="Stair Builder")
 
 
 # Register all operators and panels
similarity index 98%
rename from add_mesh_stairs/stairbuilder.py
rename to add_mesh_cad_objects/stairbuilder.py
index 9407a4e5f536f057a201898e338a3c09a504f929..7b6d3ca153de4f4525249c571b8ffca5bd9e5c5e 100644 (file)
 #-----------------------------------------------------------
 # BEGIN NEW B2.5/Py3.2 CODE
 import bpy
-from add_mesh_stairs.general import General
-from add_mesh_stairs.post import Posts
-from add_mesh_stairs.rail import Rails
-from add_mesh_stairs.retainer import Retainers
-from add_mesh_stairs.stringer import Stringer
-from add_mesh_stairs.tread import Treads
+from add_mesh_cad_objects.general import General
+from add_mesh_cad_objects.post import Posts
+from add_mesh_cad_objects.rail import Rails
+from add_mesh_cad_objects.retainer import Retainers
+from add_mesh_cad_objects.stringer import Stringer
+from add_mesh_cad_objects.tread import Treads
 from bpy.props import (BoolProperty,
                        EnumProperty,
                        IntProperty,
@@ -397,8 +397,6 @@ class stairs(bpy.types.Operator):
                 if self.typ_s in ["sId2", "sId3"]:
                     box.prop(self, 'string_tw')
                     box.prop(self, 'string_tf')
-            elif self.typ == "id4":
-                box.prop(self, 'string_n')
 
         # Tread support:
 ##        if self.make_stringer and typ_s in ["sId2", "sId3"]:
similarity index 77%
rename from add_mesh_stairs/stringer.py
rename to add_mesh_cad_objects/stringer.py
index 691a6a990222064a282b7bcab6edc9f846c8f962..99af723012e3155eb7cb0b30219553178abd3bf3 100644 (file)
 # 
 # Paul "BrikBot" Marshall
 # Created: September 19, 2011
-# Last Modified: February 16, 2011
+# Last Modified: January 29, 2011
 # Homepage (blog): http://post.darkarsenic.com/
 #                       //blog.darkarsenic.com/
 #
-# Coded in IDLE, tested in Blender 2.62.
+# Coded in IDLE, tested in Blender 2.61.
 # Search for "@todo" to quickly find sections that need work.
 #
 # ##### BEGIN GPL LICENSE BLOCK #####
@@ -174,72 +174,52 @@ class Stringer:
                     coords.append(coords[j] + Vector([0,self.wT,0]))
                 self.G.Make_mesh(coords, self.G.faces, 'stringer')
         elif self.typ == "id4":
-            if self.typ_s == "sId1":
-                # Center of the strigner:
-                offset = (self.wT / (self.nS + 1))
-                for s in range(self.nS):
-                    # Base location for the stringer:
-                    base = self.tO + (offset * (s + 1)) - (self.w / 2)
-                    start = [Vector([0, -base, -self.hT]),
-                             Vector([0, -base, -self.hT - self.rise]),
-                             Vector([0, -base - self.w, -self.hT]),
-                             Vector([0, -base - self.w, -self.hT - self.rise])]
-                    self.d = radians(self.run) / self.nT
-                    for i in range(self.nT):
-                        coords = []
-                        # Base faces.  Should be able to append more sections:
-                        tId4_faces = [[0, 1, 3, 2]]
-                        # Generate inner coordinates:
-                        t_inner = Matrix.Rotation(self.d * i, 3, 'Z')
-                        coords.append((t_inner * start[0]) + Vector([0, 0, self.rise * i]))
-                        coords.append((t_inner * start[1]) + Vector([0, 0, self.rise * i]))
-                        # Generate outer coordinates:
-                        t_outer = Matrix.Rotation(self.d * i, 3, 'Z')
-                        coords.append((t_outer * start[2]) + Vector([0, 0, self.rise * i]))
-                        coords.append((t_outer * start[3]) + Vector([0, 0, self.rise * i]))
-                        # Vert tracking variable:
-                        k = 0
-                        for j in range(self.deg):
-                            k = (j * 4) + 4
-                            tId4_faces.append([k, k - 4, k - 3, k + 1])
-                            tId4_faces.append([k - 2, k - 1, k + 3, k + 2])
-                            tId4_faces.append([k + 1, k - 3, k - 1, k + 3])
-                            tId4_faces.append([k, k - 4, k - 2, k + 2])
-                            rot = Matrix.Rotation(((self.d * (j + 1)) / self.deg) + (self.d * i), 3, 'Z')
-                            for v in start:
-                                coords.append((rot * v) + Vector([0, 0, self.rise * i]))
-                        for j in range(self.deg):
-                            k = ((j + self.deg) * 4) + 4
-                            tId4_faces.append([k, k - 4, k - 3, k + 1])
-                            tId4_faces.append([k - 2, k - 1, k + 3, k + 2])
-                            tId4_faces.append([k + 1, k - 3, k - 1, k + 3])
-                            tId4_faces.append([k, k - 4, k - 2, k + 2])
-                            rot = Matrix.Rotation(((self.d * ((j + self.deg) + 1)) / self.deg) + (self.d * i), 3, 'Z')
-                            for v in range(4):
-                                if v in [1, 3]:
-                                    incline = (self.rise * i) + (self.rise / self.deg) * (j + 1)
-                                    coords.append((rot * start[v]) + Vector([0, 0, incline]))
-                                else:
-                                    coords.append((rot * start[v]) + Vector([0, 0, self.rise * i]))
-                        self.G.Make_mesh(coords, tId4_faces, 'treads')
-            elif self.typ_s == "sId2":
-                self.circular_I_Beam()
+            offset = (self.wT / (self.nS + 1)) - (self.w / 2)
+            for s in range(self.nS):
+                base = self.tO + (offset * (s + 1))
+                start = [Vector([0, -base, -self.hT]),
+                         Vector([0, -base, -self.hT - self.rise]),
+                         Vector([0, -base - self.w, -self.hT]),
+                         Vector([0, -base - self.w, -self.hT - self.rise])]
+                self.d = radians(self.run) / self.nT
+                for i in range(self.nT):
+                    coords = []
+                    # Base faces.  Should be able to append more sections:
+                    tId4_faces = [[0, 1, 3, 2]]
+                    t_inner = Matrix.Rotation(self.d * i, 3, 'Z')
+                    coords.append((t_inner * start[0]) + Vector([0, 0, self.rise * i]))
+                    coords.append((t_inner * start[1]) + Vector([0, 0, self.rise * i]))
+                    t_outer = Matrix.Rotation(self.d * i, 3, 'Z')
+                    coords.append((t_outer * start[2]) + Vector([0, 0, self.rise * i]))
+                    coords.append((t_outer * start[3]) + Vector([0, 0, self.rise * i]))
+                    k = 0
+                    for j in range(self.deg):
+                        k = (j * 4) + 4
+                        tId4_faces.append([k, k - 4, k - 3, k + 1])
+                        tId4_faces.append([k - 2, k - 1, k + 3, k + 2])
+                        tId4_faces.append([k + 1, k - 3, k - 1, k + 3])
+                        tId4_faces.append([k, k - 4, k - 2, k + 2])
+                        rot = Matrix.Rotation(((self.d * (j + 1)) / self.deg) + (self.d * i), 3, 'Z')
+                        for v in start:
+                            coords.append((rot * v) + Vector([0, 0, self.rise * i]))
+                    for j in range(self.deg):
+                        k = ((j + self.deg) * 4) + 4
+                        tId4_faces.append([k, k - 4, k - 3, k + 1])
+                        tId4_faces.append([k - 2, k - 1, k + 3, k + 2])
+                        tId4_faces.append([k + 1, k - 3, k - 1, k + 3])
+                        tId4_faces.append([k, k - 4, k - 2, k + 2])
+                        rot = Matrix.Rotation(((self.d * ((j + self.deg) + 1)) / self.deg) + (self.d * i), 3, 'Z')
+                        for v in range(4):
+                            if v in [1, 3]:
+                                incline = (self.rise * i) + (self.rise / self.deg) * (j + 1)
+                                coords.append((rot * start[v]) + Vector([0, 0, incline]))
+                            else:
+                                coords.append((rot * start[v]) + Vector([0, 0, self.rise * i]))
+                    self.G.Make_mesh(coords, tId4_faces, 'treads')
 
         return {'FINISHED'}
 
 
-    # Adds a scalar to the given list.
-    # Util method to implement addition for use in generating the circular
-    # stringer.  Uses recursion to deal with multi-dimensional lists.
-    def add(self, scalar, matrix):
-        if matrix.__class__.__name__ == 'list':
-            for i in range(len(matrix)):
-                matrix[i] = self.add(scalar, matrix[i])
-        elif matrix.__class__.__name__ in ('int', 'float'):
-            matrix = matrix + scalar
-        return matrix
-
-
     def I_beam(self):
         mid = self.w / 2
         web = self.tw / 2
@@ -385,68 +365,6 @@ class Stringer:
         return {'FINISHED'}
 
 
-    def circular_I_Beam(self):
-        # Mesh face definitions.  Add "'slice #' * 16" to each for actual vert:
-        loop = [[0, 1, -15, -16], [1, 2, -14, -15], [2, 3, -13, -14], [3, 4, -12, -13],
-                [4, 5, -11, -12], [5, 6, -10, -11], [6, 7, -9, -10], [7, 8, -8, -9],
-                [8, 9, -7, -8], [9, 10, -6, -7], [10, 11, -5, -6], [11, 12, -4, -5],
-                [12, 13, -3, -4], [13, 14, -2, -3], [14, 15, -1, -2], [15, 0, -16, -1]]
-        end = [[0, 1, 14, 15], [1, 2, 5, 14], [2, 3, 4, 5], [5, 6, 13, 14],
-               [6, 7, 8, 9], [6, 9, 10, 13], [10, 11, 12, 13]]
-        # Center of stringer calculation:
-        offset = (self.wT / (self.nS + 1)) - (self.w / 2)
-        for s in range(self.nS):
-            base = -self.tO - (offset * (s + 1))
-            baseZ = -self.rise - self.hT
-            start = [Vector([0, base, baseZ]),
-                     Vector([0, base - (self.w - self.tw) / 2, baseZ]),
-                     Vector([0, base - (self.w - self.tw), baseZ]),
-                     Vector([0, base - self.w, baseZ]),
-                     Vector([0, base - self.w, baseZ - self.tp]),
-                     Vector([0, base - (self.w - self.tw), baseZ - self.tf]),
-                     Vector([0, base - (self.w - self.tw), baseZ - self.h + self.tf]),
-                     Vector([0, base - self.w, baseZ - self.h + self.tp]),
-                     Vector([0, base - self.w, baseZ - self.h]),
-                     Vector([0, base - (self.w - self.tw), baseZ - self.h]),
-                     Vector([0, base - (self.w - self.tw) / 2, baseZ - self.h]),
-                     Vector([0, base, baseZ - self.h]),
-                     Vector([0, base, baseZ - self.h + self.tp]),
-                     Vector([0, base - (self.w - self.tw) / 2, baseZ - self.h + self.tf]),
-                     Vector([0, base - (self.w - self.tw) / 2, baseZ - self.tf]),
-                     Vector([0, base, baseZ - self.tp])]
-            
-            # Add first end:
-            for f in end:
-                tId4_faces.append(f)
-            
-            self.d = radians(self.run) / self.nT
-            for i in range(self.nS):
-                # Coordinate list:
-                coords = []
-                # Base faces.  Should be able to append more sections:
-                tId4_faces = []
-
-                # Shift verts over and rotate:
-                rot = Matrix.Rotation(self.d * i, 3, 'Z')
-                for v in range(len(start)):
-                    start[v][1] = start[v][1] + (offset * i)
-                    coords.append((rot * start[v]) + Vector([0, 0, self.rise * i]))
-                
-                k = 0
-                for j in range(self.deg):
-                    k = (j * 4) + 4
-                    for l in self.add(k, loop):
-                        tId4_faces.append(l)
-                    rot = Matrix.Rotation(((self.d * (j + 1)) / self.deg) + (self.d * i), 3, 'Z')
-                    for v in start:
-                        coords.append((rot * v) + Vector([0, 0, self.rise * i]))
-                for f in self.add(k, end):
-                    tId4_faces.append(f)
-                self.G.Make_mesh(coords, tId4_faces, 'stringer')
-
-        return {'FINISHED'}
-
-
     def C_Beam(self):
         mid = self.w / 2
         web = self.tw / 2
diff --git a/add_mesh_stairs/__init__.py b/add_mesh_stairs/__init__.py
deleted file mode 100644 (file)
index 543d5cb..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-# Paul "BrikBot" Marshall
-# Created: July 24, 2011
-# Last Modified: November 20, 2011
-# Homepage (blog): http://post.darkarsenic.com/
-#                       //blog.darkarsenic.com/
-#
-# Coded in IDLE, tested in Blender 2.59.
-# Search for "@todo" to quickly find sections that need work.
-#
-# ##### BEGIN GPL LICENSE BLOCK #####
-#
-#  The Blender Rock Creation tool is for rapid generation of mesh rocks in Blender.
-#  Copyright (C) 2011  Paul Marshall
-#
-#  This program is free software: you can redistribute it and/or modify
-#  it under the terms of the GNU General Public License as published by
-#  the Free Software Foundation, either version 3 of the License, or
-#  (at your option) any later version.
-#
-#  This program is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-#
-#  You should have received a copy of the GNU General Public License
-#  along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-# ##### END GPL LICENSE BLOCK #####
-
-bl_info = {
-    "name": "StairBuilder",
-    "author": "Nick van Adium",
-    "version": (1,1),
-    "blender": (2, 6, 1),
-    "location": "View3D > Add > Stairs",
-    "description": "Creates a straight-run staircase with railings and stringer",
-    "warning": "Add-on is very feature incomplete beyond basic functionality.",
-    "wiki_url": "http://wiki.blender.org/index.php/Extensions:2.6/Py/"\
-        "Scripts/Add_Mesh/Stair_Builder",
-    "tracker_url": "https://projects.blender.org/tracker/index.php?"\
-        "func=detail&aid=28767",
-    "category": "Add Mesh"}
-
-if "bpy" in locals():
-    import imp
-    imp.reload(stairbuilder)
-else:
-    from add_mesh_stairs import stairbuilder
-
-import bpy
-
-# Register:
-
-def menu_func_stairs(self, context):
-    self.layout.operator(stairbuilder.stairs.bl_idname, text="StairBuilder", icon = "PLUGIN")
-
-def register():
-    bpy.utils.register_module(__name__)
-
-    bpy.types.INFO_MT_mesh_add.append(menu_func_stairs)
-
-def unregister():
-    bpy.utils.unregister_module(__name__)
-
-    bpy.types.INFO_MT_mesh_add.remove(menu_func_stairs)
-
-if __name__ == "__main__":
-    register()
diff --git a/add_mesh_walls/__init__.py b/add_mesh_walls/__init__.py
deleted file mode 100644 (file)
index d2d7576..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-# ***** BEGIN GPL LICENSE BLOCK *****
-#
-# This program is free software; you may redistribute it, and/or
-# modify it, under the terms of the GNU General Public License
-# as published by the Free Software Foundation - either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, write to:
-#
-#      the Free Software Foundation Inc.
-#      51 Franklin Street, Fifth Floor
-#      Boston, MA 02110-1301, USA
-#
-# or go online at: http://www.gnu.org/licenses/ to view license options.
-#
-# ***** END GPL LICENCE BLOCK *****
-
-bl_info = {
-    "name": "WallFactory",
-    "author": "Jambay, Brikbot",
-    "version": (0, 6, 0),
-    "blender": (2, 6, 1),
-    "location": "View3D > Add > Mesh",
-    "description": "Adds a block/rock wall.",
-    "warning": "WIP - updates pending and API not final for Blender",
-    "wiki_url": "http://wiki.blender.org/index.php/Extensions:2.6/Py/"\
-        "Scripts/Add_Mesh/WallFactory",
-    "tracker_url": "https://projects.blender.org/tracker/index.php?"\
-        "func=detail&aid=24980",
-    "category": "Add Mesh"}
-
-"""
-    This script builds a wall; at current 3D-Cursor location.
-    The wall can be modified to be a disc (radial), curved (slope), or dome (radial+slope).
-    Actually, it could be a path, or a tower, or anything made with blocks.
-    Crenelations also work which can double as arrow slits or support beam holes.
-    Slots, both vertical and horizontal, can be added as openings.
-    Steps and platforms may be added as extensions to the wall.
-"""
-
-# Version History
-# v0.59 2011/09/13     Restructured as "factory" set of scripts - preparation for including rocks.
-# v0.58 2010/12/06     Added "backside" for shelf and steps, and "cantilevered step" options.
-# v0.57 2010/12/03     Minor updates for Blender SVN maintenance.
-# v0.56 2010/11/19     Revised UI for property access/display.
-# V0.55 2010/11/15     Added stairs, improved shelf, fixed plan generation.
-# V0.54 2010/11/11     Changed version number to match sourceforge check-in,
-#                      basic shelf, and, some general cleanup.
-# V0.5 2010/10/31      Converted to Blender 2.5.4
-# V0.4 2009/11/29      Converted to Blender 2.5
-# V0.3 2009/11/28      Re-did much of the internals, everything works better, 
-#                      especially edge finding.
-# V0.2 2008/03/??      Reworked nearly all the code, many new features
-# V0.1 2007/09/14      First release!
-
-
-if "bpy" in locals():
-    import imp
-    imp.reload(Wallfactory)
-else:
-    from add_mesh_walls import Wallfactory
-
-import bpy
-
-################################################################################
-##### REGISTER #####
-
-# Define "Wall" menu
-def add_mesh_wall_ops(self, context):
-    self.layout.operator(Wallfactory.add_mesh_wallb.bl_idname, text="Block Wall", icon="PLUGIN")
-#    self.layout.operator(Wallfactory.add_mesh_wallr.bl_idname, text="Rocks", icon="PLUGIN")
-#    self.layout.operator(Wallfactory.add_mesh_column.bl_idname, text="Columns", icon="PLUGIN")
-
-
-# Add "Wall" options to the "Add Mesh" menu
-def register():
-    bpy.utils.register_module(__name__)
-
-    bpy.types.INFO_MT_mesh_add.append(add_mesh_wall_ops)
-#    bpy.types.INFO_MT_mesh_add.append(add_mesh_rockwall_button)
-#    bpy.types.INFO_MT_mesh_add.append(add_mesh_column_button)
-
-# Remove "Wall" options from the "Add Mesh" menu
-def unregister():
-    bpy.utils.unregister_module(__name__)
-
-    bpy.types.INFO_MT_mesh_add.remove(add_mesh_wall_ops)
-#    bpy.types.INFO_MT_mesh_add.remove(add_mesh_rockwall_button)
-#    bpy.types.INFO_MT_mesh_add.remove(add_mesh_column_button)
-    
-if __name__ == "__main__":
-    register()