From a4d821d0da314d78928130025f7756a1e0e56eea Mon Sep 17 00:00:00 2001 From: Chris Want Date: Mon, 4 Nov 2019 20:06:41 -0700 Subject: [PATCH] Update to work with Blender 2.8 and set up packaging. --- README.md | 14 ++ .../wire_skin_demo.blend | Bin 5412276 -> 5394216 bytes demo/wire_skin_demo.py | 182 ++++++++++++++++++ setup.py | 43 +++++ wire_skin/__init__.py | 1 + wire_skin.py => wire_skin/wire_skin.py | 17 +- 6 files changed, 255 insertions(+), 2 deletions(-) rename wire_skin_demo.blend => demo/wire_skin_demo.blend (95%) create mode 100644 demo/wire_skin_demo.py create mode 100644 setup.py create mode 100644 wire_skin/__init__.py rename wire_skin.py => wire_skin/wire_skin.py (97%) diff --git a/README.md b/README.md index b220122..e06c78b 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,20 @@ Non-ASCII version: ![Screenshot](documentation/wire_skin_demo1.png?raw=true "Screenshot") +## Installation + +This software works with Blender 2.8 and earlier versions too. + +Check out the repository and look in the demo directory. + +This software may also be installed via pip: + +python3 -m pip install wire_skin + +or + +pip3 install wire_skin + ## Motivation Blender has a skin modifier that does great things for a lot of meshes. It doesn't seem to do the right thing for some of the sorts of meshes I want 3D printed (usually the caps where the vertices are have an asymmetry that is displeasing to me). The meshes I am trying to create are typically geometric cages for presenting other 3D objects. diff --git a/wire_skin_demo.blend b/demo/wire_skin_demo.blend similarity index 95% rename from wire_skin_demo.blend rename to demo/wire_skin_demo.blend index 9b91702d50ea45e24e9d90e995f2030dec381034..1445d62ef60425f12a776d47522d17a14cf8623c 100644 GIT binary patch delta 86467 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℘e+n4&7UM~{jNRTu*s#?(v6nQ^z6cB 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 Vge=((u~?ORf_tt&Y>QUe{|}hWE-U~5 diff --git a/demo/wire_skin_demo.py b/demo/wire_skin_demo.py new file mode 100644 index 0000000..152becf --- /dev/null +++ b/demo/wire_skin_demo.py @@ -0,0 +1,182 @@ +# Don't run me directly! +# Take a look at wire_skin_demo.blend + +import bpy +import sys +from importlib import reload + +# Get wire_skin from current directory +sys.path.append(bpy.path.abspath("//")) + +import wire_skin +reload(wire_skin) + +from wire_skin import WireSkin + +def main(): + # A bunch of layers have demos + + # Generic mesh + layer1() + + # Creased mesh + layer2() + + # Spiky mesh + layer3() + + # Generating multiple from same wire + layer4() + + # Displace with booleans + layer5() + + # Torus made of hexagons + layer6() + + # Torus made of hexagons, proportial scale + layer7() + + # 'Edges without poles' option + layer8() + +def wire_to_skin(in_name, out_name, **kwargs): + input_object = bpy.data.objects[in_name] + output_object = bpy.data.objects[out_name] + output_materials = output_object.data.materials + + wire_skin = \ + WireSkin(input_object.data, **kwargs) + + me = wire_skin.create_mesh() + for material in output_materials: + me.materials.append(material) + output_object.data = me + +def layer1(): + options = { + 'width': 0.15, + 'height': 0.1, + 'inside_radius': 0.3, + 'outside_radius': 0.8, + 'dist': 0.4 + } + wire_to_skin("Wire1", "WireSkin1", **options) + +def layer2(): + options = { + 'width': 0.1, + 'height': 0.2, + 'inside_radius': 0.1, + 'outside_radius': 0.1, + 'dist': 0.2, + 'crease': 1.0 + } + wire_to_skin("Wire2", "WireSkin2", **options) + +def layer3(): + options = { + 'width': 0.1, + 'height': 0.2, + 'inside_radius': 0.1, + 'outside_radius': 0.8, + 'dist': 0.2, + } + wire_to_skin("Wire3", "WireSkin3", **options) + +def layer4(): + options = { + 'width': 0.5, + 'height': 0.2, + 'inside_radius': 0.1, + 'outside_radius': 0.1, + 'dist': 0.8, + } + wire_to_skin("Wire4", "WireSkin4", **options) + + options = { + 'width': 0.3, + 'height': 0.3, + 'inside_radius': 0.1, + 'outside_radius': 0.1, + 'dist': 0.8, + } + wire_to_skin("Wire4", "WireSkin4a", **options) + + options = { + 'width': 0.1, + 'height': 0.4, + 'inside_radius': 0.1, + 'outside_radius': 0.1, + 'dist': 0.8, + } + wire_to_skin("Wire4", "WireSkin4b", **options) + +def layer5(): + options = { + 'width': 0.5, + 'height': 0.3, + 'inside_radius': 0.1, + 'outside_radius': 0.1, + 'dist': 1.0, + 'crease': 1.0 + } + wire_to_skin("Wire5", "WireSkin5", **options) + + # This one is on layer 15 + # It is subtracted from previous object + options = { + 'width': 0.3, + 'height': 0.3, + 'inside_radius': 0.1, + 'outside_radius': 0.1, + 'dist': 0.8, + 'crease': 1.0, + 'displace': 0.15 + } + wire_to_skin("Wire5", "WireSkin5a", **options) + + options = { + 'width': 0.05, + 'height': 0.3, + 'inside_radius': 0.1, + 'outside_radius': 0.1, + 'dist': 0.8, + 'crease': 1.0, + } + wire_to_skin("Wire5", "WireSkin5b", **options) + +def layer6(): + options = { + 'width': 0.07, + 'height': 0.05, + 'inside_radius': 0.04, + 'outside_radius': 0.02, + 'dist': 0.025 + } + wire_to_skin("Wire6", "WireSkin6", **options) + +def layer7(): + options = { + 'width': 0.3, + 'height': 0.3, + 'inside_radius': 0.2, + 'outside_radius': 0.1, + 'dist': 0.3, + 'proportional_scale': True + } + wire_to_skin("Wire7", "WireSkin7", **options) + +def layer8(): + options = { + 'width': 0.15, + 'height': 0.1, + 'inside_radius': 0.3, + 'outside_radius': 0.8, + 'dist': 0.4 + } + wire_to_skin("Wire8", "WireSkin8", **options) + options['edges_without_poles'] = True + wire_to_skin("Wire8", "WireSkin8a", **options) + +main() diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..c73f235 --- /dev/null +++ b/setup.py @@ -0,0 +1,43 @@ +from setuptools import setup, find_packages + +long_description = ''' +======================================================================= +wire_skin: construct a simple skin around a wire frame mesh in Blender. +======================================================================= + +Please visit the Github repository for documentation: + +``_ + +Either checkout the code from the Github project, or install via pip:: + + python3 -m pip install wire_skin + +or:: + + pip3 install wire_skin + +'''[1:-1] + +setup( + name='wire_skin', + version='0.3', + description='Construct a simple skin around a wire frame mesh in Blender.', + long_description=long_description, + url='https://github.com/cwant/wire_skin', + author='Chris Want', + classifiers=['Development Status :: 3 - Alpha', + 'Intended Audience :: Developers', + 'Intended Audience :: Manufacturing', + 'Intended Audience :: Science/Research', + 'License :: OSI Approved :: Apache Software License', + 'Natural Language :: English', + 'Programming Language :: Python :: 3 :: Only', + 'Topic :: Artistic Software', + 'Topic :: Multimedia :: Graphics :: 3D Modeling', + 'Topic :: Scientific/Engineering :: Mathematics', + 'Topic :: Scientific/Engineering :: Visualization'], + keywords='skin wire frame modeling blender', + packages=find_packages(exclude=['tests', 'demo']), + python_requires='~=3.5' +) diff --git a/wire_skin/__init__.py b/wire_skin/__init__.py new file mode 100644 index 0000000..9fd9775 --- /dev/null +++ b/wire_skin/__init__.py @@ -0,0 +1 @@ +from .wire_skin import WireSkin diff --git a/wire_skin.py b/wire_skin/wire_skin.py similarity index 97% rename from wire_skin.py rename to wire_skin/wire_skin.py index 40329ea..82459d2 100644 --- a/wire_skin.py +++ b/wire_skin/wire_skin.py @@ -60,6 +60,19 @@ def __init__(self, v, bm, **kwargs): self.creased_edges = [] + # Gee whiz, I can't believe I have to do this ... + blender_version = float(bpy.app.version_string.split()[0]) + if (blender_version < 2.8): + self.mult = self.mult_27 + else: + self.mult = self.mult_28 + + def mult_27(self, x, y): + return x * y + + def mult_28(self, x, y): + return x @ y + def add_edge_vert(self, edge, v): vec = Vector(v.co) edge_vert = { 'v': vec, @@ -115,7 +128,7 @@ def least_squares_normal(self, vave, diffs): a = (yz*xy - xz*yy) / det_z b = (xz*xy - yz*xx) / det_z normal = Vector((a, b, 1.0)) - if vave * normal < 0.0: + if self.mult(vave, normal) < 0.0: return -normal return normal @@ -207,7 +220,7 @@ def reorder_edge_verts(self): theta_edge_verts = {} for i in range(1, len(self.input_edge_verts)): edge_vert = self.input_edge_verts[i]['v'] - v = mat * (edge_vert - self.input_vert) + v = self.mult(mat, edge_vert - self.input_vert) theta = atan2(v[1], v[0]) if theta < 0.0: theta += 2 * pi