Skip to content

Instantly share code, notes, and snippets.

@medicationforall
Last active April 19, 2024 08:49
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save medicationforall/18b31e0858fe8abf0c3432c8d3b8f9e7 to your computer and use it in GitHub Desktop.
Save medicationforall/18b31e0858fe8abf0c3432c8d3b8f9e7 to your computer and use it in GitHub Desktop.

CadQuery Shape primitives


3d shapes

Box

Workplane.box

result = cq.Workplane("XY" ).box(3, 3, 3)

07

Cone

Solid.makeCone

result = cq.Solid.makeCone(3, 1, 3)

08

Cylinder

Workplane.cylinder

result = cq.Workplane("XY" ).cylinder(3, 2)

09

Sphere

Workplane.sphere

result = cq.Workplane("XY" ).sphere(3)

Solid.makeSphere

result = cq.Solid.makeSphere(3, angleDegrees1 = -90, angleDegrees2 =90, angleDegrees3 = 360)

10

Text

Workplane.text

result = cq.Workplane("XY").text("Test",10, 2)

11

Torus

Solid.makeTorus

result = cq.Solid.makeTorus(3, 1.5)

13

Wedge

Workplane.wedge

result = cq.Workplane("XY" ).wedge(3,3,3,1.5,1.5,1.5,1.5)

12


2d Sketch shapes

Arc

Sketch.arc

result = cq.Sketch().arc((0,3), (1.5,1.5), (0,0))

14

Circle

Sketch.circle

result = cq.Sketch().circle(4)

15

Ellipse

Sketch.ellipse

result = cq.Sketch().ellipse(4,5)

16

Polygon

Sketch.polygon

pts = [(0,0),(0,4),(2,3) ,(4,4), (4,0)]
result = cq.Sketch().polygon(pts)

17

Rect

Sketch.rect

result = cq.Sketch().rect(4,4)

18

Regular Polygon

Sketch.regularPolygon

result = cq.Sketch().regularPolygon(3,5)

19

Slot

Sketch.slot

result = cq.Sketch().slot(1.5, 0.5, angle=90)

20

Spline

Sketch.spline

pts = [(0,0),(0,4),(2,3) ,(4,4)]
result = cq.Sketch().spline(pts)

21

Trapezoid

Sketch.trapezoid

result = cq.Sketch().trapezoid(4,3,70)

22

2d shapes

2d operations

Circle

Workplane.circle

result = cq.Workplane("XY" ).circle(3)
result = cq.Edge.makeCircle(3)

Wire.makeCircle

result = cq.Wire.makeCircle(3, (0,0,0), (0,0,1))

01

Ellipse

Workplane.ellipse

result = cq.Workplane("XY" ).ellipse(3,4)
result = cq.Edge.makeEllipse(3,4)

Wire.makeEllipse

result = cq.Wire.makeEllipse(3, 4, (0,0,0),(0,0,1), (1,0))

02

Helix

Wire.makeHelix

result = cq.Wire.makeHelix(1, 4, 3)

03

Line

Workplane.line

result = cq.Workplane("XY" ).line(1,3)

30

Line To

Workplane.lineTo

31

result = cq.Workplane("XY" ).lineTo(1,3)

Rect

Workplane.rect

result = cq.Workplane("XY" ).rect(3, 3)

04

Polygon

Workplane.polygon

result = cq.Workplane("XY").polygon(6, 1)

05

Polyline

Workplane.polyline

pts = [(0,0),(0,4),(2,3) ,(4,4), (4,0)]
result = cq.Workplane("XY").polyline(pts).close()

06

slot2d

Workplane.slot2D

result = cq.Workplane("XY").slot2D(5,2)

39

spline

Workplane.spline

pts = [(0,0),(0,4),(2,5) ]
path = cq.Workplane("XY").spline(pts)

25


operations

Chamfer

Workplane.chamfer

origin = cq.Workplane("XY").polygon(6, 20).extrude(10).translate((0,0,-1*(10/2)))
result = origin.chamfer(1,2)

38

Extrude

Workplane.extrude

result = cq.Workplane("XY" ).rect(3, 3).extrude(2)

26

Fillet

Workplane.fillet

wikipedia

result = (
    cq.Workplane("XY")
    .box(10,10,10)
    .edges()
    .fillet(1)
)

37

Note

  • Fillet has specific tolerances; if the fillet is too large the code will fail.
result = (
    cq.Workplane("XY")
    .box(10,10,10)
    .edges()
    .fillet(5)
)

36

Hole

Workplane.hole

result = cq.Workplane("XY").box(2,2,1).faces(">Z").hole(1,2)

32

Loft

Workplane.loft

result = (cq.Workplane("front").circle(1.5).workplane(offset=3.0).rect(0.75, 0.5).loft(combine=True))

28

Rotate

Workplane.rotate

result = cq.Workplane("XY" ).box(3, 3, 2).rotate((0,0,1), (0,0,0), 30)

27

Shell

Workplane.shell

Negative shell

result = cq.Workplane().box(10, 10, 10).faces("+Z").shell(-1)

40

Positiv Shell

result = cq.Workplane().box(10, 10, 10).faces("+Z").shell(-1)

41

Sweep

Workplane.sweep

pts = [(0,0),(0,4),(2,5) ]
path = cq.Workplane("XZ").spline(pts)
rect = cq.Workplane("XY" ).rect(3, 3)
result = rect.sweep(path)

24

Translate

Workplane.translate

rect = cq.Workplane("XY" ).box(3, 3, 2).translate((5,5,1))

29

TwistExtrude

Workplane.twistExtrude

result = cq.Workplane("XY" ).rect(3, 3).twistExtrude(2,45)

23


Plugins

CboreHole

Workplane.cboreHole

result = (
    cq.Workplane("XY")
    .box(10,10,5)
    .faces(">Z")
    .cboreHole(2,4,1.5)
)

33

CskHole

Workplane.cskHole

result = (
    cq.Workplane("XY")
    .box(10,10,5)
    .faces(">Z")    
    .cskHole(2, 4, 82, depth=None)
)

35

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment