(defun c:SnapToObj ( / en obj pts_ss ss_len c pten ptobj pted pt pt2)
(setq en (car (entsel "\nSelect Object: ")))
(setq obj (vlax-ename->vla-object en))
(princ "\nSelect points: ")
(setq pts_ss (ssget (list (cons 0 "POINT"))))
(setq ss_len (sslength pts_ss))
(setq c 0)
(while (< c ss_len)
(setq pten (ssname pts_ss c))
(setq ptobj (vlax-ename->vla-object pten))
(setq pted (entget pten))
(setq pt (cdr (assoc 10 pted)))
(setq pt2 (vlax-curve-getClosestPointTo obj pt))
(vla-move ptobj (vlax-3d-point pt) (vlax-3d-point pt2))
(setq c (+ c 1))
)
(princ)
)
The point Z value should equal whatever elevation the polyline it is snapping to ? Here's a quick one to retain the original Z value:Code - Auto/Visual Lisp: [Select]
;; RJP - 9/12/2017 ) ) ) )
The point Z value should equal whatever elevation the polyline it is snapping to ? Here's a quick one to retain the original Z value:Code - Auto/Visual Lisp: [Select]
;; RJP - 9/12/2017 ) ) ) )