DXF Add Ellipse
Angled ovals with a proper major axis
- dxf
- DXF
A circle tells you center and radius. An ellipse needs one more idea: which way is it stretched. DXF Add Ellipse handles that the way real CAD does - a center, a major-axis vector that defines both length and orientation, and a ratio for the squish. It's the primitive you reach for when your vector design needs ovals, orbits, or angled lens shapes rather than perfect circles.
It's part of orion4d/ComfyUI_DAO_master, the French-authored vector-and-image pack built on ezdxf. Like every DXF Add … node in the family, it's non-destructive: your input document is copied, the ellipse is added to the copy, and a new document comes out the other side.
How it works
cx,cy- center of the ellipse.major_axis_x,major_axis_y- the major axis as a vector. This is the input people find unintuitive: the two values aren't width and height, they're the endpoint of the major axis relative to the center. A vector of (20, 0) gives a horizontal ellipse 40 units wide; (0, 20) gives a vertical one. Any other combination angles the ellipse, which is how you get rotated ovals without a separate rotation step.ratio- the minor-to-major ratio (0.0001–1, default 0.5). 1.0 is a circle; 0.3 is a skinny ellipse.
Output is a single DXF socket with the updated document.
What to do with it
Ellipses are how you add lenses, eggs, orbital rings, and stylized leaves to a vector composition. Chain it after DXF New, combine with the circle and line primitives, and render the result with DXF Preview or hand it to DXF to SVG for the SVG pipeline.
Installing
ComfyUI Manager (search ComfyUI_DAO_master) or:
cd ComfyUI/custom_nodes
git clone https://github.com/orion4d/ComfyUI_DAO_master.git
pip install ezdxf
Restart and go.
Where people get burned
Treating major_axis_x/y as width/height is the classic mistake - think of the vector's length as half the ellipse's total width, and its direction as the orientation. And remember ratio is clamped at 1.0: if you set it above 1 hoping to flip the axes, the node just gives you a circle. Also, like all the primitives, forget to wire in your previous dxf and you're building from scratch.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| dxf | DXF | — | |
| cx | FLOAT | 0.00 | — |
| cy | FLOAT | 0.00 | — |
| major_axis_x | FLOAT | 20.00 | — |
| major_axis_y | FLOAT | 0.00 | — |
| ratio | FLOAT | 0.500.0001–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| DXF | DXF | — |