<?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 Extract a rectangle in Visual LISP, AutoLISP and General Customization Forum</title>
    <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/extract-a-rectangle/m-p/11756242#M34267</link>
    <description>&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Hi all.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;In the case of Attachment 1, when I want to extract a rectangle tangent to rectangle A, I can process it with Lisp as follows.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;(defun c:test2 (/ ent pts ss)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; (setq ent (car (entsel)))&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; (setq pts (mapcar &lt;/SPAN&gt;&lt;SPAN&gt;'cdr (vl-remove-if '&lt;/SPAN&gt;&lt;SPAN&gt;(lambda (x) (/= (car x) 10)) (entget ent))))&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; (setq ss (ssget &lt;/SPAN&gt;&lt;SPAN&gt;"_CP"&lt;/SPAN&gt;&lt;SPAN&gt; pts (list (cons 0 &lt;/SPAN&gt;&lt;SPAN&gt;"LWPOLYLINE"&lt;/SPAN&gt;&lt;SPAN&gt;))))&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; (ssdel ent ss)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="スクリーンショット 2023-02-15 160853.png" style="width: 301px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1176803iB3A059AA1149754D/image-dimensions/301x258?v=v2" width="301" height="258" role="button" title="スクリーンショット 2023-02-15 160853.png" alt="スクリーンショット 2023-02-15 160853.png" /&gt;&lt;/span&gt;&lt;P&gt; &lt;/P&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;In the case of the attached figure 2, is it possible to extract the rectangles B1 and B2 at once by making the rectangles A1 and A2 a List or a selection set?&lt;/SPAN&gt;&lt;/DIV&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="スクリーンショット 2023-02-15 161130.png" style="width: 390px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1176804iFAC4F91B7E9E51F9/image-dimensions/390x250?v=v2" width="390" height="250" role="button" title="スクリーンショット 2023-02-15 161130.png" alt="スクリーンショット 2023-02-15 161130.png" /&gt;&lt;/span&gt;&lt;P&gt; &lt;/P&gt;&lt;DIV&gt;&lt;SPAN&gt;Thank you.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
    <pubDate>Wed, 15 Feb 2023 11:17:55 GMT</pubDate>
    <dc:creator>saitoib</dc:creator>
    <dc:date>2023-02-15T11:17:55Z</dc:date>
    <item>
      <title>Extract a rectangle</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/extract-a-rectangle/m-p/11756242#M34267</link>
      <description>&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Hi all.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;In the case of Attachment 1, when I want to extract a rectangle tangent to rectangle A, I can process it with Lisp as follows.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;(defun c:test2 (/ ent pts ss)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; (setq ent (car (entsel)))&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; (setq pts (mapcar &lt;/SPAN&gt;&lt;SPAN&gt;'cdr (vl-remove-if '&lt;/SPAN&gt;&lt;SPAN&gt;(lambda (x) (/= (car x) 10)) (entget ent))))&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; (setq ss (ssget &lt;/SPAN&gt;&lt;SPAN&gt;"_CP"&lt;/SPAN&gt;&lt;SPAN&gt; pts (list (cons 0 &lt;/SPAN&gt;&lt;SPAN&gt;"LWPOLYLINE"&lt;/SPAN&gt;&lt;SPAN&gt;))))&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; (ssdel ent ss)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="スクリーンショット 2023-02-15 160853.png" style="width: 301px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1176803iB3A059AA1149754D/image-dimensions/301x258?v=v2" width="301" height="258" role="button" title="スクリーンショット 2023-02-15 160853.png" alt="スクリーンショット 2023-02-15 160853.png" /&gt;&lt;/span&gt;&lt;P&gt; &lt;/P&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;In the case of the attached figure 2, is it possible to extract the rectangles B1 and B2 at once by making the rectangles A1 and A2 a List or a selection set?&lt;/SPAN&gt;&lt;/DIV&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="スクリーンショット 2023-02-15 161130.png" style="width: 390px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1176804iFAC4F91B7E9E51F9/image-dimensions/390x250?v=v2" width="390" height="250" role="button" title="スクリーンショット 2023-02-15 161130.png" alt="スクリーンショット 2023-02-15 161130.png" /&gt;&lt;/span&gt;&lt;P&gt; &lt;/P&gt;&lt;DIV&gt;&lt;SPAN&gt;Thank you.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Wed, 15 Feb 2023 11:17:55 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/extract-a-rectangle/m-p/11756242#M34267</guid>
      <dc:creator>saitoib</dc:creator>
      <dc:date>2023-02-15T11:17:55Z</dc:date>
    </item>
    <item>
      <title>Re: Extract a rectangle</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/extract-a-rectangle/m-p/11756335#M34268</link>
      <description>&lt;P&gt;Well, it seems easy when both neighboring rectangles share 2 vertices... you need to select all the green plines (possibly all limited by layer, close, 4 vertices...) and then find the one that shares 2 vertices.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So it will help to know the other&amp;nbsp;circumstances from a real drawing, not just from a diagram.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you're about to write it yourself,&amp;nbsp;&lt;A href="http://www.lee-mac.com/uniqueduplicate.html" target="_blank" rel="noopener"&gt;THESE&lt;/A&gt;&amp;nbsp;functions would help you.&lt;/P&gt;</description>
      <pubDate>Wed, 15 Feb 2023 12:22:06 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/extract-a-rectangle/m-p/11756335#M34268</guid>
      <dc:creator>ВeekeeCZ</dc:creator>
      <dc:date>2023-02-15T12:22:06Z</dc:date>
    </item>
    <item>
      <title>Re: Extract a rectangle</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/extract-a-rectangle/m-p/11756930#M34269</link>
      <description>&lt;P&gt;If the entity names of the two A rectangles are already in a &lt;FONT color="#FF0000"&gt;list&lt;/FONT&gt;, try:&lt;/P&gt;
