diff options
author | Stephen Leger <stephen@3dservices.ch> | 2017-08-03 16:59:40 +0300 |
---|---|---|
committer | Stephen Leger <stephen@3dservices.ch> | 2017-08-08 16:17:51 +0300 |
commit | 80914c55924995493f6e1bcb92a2bcb8e241d200 (patch) | |
tree | 069fc210b813fdfc93be6a54e8e269b6724a24a8 | |
parent | 253a936d60bf944b303bd899d9edbbc543af989b (diff) |
archipack: improve labels to support i18n, fix regression in boolean, division by 0 error in roof
-rw-r--r-- | archipack/archipack_autoboolean.py | 64 | ||||
-rw-r--r-- | archipack/archipack_cutter.py | 18 | ||||
-rw-r--r-- | archipack/archipack_door.py | 64 | ||||
-rw-r--r-- | archipack/archipack_fence.py | 94 | ||||
-rw-r--r-- | archipack/archipack_floor.py | 458 | ||||
-rw-r--r-- | archipack/archipack_object.py | 2 | ||||
-rw-r--r-- | archipack/archipack_rendering.py | 12 | ||||
-rw-r--r-- | archipack/archipack_roof.py | 226 | ||||
-rw-r--r-- | archipack/archipack_slab.py | 16 | ||||
-rw-r--r-- | archipack/archipack_stair.py | 98 | ||||
-rw-r--r-- | archipack/archipack_wall2.py | 58 | ||||
-rw-r--r-- | archipack/archipack_window.py | 36 | ||||
-rw-r--r-- | archipack/presets/archipack_materials/roof.txt | 3 | ||||
-rw-r--r-- | archipack/presets/archipack_window/180x210_flat_3.py | 2 | ||||
-rw-r--r-- | archipack/presets/archipack_window/240x210_rail_3.py | 2 |
15 files changed, 574 insertions, 579 deletions
diff --git a/archipack/archipack_autoboolean.py b/archipack/archipack_autoboolean.py index f304ced0..62841fa5 100644 --- a/archipack/archipack_autoboolean.py +++ b/archipack/archipack_autoboolean.py @@ -30,16 +30,6 @@ from bpy.props import EnumProperty from mathutils import Vector -""" -from os import path -def debug_using_gl(context, filename): - context.scene.update() - temp_path = "C:\\tmp\\" - context.scene.render.filepath = path.join(temp_path, filename + ".png") - bpy.ops.render.opengl(write_still=True) -""" - - class ArchipackBoolManager(): """ Handle three methods for booleans @@ -95,7 +85,7 @@ class ArchipackBoolManager(): 'archipack_robusthole' in wall or 'archipack_handle' in wall) - def datablock(self, o, basis='WALL'): + def datablock(self, o): """ get datablock from windows and doors return @@ -103,15 +93,10 @@ class ArchipackBoolManager(): None when not found """ d = None - if o.data: - if basis == 'WALL': - if "archipack_window" in o.data: - d = o.data.archipack_window[0] - elif "archipack_door" in o.data: - d = o.data.archipack_door[0] - elif basis == 'ROOF': - if "archipack_roof" in o.data: - d = o.data.archipack_roof[0] + if "archipack_window" in o.data: + d = o.data.archipack_window[0] + elif "archipack_door" in o.data: + d = o.data.archipack_door[0] return d def prepare_hole(self, hole): @@ -135,7 +120,7 @@ class ArchipackBoolManager(): return hole return None - def _generate_hole(self, context, o, basis='WALL'): + def _generate_hole(self, context, o): # use existing one if self.mode != 'ROBUST': hole = self.get_child_hole(o) @@ -143,7 +128,7 @@ class ArchipackBoolManager(): # print("_generate_hole Use existing hole %s" % (hole.name)) return hole # generate single hole from archipack primitives - d = self.datablock(o, basis) + d = self.datablock(o) hole = None if d is not None: if (self.itM is not None and ( @@ -390,21 +375,21 @@ class ArchipackBoolManager(): elif modif is not None: wall.modifiers.remove(modif) - def get_basis_type(self, o): - if o.data is not None: - if "archipack_wall2" in o.data: - return 'WALL' - elif "archipack_roof" in o.data: - return 'ROOF' - elif "archipack_wall" in o.data: - return 'WALL' - return 'DEFAULT' - def autoboolean(self, context, wall): """ Entry point for multi-boolean operations like in T panel autoBoolean and RobustBoolean buttons """ + + if wall.data is not None and "archipack_wall2" in wall.data: + # ensure wall modifier is there before any boolean + # to support "revival" of applied modifiers + m = wall.modifiers.get("Wall") + if m is None: + wall.select = True + context.scene.objects.active = wall + wall.data.archipack_wall2[0].update(context) + bpy.ops.object.select_all(action='DESELECT') context.scene.objects.active = None childs = [] @@ -412,12 +397,9 @@ class ArchipackBoolManager(): # get wall bounds to find what's inside self._get_bounding_box(wall) - # filter roofs when wall is roof - basis = self.get_basis_type(wall) - # either generate hole or get existing one for o in context.scene.objects: - h = self._generate_hole(context, o, basis) + h = self._generate_hole(context, o) if h is not None: holes.append(h) childs.append(o) @@ -484,8 +466,7 @@ class ArchipackBoolManager(): # generate holes for crossing window and doors self.itM = wall.matrix_world.inverted() - basis = self.get_basis_type(wall) - d = self.datablock(o, basis) + d = self.datablock(o) hole = None hole_obj = None @@ -680,17 +661,14 @@ class ARCHIPACK_OT_generate_hole(Operator): manager = ArchipackBoolManager(mode='HYBRID') o = context.active_object - # filter roofs when o is roof - basis = manager.get_basis_type(o) - - d = manager.datablock(o, basis) + d = manager.datablock(o) if d is None: self.report({'WARNING'}, "Archipack: active object must be a door, a window or a roof") return {'CANCELLED'} bpy.ops.object.select_all(action='DESELECT') o.select = True context.scene.objects.active = o - hole = manager._generate_hole(context, o, basis) + hole = manager._generate_hole(context, o) manager.prepare_hole(hole) hole.select = False o.select = True diff --git a/archipack/archipack_cutter.py b/archipack/archipack_cutter.py index ba51b863..69bd16c2 100644 --- a/archipack/archipack_cutter.py +++ b/archipack/archipack_cutter.py @@ -28,6 +28,7 @@ from mathutils import Vector, Matrix from mathutils.geometry import interpolate_bezier from math import cos, sin, pi, atan2 import bmesh +from random import uniform from bpy.props import ( FloatProperty, IntProperty, BoolProperty, StringProperty, EnumProperty @@ -213,7 +214,7 @@ class CutAblePolygon(): TODO: make s1 angle different than all othr segs """ - s1 = Line(pt, Vector((100 * self.xsize, 0.1))) + s1 = Line(pt, Vector((min(10000, 100 * self.xsize), uniform(-0.5, 0.5)))) counter = 0 if segs is None: segs = self.segs @@ -236,6 +237,9 @@ class CutAblePolygon(): s0 = self.segs[-1] for i in range(n_segs): s1 = self.segs[i] + if "Curved" in type(s1).__name__: + self.convex = False + return c = s0.v.cross(s1.v) if i == 0: sign = (c > 0) @@ -543,14 +547,14 @@ class ArchipackCutterPart(): -type EnumProperty """ length = FloatProperty( - name="length", + name="Length", min=0.01, max=1000.0, default=2.0, update=update_hole ) a0 = FloatProperty( - name="angle", + name="Angle", min=-2 * pi, max=2 * pi, default=0, @@ -558,7 +562,7 @@ class ArchipackCutterPart(): update=update_hole ) offset = FloatProperty( - name="offset", + name="Offset", min=0, default=0, update=update_hole @@ -598,7 +602,7 @@ def update_manipulators(self, context): class ArchipackCutter(): n_parts = IntProperty( - name="parts", + name="Parts", min=1, default=1, update=update_manipulators ) @@ -609,11 +613,11 @@ class ArchipackCutter(): options={'SKIP_SAVE'} ) user_defined_path = StringProperty( - name="user defined", + name="User defined", update=update_path ) user_defined_resolution = IntProperty( - name="resolution", + name="Resolution", min=1, max=128, default=12, update=update_path diff --git a/archipack/archipack_door.py b/archipack/archipack_door.py index ffc1e4c4..642b7747 100644 --- a/archipack/archipack_door.py +++ b/archipack/archipack_door.py @@ -61,7 +61,7 @@ def update_childs(self, context): class archipack_door_panel(ArchipackObject, PropertyGroup): x = FloatProperty( - name='width', + name='Width', min=0.25, default=100.0, precision=2, unit='LENGTH', subtype='DISTANCE', @@ -75,7 +75,7 @@ class archipack_door_panel(ArchipackObject, PropertyGroup): description='depth' ) z = FloatProperty( - name='height', + name='Height', min=0.1, default=2.0, precision=2, unit='LENGTH', subtype='DISTANCE', @@ -88,49 +88,49 @@ class archipack_door_panel(ArchipackObject, PropertyGroup): description="open direction" ) model = IntProperty( - name="model", + name="Model", min=0, max=3, default=0, description="Model" ) chanfer = FloatProperty( - name='chanfer', + name='Bevel', min=0.001, default=0.005, precision=3, unit='LENGTH', subtype='DISTANCE', description='chanfer' ) panel_spacing = FloatProperty( - name='spacing', + name='Spacing', min=0.001, default=0.1, precision=2, unit='LENGTH', subtype='DISTANCE', description='distance between panels' ) panel_bottom = FloatProperty( - name='bottom', + name='Bottom', min=0.0, default=0.0, precision=2, unit='LENGTH', subtype='DISTANCE', description='distance from bottom' ) panel_border = FloatProperty( - name='border', + name='Border', min=0.001, default=0.2, precision=2, unit='LENGTH', subtype='DISTANCE', description='distance from border' ) panels_x = IntProperty( - name="panels h", + name="# h", min=1, max=50, default=1, description="panels h" ) panels_y = IntProperty( - name="panels v", + name="# v", min=1, max=50, default=1, @@ -607,82 +607,82 @@ class ARCHIPACK_OT_door_panel(Operator): bl_category = 'Archipack' bl_options = {'REGISTER', 'UNDO'} x = FloatProperty( - name='width', + name='Width', min=0.1, default=0.80, precision=2, unit='LENGTH', subtype='DISTANCE', description='Width' ) z = FloatProperty( - name='height', + name='Height', min=0.1, default=2.0, precision=2, unit='LENGTH', subtype='DISTANCE', description='height' ) y = FloatProperty( - name='depth', + name='Depth', min=0.001, default=0.02, precision=2, unit='LENGTH', subtype='DISTANCE', description='Depth' ) direction = IntProperty( - name="direction", + name="Direction", min=0, max=1, description="open direction" ) model = IntProperty( - name="model", + name="Model", min=0, max=3, description="panel type" ) chanfer = FloatProperty( - name='chanfer', + name='Bevel', min=0.001, default=0.005, precision=3, unit='LENGTH', subtype='DISTANCE', description='chanfer' ) panel_spacing = FloatProperty( - name='spacing', + name='Spacing', min=0.001, default=0.1, precision=2, unit='LENGTH', subtype='DISTANCE', description='distance between panels' ) panel_bottom = FloatProperty( - name='bottom', + name='Bottom', min=0.0, default=0.0, precision=2, unit='LENGTH', subtype='DISTANCE', description='distance from bottom' ) panel_border = FloatProperty( - name='border', + name='Border', min=0.001, default=0.2, precision=2, unit='LENGTH', subtype='DISTANCE', description='distance from border' ) panels_x = IntProperty( - name="panels h", + name="# h", min=1, max=50, default=1, description="panels h" ) panels_y = IntProperty( - name="panels v", + name="# v", min=1, max=50, default=1, description="panels v" ) panels_distrib = EnumProperty( - name='distribution', + name='Distribution', items=( ('REGULAR', 'Regular', '', 0), ('ONE_THIRD', '1/3 2/3', '', 1) @@ -790,21 +790,21 @@ class archipack_door(ArchipackObject, Manipulable, PropertyGroup): create/remove/update her own childs """ x = FloatProperty( - name='width', + name='Width', min=0.25, default=100.0, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', description='Width', update=update, ) y = FloatProperty( - name='depth', + name='Depth', min=0.1, default=0.20, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', description='Depth', update=update, ) z = FloatProperty( - name='height', + name='Height', min=0.1, default=2.0, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', @@ -858,49 +858,49 @@ class archipack_door(ArchipackObject, Manipulable, PropertyGroup): description="number of panels", update=update ) chanfer = FloatProperty( - name='chanfer', + name='Bevel', min=0.001, default=0.005, precision=3, step=0.01, unit='LENGTH', subtype='DISTANCE', description='chanfer', update=update_childs, ) panel_spacing = FloatProperty( - name='spacing', + name='Spacing', min=0.001, default=0.1, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', description='distance between panels', update=update_childs, ) panel_bottom = FloatProperty( - name='bottom', + name='Bottom', min=0.0, default=0.0, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', description='distance from bottom', update=update_childs, ) panel_border = FloatProperty( - name='border', + name='Border', min=0.001, default=0.2, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', description='distance from border', update=update_childs, ) panels_x = IntProperty( - name="panels h", + name="# h", min=1, max=50, default=1, description="panels h", update=update_childs, ) panels_y = IntProperty( - name="panels v", + name="# v", min=1, max=50, default=1, description="panels v", update=update_childs, ) panels_distrib = EnumProperty( - name='distribution', + name='Distribution', items=( ('REGULAR', 'Regular', '', 0), ('ONE_THIRD', '1/3 2/3', '', 1) @@ -916,7 +916,7 @@ class archipack_door(ArchipackObject, Manipulable, PropertyGroup): default='BOTH', update=update_childs, ) hole_margin = FloatProperty( - name='hole margin', + name='Hole margin', min=0.0, default=0.1, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', diff --git a/archipack/archipack_fence.py b/archipack/archipack_fence.py index abdc6e22..7006b3b1 100644 --- a/archipack/archipack_fence.py +++ b/archipack/archipack_fence.py @@ -703,21 +703,21 @@ class archipack_fence_part(PropertyGroup): update=update_type ) length = FloatProperty( - name="length", + name="Length", min=0.01, default=2.0, unit='LENGTH', subtype='DISTANCE', update=update ) radius = FloatProperty( - name="radius", + name="Radius", min=0.01, default=0.7, unit='LENGTH', subtype='DISTANCE', update=update ) da = FloatProperty( - name="total angle", + name="Angle", min=-pi, max=pi, default=pi / 2, @@ -725,7 +725,7 @@ class archipack_fence_part(PropertyGroup): update=update ) a0 = FloatProperty( - name="angle", + name="Start angle", min=-2 * pi, max=2 * pi, default=0, @@ -779,7 +779,7 @@ class archipack_fence(ArchipackObject, Manipulable, PropertyGroup): parts = CollectionProperty(type=archipack_fence_part) user_defined_path = StringProperty( - name="user defined", + name="User defined", update=update_path ) user_defined_spline = IntProperty( @@ -789,32 +789,32 @@ class archipack_fence(ArchipackObject, Manipulable, PropertyGroup): update=update_path ) user_defined_resolution = IntProperty( - name="resolution", + name="Resolution", min=1, max=128, default=12, update=update_path ) n_parts = IntProperty( - name="parts", + name="Parts", min=1, default=1, update=update_manipulators ) x_offset = FloatProperty( - name="x offset", + name="Offset", default=0.0, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) radius = FloatProperty( - name="radius", + name="Radius", min=0.01, default=0.7, unit='LENGTH', subtype='DISTANCE', update=update ) da = FloatProperty( - name="angle", + name="Angle", min=-pi, max=pi, default=pi / 2, @@ -822,7 +822,7 @@ class archipack_fence(ArchipackObject, Manipulable, PropertyGroup): update=update ) angle_limit = FloatProperty( - name="angle", + name="Angle", min=0, max=2 * pi, default=pi / 8, @@ -838,40 +838,40 @@ class archipack_fence(ArchipackObject, Manipulable, PropertyGroup): update=update ) post = BoolProperty( - name='enable', + name='Enable', default=True, update=update ) post_spacing = FloatProperty( - name="spacing", + name="Spacing", min=0.1, default=1.0, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) post_x = FloatProperty( - name="width", + name="Width", min=0.001, default=0.04, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) post_y = FloatProperty( - name="length", + name="Length", min=0.001, max=1000, default=0.04, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) post_z = FloatProperty( - name="height", + name="Height", min=0.001, default=1, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) post_alt = FloatProperty( - name="altitude", + name="Altitude", default=0, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update @@ -882,7 +882,7 @@ class archipack_fence(ArchipackObject, Manipulable, PropertyGroup): default=True ) user_defined_post = StringProperty( - name="user defined", + name="User defined", update=update ) idmat_post = EnumProperty( @@ -892,46 +892,46 @@ class archipack_fence(ArchipackObject, Manipulable, PropertyGroup): update=update ) subs = BoolProperty( - name='enable', + name='Enable', default=False, update=update ) subs_spacing = FloatProperty( - name="spacing", + name="Spacing", min=0.05, default=0.10, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) subs_x = FloatProperty( - name="width", + name="Width", min=0.001, default=0.02, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) subs_y = FloatProperty( - name="length", + name="Length", min=0.001, default=0.02, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) subs_z = FloatProperty( - name="height", + name="Height", min=0.001, default=1, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) subs_alt = FloatProperty( - name="altitude", + name="Altitude", default=0, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) subs_offset_x = FloatProperty( - name="offset", + name="Offset", default=0.0, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update @@ -951,7 +951,7 @@ class archipack_fence(ArchipackObject, Manipulable, PropertyGroup): default=True ) user_defined_subs = StringProperty( - name="user defined", + name="User defined", update=update ) idmat_subs = EnumProperty( @@ -961,39 +961,39 @@ class archipack_fence(ArchipackObject, Manipulable, PropertyGroup): update=update ) panel = BoolProperty( - name='enable', + name='Enable', default=True, update=update ) panel_alt = FloatProperty( - name="altitude", + name="Altitude", default=0.25, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) panel_x = FloatProperty( - name="width", + name="Width", min=0.001, default=0.01, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) panel_z = FloatProperty( - name="height", + name="Height", min=0.001, default=0.6, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) panel_dist = FloatProperty( - name="space", + name="Spacing", min=0.001, default=0.05, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) panel_offset_x = FloatProperty( - name="offset", + name="Offset", default=0.0, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update @@ -1005,19 +1005,19 @@ class archipack_fence(ArchipackObject, Manipulable, PropertyGroup): update=update ) rail = BoolProperty( - name="enable", + name="Enable", update=update, default=False ) rail_n = IntProperty( - name="number", + name="#", default=1, min=0, max=31, update=update ) rail_x = FloatVectorProperty( - name="width", + name="Width", default=[ 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, @@ -1031,7 +1031,7 @@ class archipack_fence(ArchipackObject, Manipulable, PropertyGroup): update=update ) rail_z = FloatVectorProperty( - name="height", + name="Height", default=[ 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, @@ -1045,7 +1045,7 @@ class archipack_fence(ArchipackObject, Manipulable, PropertyGroup): update=update ) rail_offset = FloatVectorProperty( - name="offset", + name="Offset", default=[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1058,7 +1058,7 @@ class archipack_fence(ArchipackObject, Manipulable, PropertyGroup): update=update ) rail_alt = FloatVectorProperty( - name="altitude", + name="Altitude", default=[ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, @@ -1073,36 +1073,36 @@ class archipack_fence(ArchipackObject, Manipulable, PropertyGroup): rail_mat = CollectionProperty(type=archipack_fence_material) handrail = BoolProperty( - name="enable", + name="Enable", update=update, default=True ) handrail_offset = FloatProperty( - name="offset", + name="Offset", default=0.0, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) handrail_alt = FloatProperty( - name="altitude", + name="Altitude", default=1.0, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) handrail_extend = FloatProperty( - name="extend", + name="Extend", min=0, default=0.1, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) handrail_slice = BoolProperty( - name='slice', + name='Slice', default=True, update=update ) handrail_slice_right = BoolProperty( - name='slice', + name='Slice', default=True, update=update ) @@ -1117,21 +1117,21 @@ class archipack_fence(ArchipackObject, Manipulable, PropertyGroup): update=update ) handrail_x = FloatProperty( - name="width", + name="Width", min=0.001, default=0.04, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) handrail_y = FloatProperty( - name="height", + name="Height", min=0.001, default=0.04, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) handrail_radius = FloatProperty( - name="radius", + name="Radius", min=0.001, default=0.02, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', diff --git a/archipack/archipack_floor.py b/archipack/archipack_floor.py index 9899905d..634c2130 100644 --- a/archipack/archipack_floor.py +++ b/archipack/archipack_floor.py @@ -301,35 +301,36 @@ class FloorGenerator(CutAblePolygon, CutAbleGenerator): bm.verts.ensure_lookup_table() - # solidify and floor bottom - geom = bm.faces[:] - verts = bm.verts[:] - edges = bm.edges[:] - bmesh.ops.solidify(bm, geom=geom, thickness=0.0001) - for v in verts: - v.co.z = bottom - - # bevel - if d.bevel: - for v in bm.verts: - v.select = True + if d.solidify: + # solidify and floor bottom + geom = bm.faces[:] + verts = bm.verts[:] + edges = bm.edges[:] + bmesh.ops.solidify(bm, geom=geom, thickness=0.0001) for v in verts: - v.select = False - for v in bm.edges: - v.select = True - for v in edges: - v.select = False - geom = [v for v in bm.verts if v.select] - geom.extend([v for v in bm.edges if v.select]) - bmesh.ops.bevel(bm, - geom=geom, - offset=d.bevel_amount, - offset_type=0, - segments=1, # d.bevel_res - profile=0.5, - vertex_only=False, - clamp_overlap=False, - material=-1) + v.co.z = bottom + + # bevel + if d.bevel: + for v in bm.verts: + v.select = True + for v in verts: + v.select = False + for v in bm.edges: + v.select = True + for v in edges: + v.select = False + geom = [v for v in bm.verts if v.select] + geom.extend([v for v in bm.edges if v.select]) + bmesh.ops.bevel(bm, + geom=geom, + offset=d.bevel_amount, + offset_type=0, + segments=1, # d.bevel_res + profile=0.5, + vertex_only=False, + clamp_overlap=False, + material=-1) bm.to_mesh(o.data) bm.free() @@ -916,19 +917,19 @@ class archipack_floor_part(PropertyGroup): update=update_type ) length = FloatProperty( - name="length", + name="Length", min=0.01, default=2.0, update=update ) radius = FloatProperty( - name="radius", + name="Radius", min=0.5, default=0.7, update=update ) da = FloatProperty( - name="angle", + name="Angle", min=-pi, max=pi, default=pi / 2, @@ -936,7 +937,7 @@ class archipack_floor_part(PropertyGroup): update=update ) a0 = FloatProperty( - name="start angle", + name="Start angle", min=-2 * pi, max=2 * pi, default=0, @@ -945,7 +946,7 @@ class archipack_floor_part(PropertyGroup): ) offset = FloatProperty( name="Offset", - description="Add to current segment offset", + description="Side offset of segment", default=0, unit='LENGTH', subtype='DISTANCE', update=update @@ -973,8 +974,8 @@ class archipack_floor_part(PropertyGroup): def draw(self, context, layout, index): box = layout.box() - box.prop(self, "type", text=str(index + 1)) - + # box.prop(self, "type", text=str(index + 1)) + box.label(text="#" + str(index + 1)) if self.type in ['C_SEG']: box.prop(self, "radius") box.prop(self, "da") @@ -985,17 +986,17 @@ class archipack_floor_part(PropertyGroup): class archipack_floor(ArchipackObject, Manipulable, PropertyGroup): n_parts = IntProperty( - name="parts", + name="Parts", min=1, default=1, update=update_manipulators ) parts = CollectionProperty(type=archipack_floor_part) user_defined_path = StringProperty( - name="user defined", + name="User defined", update=update_path ) user_defined_resolution = IntProperty( - name="resolution", + name="Resolution", min=1, max=128, default=12, update=update_path @@ -1013,230 +1014,238 @@ class archipack_floor(ArchipackObject, Manipulable, PropertyGroup): ) pattern = EnumProperty( - name='Floor Pattern', items=(("boards", "Boards", ""), ("square_parquet", "Square Parquet", ""), - ("herringbone_parquet", "Herringbone Parquet", ""), - ("herringbone", "Herringbone", ""), ("regular_tile", "Regular Tile", ""), - ("hopscotch", "Hopscotch", ""), ("stepping_stone", "Stepping Stone", ""), - ("hexagon", "Hexagon", ""), ("windmill", "Windmill", "")), - default="boards", update=update - ) + name='Floor Pattern', + items=(("boards", "Boards", ""), + ("square_parquet", "Square Parquet", ""), + ("herringbone_parquet", "Herringbone Parquet", ""), + ("herringbone", "Herringbone", ""), + ("regular_tile", "Regular Tile", ""), + ("hopscotch", "Hopscotch", ""), + ("stepping_stone", "Stepping Stone", ""), + ("hexagon", "Hexagon", ""), + ("windmill", "Windmill", "")), + default="boards", + update=update + ) spacing = FloatProperty( - name='Spacing', - description='The amount of space between boards or tiles in both directions', - unit='LENGTH', subtype='DISTANCE', - min=0, - default=0.005, - precision=2, - update=update - ) + name='Spacing', + description='The amount of space between boards or tiles in both directions', + unit='LENGTH', subtype='DISTANCE', + min=0, + default=0.005, + precision=2, + update=update + ) thickness = FloatProperty( - name='Thickness', - description='Thickness', - unit='LENGTH', subtype='DISTANCE', - min=0.0, - default=0.005, - precision=2, - update=update - ) + name='Thickness', + description='Thickness', + unit='LENGTH', subtype='DISTANCE', + min=0.0, + default=0.005, + precision=2, + update=update + ) vary_thickness = BoolProperty( - name='Vary Thickness', - description='Vary board thickness?', - default=False, - update=update - ) + name='Random Thickness', + description='Vary thickness', + default=False, + update=update + ) thickness_variance = FloatProperty( - name='Thickness Variance', - description='How much board thickness can vary by', - min=0, max=100, - default=25, - precision=2, - subtype='PERCENTAGE', - update=update - ) + name='Variance', + description='How much vary by', + min=0, max=100, + default=25, + precision=2, + subtype='PERCENTAGE', + update=update + ) board_width = FloatProperty( - name='Board Width', - description='The width of the boards', - unit='LENGTH', subtype='DISTANCE', - min=0.02, - default=0.2, - precision=2, - update=update - ) + name='Width', + description='The width', + unit='LENGTH', subtype='DISTANCE', + min=0.02, + default=0.2, + precision=2, + update=update + ) vary_width = BoolProperty( - name='Vary Width', - description='Vary board width', - default=False, - update=update - ) + name='Random Width', + description='Vary width', + default=False, + update=update + ) width_variance = FloatProperty( - name='Width Variance', - description='How much board width can vary by', - subtype='PERCENTAGE', - min=1, max=100, default=50, - precision=2, - update=update - ) + name='Variance', + description='How much vary by', + subtype='PERCENTAGE', + min=1, max=100, default=50, + precision=2, + update=update + ) width_spacing = FloatProperty( - name='Width Spacing', - description='The amount of space between boards in the width direction', - unit='LENGTH', subtype='DISTANCE', - min=0, - default=0.002, - precision=2, - update=update - ) + name='Width Spacing', + description='The amount of space between boards in the width direction', + unit='LENGTH', subtype='DISTANCE', + min=0, + default=0.002, + precision=2, + update=update + ) board_length = FloatProperty( - name='Board Length', - description='The length of the boards', - unit='LENGTH', subtype='DISTANCE', - precision=2, - min=0.02, - default=2, - update=update - ) + name='Length', + description='The length of the boards', + unit='LENGTH', subtype='DISTANCE', + precision=2, + min=0.02, + default=2, + update=update + ) short_board_length = FloatProperty( - name='Board Length', - description='The length of the boards', - unit='LENGTH', subtype='DISTANCE', - precision=2, - min=0.02, - default=2, - update=update - ) + name='Length', + description='The length of the boards', + unit='LENGTH', subtype='DISTANCE', + precision=2, + min=0.02, + default=2, + update=update + ) vary_length = BoolProperty( - name='Vary Length', - description='Vary board length', - default=False, - update=update - ) + name='Random Length', + description='Vary board length', + default=False, + update=update + ) length_variance = FloatProperty( - name='Length Variance', - description='How much board length can vary by', - subtype='PERCENTAGE', - min=1, max=100, default=50, - precision=2, update=update - ) + name='Variance', + description='How much board length can vary by', + subtype='PERCENTAGE', + min=1, max=100, default=50, + precision=2, update=update + ) max_boards = IntProperty( - name='Max Boards', - description='Max number of boards in one row', - min=1, - default=20, - update=update - ) + name='Max Boards', + description='Max number of boards in one row', + min=1, + default=20, + update=update + ) length_spacing = FloatProperty( - name='Length Spacing', - description='The amount of space between boards in the length direction', - unit='LENGTH', subtype='DISTANCE', - min=0, - default=0.002, - precision=2, - update=update - ) + name='Length Spacing', + description='The amount of space between boards in the length direction', + unit='LENGTH', subtype='DISTANCE', + min=0, + default=0.002, + precision=2, + update=update + ) # parquet specific boards_in_group = IntProperty( - name='Boards in Group', - description='Number of boards in a group', - min=1, default=4, - update=update - ) + name='Boards in Group', + description='Number of boards in a group', + min=1, default=4, + update=update + ) # tile specific tile_width = FloatProperty( - name='Tile Width', - description='Width of the tiles', - unit='LENGTH', subtype='DISTANCE', - min=0.002, - default=0.2, - precision=2, - update=update - ) + name='Width', + description='Width of the tiles', + unit='LENGTH', subtype='DISTANCE', + min=0.002, + default=0.2, + precision=2, + update=update + ) tile_length = FloatProperty( - name='Tile Length', - description='Length of the tiles', - unit='LENGTH', subtype='DISTANCE', - precision=2, - min=0.02, - default=0.3, - update=update - ) + name='Length', + description='Length of the tiles', + unit='LENGTH', subtype='DISTANCE', + precision=2, + min=0.02, + default=0.3, + update=update + ) # grout add_grout = BoolProperty( - name='Add Grout', - description='Add grout', - default=False, - update=update - ) + name='Add Grout', + description='Add grout', + default=False, + update=update + ) mortar_depth = FloatProperty( - name='Mortar Depth', - description='The depth of the mortar from the surface of the tile', - unit='LENGTH', subtype='DISTANCE', - precision=2, - step=0.005, - min=0, - default=0.001, - update=update - ) + name='Depth', + description='The depth of the mortar from the surface of the tile', + unit='LENGTH', subtype='DISTANCE', + precision=2, + step=0.005, + min=0, + default=0.001, + update=update + ) # regular tile random_offset = BoolProperty( - name='Random Offset', - description='Random amount of offset for each row of tiles', - update=update, default=False - ) + name='Random Offset', + description='Random amount of offset for each row of tiles', + update=update, default=False + ) offset = FloatProperty( - name='Offset', - description='How much to offset each row of tiles', - min=0, max=100, default=0, - precision=2, - update=update - ) + name='Offset', + description='How much to offset each row of tiles', + min=0, max=100, default=0, + precision=2, + update=update + ) offset_variance = FloatProperty( - name='Offset Variance', - description='How much to vary the offset each row of tiles', - min=0.001, max=100, default=50, - precision=2, - update=update - ) - - # UV stuff - random_uvs = BoolProperty( - name='Random UV\'s', update=update, default=True, description='Random UV positions for the faces' - ) + name='Variance', + description='How much to vary the offset each row of tiles', + min=0.001, max=100, default=50, + precision=2, + update=update + ) # bevel bevel = BoolProperty( - name='Bevel', update=update, default=False, description='Bevel upper faces' - ) + name='Bevel', + update=update, + default=False, + description='Bevel upper faces' + ) bevel_amount = FloatProperty( - name='Bevel Amount', - description='Bevel amount', - unit='LENGTH', subtype='DISTANCE', - min=0.0001, default=0.001, - precision=2, step=0.05, - update=update - ) - + name='Bevel', + description='Bevel amount', + unit='LENGTH', subtype='DISTANCE', + min=0.0001, default=0.001, + precision=2, step=0.05, + update=update + ) + solidify = BoolProperty( + name="Solidify", + default=True, + update=update + ) vary_materials = BoolProperty( - name="Vary Material?", - default=True, - description="Vary Material indexes", - update=update) + name="Random Material", + default=True, + description="Vary Material indexes", + update=update) matid = IntProperty( - name="#variations", - min=1, - max=10, - default=7, - description="Material index maxi", - update=update) + name="#variations", + min=1, + max=10, + default=7, + description="Material index maxi", + update=update) auto_update = BoolProperty( - options={'SKIP_SAVE'}, - default=True, - update=update_manipulators - ) + options={'SKIP_SAVE'}, + default=True, + update=update_manipulators + ) z = FloatProperty( name="dumb z", description="Dumb z for manipulator placeholder", @@ -1665,7 +1674,8 @@ class ARCHIPACK_PT_floor(Panel): box.prop(props, 'vary_thickness', icon='RNDCURVE') if props.vary_thickness: box.prop(props, 'thickness_variance') - + box.separator() + box.prop(props, 'solidify', icon='MOD_SOLIDIFY') box.separator() if props.pattern == 'boards': box.prop(props, 'board_length') diff --git a/archipack/archipack_object.py b/archipack/archipack_object.py index 7c3a2c16..9b22bc2f 100644 --- a/archipack/archipack_object.py +++ b/archipack/archipack_object.py @@ -97,7 +97,7 @@ class ArchipackObject(): return None active = context.active_object - selected = [o for o in context.selected_objects] + selected = context.selected_objects[:] for o in selected: if self.__class__.datablock(o) == self: diff --git a/archipack/archipack_rendering.py b/archipack/archipack_rendering.py index d95bb742..4793777e 100644 --- a/archipack/archipack_rendering.py +++ b/archipack/archipack_rendering.py @@ -282,8 +282,8 @@ class ARCHIPACK_OT_render(Operator): if "archipack_output" in bpy.data.images: out_img = bpy.data.images["archipack_output"] if out_img is not None: - out_img.user_clear() - bpy.data.images.remove(out_img) + # out_img.user_clear() + bpy.data.images.remove(out_img, do_unlink=True) out = bpy.data.images.new("archipack_output", width, height) tmp_pixels = [1] * totpixel4 @@ -403,8 +403,8 @@ class ARCHIPACK_OT_render(Operator): img.gl_free() # free opengl image memory # delete image - img.user_clear() - bpy.data.images.remove(img) + # img.user_clear() + bpy.data.images.remove(img, do_unlink=True) # remove temp file remove(outpath) # reset @@ -461,6 +461,10 @@ class ARCHIPACK_OT_render(Operator): d = o.data.archipack_stair[0] elif 'archipack_fence' in o.data: d = o.data.archipack_fence[0] + elif 'archipack_floor' in o.data: + d = o.data.archipack_floor[0] + elif 'archipack_roof' in o.data: + d = o.data.archipack_roof[0] if d is not None: objlist.append((o, d)) return objlist diff --git a/archipack/archipack_roof.py b/archipack/archipack_roof.py index b3f8e904..44a035e4 100644 --- a/archipack/archipack_roof.py +++ b/archipack/archipack_roof.py @@ -1333,6 +1333,8 @@ class RoofGenerator(CutAbleGenerator): # triangular ends for node in self.nodes: + if node.root is None: + continue if node.n_horizontal == 1 and node.root.seg.triangular_end: if node.root.reversed: # Next side (segment end) @@ -1882,7 +1884,7 @@ class RoofGenerator(CutAbleGenerator): if d.quick_edit: context.scene.archipack_progress = -1 - def _rake(self, s, i, boundary, pan, + def _bargeboard(self, s, i, boundary, pan, width, height, altitude, offset, idmat, verts, faces, edges, matids, uvs): @@ -1992,7 +1994,7 @@ class RoofGenerator(CutAbleGenerator): [(0, 0), (0, 1), (1, 1), (1, 0)] ]) - def rake(self, d, verts, faces, edges, matids, uvs): + def bargeboard(self, d, verts, faces, edges, matids, uvs): ##################### # Vire-vents @@ -2004,13 +2006,13 @@ class RoofGenerator(CutAbleGenerator): for hole in pan.holes: for i, s in enumerate(hole.segs): if s.type == 'SIDE': - self._rake(s, + self._bargeboard(s, i, hole, pan, - d.rake_width, - d.rake_height, - d.rake_altitude, - d.rake_offset, + d.bargeboard_width, + d.bargeboard_height, + d.bargeboard_altitude, + d.bargeboard_offset, idmat, verts, faces, @@ -2020,13 +2022,13 @@ class RoofGenerator(CutAbleGenerator): for i, s in enumerate(pan.segs): if s.type == 'SIDE': - self._rake(s, + self._bargeboard(s, i, pan, pan, - d.rake_width, - d.rake_height, - d.rake_altitude, - d.rake_offset, + d.bargeboard_width, + d.bargeboard_height, + d.bargeboard_altitude, + d.bargeboard_offset, idmat, verts, faces, @@ -2034,7 +2036,7 @@ class RoofGenerator(CutAbleGenerator): matids, uvs) - def _facia(self, s, i, boundary, pan, tri_0, tri_1, + def _fascia(self, s, i, boundary, pan, tri_0, tri_1, width, height, altitude, offset, idmat, verts, faces, edges, matids, uvs): @@ -2170,7 +2172,7 @@ class RoofGenerator(CutAbleGenerator): [(0, 0), (0, 1), (1, 1), (1, 0)] ]) - def facia(self, d, verts, faces, edges, matids, uvs): + def fascia(self, d, verts, faces, edges, matids, uvs): ##################### # Larmiers @@ -2182,14 +2184,14 @@ class RoofGenerator(CutAbleGenerator): for hole in pan.holes: for i, s in enumerate(hole.segs): if s.type == 'BOTTOM': - self._facia(s, + self._fascia(s, i, hole, pan, False, False, - d.facia_width, - d.facia_height, - d.facia_altitude, - d.facia_offset, + d.fascia_width, + d.fascia_height, + d.fascia_altitude, + d.fascia_offset, idmat, verts, faces, @@ -2209,14 +2211,14 @@ class RoofGenerator(CutAbleGenerator): if pan.side == 'LEFT': tri_0, tri_1 = tri_1, tri_0 - self._facia(s, + self._fascia(s, i, pan, pan, tri_0, tri_1, - d.facia_width, - d.facia_height, - d.facia_altitude, - d.facia_offset, + d.fascia_width, + d.fascia_height, + d.fascia_altitude, + d.fascia_offset, idmat, verts, faces, @@ -2227,7 +2229,7 @@ class RoofGenerator(CutAbleGenerator): continue f = len(verts) - s0 = s.offset(d.facia_width) + s0 = s.offset(d.fascia_width) s1 = pan.last_seg(i) s2 = pan.next_seg(i) @@ -2262,7 +2264,7 @@ class RoofGenerator(CutAbleGenerator): s1.type = 'SIDE' s1.v = s.sized_normal(0, 1).v else: - s1 = s1.offset(d.facia_width) + s1 = s1.offset(d.fascia_width) # find next neighboor depending on type if s2.type == 'AXIS' or 'LINK' in s2.type: @@ -2283,7 +2285,7 @@ class RoofGenerator(CutAbleGenerator): s2.v = s.sized_normal(0, 1).v else: - s2 = s2.offset(d.facia_width) + s2 = s2.offset(d.fascia_width) # units vectors and scale # is unit normal on sides @@ -2295,16 +2297,16 @@ class RoofGenerator(CutAbleGenerator): x1, y1 = p0 x2, y2 = p1 x3, y3 = s.p1 - z0 = self.z + d.facia_altitude + pan.altitude(s.p0) - z1 = self.z + d.facia_altitude + pan.altitude(s.p1) + z0 = self.z + d.fascia_altitude + pan.altitude(s.p0) + z1 = self.z + d.fascia_altitude + pan.altitude(s.p1) verts.extend([ (x0, y0, z0), (x1, y1, z0), (x2, y2, z1), (x3, y3, z1), ]) - z0 -= d.facia_height - z1 -= d.facia_height + z0 -= d.fascia_height + z1 -= d.fascia_height verts.extend([ (x0, y0, z0), (x1, y1, z0), @@ -2446,7 +2448,7 @@ class RoofGenerator(CutAbleGenerator): s3 = Line(s.p0, v0.normalized()) s4 = Line(s.p1, v1.normalized()) - zt = self.z + d.facia_altitude + pan.altitude(s3.p0) + zt = self.z + d.fascia_altitude + pan.altitude(s3.p0) z0 = self.z + d.gutter_alt + pan.altitude(s3.p0) z1 = z0 - 0.5 * d.gutter_width z2 = z1 - 0.5 * d.gutter_width @@ -2454,7 +2456,7 @@ class RoofGenerator(CutAbleGenerator): dz0 = z2 - z1 dz1 = z3 - z1 - tt = scale_0 * d.facia_width + tt = scale_0 * d.fascia_width t0 = scale_0 * d.gutter_dist t1 = t0 + scale_0 * (0.5 * d.gutter_width) t2 = t1 + scale_0 * (0.5 * d.gutter_width) @@ -2493,14 +2495,14 @@ class RoofGenerator(CutAbleGenerator): ca = cos(i * da) verts.append((x3 + dx * ca, y3 + dy * ca, z1 + dz1 * sa)) - zt = self.z + d.facia_altitude + pan.altitude(s4.p0) + zt = self.z + d.fascia_altitude + pan.altitude(s4.p0) z0 = self.z + d.gutter_alt + pan.altitude(s4.p0) z1 = z0 - 0.5 * d.gutter_width z2 = z1 - 0.5 * d.gutter_width z3 = z1 - 0.5 * d.gutter_boudin dz0 = z2 - z1 dz1 = z3 - z1 - tt = scale_1 * d.facia_width + tt = scale_1 * d.fascia_width t0 = scale_1 * d.gutter_dist t1 = t0 + scale_1 * (0.5 * d.gutter_width) t2 = t1 + scale_1 * (0.5 * d.gutter_width) @@ -2631,7 +2633,7 @@ class RoofGenerator(CutAbleGenerator): if pan.side == 'LEFT': s0_tri, s1_tri = s1_tri, s0_tri - if s0.type == 'SIDE': + if s0.type == 'SIDE' and s.length > 0: s0 = s0.offset(d.beam_offset) t0 = -d.beam_offset / s.length @@ -2643,7 +2645,7 @@ class RoofGenerator(CutAbleGenerator): if not res: continue - if s1.type == 'SIDE': + if s1.type == 'SIDE' and s.length > 0: s1 = s1.offset(d.beam_offset) t1 = 1 + d.beam_offset / s.length @@ -3096,11 +3098,11 @@ class RoofGenerator(CutAbleGenerator): tmin = 0 tmax = 1 s0 = pan.last_seg(i) - if s0.type == 'SIDE': + if s0.type == 'SIDE' and s.length > 0: tmin = 0 - d.tile_side / s.length s1 = pan.next_seg(i) - if s1.type == 'SIDE': + if s1.type == 'SIDE' and s.length > 0: tmax = 1 + d.tile_side / s.length # print("tmin:%s tmax:%s" % (tmin, tmax)) @@ -3493,14 +3495,14 @@ def update_components(self, context): class ArchipackSegment(): length = FloatProperty( - name="length", + name="Length", min=0.01, max=1000.0, default=4.0, update=update ) a0 = FloatProperty( - name="angle", + name="Angle", min=-2 * pi, max=2 * pi, default=0, @@ -3512,7 +3514,7 @@ class ArchipackSegment(): class ArchipackLines(): n_parts = IntProperty( - name="parts", + name="Parts", min=1, default=1, update=update_manipulators ) @@ -3579,6 +3581,7 @@ class ArchipackLines(): class archipack_roof_segment(ArchipackSegment, PropertyGroup): bound_idx = IntProperty( + name="Link to", default=0, min=0, update=update_manipulators @@ -3632,7 +3635,7 @@ class archipack_roof_segment(ArchipackSegment, PropertyGroup): update=update_manipulators ) triangular_end = BoolProperty( - name="Tri end", + name="Triangular end", default=False, update=update ) @@ -3719,7 +3722,7 @@ class archipack_roof_segment(ArchipackSegment, PropertyGroup): class archipack_roof(ArchipackLines, ArchipackObject, Manipulable, PropertyGroup): parts = CollectionProperty(type=archipack_roof_segment) z = FloatProperty( - name="z", + name="Altitude", default=3, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update_childs @@ -3727,13 +3730,11 @@ class archipack_roof(ArchipackLines, ArchipackObject, Manipulable, PropertyGroup slope_left = FloatProperty( name="L slope", default=0.5, precision=2, step=1, - # unit='LENGTH', subtype='DISTANCE', update=update_childs ) slope_right = FloatProperty( name="R slope", default=0.5, precision=2, step=1, - # unit='LENGTH', subtype='DISTANCE', update=update_childs ) width_left = FloatProperty( @@ -3824,7 +3825,7 @@ class archipack_roof(ArchipackLines, ArchipackObject, Manipulable, PropertyGroup update=update_components ) tile_size_x = FloatProperty( - name="x", + name="Width", description="Size of tiles on x axis", min=0.01, default=0.2, @@ -3832,7 +3833,7 @@ class archipack_roof(ArchipackLines, ArchipackObject, Manipulable, PropertyGroup update=update_components ) tile_size_y = FloatProperty( - name="y", + name="Length", description="Size of tiles on y axis", min=0.01, default=0.3, @@ -3840,7 +3841,7 @@ class archipack_roof(ArchipackLines, ArchipackObject, Manipulable, PropertyGroup update=update_components ) tile_size_z = FloatProperty( - name="z", + name="Thickness", description="Size of tiles on z axis", min=0.0, default=0.02, @@ -3848,7 +3849,7 @@ class archipack_roof(ArchipackLines, ArchipackObject, Manipulable, PropertyGroup update=update_components ) tile_space_x = FloatProperty( - name="x", + name="Width", description="Space between tiles on x axis", min=0.01, default=0.2, @@ -3856,7 +3857,7 @@ class archipack_roof(ArchipackLines, ArchipackObject, Manipulable, PropertyGroup update=update_components ) tile_space_y = FloatProperty( - name="y", + name="Length", description="Space between tiles on y axis", min=0.01, default=0.3, @@ -3882,7 +3883,7 @@ class archipack_roof(ArchipackLines, ArchipackObject, Manipulable, PropertyGroup default=False ) tile_model = EnumProperty( - name="model", + name="Model", items=( ('BRAAS1', 'Braas 1', '', 0), ('BRAAS2', 'Braas 2', '', 1), @@ -3977,7 +3978,7 @@ class archipack_roof(ArchipackLines, ArchipackObject, Manipulable, PropertyGroup default=False ) beam_enable = BoolProperty( - name="Primary", + name="Ridge pole", default=True, update=update_components ) @@ -4112,7 +4113,7 @@ class archipack_roof(ArchipackLines, ArchipackObject, Manipulable, PropertyGroup update=update_components ) hip_size_x = FloatProperty( - name="l", + name="Length", description="Length of hip", min=0.01, default=0.4, @@ -4120,7 +4121,7 @@ class archipack_roof(ArchipackLines, ArchipackObject, Manipulable, PropertyGroup update=update_components ) hip_size_y = FloatProperty( - name="w", + name="Width", description="Width of hip", min=0.01, default=0.15, @@ -4128,7 +4129,7 @@ class archipack_roof(ArchipackLines, ArchipackObject, Manipulable, PropertyGroup update=update_components ) hip_size_z = FloatProperty( - name="h", + name="Height", description="Height of hip", min=0.0, default=0.15, @@ -4136,7 +4137,7 @@ class archipack_roof(ArchipackLines, ArchipackObject, Manipulable, PropertyGroup update=update_components ) hip_model = EnumProperty( - name="model", + name="Model", items=( ('ROUND', 'Round', '', 0), ('ETERNIT', 'Eternit', '', 1), @@ -4158,19 +4159,19 @@ class archipack_roof(ArchipackLines, ArchipackObject, Manipulable, PropertyGroup update=update_components ) - facia_enable = BoolProperty( + fascia_enable = BoolProperty( name="Enable", - description="Enable Facia", + description="Enable Fascia", default=True, update=update_components ) - facia_expand = BoolProperty( + fascia_expand = BoolProperty( options={'SKIP_SAVE'}, - name="Facia", - description="Expand facia panel", + name="Fascia", + description="Expand fascia panel", default=False ) - facia_height = FloatProperty( + fascia_height = FloatProperty( name="Height", description="Height", min=0.01, @@ -4178,7 +4179,7 @@ class archipack_roof(ArchipackLines, ArchipackObject, Manipulable, PropertyGroup unit='LENGTH', subtype='DISTANCE', update=update_components ) - facia_width = FloatProperty( + fascia_width = FloatProperty( name="Width", description="Width", min=0.01, @@ -4186,34 +4187,34 @@ class archipack_roof(ArchipackLines, ArchipackObject, Manipulable, PropertyGroup unit='LENGTH', subtype='DISTANCE', update=update_components ) - facia_offset = FloatProperty( + fascia_offset = FloatProperty( name="Offset", description="Offset from roof border", default=0, unit='LENGTH', subtype='DISTANCE', update=update_components ) - facia_altitude = FloatProperty( + fascia_altitude = FloatProperty( name="Altitude", - description="Facia altitude from roof", + description="Fascia altitude from roof", default=0.1, unit='LENGTH', subtype='DISTANCE', update=update_components ) - rake_enable = BoolProperty( + bargeboard_enable = BoolProperty( name="Enable", - description="Enable Rake", + description="Enable Bargeboard", default=True, update=update_components ) - rake_expand = BoolProperty( + bargeboard_expand = BoolProperty( options={'SKIP_SAVE'}, - name="Rake", - description="Expand rake panel", + name="Bargeboard", + description="Expand Bargeboard panel", default=False ) - rake_height = FloatProperty( + bargeboard_height = FloatProperty( name="Height", description="Height", min=0.01, @@ -4221,7 +4222,7 @@ class archipack_roof(ArchipackLines, ArchipackObject, Manipulable, PropertyGroup unit='LENGTH', subtype='DISTANCE', update=update_components ) - rake_width = FloatProperty( + bargeboard_width = FloatProperty( name="Width", description="Width", min=0.01, @@ -4229,16 +4230,16 @@ class archipack_roof(ArchipackLines, ArchipackObject, Manipulable, PropertyGroup unit='LENGTH', subtype='DISTANCE', update=update_components ) - rake_offset = FloatProperty( + bargeboard_offset = FloatProperty( name="Offset", description="Offset from roof border", default=0.001, unit='LENGTH', subtype='DISTANCE', update=update_components ) - rake_altitude = FloatProperty( + bargeboard_altitude = FloatProperty( name="Altitude", - description="Facia altitude from roof", + description="Fascia altitude from roof", default=0.1, unit='LENGTH', subtype='DISTANCE', update=update_components @@ -4606,11 +4607,11 @@ class archipack_roof(ArchipackLines, ArchipackObject, Manipulable, PropertyGroup else: - if self.rake_enable: - g.rake(self, verts, faces, edges, matids, uvs) + if self.bargeboard_enable: + g.bargeboard(self, verts, faces, edges, matids, uvs) - if self.facia_enable: - g.facia(self, verts, faces, edges, matids, uvs) + if self.fascia_enable: + g.fascia(self, verts, faces, edges, matids, uvs) if self.beam_enable: g.beam_primary(self, verts, faces, edges, matids, uvs) @@ -4729,7 +4730,7 @@ class archipack_roof_cutter_segment(ArchipackCutterPart, PropertyGroup): type = EnumProperty( name="Type", items=( - ('SIDE', 'Side', 'Side with rake', 0), + ('SIDE', 'Side', 'Side with bargeboard', 0), ('BOTTOM', 'Bottom', 'Bottom with gutter', 1), ('LINK', 'Side link', 'Side witout decoration', 2), ('AXIS', 'Top', 'Top part with hip and beam', 3) @@ -4867,9 +4868,9 @@ class ARCHIPACK_PT_roof(Panel): box = layout.box() row = box.row(align=True) if prop.tile_expand: - row.prop(prop, 'tile_expand', icon="TRIA_DOWN", text="Tiles", icon_only=True, emboss=False) + row.prop(prop, 'tile_expand', icon="TRIA_DOWN", text="Covering", icon_only=True, emboss=False) else: - row.prop(prop, 'tile_expand', icon="TRIA_RIGHT", text="Tiles", icon_only=True, emboss=False) + row.prop(prop, 'tile_expand', icon="TRIA_RIGHT", text="Covering", icon_only=True, emboss=False) row.prop(prop, 'tile_enable') if prop.tile_expand: box.prop(prop, 'tile_model', text="") @@ -4884,10 +4885,9 @@ class ARCHIPACK_PT_roof(Panel): box.prop(prop, 'tile_bevel_segs') box.separator() box.label(text="Tile size") - row = box.row(align=True) - row.prop(prop, 'tile_size_x') - row.prop(prop, 'tile_size_y') - row.prop(prop, 'tile_size_z') + box.prop(prop, 'tile_size_x') + box.prop(prop, 'tile_size_y') + box.prop(prop, 'tile_size_z') box.prop(prop, 'tile_altitude') box.separator() @@ -4899,9 +4899,8 @@ class ARCHIPACK_PT_roof(Panel): box.prop(prop, 'tile_offset') box.label(text="Spacing") - row = box.row(align=True) - row.prop(prop, 'tile_space_x') - row.prop(prop, 'tile_space_y') + box.prop(prop, 'tile_space_x') + box.prop(prop, 'tile_space_y') box.separator() # hip box.label(text="Borders") @@ -4918,12 +4917,9 @@ class ARCHIPACK_PT_roof(Panel): row.prop(prop, 'hip_enable') if prop.hip_expand: box.prop(prop, 'hip_model', text="") - - box.label(text="Hip size") - row = box.row(align=True) - row.prop(prop, 'hip_size_x') - row.prop(prop, 'hip_size_y') - row.prop(prop, 'hip_size_z') + box.prop(prop, 'hip_size_x') + box.prop(prop, 'hip_size_y') + box.prop(prop, 'hip_size_z') box.prop(prop, 'hip_alt') box.prop(prop, 'hip_space_x') box.separator() @@ -4975,29 +4971,29 @@ class ARCHIPACK_PT_roof(Panel): box = layout.box() row = box.row(align=True) - if prop.facia_expand: - row.prop(prop, 'facia_expand', icon="TRIA_DOWN", text="Facia", icon_only=True, emboss=False) + if prop.fascia_expand: + row.prop(prop, 'fascia_expand', icon="TRIA_DOWN", text="Fascia", icon_only=True, emboss=False) else: - row.prop(prop, 'facia_expand', icon="TRIA_RIGHT", text="Facia", icon_only=True, emboss=False) - row.prop(prop, 'facia_enable') - if prop.facia_expand: - box.prop(prop, 'facia_altitude') - box.prop(prop, 'facia_width') - box.prop(prop, 'facia_height') - box.prop(prop, 'facia_offset') + row.prop(prop, 'fascia_expand', icon="TRIA_RIGHT", text="Fascia", icon_only=True, emboss=False) + row.prop(prop, 'fascia_enable') + if prop.fascia_expand: + box.prop(prop, 'fascia_altitude') + box.prop(prop, 'fascia_width') + box.prop(prop, 'fascia_height') + box.prop(prop, 'fascia_offset') box = layout.box() row = box.row(align=True) - if prop.rake_expand: - row.prop(prop, 'rake_expand', icon="TRIA_DOWN", text="Rake", icon_only=True, emboss=False) + if prop.bargeboard_expand: + row.prop(prop, 'bargeboard_expand', icon="TRIA_DOWN", text="Bargeboard", icon_only=True, emboss=False) else: - row.prop(prop, 'rake_expand', icon="TRIA_RIGHT", text="Rake", icon_only=True, emboss=False) - row.prop(prop, 'rake_enable') - if prop.rake_expand: - box.prop(prop, 'rake_altitude') - box.prop(prop, 'rake_width') - box.prop(prop, 'rake_height') - box.prop(prop, 'rake_offset') + row.prop(prop, 'bargeboard_expand', icon="TRIA_RIGHT", text="Bargeboard", icon_only=True, emboss=False) + row.prop(prop, 'bargeboard_enable') + if prop.bargeboard_expand: + box.prop(prop, 'bargeboard_altitude') + box.prop(prop, 'bargeboard_width') + box.prop(prop, 'bargeboard_height') + box.prop(prop, 'bargeboard_offset') """ box = layout.box() diff --git a/archipack/archipack_slab.py b/archipack/archipack_slab.py index 0326a9f0..9f8a2947 100644 --- a/archipack/archipack_slab.py +++ b/archipack/archipack_slab.py @@ -435,19 +435,19 @@ class ArchipackSegment(): update=update_type ) length = FloatProperty( - name="length", + name="Length", min=0.01, default=2.0, update=update ) radius = FloatProperty( - name="radius", + name="Radius", min=0.5, default=0.7, update=update ) da = FloatProperty( - name="angle", + name="Angle", min=-pi, max=pi, default=pi / 2, @@ -455,7 +455,7 @@ class ArchipackSegment(): update=update ) a0 = FloatProperty( - name="start angle", + name="Start angle", min=-2 * pi, max=2 * pi, default=0, @@ -538,7 +538,7 @@ class archipack_slab_part(ArchipackSegment, PropertyGroup): class archipack_slab(ArchipackObject, Manipulable, PropertyGroup): # boundary n_parts = IntProperty( - name="parts", + name="Parts", min=1, default=1, update=update_manipulators ) @@ -556,20 +556,20 @@ class archipack_slab(ArchipackObject, Manipulable, PropertyGroup): ) x_offset = FloatProperty( - name="x offset", + name="Offset", min=-1000, max=1000, default=0.0, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) z = FloatProperty( - name="z", + name="Thickness", default=0.3, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) auto_synch = BoolProperty( - name="AutoSynch", + name="Auto-Synch", description="Keep wall in synch when editing", default=True, update=update_manipulators diff --git a/archipack/archipack_stair.py b/archipack/archipack_stair.py index 172e1c38..1de90a96 100644 --- a/archipack/archipack_stair.py +++ b/archipack/archipack_stair.py @@ -1586,21 +1586,21 @@ class archipack_stair_part(PropertyGroup): update=update_manipulators ) length = FloatProperty( - name="length", - min=0.5, + name="Length", + min=0.01, default=2.0, unit='LENGTH', subtype='DISTANCE', update=update ) radius = FloatProperty( - name="radius", - min=0.5, + name="Radius", + min=0.01, default=0.7, unit='LENGTH', subtype='DISTANCE', update=update ) da = FloatProperty( - name="angle", + name="Angle", min=-pi, max=pi, default=pi / 2, @@ -1672,7 +1672,7 @@ class archipack_stair(ArchipackObject, Manipulable, PropertyGroup): parts = CollectionProperty(type=archipack_stair_part) n_parts = IntProperty( - name="parts", + name="Parts", min=1, max=32, default=1, update=update_manipulators @@ -1685,7 +1685,7 @@ class archipack_stair(ArchipackObject, Manipulable, PropertyGroup): update=update ) width = FloatProperty( - name="width", + name="Width", min=0.01, default=1.2, unit='LENGTH', subtype='DISTANCE', @@ -1706,7 +1706,7 @@ class archipack_stair(ArchipackObject, Manipulable, PropertyGroup): update=update ) x_offset = FloatProperty( - name="x offset", + name="Offset", default=0.0, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update @@ -1719,21 +1719,21 @@ class archipack_stair(ArchipackObject, Manipulable, PropertyGroup): update=update ) bottom_z = FloatProperty( - name="Stair bottom", + name="Thickness", min=0.001, default=0.03, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) radius = FloatProperty( - name="radius", + name="Radius", min=0.5, default=0.7, unit='LENGTH', subtype='DISTANCE', update=update ) da = FloatProperty( - name="angle", + name="Angle", min=-pi, max=pi, default=pi / 2, @@ -1741,7 +1741,7 @@ class archipack_stair(ArchipackObject, Manipulable, PropertyGroup): update=update ) total_angle = FloatProperty( - name="angle", + name="Angle", min=-50 * pi, max=50 * pi, default=2 * pi, @@ -1814,49 +1814,49 @@ class archipack_stair(ArchipackObject, Manipulable, PropertyGroup): update=update ) post_spacing = FloatProperty( - name="spacing", + name="Spacing", min=0.1, default=1.0, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) post_x = FloatProperty( - name="width", + name="Width", min=0.001, default=0.04, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) post_y = FloatProperty( - name="length", + name="Length", min=0.001, default=0.04, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) post_z = FloatProperty( - name="height", + name="Height", min=0.001, default=1, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) post_alt = FloatProperty( - name="altitude", + name="Altitude", min=-100, default=0, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) post_offset_x = FloatProperty( - name="offset", + name="Offset", min=-100.0, max=100, default=0.02, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) post_corners = BoolProperty( - name="only on edges", + name="Only on edges", update=update, default=False ) @@ -1866,7 +1866,7 @@ class archipack_stair(ArchipackObject, Manipulable, PropertyGroup): default=True ) user_defined_post = StringProperty( - name="user defined", + name="User defined", update=update ) idmat_post = EnumProperty( @@ -1886,42 +1886,42 @@ class archipack_stair(ArchipackObject, Manipulable, PropertyGroup): update=update ) subs_spacing = FloatProperty( - name="spacing", + name="Spacing", min=0.05, default=0.10, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) subs_x = FloatProperty( - name="width", + name="Width", min=0.001, default=0.02, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) subs_y = FloatProperty( - name="length", + name="Length", min=0.001, default=0.02, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) subs_z = FloatProperty( - name="height", + name="Height", min=0.001, default=1, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) subs_alt = FloatProperty( - name="altitude", + name="Altitude", min=-100, default=0, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) subs_offset_x = FloatProperty( - name="offset", + name="Offset", min=-100.0, max=100, default=0.0, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', @@ -1942,7 +1942,7 @@ class archipack_stair(ArchipackObject, Manipulable, PropertyGroup): default=True ) user_defined_subs = StringProperty( - name="user defined", + name="User defined", update=update ) idmat_subs = EnumProperty( @@ -1962,34 +1962,34 @@ class archipack_stair(ArchipackObject, Manipulable, PropertyGroup): update=update ) panel_alt = FloatProperty( - name="altitude", + name="Altitude", default=0.25, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) panel_x = FloatProperty( - name="width", + name="Width", min=0.001, default=0.01, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) panel_z = FloatProperty( - name="height", + name="Height", min=0.001, default=0.6, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) panel_dist = FloatProperty( - name="space", + name="Spacing", min=0.001, default=0.05, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) panel_offset_x = FloatProperty( - name="offset", + name="Offset", default=0.0, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update @@ -2011,14 +2011,14 @@ class archipack_stair(ArchipackObject, Manipulable, PropertyGroup): default=False ) rail_n = IntProperty( - name="number", + name="#", default=1, min=0, max=31, update=update ) rail_x = FloatVectorProperty( - name="width", + name="Width", default=[ 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, @@ -2032,7 +2032,7 @@ class archipack_stair(ArchipackObject, Manipulable, PropertyGroup): update=update ) rail_z = FloatVectorProperty( - name="height", + name="Height", default=[ 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, @@ -2046,7 +2046,7 @@ class archipack_stair(ArchipackObject, Manipulable, PropertyGroup): update=update ) rail_offset = FloatVectorProperty( - name="offset", + name="Offset", default=[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2059,7 +2059,7 @@ class archipack_stair(ArchipackObject, Manipulable, PropertyGroup): update=update ) rail_alt = FloatVectorProperty( - name="altitude", + name="Altitude", default=[ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, @@ -2084,30 +2084,30 @@ class archipack_stair(ArchipackObject, Manipulable, PropertyGroup): default=True ) handrail_offset = FloatProperty( - name="offset", + name="Offset", default=0.0, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) handrail_alt = FloatProperty( - name="altitude", + name="Altitude", default=1.0, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) handrail_extend = FloatProperty( - name="extend", + name="Extend", default=0.1, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) handrail_slice_left = BoolProperty( - name='slice', + name='Slice', default=True, update=update ) handrail_slice_right = BoolProperty( - name='slice', + name='Slice', default=True, update=update ) @@ -2122,21 +2122,21 @@ class archipack_stair(ArchipackObject, Manipulable, PropertyGroup): update=update ) handrail_x = FloatProperty( - name="width", + name="Width", min=0.001, default=0.04, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) handrail_y = FloatProperty( - name="height", + name="Height", min=0.001, default=0.04, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) handrail_radius = FloatProperty( - name="radius", + name="Radius", min=0.001, default=0.02, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', @@ -2154,26 +2154,26 @@ class archipack_stair(ArchipackObject, Manipulable, PropertyGroup): default=False ) string_x = FloatProperty( - name="width", + name="Width", min=-100.0, default=0.02, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) string_z = FloatProperty( - name="height", + name="Height", default=0.3, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) string_offset = FloatProperty( - name="offset", + name="Offset", default=0.0, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update ) string_alt = FloatProperty( - name="altitude", + name="Altitude", default=-0.04, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', update=update diff --git a/archipack/archipack_wall2.py b/archipack/archipack_wall2.py index 06dabb0e..f52233a5 100644 --- a/archipack/archipack_wall2.py +++ b/archipack/archipack_wall2.py @@ -623,21 +623,21 @@ class archipack_wall2_part(PropertyGroup): update=update_type ) length = FloatProperty( - name="length", + name="Length", min=0.01, default=2.0, unit='LENGTH', subtype='DISTANCE', update=update ) radius = FloatProperty( - name="radius", + name="Radius", min=0.5, default=0.7, unit='LENGTH', subtype='DISTANCE', update=update ) a0 = FloatProperty( - name="start angle", + name="Start angle", min=-pi, max=pi, default=pi / 2, @@ -645,7 +645,7 @@ class archipack_wall2_part(PropertyGroup): update=update ) da = FloatProperty( - name="angle", + name="Angle", min=-pi, max=pi, default=pi / 2, @@ -653,7 +653,7 @@ class archipack_wall2_part(PropertyGroup): update=update ) z = FloatVectorProperty( - name="height", + name="Height", default=[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -664,7 +664,7 @@ class archipack_wall2_part(PropertyGroup): update=update ) t = FloatVectorProperty( - name="position", + name="Position", min=0, max=1, default=[ @@ -677,19 +677,19 @@ class archipack_wall2_part(PropertyGroup): update=update ) splits = IntProperty( - name="splits", - default=1, - min=1, - max=31, - get=get_splits, set=set_splits - ) + name="Splits", + default=1, + min=1, + max=31, + get=get_splits, set=set_splits + ) n_splits = IntProperty( - name="splits", - default=1, - min=1, - max=31, - update=update - ) + name="Splits", + default=1, + min=1, + max=31, + update=update + ) auto_update = BoolProperty(default=True) manipulators = CollectionProperty(type=archipack_manipulator) # ui related @@ -777,14 +777,14 @@ class archipack_wall2_child(PropertyGroup): class archipack_wall2(ArchipackObject, Manipulable, PropertyGroup): parts = CollectionProperty(type=archipack_wall2_part) n_parts = IntProperty( - name="parts", + name="Parts", min=1, max=1024, default=1, update=update_manipulators ) step_angle = FloatProperty( description="Curved parts segmentation", - name="step angle", + name="Step angle", min=1 / 180 * pi, max=pi, default=6 / 180 * pi, @@ -792,41 +792,45 @@ class archipack_wall2(ArchipackObject, Manipulable, PropertyGroup): update=update ) width = FloatProperty( - name="width", + name="Width", min=0.01, default=0.2, unit='LENGTH', subtype='DISTANCE', update=update ) z = FloatProperty( - name='height', + name='Height', min=0.1, default=2.7, precision=2, unit='LENGTH', subtype='DISTANCE', description='height', update=update, ) x_offset = FloatProperty( - name="x offset", + name="Offset", min=-1, max=1, default=-1, precision=2, step=1, update=update ) radius = FloatProperty( - name="radius", + name="Radius", min=0.5, default=0.7, unit='LENGTH', subtype='DISTANCE', update=update ) da = FloatProperty( - name="angle", + name="Angle", min=-pi, max=pi, default=pi / 2, subtype='ANGLE', unit='ROTATION', update=update ) - flip = BoolProperty(default=False, update=update_childs) + flip = BoolProperty( + name="Flip", + default=False, + update=update_childs + ) closed = BoolProperty( default=False, name="Close", @@ -840,7 +844,7 @@ class archipack_wall2(ArchipackObject, Manipulable, PropertyGroup): realtime = BoolProperty( options={'SKIP_SAVE'}, default=True, - name="RealTime", + name="Real Time", description="Relocate childs in realtime" ) # dumb manipulators to show sizes between childs diff --git a/archipack/archipack_window.py b/archipack/archipack_window.py index a0400f54..4b052643 100644 --- a/archipack/archipack_window.py +++ b/archipack/archipack_window.py @@ -72,7 +72,7 @@ def get_cols(self): class archipack_window_panelrow(PropertyGroup): width = FloatVectorProperty( - name="width", + name="Width", min=0.5, max=100.0, default=[ @@ -96,7 +96,7 @@ class archipack_window_panelrow(PropertyGroup): update=update ) cols = IntProperty( - name="panels", + name="Panels", description="number of panels getter and setter, to avoid infinite recursion", min=1, max=32, @@ -104,7 +104,7 @@ class archipack_window_panelrow(PropertyGroup): get=get_cols, set=set_cols ) n_cols = IntProperty( - name="panels", + name="Panels", description="store number of panels, internal use only to avoid infinite recursion", min=1, max=32, @@ -426,28 +426,28 @@ class archipack_window_panel(ArchipackObject, PropertyGroup): class archipack_window(ArchipackObject, Manipulable, PropertyGroup): x = FloatProperty( - name='width', + name='Width', min=0.25, default=100.0, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', description='Width', update=update ) y = FloatProperty( - name='depth', + name='Depth', min=0.1, default=0.20, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', description='Depth', update=update, ) z = FloatProperty( - name='height', + name='Height', min=0.1, default=1.2, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', description='height', update=update, ) angle_y = FloatProperty( - name='angle', + name='Angle', unit='ROTATION', subtype='ANGLE', min=-1.5, max=1.5, @@ -455,27 +455,27 @@ class archipack_window(ArchipackObject, Manipulable, PropertyGroup): description='angle', update=update, ) radius = FloatProperty( - name='radius', + name='Radius', min=0.1, default=2.5, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', description='radius', update=update, ) elipsis_b = FloatProperty( - name='ellipsis', + name='Ellipsis', min=0.1, default=0.5, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', description='ellipsis vertical size', update=update, ) altitude = FloatProperty( - name='altitude', + name='Altitude', default=1.0, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', description='altitude', update=update, ) offset = FloatProperty( - name='offset', + name='Offset', default=0.1, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', description='offset', update=update, @@ -520,7 +520,7 @@ class archipack_window(ArchipackObject, Manipulable, PropertyGroup): description='frame width set to 0 disable front frame', update=update, ) out_frame_offset = FloatProperty( - name='offset', + name='Offset', min=0.0, default=0.0, precision=3, step=0.1, unit='LENGTH', subtype='DISTANCE', @@ -603,13 +603,13 @@ class archipack_window(ArchipackObject, Manipulable, PropertyGroup): ) rows = CollectionProperty(type=archipack_window_panelrow) n_rows = IntProperty( - name="number of rows", + name="Number of rows", min=1, max=32, default=1, update=update, ) curve_steps = IntProperty( - name="curve steps", + name="Steps", min=6, max=128, default=16, update=update, @@ -652,22 +652,22 @@ class archipack_window(ArchipackObject, Manipulable, PropertyGroup): ) warning = BoolProperty( options={'SKIP_SAVE'}, - name="warning", + name="Warning", default=False ) handle_enable = BoolProperty( - name='handle', + name='Handle', default=True, update=update_childs, ) handle_altitude = FloatProperty( - name="altitude", + name="Altitude", min=0, default=1.4, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', description='handle altitude', update=update_childs, ) hole_margin = FloatProperty( - name='hole margin', + name='Hole margin', min=0.0, default=0.1, precision=2, step=1, unit='LENGTH', subtype='DISTANCE', diff --git a/archipack/presets/archipack_materials/roof.txt b/archipack/presets/archipack_materials/roof.txt index 1527ea78..0c15bcf7 100644 --- a/archipack/presets/archipack_materials/roof.txt +++ b/archipack/presets/archipack_materials/roof.txt @@ -45,5 +45,4 @@ METAL##|##Roof_metal METAL##|##Roof_metal2 METAL##|##Roof_metal3 METAL##|##Roof_metal4 -METAL##|##Roof_metal5 - +METAL##|##Roof_metal5
\ No newline at end of file diff --git a/archipack/presets/archipack_window/180x210_flat_3.py b/archipack/presets/archipack_window/180x210_flat_3.py index df26b7a5..825b4ffd 100644 --- a/archipack/presets/archipack_window/180x210_flat_3.py +++ b/archipack/presets/archipack_window/180x210_flat_3.py @@ -25,7 +25,7 @@ d.out_tablet_x = 0.03999999910593033 d.out_frame = False d.y = 0.20000000298023224 d.in_tablet_z = 0.029999999329447746 -d.handle_altitude = 1.399999976158142 +d.handle_altitude = 1.1 d.out_frame_y2 = 0.019999999552965164 d.out_tablet_y = 0.03999999910593033 d.in_tablet_y = 0.03999999910593033 diff --git a/archipack/presets/archipack_window/240x210_rail_3.py b/archipack/presets/archipack_window/240x210_rail_3.py index 4cec930b..bba17e78 100644 --- a/archipack/presets/archipack_window/240x210_rail_3.py +++ b/archipack/presets/archipack_window/240x210_rail_3.py @@ -25,7 +25,7 @@ d.out_tablet_x = 0.03999999910593033 d.out_frame = False d.y = 0.20000000298023224 d.in_tablet_z = 0.029999999329447746 -d.handle_altitude = 1.399999976158142 +d.handle_altitude = 1.2 d.out_frame_y2 = 0.019999999552965164 d.out_tablet_y = 0.03999999910593033 d.in_tablet_y = 0.03999999910593033 |