Module voxelfuse_examples.fish_tail.tail
Multimaterial fish tail.
Apply blurring to the specified materials.
Copyright 2019 - Cole Brauer, Dan Aukes
Expand source code
"""
Multimaterial fish tail.
Apply blurring to the specified materials.
----
Copyright 2019 - Cole Brauer, Dan Aukes
"""
from voxelfuse.voxel_model import VoxelModel, Axes
from voxelfuse.mesh import Mesh
if __name__=='__main__':
# User preferences
modelName = 'tail-20.vox'
blurMaterials = [1, 2] # materials to blur
blurRadius = 5
# Import model
modelIn = VoxelModel.fromVoxFile(modelName)
# Rotate to best orientation for printing
modelIn = modelIn.rotate90(axis=Axes.Y)
# Isolate materials with blurring requested
modelBlur = VoxelModel.emptyLike(modelIn)
for m in blurMaterials:
modelBlur = modelBlur.union(modelIn.isolateMaterial(m))
# Blur compatible materials
modelBlur = modelBlur.blur(blurRadius)
# Add unmodified voxels to result
modelResult = modelBlur.union(modelIn)
# Clean up result
modelResult = modelResult.scaleValues()
modelResult = modelResult.round() # "posterize" result
modelResult = modelResult.removeDuplicateMaterials()
# Create mesh files
# for m in range(1, len(modelResult.materials)):
# currentMaterial = modelResult.isolateMaterial(m)
# currentMesh = Mesh.fromVoxelModel(currentMaterial)
# currentMesh.export('output_' + str(m) + '.stl')
# Create mesh data
mesh1 = Mesh.fromVoxelModel(modelIn)
mesh2 = Mesh.fromVoxelModel(modelResult)
# Create plots
# mesh1.viewer(name='Input')
mesh2.viewer(name='Output')