(vlax-invoke doc 'CopyObjects (list obj) space)
i think 'doc' is wrong, it must be XRefDatabase not Document
That make sense. Will have to investigate more.
I'm such a retard. I was thinking it would be heavily convoluted to use entmake, but it's actually pretty simple since I only care about curves.
sample (tested on nested 3dpolyline, arc, line, lwpolyline, ellipse, arc, circle, xline, ray)...
(defun _entmakeNestedCurve (ent matrix / e d)
(if (eq (cdr (assoc 0 (entget ent))) "VERTEX")
(progn (entmake (entget (setq ent (cdr (assoc 330 (entget ent))))))
(while (/= (cdr (assoc 0 (setq d (entget (setq ent (entnext ent)))))) "SEQEND")
(setq e (entmakex d))
)
(setq e (cdr (assoc 330 (entget (entmakex '((0 . "SEQEND")))))))
)
(setq e (entmakex (entget ent)))
)
(vla-transformby (vlax-ename->vla-object e) (vlax-tmatrix matrix))
e
)
(defun c:Test (/ ent)
(if (setq ent (nentselp "\nSelect nested curve to copy: "))
(vla-put-color (vlax-ename->vla-object (_entmakeNestedCurve (car ent) (caddr ent))) 3)
)
(princ)
)