Skip to content

Commit 4519aca

Browse files
Added support & tests for diameter arguments to circle, sphere, and cylinder primitives, as in OpenSCAD 2014.03. Closes #26
1 parent 23eacb7 commit 4519aca

2 files changed

Lines changed: 6 additions & 3 deletions

File tree

solid/solidpython.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,13 @@
1515
openscad_builtins = [
1616
# 2D primitives
1717
{'name': 'polygon', 'args': ['points', 'paths'], 'kwargs': []} ,
18-
{'name': 'circle', 'args': [], 'kwargs': ['r', 'segments']} ,
18+
{'name': 'circle', 'args': [], 'kwargs': ['r', 'd', 'segments']} ,
1919
{'name': 'square', 'args': [], 'kwargs': ['size', 'center']} ,
2020

2121
# 3D primitives
22-
{'name': 'sphere', 'args': [], 'kwargs': ['r', 'segments']} ,
22+
{'name': 'sphere', 'args': [], 'kwargs': ['r', 'd', 'segments']} ,
2323
{'name': 'cube', 'args': [], 'kwargs': ['size', 'center']} ,
24-
{'name': 'cylinder', 'args': [], 'kwargs': ['r','h','r1', 'r2', 'center', 'segments']} ,
24+
{'name': 'cylinder', 'args': [], 'kwargs': ['r','h','r1', 'r2', 'd', 'd1', 'd2', 'center', 'segments']} ,
2525
{'name': 'polyhedron', 'args': ['points', 'triangles' ], 'kwargs': ['convexity']} ,
2626

2727
# Boolean operations

solid/test/test_solidpython.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,13 @@
1010
scad_test_case_templates = [
1111
{'name': 'polygon', 'kwargs': {'paths': [[0, 1, 2]]}, 'expected': '\n\npolygon(paths = [[0, 1, 2]], points = [[0, 0, 0], [1, 0, 0], [0, 1, 0]]);', 'args': {'points': [[0, 0, 0], [1, 0, 0], [0, 1, 0]]}, },
1212
{'name': 'circle', 'kwargs': {'segments': 12, 'r': 1}, 'expected': '\n\ncircle($fn = 12, r = 1);', 'args': {}, },
13+
{'name': 'circle', 'kwargs': {'segments': 12, 'd': 1}, 'expected': '\n\ncircle($fn = 12, d = 1);', 'args': {}, },
1314
{'name': 'square', 'kwargs': {'center': False, 'size': 1}, 'expected': '\n\nsquare(center = false, size = 1);', 'args': {}, },
1415
{'name': 'sphere', 'kwargs': {'segments': 12, 'r': 1}, 'expected': '\n\nsphere($fn = 12, r = 1);', 'args': {}, },
16+
{'name': 'sphere', 'kwargs': {'segments': 12, 'd': 1}, 'expected': '\n\nsphere($fn = 12, d = 1);', 'args': {}, },
1517
{'name': 'cube', 'kwargs': {'center': False, 'size': 1}, 'expected': '\n\ncube(center = false, size = 1);', 'args': {}, },
1618
{'name': 'cylinder', 'kwargs': {'r1': None, 'r2': None, 'h': 1, 'segments': 12, 'r': 1, 'center': False}, 'expected': '\n\ncylinder($fn = 12, center = false, h = 1, r = 1);', 'args': {}, },
19+
{'name': 'cylinder', 'kwargs': {'d1': 4, 'd2': 2, 'h': 1, 'segments': 12, 'center': False}, 'expected': '\n\ncylinder($fn = 12, center = false, d1 = 4, d2 = 2, h = 1);', 'args': {}, },
1720
{'name': 'polyhedron', 'kwargs': {'convexity': None}, 'expected': '\n\npolyhedron(points = [[0, 0, 0], [1, 0, 0], [0, 1, 0]], triangles = [[0, 1, 2]]);', 'args': {'points': [[0, 0, 0], [1, 0, 0], [0, 1, 0]], 'triangles': [[0, 1, 2]]}, },
1821
{'name': 'union', 'kwargs': {}, 'expected': '\n\nunion();', 'args': {}, },
1922
{'name': 'intersection','kwargs': {}, 'expected': '\n\nintersection();', 'args': {}, },

0 commit comments

Comments
 (0)