Author Topic: fastmirror mid point  (Read 1375 times)

0 Members and 1 Guest are viewing this topic.

Sam

  • Bull Frog
  • Posts: 201
fastmirror mid point
« on: June 15, 2012, 02:01:49 AM »
fast quick mirror
Code - Auto/Visual Lisp: [Select]
  1. ;;written mr. yjr111
  2. (defun c:mirrmid (/ ss pt pt1)
  3.   (setq oldosmode (getvar 'osmode))
  4.   (setq oldorthomode (getvar 'orthomode))
  5.   (setvar 'osmode 0)
  6.   (setvar 'orthomode 0)
  7.   (setvar 'cmdecho 0)
  8.   (prompt "\nPlease select the object you want to mirror:")
  9.   (if (setq s (ssget))
  10.     (progn
  11.       (setq n 0)
  12.       (repeat (sslength s)
  13.         (redraw (ssname s n) 3)
  14.         (setq n (1+ n))
  15.       )
  16.       (prompt "\nPlease Select OK to mirror straight <<2>:")
  17.       (if (setq ss (ssget '((0 . "LINE"))))
  18.         (progn
  19.           (setq n 0)
  20.           (repeat (sslength s)
  21.             (redraw (ssname s n) 4)
  22.             (setq n (1+ n))
  23.           )
  24.           (cond
  25.             ((= (sslength ss) 2)
  26.              (setq p101        (cdr (assoc 10 (entget (ssname ss 0))))
  27.                    p102        (cdr (assoc 10 (entget (ssname ss 1))))
  28.                    p111        (cdr (assoc 11 (entget (ssname ss 0))))
  29.                    p112        (cdr (assoc 11 (entget (ssname ss 1))))
  30.                    p10        (polar p101
  31.                                (angle p101 p102)
  32.                                (/ (distance p101 p102) 2)
  33.                         )
  34.                    p11        (polar p111
  35.                                (angle p111 p112)
  36.                                (/ (distance p111 p112) 2)
  37.                         )
  38.              )
  39.              (if (equal p10 p11 1e-3)
  40.                (setq p10 (polar        p101
  41.                                 (angle p101 p112)
  42.                                 (/ (distance p101 p112) 2)
  43.                          )
  44.                      p11 (polar        p111
  45.                                 (angle p111 p102)
  46.                                 (/ (distance p111 p102) 2)
  47.                          )
  48.                )
  49.              )
  50.             )
  51.             ((= (sslength ss) 1)
  52.              (setq p10 (cdr (assoc 10 (entget (ssname ss 0))))
  53.                    p11 (cdr (assoc 11 (entget (ssname ss 0))))
  54.              )
  55.             )
  56.             ((> (sslength ss) 2)
  57.              (alert "\nselect up to two lines!")
  58.             )
  59.           )
  60.         )
  61.       )
  62.       (cond ((<= (sslength ss) 2)
  63.              (command "_.mirror" s "" p10 p11)
  64.              (command pause)
  65.             )
  66.       )
  67.     )
  68.   )
  69.   (setvar 'osmode oldosmode)
  70.   (setvar 'orthomode oldorthomode)
  71.   (princ)
  72. )
Every time we waste electricity, we put our planet's future in the dark. Let's turn around our attiude and start saving power and our planet, before it's too late
http://www.theswamp.org/donate.html

Lee Mac

  • Seagull
  • Posts: 12926
  • London, England
Re: fastmirror mid point
« Reply #1 on: June 15, 2012, 07:14:00 AM »
You might be interested in this related program:

http://lee-mac.com/quickmirror.html

 :-)