Added cylinder and donut tests for the revolve operation and started on the cone test.
This commit is contained in:
parent
458c55b64b
commit
3bf871b0ea
|
@ -782,7 +782,7 @@ class Solid(Shape):
|
|||
|
||||
#Convert our axis end vector into to something FreeCAD will understand (an axis specification vector)
|
||||
rotateAxis = rotateCenter.sub(rotateAxis)
|
||||
|
||||
|
||||
#FreeCAD wants a rotation center and then an axis to rotate around rather than an axis of rotation
|
||||
result = f.revolve(rotateCenter, rotateAxis, angleDegrees)
|
||||
|
||||
|
|
|
@ -22,18 +22,18 @@ import Part
|
|||
#The dimensions of the model. These can be modified rather than changing the shape's code directly.
|
||||
rectangle_width = 10.0
|
||||
rectangle_length = 10.0
|
||||
angleDegrees = 360.0
|
||||
angle_degrees = 360.0
|
||||
|
||||
#Revolve a cylinder from a rectangle
|
||||
#Switch comments around in this section to try the revolve operation with different parameters
|
||||
result = cadquery.Workplane("XY").rect(rectangle_width, rectangle_length, False).revolve()
|
||||
#result = cadquery.Workplane("XY").rect(rectangle_width, rectangle_length, False).revolve(angleDegrees)
|
||||
#result = cadquery.Workplane("XY").rect(rectangle_width, rectangle_length).revolve(angleDegrees,(-5,-5))
|
||||
#result = cadquery.Workplane("XY").rect(rectangle_width, rectangle_length).revolve(angleDegrees,(-5, -5),(-5, 5))
|
||||
#result = cadquery.Workplane("XY").rect(rectangle_width, rectangle_length).revolve(angleDegrees,(-5,-5),(-5,5), False)
|
||||
#result = cadquery.Workplane("XY").rect(rectangle_width, rectangle_length, False).revolve(angle_degrees)
|
||||
#result = cadquery.Workplane("XY").rect(rectangle_width, rectangle_length).revolve(angle_degrees,(-5,-5))
|
||||
#result = cadquery.Workplane("XY").rect(rectangle_width, rectangle_length).revolve(angle_degrees,(-5, -5),(-5, 5))
|
||||
#result = cadquery.Workplane("XY").rect(rectangle_width, rectangle_length).revolve(angle_degrees,(-5,-5),(-5,5), False)
|
||||
|
||||
#Revolve a donut with square walls
|
||||
#result = cadquery.Workplane("XY").rect(rectangle_width, rectangle_length, True).revolve(angleDegrees, (20, 0), (20, 10))
|
||||
#result = cadquery.Workplane("XY").rect(rectangle_width, rectangle_length, True).revolve(angle_degrees, (20, 0), (20, 10))
|
||||
|
||||
#Get a cadquery solid object
|
||||
solid = result.val()
|
||||
|
|
|
@ -219,6 +219,86 @@ class TestCadQuery(BaseTest):
|
|||
#self.assertEqual(1,s.solids().size() )
|
||||
#self.assertEqual(8,s.faces().size() )
|
||||
|
||||
def testRevolveCylinder(self):
|
||||
"""
|
||||
Test creating a solid using the revolve operation.
|
||||
:return:
|
||||
"""
|
||||
#The dimensions of the model. These can be modified rather than changing the shape's code directly.
|
||||
rectangle_width = 10.0
|
||||
rectangle_length = 10.0
|
||||
angle_degrees = 360.0
|
||||
|
||||
#Test revolve without any options for making a cylinder
|
||||
result = Workplane("XY").rect(rectangle_width, rectangle_length, False).revolve()
|
||||
self.assertEqual(3, result.faces().size())
|
||||
self.assertEqual(2, result.vertices().size())
|
||||
self.assertEqual(3, result.edges().size())
|
||||
|
||||
#Test revolve when only setting the angle to revolve through
|
||||
result = Workplane("XY").rect(rectangle_width, rectangle_length, False).revolve(angle_degrees)
|
||||
self.assertEqual(3, result.faces().size())
|
||||
self.assertEqual(2, result.vertices().size())
|
||||
self.assertEqual(3, result.edges().size())
|
||||
result = Workplane("XY").rect(rectangle_width, rectangle_length, False).revolve(270.0)
|
||||
self.assertEqual(5, result.faces().size())
|
||||
self.assertEqual(6, result.vertices().size())
|
||||
self.assertEqual(9, result.edges().size())
|
||||
|
||||
#Test when passing revolve the angle and the axis of revolution's start point
|
||||
result = Workplane("XY").rect(rectangle_width, rectangle_length).revolve(angle_degrees,(-5,-5))
|
||||
self.assertEqual(3, result.faces().size())
|
||||
self.assertEqual(2, result.vertices().size())
|
||||
self.assertEqual(3, result.edges().size())
|
||||
result = Workplane("XY").rect(rectangle_width, rectangle_length).revolve(270.0,(-5,-5))
|
||||
self.assertEqual(5, result.faces().size())
|
||||
self.assertEqual(6, result.vertices().size())
|
||||
self.assertEqual(9, result.edges().size())
|
||||
|
||||
#Test when passing revolve the angle and both the start and ends of the axis of revolution
|
||||
result = Workplane("XY").rect(rectangle_width, rectangle_length).revolve(angle_degrees,(-5, -5),(-5, 5))
|
||||
self.assertEqual(3, result.faces().size())
|
||||
self.assertEqual(2, result.vertices().size())
|
||||
self.assertEqual(3, result.edges().size())
|
||||
result = Workplane("XY").rect(rectangle_width, rectangle_length).revolve(270.0,(-5, -5),(-5, 5))
|
||||
self.assertEqual(5, result.faces().size())
|
||||
self.assertEqual(6, result.vertices().size())
|
||||
self.assertEqual(9, result.edges().size())
|
||||
|
||||
#Testing all of the above without combine
|
||||
result = Workplane("XY").rect(rectangle_width, rectangle_length).revolve(angle_degrees,(-5,-5),(-5,5), False)
|
||||
self.assertEqual(3, result.faces().size())
|
||||
self.assertEqual(2, result.vertices().size())
|
||||
self.assertEqual(3, result.edges().size())
|
||||
result = Workplane("XY").rect(rectangle_width, rectangle_length).revolve(270.0,(-5,-5),(-5,5), False)
|
||||
self.assertEqual(5, result.faces().size())
|
||||
self.assertEqual(6, result.vertices().size())
|
||||
self.assertEqual(9, result.edges().size())
|
||||
|
||||
def testRevolveDonut(self):
|
||||
"""
|
||||
Test creating a solid donut shape with square walls
|
||||
:return:
|
||||
"""
|
||||
#The dimensions of the model. These can be modified rather than changing the shape's code directly.
|
||||
rectangle_width = 10.0
|
||||
rectangle_length = 10.0
|
||||
angle_degrees = 360.0
|
||||
|
||||
result = Workplane("XY").rect(rectangle_width, rectangle_length, True).revolve(angle_degrees, (20, 0), (20, 10))
|
||||
self.assertEqual(4, result.faces().size())
|
||||
self.assertEqual(4, result.vertices().size())
|
||||
self.assertEqual(6, result.edges().size())
|
||||
|
||||
def testRevolveCone(self):
|
||||
"""
|
||||
Test creating a solid from a revolved triangle
|
||||
:return:
|
||||
"""
|
||||
triangle_1st = (0,0)
|
||||
triangle_2nd = (0,10)
|
||||
triangle_3rd = (10,0)
|
||||
|
||||
def testRectArray(self):
|
||||
NUMX=3
|
||||
NUMY=3
|
||||
|
|
Loading…
Reference in New Issue
Block a user