Quickly written:
Code:
(vl-load-com)
(defun c:SPIKE (/ *error* nomutt ss oPline pt z insertionPoint i
acDoc cogoPoint
)
(defun *error* (msg)
(and nomutt (setvar 'nomutt nomutt))
(if acDoc
(vla-endundomark acDoc)
)
(cond ((not msg)) ; Normal exit
((member msg '("Function cancelled" "quit / exit abort"))) ; <esc> or (quit)
((princ (strcat "\n** Error: " msg " ** "))) ; Fatal error, display it
)
(princ)
)
(if
(and
(princ "\nSelect polyline to copy: ")
(princ)
(setq nomutt (getvar 'nomutt))
(setvar 'nomutt 1)
;;(setq ss (ssget ":S:E:L" '((0 . "AECC_FEATURE_LINE"))))
(setq ss (ssget ":S:E:L" '((0 . "LWPOLYLINE"))))
(setq oPline (vlax-ename->vla-object (ssname ss 0)))
(setvar 'nomutt 0)
(setq pt
(trans (getpoint "\nSpecify feature line insertion point: ")
1
0
)
)
(setq z (last pt))
(setq insertionPoint (vlax-3d-point pt))
(setq i 0)
(princ "\nSelect COGO points: ")
(setvar 'nomutt 1)
(setq ss (ssget '((0 . "AECC_COGO_POINT"))))
)
(progn
(vla-startundomark
(setq acDoc (vla-get-activedocument (vlax-get-acad-object)))
)
(vlax-for x (vla-get-activeselectionset acDoc)
(setq cogoPoint (vlax-get x 'location))
(vla-move (vla-copy oPline)
insertionPoint
(vlax-3d-point (list (car cogoPoint) (cadr cogoPoint) z))
)
(setq i (1+ i))
)
(setvar 'nomutt 0)
(prompt
(strcat "\n"
(itoa i)
" polyline"
(if (= 1 i)
""
"s"
)
" copied to "
(itoa (sslength ss))
" COGO points"
)
)
)
)
(*error* nil)
)