Did you try the Visual Lisp way?
An example:
Code:
(defun ucsadd (name / acaddoc ucss item)
(vl-load-com)
(setq acaddoc (vla-get-activedocument (vlax-get-acad-object)))
(setq ucss (vla-get-UserCoordinateSystems acaddoc))
(setq item (vla-add ucss
(vlax-3d-point '(0.0 0.0 0.0)) ;;origin
(vlax-3d-point '(1.0 0.0 0.0)) ;;x axis
(vlax-3d-point '(0.0 1.0 0.0)) ;;y axis
name ;;name
) ;_ end of vla-add
) ;_ end of setq
(princ)
) ;_ end of defun
If you type (ucsadd "test4") you will have a new ucs called test 4. I change the values you give because x and y values are not perpendicular and makes an error:
error: Automation Error. UCS X axis and Y axis are not perpendicular.