你好
我有这个代码来移动一些AcadPoints t垂直于一条2DPolyline。
问题是:我有一个Z值的点,当我运行代码时,这个点垂直于直线,但Z=0。
- (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)
- )
|