nalsur8 发表于 2022-7-5 18:30:02

将层分离/复制到其他p

通过用户拾取点将层分离/复制到其他位置,然后将其水平排序
 
下面的代码没有水平排序。如何更改代码,使其水平(见附图)
 

(defun c:test1 ( / _move d ss l lst ) (vl-load-com)
(defun _move ( obj p q dist )
   (vla-move (setq obj (vla-copy obj)) (vlax-3D-point p) (vlax-3D-point q))
   (vla-move obj (vlax-3D-point '(0. 0. 0.)) (vlax-3D-point (list dist 0. 0.)))
)
(if
   (and
   (ssget "_:L")
   (setq p1 (getpoint "\nBase Point: "))
   (setq p2 (getpoint "\nDesired Location: " p1))
   (setq p1 (trans p1 1 0) p2 (trans p2 1 0))
   )
   (progn
   (vlax-for obj (setq d 10. ss (vla-get-ActiveSelectionSet (vla-get-ActiveDocument (vlax-get-acad-object))))
       (_move obj p1 p2
         (cond
         ( (cdr (assoc (setq l (vla-get-layer obj)) lst)) )
          ((cdr (assoc (vl-string-right-trim "D" l) lst)))
                ((cdr (assoc (strcat l "D") lst)))
         ( (setq lst (cons (cons l (setq d (- d 650.))) lst)) d )
         )
       )
   )
   (vla-delete ss)
   )
)
(princ)
)


nalsur8 发表于 2022-7-5 19:44:41

任何理想的男人
页: [1]
查看完整版本: 将层分离/复制到其他p