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