&lt;DIV&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;&lt;FONT size="2"&gt;(defun c:&lt;/FONT&gt;&lt;STRONG&gt;test3&lt;/STRONG&gt;&lt;FONT size="2"&gt; (/ ent pts ss)&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;&amp;nbsp; &lt;STRONG&gt;&lt;FONT color="#000000"&gt;(foreach ent&lt;/FONT&gt; &lt;FONT color="#FF0000"&gt;yourlist&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&lt;FONT size="3"&gt;&amp;nbsp; &amp;nbsp;&lt;/FONT&gt; (setq pts (mapcar&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;'cdr (vl-remove-if '&lt;/SPAN&gt;&lt;SPAN&gt;(lambda (x) (/= (car x) 10)) (entget ent))))&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&lt;FONT size="3"&gt;&amp;nbsp; &amp;nbsp;&lt;/FONT&gt; (setq ss (ssget&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;"_CP"&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;pts (list (cons 0&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;"LWPOLYLINE"&lt;/SPAN&gt;&lt;SPAN&gt;))))&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&lt;FONT size="3"&gt;&amp;nbsp; &amp;nbsp;&lt;/FONT&gt; (ssdel ent ss)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;FONT color="#000000"&gt;&lt;STRONG&gt;(setq &lt;FONT color="#0000FF"&gt;resultlist&lt;/FONT&gt; (cons ss &lt;FONT color="#0000FF"&gt;resultlist&lt;/FONT&gt;))&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;&lt;FONT color="#000000"&gt;&lt;STRONG&gt;&amp;nbsp; )&lt;/STRONG&gt;&lt;/FONT&gt;; foreach&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;If there will always be &lt;EM&gt;only one&lt;/EM&gt; B rectangle for each A rectangle, they could be extracted so the &lt;FONT color="#0000FF"&gt;resultlist&lt;/FONT&gt; is a list of those &lt;EM&gt;entity names&lt;/EM&gt;, rather than a list of &lt;EM&gt;selection sets&lt;/EM&gt; containing one thing each.&amp;nbsp; They could be put into a selection set rather than a list.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;If they're already in a &lt;FONT color="#FF00FF"&gt;selection set&lt;/FONT&gt;:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;&lt;FONT size="2"&gt;(defun c:&lt;/FONT&gt;&lt;STRONG&gt;test4&lt;/STRONG&gt;&lt;FONT size="2"&gt; (/ ent pts ss)&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face="courier new,courier" size="3"&gt;&lt;SPAN&gt;&amp;nbsp; &lt;STRONG&gt;&lt;FONT color="#000000"&gt;(setq &lt;FONT color="#339966"&gt;resultSS&lt;/FONT&gt; (ssadd))&lt;/FONT&gt;&lt;/STRONG&gt;; initially empty&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face="courier new,courier" size="3"&gt;&lt;SPAN&gt;&amp;nbsp; &lt;STRONG&gt;&lt;FONT color="#000000"&gt;(repeat (setq n (sslength &lt;FONT color="#FF00FF"&gt;yourSS&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;STRONG&gt;&lt;FONT color="#000000"&gt;(setq ent (ssname &lt;FONT color="#FF00FF"&gt;yourSS&lt;/FONT&gt; (setq n (1- n))))&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face="courier new,courier"&gt;&lt;FONT size="3"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT size="2"&gt;(setq pts (mapcar&amp;nbsp;&lt;/FONT&gt;&lt;SPAN&gt;'cdr (vl-remove-if '&lt;/SPAN&gt;&lt;SPAN&gt;(lambda (x) (/= (car x) 10)) (entget ent))))&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face="courier new,courier"&gt;&lt;FONT size="3"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT size="2"&gt;(setq ss (ssget&amp;nbsp;&lt;/FONT&gt;&lt;SPAN&gt;"_CP"&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;pts (list (cons 0&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;"LWPOLYLINE"&lt;/SPAN&gt;&lt;SPAN&gt;))))&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face="courier new,courier"&gt;&lt;FONT size="3"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT size="2"&gt;(ssdel ent ss)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;FONT color="#000000"&gt;&lt;STRONG&gt;(ssadd (ssname ss 0)&amp;nbsp;&lt;FONT color="#339966"&gt;resultSS&lt;/FONT&gt;)&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;&lt;FONT color="#000000"&gt;&lt;STRONG&gt;&amp;nbsp; )&lt;/STRONG&gt;&lt;/FONT&gt;; repeat&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;That does assume &lt;EM&gt;only one&lt;/EM&gt; B per A, and puts the B's into a &lt;FONT color="#339966"&gt;selection set&lt;/FONT&gt;.&amp;nbsp; If there might be &lt;EM&gt;more than one&lt;/EM&gt;, it would need to step through the ss set each time to add each item in it to the &lt;FONT color="#339966"&gt;resultSS&lt;/FONT&gt;.&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Wed, 15 Feb 2023 15:52:51 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/extract-a-rectangle/m-p/11756930#M34269</guid>
      <dc:creator>Kent1Cooper</dc:creator>
      <dc:date>2023-02-15T15:52:51Z</dc:date>
    </item>
    <item>
      <title>Re: Extract a rectangle</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/extract-a-rectangle/m-p/11759288#M34270</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/1779365"&gt;@ВeekeeCZ&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for your response.&lt;/P&gt;&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/69526"&gt;@Kent1Cooper&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;that's so, isn't it&lt;BR /&gt;I think I can solve this problem by using a list as an argument and using foreach.&lt;BR /&gt;I'll give it a try.&lt;BR /&gt;Thank you very much.&lt;/P&gt;</description>
      <pubDate>Thu, 16 Feb 2023 12:34:07 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/extract-a-rectangle/m-p/11759288#M34270</guid>
      <dc:creator>saitoib</dc:creator>
      <dc:date>2023-02-16T12:34:07Z</dc:date>
    </item>
  </channel>
</rss>

