%  platform  category

## How to draw a 3D arc or circle?

Planar (2D) entities can be drawn in 3D space using a temporary user coordinate system (UCS).

If you want to draw quickly an arc or circle from 3 given points in 3D, you can use the following LISP code (save it to a .LSP file and load with APPLOAD):

```(defun c:3Darc (/ p1 p2 p3)
(command "_ucs" "_w")
(setq p1 (getpoint "Arc point #1: "))
(setq p2 (getpoint "Arc point #2: "))
(setq p3 (getpoint "Arc point #3: "))
(command "_ucs" "_3p" p1 p2 p3)
(command "_arc" (trans p1 0 1)(trans p2 0 1)(trans p3 0 1))
(command "_ucs" "_p")
)
```
resp.:
```(defun c:3Dcircle (/ p1 p2 p3)
(command "_ucs" "_w")
(setq p1 (getpoint "Circle point #1: "))
(setq p2 (getpoint "Circle point #2: "))
(setq p3 (getpoint "Circle point #3: "))
(command "_ucs" "_3p" p1 p2 p3)
(command "_circle" "_3p" (trans p1 0 1)(trans p2 0 1)(trans p3 0 1))
(command "_ucs" "_p")
)
```

 See also: Tip 11751: toMulti converts polylines to multi-lines driven by a definition table. Tip 10237: Arc bridges (gaps) in line intersections. Tip 10138: Dimensioning a curve length or distance between two points on a curve. Tip 10054: Boolean operations on 2D polylines. Tip 9711: 3DConstruct - converting a 3D mesh to a frame construct