Move multiple lines to the mid point of each nearby line

Move multiple lines to the mid point of each nearby line

Anonymous
Not applicable
793 Views
2 Replies
Message 1 of 3

Move multiple lines to the mid point of each nearby line

Anonymous
Not applicable

I want to move the gray line to the center of the green baseline.
It's too hard to move hundreds of lines.
Is there anyone who can help me?

Honeycam 2020-07-28 15-01-38.gif

0 Likes
Accepted solutions (1)
794 Views
2 Replies
Replies (2)
Message 2 of 3

marko_ribar
Advisor
Advisor
Accepted solution
(defun c:doit ( / car-sort ss s1 s1l s2l p lix )

  (defun car-sort ( lst cmp / rtn )
    (setq rtn (car lst))
    (foreach itm (cdr lst)
      (if (apply cmp (list itm rtn))
        (setq rtn itm)
      )
    )
    rtn
  )

  (if (setq ss (ssget '((0 . "LINE") (8 . "pattern_1,guide2"))))
    (progn
      (setq s1 (ssget "_P" '((8 . "pattern_1"))))
      (setq s1l (vl-remove-if 'listp (mapcar 'cadr (ssnamex s1))))
      (foreach li s1l
        (ssdel li ss)
      )
      (setq s2l (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))
      (setq s1l (mapcar '(lambda ( x y ) (list (mapcar '/ (mapcar '+ (car y) (cadr y)) (list 2.0 2.0 2.0)) x)) s1l (mapcar '(lambda ( x ) (mapcar 'cdr (vl-remove-if-not '(lambda ( y ) (vl-position (car y) '(10 11))) (entget x)))) s1l)))
      (setq s2l (mapcar '(lambda ( x y ) (list (mapcar '/ (mapcar '+ (car y) (cadr y)) (list 2.0 2.0 2.0)) x)) s2l (mapcar '(lambda ( x ) (mapcar 'cdr (vl-remove-if-not '(lambda ( y ) (vl-position (car y) '(10 11))) (entget x)))) s2l)))
      (foreach li s1l
        (setq p (car (car-sort s2l '(lambda ( a b ) (< (distance (car li) (car a)) (distance (car li) (car b)))))))
        (entupd (cdr (assoc -1 (entmod (subst (cons 10 (mapcar '+ (cdr (assoc 10 (setq lix (entget (cadr li))))) (mapcar '- p (car li)))) (assoc 10 lix) (subst (cons 11 (mapcar '+ (cdr (assoc 11 lix)) (mapcar '- p (car li)))) (assoc 11 lix) lix))))))
      )
    )
  )
  (princ)
)
Marko Ribar, d.i.a. (graduated engineer of architecture)
Message 3 of 3

Anonymous
Not applicable

good!!

thanks~!😀