Lines and Segments
A straight line can be created in DeclaraCAD using the Line or Segment declarations.
A Line and Segment can both be specified using the points attribute with two points.
A Line may be also defined with only a position and direction.
# Created in DeclaraCAD
from declaracad.occ.api import *
enamldef Assembly(Part):
Segment:
color = 'red'
points = [(1, 1), (10, 10)]
Line: yaxis:
color = 'blue'
position = (0, 0)
direction = (0, 1)

The difference between the two is the Line is unbounded / of infinite length while a Segment is just between a start and end points.
Typically the Segment will be used for sketching as it creates an edge that can be converted into a Wire, while a Line can be used to determine intersections.
Rectangles
DeclaraCAD includes a Rectangle declaration that builds a Wire from a set of line segments. The rectangle's origin is at the bottom left corner of the xy plane and is defined by the width and height.
Note: The
Rectangleshape will return a wire by default, useas_face = Trueto convert the result into a face.
# Created in DeclaraCAD
from declaracad.occ.api import *
enamldef Assembly(Part):
Rectangle:
color = 'red'
position = (1, 1)
width = 10
height = 20
# For reference
Line: xaxis:
color = 'black'
direction = (1, 0)
Line: yaxis:
color = 'black'
direction = (0, 1)

You can also specify radius's for the corners. Using rx and ry. If only one is given it will use the same for both.
# Created in DeclaraCAD
from declaracad.occ.api import *
enamldef Assembly(Part):
Rectangle:
color = 'red'
position = (1, 1)
rx = 3
width = 10
height = 20

To orient the wire in another plane use the direction attribute or wrap it in a Transform.