<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re : Minimum rectangle in Visual LISP, AutoLISP and General Customization Forum</title>
    <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/minimum-rectangle/m-p/6792116#M125008</link>
    <description>&lt;P&gt;I attempted to resolve this with two polyline closed (without arc vertex)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Try it!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;(defun c:imbric ( / js n ent dxf_ent lst_pt lst_d where alpha imbric pt_why pt_where minpt1 maxpt1 minpt2 maxpt2 minpt maxpt)
  (setq js (ssget '((0 . "LWPOLYLINE") (-4 . "&amp;lt;AND") (-4 . "&amp;amp;") (70 . 1) (-4 . "AND&amp;gt;"))))
  (cond
    ((and js (eq (setq n (sslength js)) 2))
      (repeat n
        (setq
          ent (ssname js (setq n (1- n)))
          dxf_ent (entget ent)
          lst_pt (mapcar '(lambda (x) (trans x ent 0)) (mapcar 'cdr (vl-remove-if '(lambda (x) (/= (car x) 10)) dxf_ent)))
          lst_d (mapcar 'distance lst_pt (cons (last lst_pt) lst_pt))
          where (- (length lst_pt) (length (member (apply 'max lst_d) lst_d)))
          alpha (angle (if (zerop where) (last lst_pt) (nth (1- where) lst_pt)) (nth where lst_pt))
          imbric (cons (list ent alpha (if (zerop where) (last lst_pt) (nth (1- where) lst_pt)) (nth where lst_pt)) imbric)
        )
      )
      (cond
        (imbric
          (setq
            lst_d (mapcar 'distance (cddar imbric) (cddadr imbric))
            where (- (length imbric) (length (member (apply 'max lst_d) lst_d)))
            pt_why (nth where imbric)
            where (- (length imbric) (length (member (apply 'min lst_d) lst_d)))
            pt_where (nth where imbric)
            alpha (mapcar '(lambda (x) (if (&amp;gt; x pi) 1 0)) (mapcar 'cadr imbric))
          )
          (if (zerop (eval (cons boole (cons 6 alpha))))
            (command
              "_.align" (caddr pt_why) ""
              "_none" (caddr pt_why) "_none" (cadddr pt_where)
              "_none" (cadddr pt_why) "_none" (caddr pt_where)
              "" "_no"
            )
            (command
              "_.align" (caddr pt_why) ""
                "_none" (caddr pt_why) "_none" (caddr pt_where)
                "_none" (cadddr pt_why) "_none" (cadddr pt_where)
              "" "_no"
            )
          )
          (command
            "_.rotate" (car pt_why) (car pt_where) ""
            "_none" (caddr pt_where)
            "_reference" "_none" (caddr pt_where) "_none" (cadddr pt_where)
            "_none" (list (car (cadddr pt_where)) (cadr (caddr pt_where)))
          )
          (vla-GetBoundingBox (vlax-ename-&amp;gt;vla-object (car pt_why)) 'mnpt 'mxpt)
          (setq
            minpt1 (trans (safearray-value mnpt) 0 1)
            maxpt1 (trans (safearray-value mxpt) 0 1)
          )
          (vla-GetBoundingBox (vlax-ename-&amp;gt;vla-object (car pt_where)) 'mnpt 'mxpt)
          (setq
            minpt2 (trans (safearray-value mnpt) 0 1)
            maxpt2 (trans (safearray-value mxpt) 0 1)
          )
          (setq
            minpt
            (list
              (eval (cons min (mapcar 'car (list minpt1 minpt2))))
              (eval (cons min (mapcar 'cadr (list minpt1 minpt2))))
            )
            maxpt
            (list
              (eval (cons max (mapcar 'car (list maxpt1 maxpt2))))
              (eval (cons max (mapcar 'cadr (list maxpt1 maxpt2))))
            )
          )
          (command "_.pline"
            "_none" minpt
            "_none" (list (car maxpt) (cadr minpt))
            "_none" maxpt
            "_none" (list (car minpt) (cadr maxpt))
            "_close"
          )
        )
      )
    )
    (T (princ "\nSelect only two LWPOLYLINE and will must be closed!"))
  )
  (prin1)
)&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 09 Jan 2017 12:56:08 GMT</pubDate>
    <dc:creator>CADaSchtroumpf</dc:creator>
    <dc:date>2017-01-09T12:56:08Z</dc:date>
    <item>
      <title>Minimum rectangle</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/minimum-rectangle/m-p/6789134#M125003</link>
      <description>&lt;P&gt;&lt;SPAN&gt;Minimum rectangle&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The smallest rectangle of two polygons.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 07 Jan 2017 01:03:48 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/minimum-rectangle/m-p/6789134#M125003</guid>
      <dc:creator>well20152016</dc:creator>
      <dc:date>2017-01-07T01:03:48Z</dc:date>
    </item>
    <item>
      <title>Re: Minimum rectangle</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/minimum-rectangle/m-p/6789170#M125004</link>
      <description>&lt;P&gt;AARGH! &amp;nbsp;That requires nesting the polygons. &amp;nbsp;How about if they're already nested?&lt;/P&gt;</description>
      <pubDate>Sat, 07 Jan 2017 01:51:07 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/minimum-rectangle/m-p/6789170#M125004</guid>
      <dc:creator>john.uhden</dc:creator>
      <dc:date>2017-01-07T01:51:07Z</dc:date>
    </item>
    <item>
      <title>Re: Minimum rectangle</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/minimum-rectangle/m-p/6789838#M125005</link>
      <description>&lt;P&gt;Algorithm is a bit difficult, there will be friends&lt;/P&gt;</description>
      <pubDate>Sat, 07 Jan 2017 18:13:26 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/minimum-rectangle/m-p/6789838#M125005</guid>
      <dc:creator>well20152016</dc:creator>
      <dc:date>2017-01-07T18:13:26Z</dc:date>
    </item>
    <item>
      <title>Re: Minimum rectangle</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/minimum-rectangle/m-p/6789853#M125006</link>
      <description>&lt;P&gt;Try&amp;nbsp;&lt;A href="https://www.theswamp.org/index.php" target="_self"&gt;THE SWAMP&lt;/A&gt;&amp;nbsp;Those guys are up to challenge stuff if finds it interesting.&lt;/P&gt;</description>
      <pubDate>Sat, 07 Jan 2017 18:25:02 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/minimum-rectangle/m-p/6789853#M125006</guid>
      <dc:creator>ВeekeeCZ</dc:creator>
      <dc:date>2017-01-07T18:25:02Z</dc:date>
    </item>
    <item>
      <title>Re: Minimum rectangle</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/minimum-rectangle/m-p/6791732#M125007</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/4355674"&gt;@well20152016&lt;/a&gt; wrote:&lt;BR /&gt;&lt;P&gt;&lt;SPAN&gt;Minimum rectangle&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The smallest rectangle of two polygons.&lt;/SPAN&gt;&lt;/P&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;For simple shapes where aligning the edges works this could be done:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Start at one edge of polygon A.&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Align one edge of polygon B with the edge of A. Slide B along the edge, searching for the minimum&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; area of the bounding box among the non-intersecting locations.&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; Repeat for all edges of B.&lt;/P&gt;&lt;P&gt;Repeat for all edges of A.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Things get more interesting when we allow more complicated geometry, where aligned edges are not necessarily the minimum area: think about trying to nest a W and an E shape. Another complication would be allowed mirroring or forced directions.&lt;/P&gt;&lt;P&gt;- which probably explains why most nesting programs are commercial products.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;--&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 09 Jan 2017 09:48:21 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/minimum-rectangle/m-p/6791732#M125007</guid>
      <dc:creator>martti.halminen</dc:creator>
      <dc:date>2017-01-09T09:48:21Z</dc:date>
    </item>
    <item>
      <title>Re : Minimum rectangle</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/minimum-rectangle/m-p/6792116#M125008</link>
      <description>&lt;P&gt;I attempted to resolve this with two polyline closed (without arc vertex)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Try it!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;(defun c:imbric ( / js n ent dxf_ent lst_pt lst_d where alpha imbric pt_why pt_where minpt1 maxpt1 minpt2 maxpt2 minpt maxpt)
  (setq js (ssget '((0 . "LWPOLYLINE") (-4 . "&amp;lt;AND") (-4 . "&amp;amp;") (70 . 1) (-4 . "AND&amp;gt;"))))
  (cond
    ((and js (eq (setq n (sslength js)) 2))
      (repeat n
        (setq
          ent (ssname js (setq n (1- n)))
          dxf_ent (entget ent)
          lst_pt (mapcar '(lambda (x) (trans x ent 0)) (mapcar 'cdr (vl-remove-if '(lambda (x) (/= (car x) 10)) dxf_ent)))
          lst_d (mapcar 'distance lst_pt (cons (last lst_pt) lst_pt))
          where (- (length lst_pt) (length (member (apply 'max lst_d) lst_d)))
          alpha (angle (if (zerop where) (last lst_pt) (nth (1- where) lst_pt)) (nth where lst_pt))
          imbric (cons (list ent alpha (if (zerop where) (last lst_pt) (nth (1- where) lst_pt)) (nth where lst_pt)) imbric)
        )
      )
      (cond
        (imbric
          (setq
            lst_d (mapcar 'distance (cddar imbric) (cddadr imbric))
            where (- (length imbric) (length (member (apply 'max lst_d) lst_d)))
            pt_why (nth where imbric)
            where (- (length imbric) (length (member (apply 'min lst_d) lst_d)))
            pt_where (nth where imbric)
            alpha (mapcar '(lambda (x) (if (&amp;gt; x pi) 1 0)) (mapcar 'cadr imbric))
          )
          (if (zerop (eval (cons boole (cons 6 alpha))))
            (command
              "_.align" (caddr pt_why) ""
              "_none" (caddr pt_why) "_none" (cadddr pt_where)
              "_none" (cadddr pt_why) "_none" (caddr pt_where)
              "" "_no"
            )
            (command
              "_.align" (caddr pt_why) ""
                "_none" (caddr pt_why) "_none" (caddr pt_where)
                "_none" (cadddr pt_why) "_none" (cadddr pt_where)
              "" "_no"
            )
          )
          (command
            "_.rotate" (car pt_why) (car pt_where) ""
            "_none" (caddr pt_where)
            "_reference" "_none" (caddr pt_where) "_none" (cadddr pt_where)
            "_none" (list (car (cadddr pt_where)) (cadr (caddr pt_where)))
          )
          (vla-GetBoundingBox (vlax-ename-&amp;gt;vla-object (car pt_why)) 'mnpt 'mxpt)
          (setq
            minpt1 (trans (safearray-value mnpt) 0 1)
            maxpt1 (trans (safearray-value mxpt) 0 1)
          )
          (vla-GetBoundingBox (vlax-ename-&amp;gt;vla-object (car pt_where)) 'mnpt 'mxpt)
          (setq
            minpt2 (trans (safearray-value mnpt) 0 1)
            maxpt2 (trans (safearray-value mxpt) 0 1)
          )
          (setq
            minpt
            (list
              (eval (cons min (mapcar 'car (list minpt1 minpt2))))
              (eval (cons min (mapcar 'cadr (list minpt1 minpt2))))
            )
            maxpt
            (list
              (eval (cons max (mapcar 'car (list maxpt1 maxpt2))))
              (eval (cons max (mapcar 'cadr (list maxpt1 maxpt2))))
            )
          )
          (command "_.pline"
            "_none" minpt
            "_none" (list (car maxpt) (cadr minpt))
            "_none" maxpt
            "_none" (list (car minpt) (cadr maxpt))
            "_close"
          )
        )
      )
    )
    (T (princ "\nSelect only two LWPOLYLINE and will must be closed!"))
  )
  (prin1)
)&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 09 Jan 2017 12:56:08 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/minimum-rectangle/m-p/6792116#M125008</guid>
      <dc:creator>CADaSchtroumpf</dc:creator>
      <dc:date>2017-01-09T12:56:08Z</dc:date>
    </item>
    <item>
      <title>Re: Minimum rectangle</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/minimum-rectangle/m-p/6792999#M125009</link>
      <description>Well said!&lt;BR /&gt;&lt;BR /&gt;I created a nesting program in AutoLisp for vinyl pool liner panels. The&lt;BR /&gt;obvious objective is to minimize the amount of material to be cut from a&lt;BR /&gt;continuous roll. It was a lot of work. It did not provide automatic&lt;BR /&gt;rotation adjustments, but neither did the cutter manufacturer's $8000 per&lt;BR /&gt;seat nesting program. At least it did provide for the user to rotate&lt;BR /&gt;panels manually. Plus it created the CMD files for the cutter program to&lt;BR /&gt;read and send instructions to the cutter. Networking all the computers&lt;BR /&gt;together saved a lot of labor (and stupid diskettes).</description>
      <pubDate>Mon, 09 Jan 2017 17:30:26 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/minimum-rectangle/m-p/6792999#M125009</guid>
      <dc:creator>john.uhden</dc:creator>
      <dc:date>2017-01-09T17:30:26Z</dc:date>
    </item>
    <item>
      <title>Re : Minimum rectangle</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/minimum-rectangle/m-p/6793208#M125010</link>
      <description>&lt;P&gt;That worked very well!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;All you have to do now is to automatically nest the polylines. &amp;nbsp;&lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 09 Jan 2017 18:44:57 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/minimum-rectangle/m-p/6793208#M125010</guid>
      <dc:creator>john.uhden</dc:creator>
      <dc:date>2017-01-09T18:44:57Z</dc:date>
    </item>
    <item>
      <title>Re : Minimum rectangle</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/minimum-rectangle/m-p/6793255#M125011</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;BR /&gt;john.uhden a écrit&amp;nbsp;:&lt;BR /&gt;&lt;P&gt;That worked very well!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;All you have to do now is to automatically nest the polylines. &amp;nbsp;&lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt;&lt;/P&gt;&lt;HR /&gt;&lt;BLOCKQUOTE&gt;No really work very well,&lt;/BLOCKQUOTE&gt;&lt;P&gt;I have a problem with clockwise, that i have attempt to corrected.&lt;/P&gt;&lt;P&gt;The code remains simple and does not pretend to give an optimized solution. But it can be a starting indeed. . .&lt;BR /&gt;Can use bpoly to unify the result and resume the loop?&lt;/P&gt;&lt;/BLOCKQUOTE&gt;</description>
      <pubDate>Mon, 09 Jan 2017 19:00:12 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/minimum-rectangle/m-p/6793255#M125011</guid>
      <dc:creator>CADaSchtroumpf</dc:creator>
      <dc:date>2017-01-09T19:00:12Z</dc:date>
    </item>
    <item>
      <title>Re : Minimum rectangle</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/minimum-rectangle/m-p/6793329#M125012</link>
      <description>&lt;P&gt;There's no reason to turn them into regions and union them. &amp;nbsp;Your use of mins and maxs of bounding boxes works just fine, though it might be a millisecond faster via:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;(apply 'min (mapcar 'car points))&lt;/P&gt;&lt;P&gt;&amp;nbsp; and&lt;/P&gt;&lt;P&gt;(apply 'max (mapcar 'cadr points))&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;lt;I think but did not test&amp;gt;&lt;/P&gt;</description>
      <pubDate>Mon, 09 Jan 2017 19:27:50 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/minimum-rectangle/m-p/6793329#M125012</guid>
      <dc:creator>john.uhden</dc:creator>
      <dc:date>2017-01-09T19:27:50Z</dc:date>
    </item>
    <item>
      <title>Re : Minimum rectangle</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/minimum-rectangle/m-p/6794665#M125013</link>
      <description>&lt;P&gt;Thank you！&lt;/P&gt;&lt;DIV class="trans-left"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="trans-right"&gt;&lt;DIV class="output-wrap"&gt;&lt;DIV class="output-mod ordinary-wrap"&gt;&lt;DIV class="output-bd"&gt;&lt;P class="ordinary-output target-output clearfix"&gt;&lt;SPAN&gt;I think there's a better way!&lt;/SPAN&gt;&lt;SPAN&gt; Ask everybody to help!&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Tue, 10 Jan 2017 09:42:27 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/minimum-rectangle/m-p/6794665#M125013</guid>
      <dc:creator>well20152016</dc:creator>
      <dc:date>2017-01-10T09:42:27Z</dc:date>
    </item>
    <item>
      <title>Re : Minimum rectangle</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/minimum-rectangle/m-p/6794896#M125014</link>
      <description>&lt;P&gt;Well done Stroumph... It works fine for me, but I'd prompt for selection of CONVEX polygons, so I made my (Lee Mac's) version with ConvexHull sub functions... Here it goes, but all kudos to you, I only added filter modification to exclude LWPOLYLINES with ARCS (Bulges)...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;(defun c:imbric ( / LM:ConvexHull LM:Clockwise-p js n ent dxf_ent lst_pt lst_d where alpha imbric pt_why pt_where minpt1 maxpt1 minpt2 maxpt2 minpt maxpt )&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; (vl-load-com)&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; ;; Convex Hull&amp;nbsp; -&amp;nbsp; Lee Mac&lt;BR /&gt;&amp;nbsp; ;; Implements the Graham Scan Algorithm to return the Convex Hull of a list of points.&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp; (defun LM:ConvexHull ( lst / ch p0 )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (cond&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (&amp;nbsp;&amp;nbsp; (&amp;lt; (length lst) 4) lst)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (&amp;nbsp;&amp;nbsp; (setq p0 (car lst))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (foreach p1 (cdr lst)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (if (or (&amp;lt; (cadr p1) (cadr p0))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (and (equal (cadr p1) (cadr p0) 1e-8) (&amp;lt; (car p1) (car p0)))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq p0 p1)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq lst (vl-remove p0 lst))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq lst (append (list p0) lst))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq lst&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (vl-sort lst&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (function&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (lambda ( a b / c d )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (if (equal (setq c (angle p0 a)) (setq d (angle p0 b)) 1e-8)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (&amp;lt; (distance p0 a) (distance p0 b))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (&amp;lt; (if (equal c (* 2.0 pi) 1e-8) 0.0 c) (if (equal d (* 2.0 pi) 1e-8) 0.0 d))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq ch (list (caddr lst) (cadr lst) (car lst)))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (foreach pt (cdddr lst)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq ch (cons pt ch))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (while (and (caddr ch) (LM:Clockwise-p (caddr ch) (cadr ch) pt))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq ch (cons pt (cddr ch)))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (reverse ch)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp; ;; Clockwise-p&amp;nbsp; -&amp;nbsp; Lee Mac&lt;BR /&gt;&amp;nbsp; ;; Returns T if p1,p2,p3 are clockwise oriented or collinear&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp; (defun LM:Clockwise-p ( p1 p2 p3 )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (&amp;lt;&amp;nbsp; (-&amp;nbsp; (* (- (car&amp;nbsp; p2) (car&amp;nbsp; p1)) (- (cadr p3) (cadr p1)))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (* (- (cadr p2) (cadr p1)) (- (car&amp;nbsp; p3) (car&amp;nbsp; p1)))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1e-8&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp; )&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; (prompt "\nSelect 2 polygons...")&lt;BR /&gt;&amp;nbsp; (setq js (ssget '((0 . "LWPOLYLINE") (-4 . "&amp;lt;AND") (-4 . "&amp;amp;") (70 . 1) (-4 . "AND&amp;gt;") (-4 . "&amp;lt;NOT") (-4 . "&amp;lt;&amp;gt;") (42 . 0.0) (-4 . "NOT&amp;gt;"))) imbric nil)&lt;BR /&gt;&amp;nbsp; (cond&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ((and js (eq (setq n (sslength js)) 2))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (repeat n&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ent (ssname js (setq n (1- n)))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dxf_ent (entget ent)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lst_pt (mapcar '(lambda ( x ) (trans x ent 0)) (mapcar 'cdr (vl-remove-if '(lambda ( x ) (/= (car x) 10)) dxf_ent)))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lst_pt (LM:ConvexHull lst_pt)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (if (not (LM:Clockwise-p (car lst_pt) (cadr lst_pt) (caddr lst_pt)))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq lst_pt (reverse lst_pt))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lst_d (mapcar 'distance lst_pt (cons (last lst_pt) lst_pt))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where (- (length lst_pt) (length (member (apply 'max lst_d) lst_d)))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alpha (angle (if (zerop where) (last lst_pt) (nth (1- where) lst_pt)) (nth where lst_pt))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; imbric (cons (list ent alpha (if (zerop where) (last lst_pt) (nth (1- where) lst_pt)) (nth where lst_pt)) imbric)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (cond&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (imbric&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lst_d (mapcar 'distance (cddar imbric) (cddadr imbric))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where (- (length imbric) (length (member (apply 'max lst_d) lst_d)))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pt_why (nth where imbric)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where (- (length imbric) (length (member (apply 'min lst_d) lst_d)))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pt_where (nth where imbric)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alpha (mapcar '(lambda ( x ) (if (&amp;gt; x pi) 1 0)) (mapcar 'cadr imbric))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (if (zerop (eval (cons boole (cons 6 alpha))))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (command&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "_.align" (caddr pt_why) ""&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "_none" (caddr pt_why) "_none" (cadddr pt_where)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "_none" (cadddr pt_why) "_none" (caddr pt_where)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "" "_no"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (if (zerop (car alpha))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (command&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "_.align" (caddr pt_why) ""&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "_none" (caddr pt_why) "_none" (cadddr pt_where)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "_none" (cadddr pt_why) "_none" (caddr pt_where)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "" "_no"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (command&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "_.align" (caddr pt_why) ""&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "_none" (cadddr pt_why) "_none" (caddr pt_where)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "_none" (caddr pt_why) "_none" (cadddr pt_where)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "" "_no"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (command&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "_.rotate" (car pt_why) (car pt_where) ""&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "_none" (caddr pt_where)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "_reference" "_none" (caddr pt_where) "_none" (cadddr pt_where)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "_none" (list (car (cadddr pt_where)) (cadr (caddr pt_where)))&lt;BR /&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "_none" (polar (caddr pt_where) (* 0.25 pi) (nth where lst_d))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (vla-GetBoundingBox (vlax-ename-&amp;gt;vla-object (car pt_why)) 'mnpt 'mxpt)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; minpt1 (trans (safearray-value mnpt) 0 1)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; maxpt1 (trans (safearray-value mxpt) 0 1)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (vla-GetBoundingBox (vlax-ename-&amp;gt;vla-object (car pt_where)) 'mnpt 'mxpt)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; minpt2 (trans (safearray-value mnpt) 0 1)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; maxpt2 (trans (safearray-value mxpt) 0 1)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; minpt&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (list&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (eval (cons min (mapcar 'car (list minpt1 minpt2))))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (eval (cons min (mapcar 'cadr (list minpt1 minpt2))))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; maxpt&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (list&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (eval (cons max (mapcar 'car (list maxpt1 maxpt2))))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (eval (cons max (mapcar 'cadr (list maxpt1 maxpt2))))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (command "_.pline"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "_none" minpt&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "_none" (list (car maxpt) (cadr minpt))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "_none" maxpt&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "_none" (list (car minpt) (cadr maxpt))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "_close"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (T (princ "\nSelect only two LWPOLYLINE and will must be closed!"))&lt;BR /&gt;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp; (prin1)&lt;BR /&gt;)&lt;/PRE&gt;&lt;P&gt;Regards, M.R.&lt;/P&gt;</description>
      <pubDate>Tue, 10 Jan 2017 11:38:56 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/minimum-rectangle/m-p/6794896#M125014</guid>
      <dc:creator>marko_ribar</dc:creator>
      <dc:date>2017-01-10T11:38:56Z</dc:date>
    </item>
    <item>
      <title>Re : Minimum rectangle</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/minimum-rectangle/m-p/6795251#M125015</link>
      <description>&lt;P&gt;Good point marko for your integration of convex hull.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It'snt very optimised for occupation of area but it's true for concave shape superposition .&lt;/P&gt;</description>
      <pubDate>Tue, 10 Jan 2017 13:52:37 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/minimum-rectangle/m-p/6795251#M125015</guid>
      <dc:creator>CADaSchtroumpf</dc:creator>
      <dc:date>2017-01-10T13:52:37Z</dc:date>
    </item>
    <item>
      <title>Re : Minimum rectangle</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/minimum-rectangle/m-p/6795540#M125016</link>
      <description>&lt;P&gt;A simple first draft, this version has bug!&lt;/P&gt;</description>
      <pubDate>Tue, 10 Jan 2017 15:13:46 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/minimum-rectangle/m-p/6795540#M125016</guid>
      <dc:creator>well20152016</dc:creator>
      <dc:date>2017-01-10T15:13:46Z</dc:date>
    </item>
    <item>
      <title>Re : Minimum rectangle</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/minimum-rectangle/m-p/6795835#M125017</link>
      <description>&lt;P&gt;Seeing your version, I think that you are very close to a solution... Maybe if it could detect resulting polygons and if you could apply automatic collision avoid detection with applied correct angle, it could be even better... Revise topic from &lt;A href="https://www.theswamp.org/index.php?topic=39451.msg572811#msg572811" target="_self"&gt;here&lt;/A&gt;... You deserve at least a kudo for your routine you attached... All the best, M.R.&lt;/P&gt;</description>
      <pubDate>Tue, 10 Jan 2017 16:37:26 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/minimum-rectangle/m-p/6795835#M125017</guid>
      <dc:creator>marko_ribar</dc:creator>
      <dc:date>2017-01-10T16:37:26Z</dc:date>
    </item>
    <item>
      <title>Re : Minimum rectangle</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/minimum-rectangle/m-p/6796001#M125018</link>
      <description>&lt;P&gt;&lt;SPAN&gt;Thanks Marko_ribar&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I know you can do better!&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 10 Jan 2017 17:23:49 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/minimum-rectangle/m-p/6796001#M125018</guid>
      <dc:creator>well20152016</dc:creator>
      <dc:date>2017-01-10T17:23:49Z</dc:date>
    </item>
    <item>
      <title>Re : Minimum rectangle</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/minimum-rectangle/m-p/6796300#M125019</link>
      <description>&lt;P&gt;I don't think BPOLY, aka BOUNDARY, can join two closed polylines.&lt;/P&gt;&lt;P&gt;I think that's where regions and UNION come into play.&lt;/P&gt;</description>
      <pubDate>Tue, 10 Jan 2017 19:11:46 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/minimum-rectangle/m-p/6796300#M125019</guid>
      <dc:creator>john.uhden</dc:creator>
      <dc:date>2017-01-10T19:11:46Z</dc:date>
    </item>
    <item>
      <title>Re : Minimum rectangle</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/minimum-rectangle/m-p/6796313#M125020</link>
      <description>&lt;P&gt;Simple baloney! &amp;nbsp;I didn't look at the code, but the video results are remarkable. &amp;nbsp;NICE!!&lt;/P&gt;</description>
      <pubDate>Tue, 10 Jan 2017 19:16:27 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/minimum-rectangle/m-p/6796313#M125020</guid>
      <dc:creator>john.uhden</dc:creator>
      <dc:date>2017-01-10T19:16:27Z</dc:date>
    </item>
    <item>
      <title>Re : Minimum rectangle</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/minimum-rectangle/m-p/6800606#M125021</link>
      <description>&lt;P&gt;You may find my latest input from &lt;A href="https://www.theswamp.org/index.php?topic=52465.0#msg574353" target="_self"&gt;here&lt;/A&gt; also useful...&lt;/P&gt;&lt;P&gt;HTH., Regards, M.R.&lt;/P&gt;</description>
      <pubDate>Thu, 12 Jan 2017 10:28:16 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/minimum-rectangle/m-p/6800606#M125021</guid>
      <dc:creator>marko_ribar</dc:creator>
      <dc:date>2017-01-12T10:28:16Z</dc:date>
    </item>
    <item>
      <title>Re : Minimum rectangle</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/minimum-rectangle/m-p/6800811#M125022</link>
      <description>&lt;P&gt;Ribar Marko, I admire you!&lt;/P&gt;</description>
      <pubDate>Thu, 12 Jan 2017 12:11:03 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/minimum-rectangle/m-p/6800811#M125022</guid>
      <dc:creator>well20152016</dc:creator>
      <dc:date>2017-01-12T12:11:03Z</dc:date>
    </item>
  </channel>
</rss>

