本文整理汇总了Python中UM.Mesh.MeshBuilder.MeshBuilder.addCube方法的典型用法代码示例。如果您正苦于以下问题:Python MeshBuilder.addCube方法的具体用法?Python MeshBuilder.addCube怎么用?Python MeshBuilder.addCube使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类UM.Mesh.MeshBuilder.MeshBuilder
的用法示例。
在下文中一共展示了MeshBuilder.addCube方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _createEraserMesh
# 需要导入模块: from UM.Mesh.MeshBuilder import MeshBuilder [as 别名]
# 或者: from UM.Mesh.MeshBuilder.MeshBuilder import addCube [as 别名]
def _createEraserMesh(self, parent: CuraSceneNode, position: Vector):
node = CuraSceneNode()
node.setName("Eraser")
node.setSelectable(True)
mesh = MeshBuilder()
mesh.addCube(10,10,10)
node.setMeshData(mesh.build())
active_build_plate = Application.getInstance().getMultiBuildPlateModel().activeBuildPlate
node.addDecorator(BuildPlateDecorator(active_build_plate))
node.addDecorator(SliceableObjectDecorator())
stack = node.callDecoration("getStack") # created by SettingOverrideDecorator that is automatically added to CuraSceneNode
settings = stack.getTop()
definition = stack.getSettingDefinition("anti_overhang_mesh")
new_instance = SettingInstance(definition, settings)
new_instance.setProperty("value", True)
new_instance.resetState() # Ensure that the state is not seen as a user state.
settings.addInstance(new_instance)
op = GroupedOperation()
# First add node to the scene at the correct position/scale, before parenting, so the eraser mesh does not get scaled with the parent
op.addOperation(AddSceneNodeOperation(node, self._controller.getScene().getRoot()))
op.addOperation(SetParentOperation(node, parent))
op.push()
node.setPosition(position, CuraSceneNode.TransformSpace.World)
Application.getInstance().getController().getScene().sceneChanged.emit(node)
示例2: test_compute2DConvexHullMeshData
# 需要导入模块: from UM.Mesh.MeshBuilder import MeshBuilder [as 别名]
# 或者: from UM.Mesh.MeshBuilder.MeshBuilder import addCube [as 别名]
def test_compute2DConvexHullMeshData(convex_hull_decorator):
node = SceneNode()
mb = MeshBuilder()
mb.addCube(10,10,10)
node.setMeshData(mb.build())
convex_hull_decorator._getSettingProperty = MagicMock(return_value = 0)
with patch("UM.Application.Application.getInstance", MagicMock(return_value=mocked_application)):
convex_hull_decorator.setNode(node)
assert convex_hull_decorator._compute2DConvexHull() == Polygon([[5.0,-5.0], [-5.0,-5.0], [-5.0,5.0], [5.0,5.0]])
示例3: test_getExtents
# 需要导入模块: from UM.Mesh.MeshBuilder import MeshBuilder [as 别名]
# 或者: from UM.Mesh.MeshBuilder.MeshBuilder import addCube [as 别名]
def test_getExtents():
# Create a cube mesh at position 0,0,0
builder = MeshBuilder()
builder.addCube(20, 20, 20)
mesh_data = builder.build()
extents = mesh_data.getExtents()
assert extents.width == 20
assert extents.height == 20
assert extents.depth == 20
assert extents.maximum == Vector(10, 10, 10)
assert extents.minimum == Vector(-10, -10, -10)
示例4: test_getExtentsTransposed
# 需要导入模块: from UM.Mesh.MeshBuilder import MeshBuilder [as 别名]
# 或者: from UM.Mesh.MeshBuilder.MeshBuilder import addCube [as 别名]
def test_getExtentsTransposed():
# Create a cube mesh at position 0,0,0
builder = MeshBuilder()
builder.addCube(20, 20, 20)
mesh_data = builder.build()
transformation_matrix = Matrix()
transformation_matrix.setByTranslation(Vector(10, 10, 10))
extents = mesh_data.getExtents(transformation_matrix)
assert extents.width == 20
assert extents.height == 20
assert extents.depth == 20
assert extents.maximum == Vector(20, 20, 20)
assert extents.minimum == Vector(0, 0, 0)
示例5: test_compute2DConvexHullMeshDataGrouped
# 需要导入模块: from UM.Mesh.MeshBuilder import MeshBuilder [as 别名]
# 或者: from UM.Mesh.MeshBuilder.MeshBuilder import addCube [as 别名]
def test_compute2DConvexHullMeshDataGrouped(convex_hull_decorator):
parent_node = SceneNode()
parent_node.addDecorator(GroupDecorator())
node = SceneNode()
parent_node.addChild(node)
mb = MeshBuilder()
mb.addCube(10, 10, 10)
node.setMeshData(mb.build())
convex_hull_decorator._getSettingProperty = MagicMock(return_value=0)
with patch("UM.Application.Application.getInstance", MagicMock(return_value=mocked_application)):
convex_hull_decorator.setNode(parent_node)
with patch("cura.Settings.ExtruderManager.ExtruderManager.getInstance"):
copied_decorator = copy.deepcopy(convex_hull_decorator)
copied_decorator._getSettingProperty = MagicMock(return_value=0)
node.addDecorator(copied_decorator)
assert convex_hull_decorator._compute2DConvexHull() == Polygon([[-5.0,5.0], [5.0,5.0], [5.0,-5.0], [-5.0,-5.0]])
示例6: buildMesh
# 需要导入模块: from UM.Mesh.MeshBuilder import MeshBuilder [as 别名]
# 或者: from UM.Mesh.MeshBuilder.MeshBuilder import addCube [as 别名]
def buildMesh(self):
mb = MeshBuilder()
#SOLIDMESH -> LINES
if self.YAxis in self._enabled_axis:
mb.addCube(
width = self._line_width,
height = self._line_length,
depth = self._line_width,
center = Vector(0, self._handle_position/2, 0),
color = self._y_axis_color
)
if self.XAxis in self._enabled_axis:
mb.addCube(
width = self._line_length,
height = self._line_width,
depth = self._line_width,
center = Vector(self._handle_position/2, 0, 0),
color = self._x_axis_color
)
if self.ZAxis in self._enabled_axis:
mb.addCube(
width = self._line_width,
height = self._line_width,
depth = self._line_length,
center = Vector(0, 0, self._handle_position/2),
color = self._z_axis_color
)
#SOLIDMESH -> HANDLES
if self.YAxis in self._enabled_axis:
mb.addPyramid(
width = self._handle_width,
height = self._handle_height,
depth = self._handle_width,
center = Vector(0, self._handle_position, 0),
color = self._y_axis_color
)
if self.XAxis in self._enabled_axis:
mb.addPyramid(
width = self._handle_width,
height = self._handle_height,
depth = self._handle_width,
center = Vector(self._handle_position, 0, 0),
color = self._x_axis_color,
axis = Vector.Unit_Z,
angle = 90
)
if self.ZAxis in self._enabled_axis:
mb.addPyramid(
width = self._handle_width,
height = self._handle_height,
depth = self._handle_width,
center = Vector(0, 0, self._handle_position),
color = self._z_axis_color,
axis = Vector.Unit_X,
angle = -90
)
self.setSolidMesh(mb.build())
mb = MeshBuilder()
#SELECTIONMESH -> LINES
if self.YAxis in self._enabled_axis:
mb.addCube(
width = self._active_line_width,
height = self._active_line_length,
depth = self._active_line_width,
center = Vector(0, self._active_handle_position/2, 0),
color = self._y_axis_color
)
if self.XAxis in self._enabled_axis:
mb.addCube(
width = self._active_line_length,
height = self._active_line_width,
depth = self._active_line_width,
center = Vector(self._active_handle_position/2, 0, 0),
color = self._x_axis_color
)
if self.ZAxis in self._enabled_axis:
mb.addCube(
width = self._active_line_width,
height = self._active_line_width,
depth = self._active_line_length,
center = Vector(0, 0, self._active_handle_position/2),
color = self._z_axis_color
)
#SELECTIONMESH -> HANDLES
mb.addCube(
width = self._active_handle_width,
height = self._active_handle_width,
depth = self._active_handle_width,
center = Vector(0, 0, 0),
color = ToolHandle.AllAxisSelectionColor
)
#.........这里部分代码省略.........
示例7: rebuild
# 需要导入模块: from UM.Mesh.MeshBuilder import MeshBuilder [as 别名]
# 或者: from UM.Mesh.MeshBuilder.MeshBuilder import addCube [as 别名]
def rebuild(self):
if not self._width or not self._height or not self._depth:
return
min_w = -self._width / 2
max_w = self._width / 2
min_h = 0.0
max_h = self._height
min_d = -self._depth / 2
max_d = self._depth / 2
z_fight_distance = 0.2 # Distance between buildplate and disallowed area meshes to prevent z-fighting
if self._shape != "elliptic":
# Outline 'cube' of the build volume
mb = MeshBuilder()
mb.addLine(Vector(min_w, min_h, min_d), Vector(max_w, min_h, min_d), color = self.VolumeOutlineColor)
mb.addLine(Vector(min_w, min_h, min_d), Vector(min_w, max_h, min_d), color = self.VolumeOutlineColor)
mb.addLine(Vector(min_w, max_h, min_d), Vector(max_w, max_h, min_d), color = self.VolumeOutlineColor)
mb.addLine(Vector(max_w, min_h, min_d), Vector(max_w, max_h, min_d), color = self.VolumeOutlineColor)
mb.addLine(Vector(min_w, min_h, max_d), Vector(max_w, min_h, max_d), color = self.VolumeOutlineColor)
mb.addLine(Vector(min_w, min_h, max_d), Vector(min_w, max_h, max_d), color = self.VolumeOutlineColor)
mb.addLine(Vector(min_w, max_h, max_d), Vector(max_w, max_h, max_d), color = self.VolumeOutlineColor)
mb.addLine(Vector(max_w, min_h, max_d), Vector(max_w, max_h, max_d), color = self.VolumeOutlineColor)
mb.addLine(Vector(min_w, min_h, min_d), Vector(min_w, min_h, max_d), color = self.VolumeOutlineColor)
mb.addLine(Vector(max_w, min_h, min_d), Vector(max_w, min_h, max_d), color = self.VolumeOutlineColor)
mb.addLine(Vector(min_w, max_h, min_d), Vector(min_w, max_h, max_d), color = self.VolumeOutlineColor)
mb.addLine(Vector(max_w, max_h, min_d), Vector(max_w, max_h, max_d), color = self.VolumeOutlineColor)
self.setMeshData(mb.build())
# Build plate grid mesh
mb = MeshBuilder()
mb.addQuad(
Vector(min_w, min_h - z_fight_distance, min_d),
Vector(max_w, min_h - z_fight_distance, min_d),
Vector(max_w, min_h - z_fight_distance, max_d),
Vector(min_w, min_h - z_fight_distance, max_d)
)
for n in range(0, 6):
v = mb.getVertex(n)
mb.setVertexUVCoordinates(n, v[0], v[2])
self._grid_mesh = mb.build()
else:
# Bottom and top 'ellipse' of the build volume
aspect = 1.0
scale_matrix = Matrix()
if self._width != 0:
# Scale circular meshes by aspect ratio if width != height
aspect = self._height / self._width
scale_matrix.compose(scale = Vector(1, 1, aspect))
mb = MeshBuilder()
mb.addArc(max_w, Vector.Unit_Y, center = (0, min_h - z_fight_distance, 0), color = self.VolumeOutlineColor)
mb.addArc(max_w, Vector.Unit_Y, center = (0, max_h, 0), color = self.VolumeOutlineColor)
self.setMeshData(mb.build().getTransformed(scale_matrix))
# Build plate grid mesh
mb = MeshBuilder()
mb.addVertex(0, min_h - z_fight_distance, 0)
mb.addArc(max_w, Vector.Unit_Y, center = Vector(0, min_h - z_fight_distance, 0))
sections = mb.getVertexCount() - 1 # Center point is not an arc section
indices = []
for n in range(0, sections - 1):
indices.append([0, n + 2, n + 1])
mb.addIndices(numpy.asarray(indices, dtype = numpy.int32))
mb.calculateNormals()
for n in range(0, mb.getVertexCount()):
v = mb.getVertex(n)
mb.setVertexUVCoordinates(n, v[0], v[2] * aspect)
self._grid_mesh = mb.build().getTransformed(scale_matrix)
# Indication of the machine origin
if self._global_container_stack.getProperty("machine_center_is_zero", "value"):
origin = (Vector(min_w, min_h, min_d) + Vector(max_w, min_h, max_d)) / 2
else:
origin = Vector(min_w, min_h, max_d)
mb = MeshBuilder()
mb.addCube(
width = self._origin_line_length,
height = self._origin_line_width,
depth = self._origin_line_width,
center = origin + Vector(self._origin_line_length / 2, 0, 0),
color = self.XAxisColor
)
mb.addCube(
width = self._origin_line_width,
height = self._origin_line_length,
depth = self._origin_line_width,
center = origin + Vector(0, self._origin_line_length / 2, 0),
color = self.YAxisColor
)
mb.addCube(
width = self._origin_line_width,
height = self._origin_line_width,
#.........这里部分代码省略.........
示例8: _rebuild
# 需要导入模块: from UM.Mesh.MeshBuilder import MeshBuilder [as 别名]
# 或者: from UM.Mesh.MeshBuilder.MeshBuilder import addCube [as 别名]
def _rebuild(self):
mb = MeshBuilder()
#SOLIDMESH -> LINES
if self.YAxis in self._enabled_axis:
mb.addCube(
width = self._lineWidth,
height = self._lineLength,
depth = self._lineWidth,
center = Vector(0, self._handlePosition/2, 0),
color = ToolHandle.YAxisColor
)
if self.XAxis in self._enabled_axis:
mb.addCube(
width = self._lineLength,
height = self._lineWidth,
depth = self._lineWidth,
center = Vector(self._handlePosition/2, 0, 0),
color = ToolHandle.XAxisColor
)
if self.ZAxis in self._enabled_axis:
mb.addCube(
width = self._lineWidth,
height = self._lineWidth,
depth = self._lineLength,
center = Vector(0, 0, self._handlePosition/2),
color = ToolHandle.ZAxisColor
)
#SOLIDMESH -> HANDLES
if self.YAxis in self._enabled_axis:
mb.addPyramid(
width = self._handleWidth,
height = self._handleHeight,
depth = self._handleWidth,
center = Vector(0, self._handlePosition, 0),
color = ToolHandle.YAxisColor
)
if self.XAxis in self._enabled_axis:
mb.addPyramid(
width = self._handleWidth,
height = self._handleHeight,
depth = self._handleWidth,
center = Vector(self._handlePosition, 0, 0),
color = ToolHandle.XAxisColor,
axis = Vector.Unit_Z,
angle = 90
)
if self.ZAxis in self._enabled_axis:
mb.addPyramid(
width = self._handleWidth,
height = self._handleHeight,
depth = self._handleWidth,
center = Vector(0, 0, self._handlePosition),
color = ToolHandle.ZAxisColor,
axis = Vector.Unit_X,
angle = -90
)
self.setSolidMesh(mb.getData())
mb = MeshBuilder()
#ACTIVEMESH -> LINES
if self.YAxis in self._enabled_axis:
mb.addCube(
width = self._activeLineWidth,
height = self._activeLineLength,
depth = self._activeLineWidth,
center = Vector(0, self._activeHandlePosition/2, 0),
color = ToolHandle.YAxisColor
)
if self.XAxis in self._enabled_axis:
mb.addCube(
width = self._activeLineLength,
height = self._activeLineWidth,
depth = self._activeLineWidth,
center = Vector(self._activeHandlePosition/2, 0, 0),
color = ToolHandle.XAxisColor
)
if self.ZAxis in self._enabled_axis:
mb.addCube(
width = self._activeLineWidth,
height = self._activeLineWidth,
depth = self._activeLineLength,
center = Vector(0, 0, self._activeHandlePosition/2),
color = ToolHandle.ZAxisColor
)
#SELECTIONMESH -> HANDLES
mb.addCube(
width = self._activeHandleWidth,
height = self._activeHandleWidth,
depth = self._activeHandleWidth,
center = Vector(0, 0, 0),
color = ToolHandle.AllAxisColor
)
#.........这里部分代码省略.........
示例9: buildMesh
# 需要导入模块: from UM.Mesh.MeshBuilder import MeshBuilder [as 别名]
# 或者: from UM.Mesh.MeshBuilder.MeshBuilder import addCube [as 别名]
def buildMesh(self):
#SOLIDMESH -> LINES
mb = MeshBuilder()
mb.addCube(
width = self._line_width,
height = self._line_length,
depth = self._line_width,
center = Vector(0, self._handle_position/2, 0),
color = self._y_axis_color
)
mb.addCube(
width = self._line_length,
height = self._line_width,
depth = self._line_width,
center = Vector(self._handle_position/2, 0, 0),
color = self._x_axis_color
)
mb.addCube(
width = self._line_width,
height = self._line_width,
depth = self._line_length,
center = Vector(0, 0, self._handle_position/2),
color = self._z_axis_color
)
#SOLIDMESH -> HANDLES
mb.addCube(
width = self._handle_width,
height = self._handle_width,
depth = self._handle_width,
center = Vector(0, 0, 0),
color = self._all_axis_color
)
mb.addCube(
width = self._handle_width,
height = self._handle_width,
depth = self._handle_width,
center = Vector(0, self._handle_position, 0),
color = self._y_axis_color
)
mb.addCube(
width = self._handle_width,
height = self._handle_width,
depth = self._handle_width,
center = Vector(self._handle_position, 0, 0),
color = self._x_axis_color
)
mb.addCube(
width = self._handle_width,
height = self._handle_width,
depth = self._handle_width,
center = Vector(0, 0, self._handle_position),
color = self._z_axis_color
)
self.setSolidMesh(mb.build())
#SELECTIONMESH -> LINES
mb = MeshBuilder()
mb.addCube(
width = self._active_line_width,
height = self._active_line_length,
depth = self._active_line_width,
center = Vector(0, self._active_handle_position/2, 0),
color = ToolHandle.YAxisSelectionColor
)
mb.addCube(
width = self._active_line_length,
height = self._active_line_width,
depth = self._active_line_width,
center = Vector(self._active_handle_position/2, 0, 0),
color = ToolHandle.XAxisSelectionColor
)
mb.addCube(
width = self._active_line_width,
height = self._active_line_width,
depth = self._active_line_length,
center = Vector(0, 0, self._active_handle_position/2),
color = ToolHandle.ZAxisSelectionColor
)
#SELECTIONMESH -> HANDLES
mb.addCube(
width = self._active_handle_width,
height = self._active_handle_width,
depth = self._active_handle_width,
center = Vector(0, 0, 0),
color = ToolHandle.AllAxisSelectionColor
)
mb.addCube(
width = self._active_handle_width,
height = self._active_handle_width,
depth = self._active_handle_width,
#.........这里部分代码省略.........
示例10: _rebuild
# 需要导入模块: from UM.Mesh.MeshBuilder import MeshBuilder [as 别名]
# 或者: from UM.Mesh.MeshBuilder.MeshBuilder import addCube [as 别名]
def _rebuild(self):
lines = MeshData()
offset = 0
if self.YAxis in self._enabled_axis:
lines.addVertex(0, 0, 0)
lines.addVertex(0, 20, 0)
lines.setVertexColor(offset, ToolHandle.YAxisColor)
lines.setVertexColor(offset + 1, ToolHandle.YAxisColor)
offset += 2
if self.XAxis in self._enabled_axis:
lines.addVertex(0, 0, 0)
lines.addVertex(20, 0, 0)
lines.setVertexColor(offset, ToolHandle.XAxisColor)
lines.setVertexColor(offset + 1, ToolHandle.XAxisColor)
offset += 2
if self.ZAxis in self._enabled_axis:
lines.addVertex(0, 0, 0)
lines.addVertex(0, 0, 20)
lines.setVertexColor(offset, ToolHandle.ZAxisColor)
lines.setVertexColor(offset + 1, ToolHandle.ZAxisColor)
offset += 2
self.setLineMesh(lines)
mb = MeshBuilder()
if self.YAxis in self._enabled_axis:
mb.addPyramid(
width = 2,
height = 4,
depth = 2,
center = Vector(0, 20, 0),
color = ToolHandle.YAxisColor
)
if self.XAxis in self._enabled_axis:
mb.addPyramid(
width = 2,
height = 4,
depth = 2,
center = Vector(20, 0, 0),
color = ToolHandle.XAxisColor,
axis = Vector.Unit_Z,
angle = 90
)
if self.ZAxis in self._enabled_axis:
mb.addPyramid(
width = 2,
height = 4,
depth = 2,
center = Vector(0, 0, 20),
color = ToolHandle.ZAxisColor,
axis = Vector.Unit_X,
angle = -90
)
self.setSolidMesh(mb.getData())
mb = MeshBuilder()
if self.YAxis in self._enabled_axis:
mb.addCube(
width = 4,
height = 20,
depth = 4,
center = Vector(0, 10, 0),
color = ToolHandle.YAxisColor
)
mb.addPyramid(
width = 4,
height = 8,
depth = 4,
center = Vector(0, 20, 0),
color = ToolHandle.YAxisColor
)
if self.XAxis in self._enabled_axis:
mb.addCube(
width = 20,
height = 4,
depth = 4,
center = Vector(10, 0, 0),
color = ToolHandle.XAxisColor
)
mb.addPyramid(
width = 4,
height = 8,
depth = 4,
center = Vector(20, 0, 0),
color = ToolHandle.XAxisColor,
axis = Vector.Unit_Z,
angle = 90
)
#.........这里部分代码省略.........
示例11: rebuild
# 需要导入模块: from UM.Mesh.MeshBuilder import MeshBuilder [as 别名]
# 或者: from UM.Mesh.MeshBuilder.MeshBuilder import addCube [as 别名]
def rebuild(self):
if not self._width or not self._height or not self._depth:
return
min_w = -self._width / 2
max_w = self._width / 2
min_h = 0.0
max_h = self._height
min_d = -self._depth / 2
max_d = self._depth / 2
mb = MeshBuilder()
# Outline 'cube' of the build volume
mb.addLine(Vector(min_w, min_h, min_d), Vector(max_w, min_h, min_d), color = self.VolumeOutlineColor)
mb.addLine(Vector(min_w, min_h, min_d), Vector(min_w, max_h, min_d), color = self.VolumeOutlineColor)
mb.addLine(Vector(min_w, max_h, min_d), Vector(max_w, max_h, min_d), color = self.VolumeOutlineColor)
mb.addLine(Vector(max_w, min_h, min_d), Vector(max_w, max_h, min_d), color = self.VolumeOutlineColor)
mb.addLine(Vector(min_w, min_h, max_d), Vector(max_w, min_h, max_d), color = self.VolumeOutlineColor)
mb.addLine(Vector(min_w, min_h, max_d), Vector(min_w, max_h, max_d), color = self.VolumeOutlineColor)
mb.addLine(Vector(min_w, max_h, max_d), Vector(max_w, max_h, max_d), color = self.VolumeOutlineColor)
mb.addLine(Vector(max_w, min_h, max_d), Vector(max_w, max_h, max_d), color = self.VolumeOutlineColor)
mb.addLine(Vector(min_w, min_h, min_d), Vector(min_w, min_h, max_d), color = self.VolumeOutlineColor)
mb.addLine(Vector(max_w, min_h, min_d), Vector(max_w, min_h, max_d), color = self.VolumeOutlineColor)
mb.addLine(Vector(min_w, max_h, min_d), Vector(min_w, max_h, max_d), color = self.VolumeOutlineColor)
mb.addLine(Vector(max_w, max_h, min_d), Vector(max_w, max_h, max_d), color = self.VolumeOutlineColor)
self.setMeshData(mb.build())
mb = MeshBuilder()
# Indication of the machine origin
if self._global_container_stack.getProperty("machine_center_is_zero", "value"):
origin = (Vector(min_w, min_h, min_d) + Vector(max_w, min_h, max_d)) / 2
else:
origin = Vector(min_w, min_h, max_d)
mb.addCube(
width = self._origin_line_length,
height = self._origin_line_width,
depth = self._origin_line_width,
center = origin + Vector(self._origin_line_length / 2, 0, 0),
color = self.XAxisColor
)
mb.addCube(
width = self._origin_line_width,
height = self._origin_line_length,
depth = self._origin_line_width,
center = origin + Vector(0, self._origin_line_length / 2, 0),
color = self.YAxisColor
)
mb.addCube(
width = self._origin_line_width,
height = self._origin_line_width,
depth = self._origin_line_length,
center = origin - Vector(0, 0, self._origin_line_length / 2),
color = self.ZAxisColor
)
self._origin_mesh = mb.build()
mb = MeshBuilder()
mb.addQuad(
Vector(min_w, min_h - 0.2, min_d),
Vector(max_w, min_h - 0.2, min_d),
Vector(max_w, min_h - 0.2, max_d),
Vector(min_w, min_h - 0.2, max_d)
)
for n in range(0, 6):
v = mb.getVertex(n)
mb.setVertexUVCoordinates(n, v[0], v[2])
self._grid_mesh = mb.build()
disallowed_area_height = 0.1
disallowed_area_size = 0
if self._disallowed_areas:
mb = MeshBuilder()
color = Color(0.0, 0.0, 0.0, 0.15)
for polygon in self._disallowed_areas:
points = polygon.getPoints()
first = Vector(self._clamp(points[0][0], min_w, max_w), disallowed_area_height, self._clamp(points[0][1], min_d, max_d))
previous_point = Vector(self._clamp(points[0][0], min_w, max_w), disallowed_area_height, self._clamp(points[0][1], min_d, max_d))
for point in points:
new_point = Vector(self._clamp(point[0], min_w, max_w), disallowed_area_height, self._clamp(point[1], min_d, max_d))
mb.addFace(first, previous_point, new_point, color = color)
previous_point = new_point
# Find the largest disallowed area to exclude it from the maximum scale bounds.
# This is a very nasty hack. This pretty much only works for UM machines.
# This disallowed area_size needs a -lot- of rework at some point in the future: TODO
if numpy.min(points[:, 1]) >= 0: # This filters out all areas that have points to the left of the centre. This is done to filter the skirt area.
size = abs(numpy.max(points[:, 1]) - numpy.min(points[:, 1]))
else:
size = 0
disallowed_area_size = max(size, disallowed_area_size)
self._disallowed_area_mesh = mb.build()
else:
#.........这里部分代码省略.........
示例12: __init__
# 需要导入模块: from UM.Mesh.MeshBuilder import MeshBuilder [as 别名]
# 或者: from UM.Mesh.MeshBuilder.MeshBuilder import addCube [as 别名]
def __init__(self, parent = None):
super().__init__(parent)
lines = MeshData()
lines.addVertex(0, 0, 0)
lines.addVertex(0, 20, 0)
lines.addVertex(0, 0, 0)
lines.addVertex(20, 0, 0)
lines.addVertex(0, 0, 0)
lines.addVertex(0, 0, 20)
lines.setVertexColor(0, ToolHandle.YAxisColor)
lines.setVertexColor(1, ToolHandle.YAxisColor)
lines.setVertexColor(2, ToolHandle.XAxisColor)
lines.setVertexColor(3, ToolHandle.XAxisColor)
lines.setVertexColor(4, ToolHandle.ZAxisColor)
lines.setVertexColor(5, ToolHandle.ZAxisColor)
self.setLineMesh(lines)
mb = MeshBuilder()
mb.addCube(
width = 2,
height = 2,
depth = 2,
center = Vector(0, 0, 0),
color = ToolHandle.AllAxisColor
)
mb.addCube(
width = 2,
height = 2,
depth = 2,
center = Vector(0, 20, 0),
color = ToolHandle.YAxisColor
)
mb.addCube(
width = 2,
height = 2,
depth = 2,
center = Vector(20, 0, 0),
color = ToolHandle.XAxisColor
)
mb.addCube(
width = 2,
height = 2,
depth = 2,
center = Vector(0, 0, 20),
color = ToolHandle.ZAxisColor
)
self.setSolidMesh(mb.getData())
mb = MeshBuilder()
mb.addCube(
width = 4,
height = 20,
depth = 4,
center = Vector(0, 10, 0),
color = ToolHandle.YAxisColor
)
mb.addCube(
width = 4,
height = 4,
depth = 4,
center = Vector(0, 20, 0),
color = ToolHandle.YAxisColor
)
mb.addCube(
width = 20,
height = 4,
depth = 4,
center = Vector(10, 0, 0),
color = ToolHandle.XAxisColor
)
mb.addCube(
width = 4,
height = 4,
depth = 4,
center = Vector(20, 0, 0),
color = ToolHandle.XAxisColor
)
mb.addCube(
width = 4,
height = 4,
depth = 20,
center = Vector(0, 0, 10),
color = ToolHandle.ZAxisColor
)
mb.addCube(
width = 4,
#.........这里部分代码省略.........
示例13: __init__
# 需要导入模块: from UM.Mesh.MeshBuilder import MeshBuilder [as 别名]
# 或者: from UM.Mesh.MeshBuilder.MeshBuilder import addCube [as 别名]
def __init__(self, parent = None):
super().__init__(parent)
self._line_width = 0.5
self._line_length= 40
self._handle_position = 40
self._handle_width = 4
self._active_line_width = 0.8
self._active_line_length = 40
self._active_handle_position = 40
self._active_handle_width = 15
#SOLIDMESH -> LINES
mb = MeshBuilder()
mb.addCube(
width = self._line_width,
height = self._line_length,
depth = self._line_width,
center = Vector(0, self._handle_position/2, 0),
color = ToolHandle.YAxisColor
)
mb.addCube(
width = self._line_length,
height = self._line_width,
depth = self._line_width,
center = Vector(self._handle_position/2, 0, 0),
color = ToolHandle.XAxisColor
)
mb.addCube(
width = self._line_width,
height = self._line_width,
depth = self._line_length,
center = Vector(0, 0, self._handle_position/2),
color = ToolHandle.ZAxisColor
)
#SOLIDMESH -> HANDLES
mb.addCube(
width = self._handle_width,
height = self._handle_width,
depth = self._handle_width,
center = Vector(0, 0, 0),
color = ToolHandle.AllAxisColor
)
mb.addCube(
width = self._handle_width,
height = self._handle_width,
depth = self._handle_width,
center = Vector(0, self._handle_position, 0),
color = ToolHandle.YAxisColor
)
mb.addCube(
width = self._handle_width,
height = self._handle_width,
depth = self._handle_width,
center = Vector(self._handle_position, 0, 0),
color = ToolHandle.XAxisColor
)
mb.addCube(
width = self._handle_width,
height = self._handle_width,
depth = self._handle_width,
center = Vector(0, 0, self._handle_position),
color = ToolHandle.ZAxisColor
)
self.setSolidMesh(mb.build())
#SELECTIONMESH -> LINES
mb = MeshBuilder()
mb.addCube(
width = self._active_line_width,
height = self._active_line_length,
depth = self._active_line_width,
center = Vector(0, self._active_handle_position/2, 0),
color = ToolHandle.YAxisColor
)
mb.addCube(
width = self._active_line_length,
height = self._active_line_width,
depth = self._active_line_width,
center = Vector(self._active_handle_position/2, 0, 0),
color = ToolHandle.XAxisColor
)
mb.addCube(
width = self._active_line_width,
height = self._active_line_width,
depth = self._active_line_length,
center = Vector(0, 0, self._active_handle_position/2),
color = ToolHandle.ZAxisColor
)
#SELECTIONMESH -> HANDLES
#.........这里部分代码省略.........