<?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: Offset multiple objects at once in Visual LISP, AutoLISP and General Customization Forum</title>
    <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/m-p/8445201#M107651</link>
    <description>&lt;P&gt;Try this quick mod:&lt;/P&gt;
&lt;PRE&gt;(defun c:offf (/ _off a b c d i o p s x)
  ;; RJP » 2018-11-28
  (defun _off (o d / r)
    (cond ((= 'list (type (setq r (vl-catch-all-apply 'vlax-invoke (list o 'offset d))))) (car r)))
  )
  (or (setq p (getenv "RJP_Offset_Side")) (setq p "Inside"))
  (or (setq i (getenv "RJP_Offset_Dist")) (setq i "1"))
  (or (setq b (getenv "RJP_Offset_Delete")) (setq b "No"))
  (or (setq c (getenv "RJP_Offset_Clayer")) (setq c "No"))
  (cond
    ((and (progn (initget "Outside Inside")
		 (setq p (cond ((getkword (strcat "\nOffset [Outside/Inside] &amp;lt;" p "&amp;gt;: ")))
			       (p)
			 )
		 )
	  )
	  (setq	i (cond	((getdist (strcat "\nEnter Offset Distance: &amp;lt;" i "&amp;gt;: ")))
			((atof i))
		  )
	  )
	  (progn (initget "Yes No")
		 (setq b (cond ((getkword (strcat "\nDelete original? [Yes/No] &amp;lt;" b "&amp;gt;: ")))
			       (b)
			 )
		 )
	  )
	  (progn (initget "Yes No")
		 (setq
		   c (cond ((getkword (strcat "\nOffset object to current layer? [Yes/No] &amp;lt;" c "&amp;gt;: ")))
			   (c)
		     )
		 )
	  )
	  (setq s (ssget ":L" '((0 . "*POLYLINE,ARC,CIRCLE,ELLIPSE,SPLINE"))))
     )
     (setenv "RJP_Offset_Dist" (vl-princ-to-string i))
     (setenv "RJP_Offset_Side" p)
     (setenv "RJP_Offset_Delete" b)
     (setenv "RJP_Offset_Clayer" c)
     (foreach e	(vl-remove-if 'listp (mapcar 'cadr (ssnamex s)))
       (setq o (vlax-ename-&amp;gt;vla-object e))
       (cond ((= 2
		 (length (setq a
				(vl-remove
				  'nil
				  (mapcar
				    '(lambda (x) (cond ((setq d (_off o (x i))) (list d (vlax-curve-getarea d)))))
				    (list + -)
				  )
				)
			 )
		 )
	      )
	      (setq a (mapcar 'car (vl-sort a '(lambda (r j) (&amp;lt; (cadr r) (cadr j))))))
	      (and (= p "Outside") (setq a (reverse a)))
	      (vla-delete (cadr a))
	      (and (= "Yes" b) (entdel e))
	      (and (= "Yes" c) (vla-put-layer (car a) (getvar 'clayer)))
	     )
	     (t (vla-put-color o 1) (print "Something went wrong.."))
       )
     )
    )
  )
  (princ)
)
(vl-load-com)&lt;/PRE&gt;</description>
    <pubDate>Tue, 04 Dec 2018 20:35:59 GMT</pubDate>
    <dc:creator>ronjonp</dc:creator>
    <dc:date>2018-12-04T20:35:59Z</dc:date>
    <item>
      <title>Offset multiple objects at once</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/m-p/7835213#M107627</link>
      <description>&lt;P&gt;We have a process in our drawings where we need need to offset closed polygons to the interior of the polygon at a set distance. Can anyone think of a routine or way to automate this? We will sometimes have hundreds of these polygons that need to be offset. I was thinking if there was a way to have an interior coordinate calculated from the object and store that as a variable, it could be part of a lsp routine to take the selected object and use the interior coordinate as the point for side to offset.&lt;/P&gt;</description>
      <pubDate>Wed, 07 Mar 2018 16:27:17 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/m-p/7835213#M107627</guid>
      <dc:creator>JoeKidd33</dc:creator>
      <dc:date>2018-03-07T16:27:17Z</dc:date>
    </item>
    <item>
      <title>Re: Offset multiple objects at once</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/m-p/7835971#M107628</link>
      <description>&lt;P&gt;You don't need interior point... Just offset on both sides with (vla-offset) function and then check for area of new polygons... If one area of polygon is larger, then remove that polygon - only smaller one should remain... Iterate through all selection set of polygons and apply this procedure for each one...&lt;/P&gt;</description>
      <pubDate>Wed, 07 Mar 2018 20:02:58 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/m-p/7835971#M107628</guid>
      <dc:creator>marko_ribar</dc:creator>
      <dc:date>2018-03-07T20:02:58Z</dc:date>
    </item>
    <item>
      <title>Re: Offset multiple objects at once</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/m-p/7836065#M107629</link>
      <description>&lt;P&gt;Try this.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;(defun C:offset_in ( / *error* keyValue e el dis lyr ss i p1 npoints pts m xc yc )
(defun *error*() (setvar "cmdecho" 1) (princ))
(defun keyValue (key el)(cdr (assoc key el)))
(setq dis (getreal "\n Offset distance for all polygons &amp;gt;"))
(setq e (entsel "\n Select polygon to determin layer name &amp;gt;"))
(setvar "cmdecho" 0)
(setq lyr (cdr (assoc 8 (entget (car e)))))
(setq ss (ssget "X"  
            (list (cons -4 "&amp;lt;AND")
                  (cons 8 lyr)
                  (cons 0 "LWPOLYLINE")
                  (cons -4 "AND&amp;gt;")
            )
        ) 
      i 0)
(while (&amp;lt; i (sslength ss))

(setq e (ssname ss i))
(setq ent  (entget e))
(if (and ent)
        (progn
        
            (if (= (logand (cdr (assoc 70 ent)) 1) 1)(setq p1 (cdr (assoc 10 ent))))
            (setq npoints (keyValue 90 ent) npoints (fix npoints) pts nil)
              (cond (ent
                     (while (setq m (assoc 10 ent) ent (member m ent))
                       (setq pts (cons (cdr m) pts) ent (cdr ent))
                     )
                    )
              )
              
            (if (eq (keyValue 70 ent) 1) (setq pts (cons p1 pts)))
        
        
        (setq xc (/ (apply '+ (mapcar 'car pts)) npoints)
              yc (/ (apply '+ (mapcar 'cadr pts)) npoints)
        )
        (command "offset" dis e  (list xc yc) "" "")  
       ) 
 )
(setq i (+ i 1))
)
(setvar "cmdecho" 1)
(princ)
)&lt;/PRE&gt;</description>
      <pubDate>Wed, 07 Mar 2018 20:31:54 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/m-p/7836065#M107629</guid>
      <dc:creator>hak_vz</dc:creator>
      <dc:date>2018-03-07T20:31:54Z</dc:date>
    </item>
    <item>
      <title>Re: Offset multiple objects at once</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/m-p/7836356#M107630</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;@Anonymous wrote:&lt;BR /&gt;
&lt;P&gt;... we need need to offset closed polygons to the interior of the polygon at a set distance. ....&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Are you talking about &lt;EM&gt;regular&lt;/EM&gt;&amp;nbsp; polygons, such as those made with the POLYGON command?&amp;nbsp; Or Polylines of other shapes that will always be &lt;EM&gt;convex&lt;/EM&gt;&amp;nbsp; all around?&amp;nbsp; If either, it can be very much simpler than&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/5530556"&gt;@hak_vz&lt;/a&gt;'s suggestion, using a point halfway between the start and the halfway-around location.&amp;nbsp; But if they might sometimes be &lt;EM&gt;concave&lt;/EM&gt;&amp;nbsp; in places, you could get some Offset to the exterior from that routine.&amp;nbsp; Also, would any ever be small enough in relation to the Offset distance that Offsetting inward would fail?&amp;nbsp; If so, a routine could be made to catch that failure, and continue to do remaining ones, without killing the whole thing.&lt;/P&gt;</description>
      <pubDate>Wed, 07 Mar 2018 22:13:11 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/m-p/7836356#M107630</guid>
      <dc:creator>Kent1Cooper</dc:creator>
      <dc:date>2018-03-07T22:13:11Z</dc:date>
    </item>
    <item>
      <title>Re: Offset multiple objects at once</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/m-p/7836395#M107631</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/940934"&gt;@marko_ribar&lt;/a&gt; wrote:&lt;BR /&gt;
&lt;P&gt;... offset on both sides with (vla-offset) function and then check for area of new polygons... If one area of polygon is larger, then remove that polygon - only smaller one should remain... ...&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;I would simplify that slightly -- no need to always go &lt;EM&gt;both&lt;/EM&gt;&amp;nbsp; ways.&amp;nbsp; Just (vla-offset) using the desired distance, and compare the area of the result to the &lt;EM&gt;original&lt;/EM&gt;.&amp;nbsp; Only if the new one is larger than the original do you need to get rid of that and (vla-offset) using the &lt;EM&gt;negative&lt;/EM&gt;&amp;nbsp; of the distance to go inward instead.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;But there is still the complication of whether any originals might be too small to be Offset inward by the desired distance, which will cause an error.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And there's the question of what kinds of shapes they're really talking about.&amp;nbsp; In this image, the white is the original, and when Offset &lt;EM&gt;outward&lt;/EM&gt;, by a distance too large in relation to the space between the pointing-at-each-other corners, the result is &lt;EM&gt;both&lt;/EM&gt;&amp;nbsp; green shapes.&amp;nbsp; If a routine compares the areas of the original&amp;nbsp;and [what you would usually expect] the &lt;EM&gt;last object,&lt;/EM&gt; which in this case happens to be the &lt;EM&gt;smaller&lt;/EM&gt;&amp;nbsp; one, it will think it has successfully Offset it inward, but it will be wrong.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="OffsetOutward.PNG" style="width: 209px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/472364iEA16CC162EEF53FC/image-size/large?v=v2&amp;amp;px=999" role="button" title="OffsetOutward.PNG" alt="OffsetOutward.PNG" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 07 Mar 2018 22:33:38 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/m-p/7836395#M107631</guid>
      <dc:creator>Kent1Cooper</dc:creator>
      <dc:date>2018-03-07T22:33:38Z</dc:date>
    </item>
    <item>
      <title>Re: Offset multiple objects at once</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/m-p/7837255#M107632</link>
      <description>&lt;UL&gt;&lt;LI&gt;find point inside polygon&lt;/LI&gt;&lt;LI&gt;offset polygon to inside direction&lt;/LI&gt;&lt;LI&gt;check for intersections of these two polygons and if intersections exist trim all parts of the new polygon outward from original polygon&lt;/LI&gt;&lt;LI&gt;if intersections don’t exist and size of new polygon is smaller than original offset is correct.&lt;/LI&gt;&lt;LI&gt;if size of new polygon is bigger than original, delete new polygon &amp;nbsp;&lt;/LI&gt;&lt;LI&gt;in case of intersections rearrange remaining inner polygon so that all its points are at offset distance and close it&lt;/LI&gt;&lt;/UL&gt;</description>
      <pubDate>Thu, 08 Mar 2018 08:27:39 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/m-p/7837255#M107632</guid>
      <dc:creator>hak_vz</dc:creator>
      <dc:date>2018-03-08T08:27:39Z</dc:date>
    </item>
    <item>
      <title>Re: Offset multiple objects at once</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/m-p/7838084#M107633</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/5530556"&gt;@hak_vz&lt;/a&gt; wrote:&lt;BR /&gt;
&lt;UL&gt;
&lt;LI&gt;find point inside polygon&amp;nbsp;....&lt;/LI&gt;
&lt;/UL&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;And therein lies the big problem, if the Polyline might&amp;nbsp;be of &lt;EM&gt;any shape&lt;/EM&gt;. &amp;nbsp;This is why I asked the questions in Post 4.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Put "point inside polyline" in the Search window for a variety of threads about the question, including &lt;A href="https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/point-inside-polyline/m-p/7838067#M366206" target="_blank"&gt;this one&lt;/A&gt; where I just used a similar&amp;nbsp;shape to the one in Post 5 here, to illustrate one&amp;nbsp;kind of configuration that can lead to incorrect results.&lt;/P&gt;</description>
      <pubDate>Thu, 08 Mar 2018 14:01:39 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/m-p/7838084#M107633</guid>
      <dc:creator>Kent1Cooper</dc:creator>
      <dc:date>2018-03-08T14:01:39Z</dc:date>
    </item>
    <item>
      <title>Re: Offset multiple objects at once</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/m-p/7838489#M107634</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/69526"&gt;@Kent1Cooper&lt;/a&gt; wrote:&lt;BR /&gt;&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/5530556"&gt;@hak_vz&lt;/a&gt; wrote:&lt;BR /&gt;&lt;UL&gt;&lt;LI&gt;find point inside polygon&amp;nbsp;....&lt;/LI&gt;&lt;/UL&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;And therein lies the big problem, if the Polyline might&amp;nbsp;be of &lt;EM&gt;any shape&lt;/EM&gt;. &amp;nbsp;This is why I asked the questions in Post 4.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Put "point inside polyline" in the Search window for a variety of threads about the question, including &lt;A href="https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/point-inside-polyline/m-p/7838067#M366206" target="_blank"&gt;this one&lt;/A&gt; where I just used a similar&amp;nbsp;shape to the one in Post 5 here, to illustrate one&amp;nbsp;kind of configuration that can lead to incorrect results.&lt;/P&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;I agree. In my code I collect all polygon points and and search for midpoint, as a simple solution. To avoid situation that you mention one would sort points in clockwise (or counterclockwise) direction and test orientation of this apparent (or true) midpoint against polygon points connected&amp;nbsp; into a "convex hull", i.e. is it left or right to all connecting lines. If points are sorted in counterclockwise direction, then point is inside polygon if it's left to all connecting lines.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;;;&amp;nbsp;&amp;nbsp;&amp;nbsp; -1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Point is to the right of vector.&lt;BR /&gt;;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Point is on (colinear with) vector&lt;BR /&gt;;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Point is to the left of vector.&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; (defun vectorSide (v1 v2 p / r *fuzz*)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq *fuzz* 1e-10)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq r (- (* (-(car v2)(car v1))(-(cadr p)(cadr v1)))&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; (* (-(cadr v2)(cadr v1))(-(car p)(car v1)))&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; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (cond ((equal r 0.0 *fuzz*) 0)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (t (fix (/ (abs r) r)))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp; ) ; end defun&lt;/P&gt;</description>
      <pubDate>Thu, 08 Mar 2018 16:05:41 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/m-p/7838489#M107634</guid>
      <dc:creator>hak_vz</dc:creator>
      <dc:date>2018-03-08T16:05:41Z</dc:date>
    </item>
    <item>
      <title>Re: Offset multiple objects at once</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/m-p/8172189#M107635</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/531562"&gt;@JoeKidd33&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;... we need need to offset closed polygons to the interior of the polygon at a set distance. ....&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I thought&amp;nbsp;it might be nice to have a &lt;EM&gt;universal&lt;/EM&gt;&amp;nbsp; routine, that would not be limited to Polylines, but could do &lt;EM&gt;anything&lt;/EM&gt;&amp;nbsp; that could be said to have an "inside" and "outside," and that would not go only inward, but would have commands to go either way.&amp;nbsp; I started playing with it at the time, then forgot about it for a while, but just got back into it.&amp;nbsp; The result is the attached &lt;FONT color="#000000"&gt;&lt;STRONG&gt;OffsetInOrOut.lsp&lt;/STRONG&gt;&lt;/FONT&gt; with its &lt;FONT color="#000000"&gt;&lt;STRONG&gt;OffIn&lt;/STRONG&gt;&lt;/FONT&gt; and &lt;FONT color="#000000"&gt;&lt;STRONG&gt;OffOut&lt;/STRONG&gt;&lt;/FONT&gt; commands.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It does still have&amp;nbsp;possible unexpected results with shapes that result in&amp;nbsp;&lt;EM&gt;more than one&lt;/EM&gt;&amp;nbsp; new object when Offset [mostly self-intersections or convolutedness in Polylines and Splines].&amp;nbsp; But apart from those, it seems to work, on Polylines [of all but 3D varieties], Circles, Arcs, Ellipses and [only planar] Splines, as many as you select.&amp;nbsp; It uses the earlier suggestion here to do the Offset and compare the area of the result to the original, to decide whether to delete the first result and go the other way.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It even reports [in the &lt;FONT color="#000000"&gt;OffIn&lt;/FONT&gt; command only] how many selected objects were too small to Offset inward by the desired distance, if any.&amp;nbsp; And it remembers that distance, separately from regular Offset's, to offer as default on subsequent use.&amp;nbsp; See the comments at the top for more details.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;[It doesn't have regular Offset's options about the Layer of the result, nor to delete the original, but those could be added.]&lt;/P&gt;</description>
      <pubDate>Thu, 02 Aug 2018 02:24:13 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/m-p/8172189#M107635</guid>
      <dc:creator>Kent1Cooper</dc:creator>
      <dc:date>2018-08-02T02:24:13Z</dc:date>
    </item>
    <item>
      <title>Re: Offset multiple objects at once</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/m-p/8173540#M107636</link>
      <description>&lt;P&gt;I did not read this whole thread so excuse me if I'm way off, but &lt;A href="http://www.cadtutor.net/forum/showthread.php?104788-Offset-inside-a-polygon.-and-change-appointment-layer-many-objects.-LISP-plz.&amp;amp;p=705505&amp;amp;viewfull=1#post705505" target="_blank"&gt;&lt;STRONG&gt;HERE's&lt;/STRONG&gt; &lt;/A&gt;some code I wrote about a&amp;nbsp;week ago to do something like this.&lt;/P&gt;</description>
      <pubDate>Thu, 02 Aug 2018 15:06:03 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/m-p/8173540#M107636</guid>
      <dc:creator>ronjonp</dc:creator>
      <dc:date>2018-08-02T15:06:03Z</dc:date>
    </item>
    <item>
      <title>Re: Offset multiple objects at once</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/m-p/8177213#M107637</link>
      <description>&lt;P&gt;It's much easier that all of that.&lt;/P&gt;&lt;P&gt;To offset to the inside:&lt;/P&gt;&lt;P&gt;If the polyline is drawn counter-clockwise then (vla-offset object &amp;lt;negative amount&amp;gt;)&amp;nbsp; [to the left]&lt;/P&gt;&lt;P&gt;If it is clockwise, then (vla-offset object &amp;lt;positive amount&amp;gt;).&amp;nbsp; [to the right]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Actually, I prefer to use the form (vlax-invoke object 'offset amount) because it returns the VLA-OBJECT of the created polyline, like in case you want to change its layer or color or whatever.&amp;nbsp; Or a list of vla-objects if more than one offset is created.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;  ;;  Function to determine if a polyline is CW or CCW
  ;;  Returns 1 for CCW, or -1 for CW, or nil if not a polyline or only two points
  (defun @CCW? (Pline / Param Sum End P1 P2 P3)
    (cond
      ((= (type Pline) 'VLA-OBJECT))
      ((= (type Pline) 'ENAME)(setq Pline (vlax-ename-&amp;gt;vla-object Pline)))
      (1 (setq Pline nil))
    )
    (and
      Pline
      (setq Param 0.5
            Sum 0.0
            End (vlax-curve-getendparam Pline)
            P1 (vlax-curve-getstartpoint Pline)
            PType (vlax-get Pline 'ObjectName)
      )
      (or
        (while (not (setq P2 (vlax-curve-getpointatparam Pline Param)))
          (setq Param (+ Param 0.5))
        )
        1
      )
      (while (and (&amp;gt; End 2)(&amp;lt; Param End))
        (setq Param (+ Param 0.5))
        (while (not (setq P3 (vlax-curve-getpointatparam Pline Param)))
          (setq Param (+ Param 0.5))
        )
        (setq Sum (+ Sum (@delta (angle P1 P2)(angle P2 P3)))
              P1 P2 P2 P3
        )
      )
    )
    (cond
      ((not Sum) nil)
      ((zerop Sum) nil)
      ((&amp;gt; Sum 0) 1)  ;; meaning it's CCW
      ((&amp;lt; Sum 0) -1) ;; meaning it's CW
    )
  )
where:
  ;;-----------------------------------------------------------------------
  ;; This function returns the deflection angle (in radians) of two angles:
  ;;
  (defun @delta (a1 a2)
    (cond
      ((&amp;gt; a1 (+ a2 pi))
        (- (+ a2 pi pi) a1)
      )
      ((&amp;gt; a2 (+ a1 pi))
        (- a2 (+ a1 pi pi))
      )
      (1 (- a2 a1))
    )
  )&lt;/PRE&gt;</description>
      <pubDate>Fri, 03 Aug 2018 23:17:49 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/m-p/8177213#M107637</guid>
      <dc:creator>john.uhden</dc:creator>
      <dc:date>2018-08-03T23:17:49Z</dc:date>
    </item>
    <item>
      <title>Re: Offset multiple objects at once</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/m-p/8180844#M107638</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/3930636"&gt;@john.uhden&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;It's much easier that all of that.&lt;/P&gt;
&lt;P&gt;To offset to the inside:&lt;/P&gt;
&lt;P&gt;If the polyline is drawn counter-clockwise then (vla-offset object &amp;lt;negative amount&amp;gt;)&amp;nbsp; [to the left]&lt;/P&gt;
&lt;P&gt;If it is clockwise, then (vla-offset object &amp;lt;positive amount&amp;gt;).&amp;nbsp; [to the right]&lt;/P&gt;
&lt;P&gt;....&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;That's fine for Polylines, and yes, that's the entity type in the original question, but I was casting a wider net.&amp;nbsp; [And there are various CW-v.-CCW Polyline test routines out there, if people want to look at different approaches to the question.]&amp;nbsp; And it can&amp;nbsp;also be easier for Circles/Arcs/Ellipses -- positive (vla-offset) value is always outboard, negative always inboard.&amp;nbsp; But those entity-type-specific approaches require that each&amp;nbsp;entity in&amp;nbsp;a selection set be evaluated for its type first, and then processed appropriately [i.e. &lt;EM&gt;differently&lt;/EM&gt;&amp;nbsp;&amp;nbsp;for different entity types].&amp;nbsp; I was going&amp;nbsp;for a routine that uses the &lt;EM&gt;same&lt;/EM&gt;&amp;nbsp; process for &lt;EM&gt;all&lt;/EM&gt;&amp;nbsp; appropriate entity types, so that the&amp;nbsp;type does &lt;EM&gt;not&lt;/EM&gt;&amp;nbsp; need to be determined for individual entities.&amp;nbsp; Yes, it does need to check individually for types that the selection filter needs to allow but that can't be Offset, i.e. 3DPolylines [which would also need to be&amp;nbsp;checked for&amp;nbsp;if using the CW-vs.-CCW approach] and non-planar Splines.&amp;nbsp; But the result of that check doesn't need to determine &lt;EM&gt;how&lt;/EM&gt;&amp;nbsp; to process the entity, only &lt;EM&gt;whether&lt;/EM&gt;&amp;nbsp; or not to do so.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;[And is it really "much easier"?&amp;nbsp; Your determination, for Polylines &lt;EM&gt;only&lt;/EM&gt;, of whether one was drawn CW or CCW, &lt;EM&gt;without&lt;/EM&gt;&amp;nbsp; including the&amp;nbsp;(vla-offset) using the sign thus determined on the distance, takes 48 working-code lines.&amp;nbsp;In mine,&amp;nbsp;the did-it-go-the-wrong-way-and-if-so-go-the-other-way portion takes 28 lines, covering &lt;EM&gt;all&lt;/EM&gt;&amp;nbsp; entity types, and &lt;EM&gt;including&lt;/EM&gt;&amp;nbsp; the Offsetting itself and the one the other way if needed, and also keeping track of whether one is too small to Offset inward by the given distance.]&lt;/P&gt;</description>
      <pubDate>Mon, 06 Aug 2018 20:34:18 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/m-p/8180844#M107638</guid>
      <dc:creator>Kent1Cooper</dc:creator>
      <dc:date>2018-08-06T20:34:18Z</dc:date>
    </item>
    <item>
      <title>Re: Offset multiple objects at once</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/m-p/8180883#M107639</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/593837"&gt;@ronjonp&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;....&amp;nbsp;&lt;A href="http://www.cadtutor.net/forum/showthread.php?104788-Offset-inside-a-polygon.-and-change-appointment-layer-many-objects.-LISP-plz.&amp;amp;p=705505&amp;amp;viewfull=1#post705505" target="_blank"&gt;&lt;STRONG&gt;HERE's&lt;/STRONG&gt; &lt;/A&gt;some code I wrote about a&amp;nbsp;week ago to do something like this.&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;One comment:&amp;nbsp; It restricts selection to LWPolylines with &lt;EM&gt;more than 2 vertices&lt;/EM&gt;.&amp;nbsp; But there are several possible configurations of only-2-vertex Polylines, involving at least one &lt;EM&gt;arc&lt;/EM&gt;&amp;nbsp; segment, that can have a definite "inside" and "outside" and should be allowed.&amp;nbsp; They include those made with the DONUT command [two equal half-circle arcs],&amp;nbsp;two-arc-segment closed ones with &lt;EM&gt;unequal&lt;/EM&gt;&amp;nbsp; arc segments [whether or not they look like a circle as Donuts do], one-&lt;EM&gt;arc&lt;/EM&gt;-segment-and-one-&lt;EM&gt;line&lt;/EM&gt;-segment&amp;nbsp;closed ones [such as a capital-D shape], and single-arc-segment &lt;EM&gt;open&lt;/EM&gt;&amp;nbsp; ones.&lt;/P&gt;</description>
      <pubDate>Mon, 06 Aug 2018 20:20:22 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/m-p/8180883#M107639</guid>
      <dc:creator>Kent1Cooper</dc:creator>
      <dc:date>2018-08-06T20:20:22Z</dc:date>
    </item>
    <item>
      <title>Re: Offset multiple objects at once</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/m-p/8181075#M107640</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/69526"&gt;@Kent1Cooper&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/593837"&gt;@ronjonp&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;&lt;P&gt;....&amp;nbsp;&lt;A href="http://www.cadtutor.net/forum/showthread.php?104788-Offset-inside-a-polygon.-and-change-appointment-layer-many-objects.-LISP-plz.&amp;amp;p=705505&amp;amp;viewfull=1#post705505" target="_blank"&gt;&lt;STRONG&gt;HERE's&lt;/STRONG&gt; &lt;/A&gt;some code I wrote about a&amp;nbsp;week ago to do something like this.&lt;/P&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;One comment:&amp;nbsp; It restricts selection to LWPolylines with &lt;EM&gt;more than 2 vertices&lt;/EM&gt;.&amp;nbsp; But there are several possible configurations of only-2-vertex Polylines, involving at least one &lt;EM&gt;arc&lt;/EM&gt;&amp;nbsp; segment, that can have a definite "inside" and "outside" and should be allowed.&amp;nbsp; They include those made with the DONUT command [two equal half-circle arcs],&amp;nbsp;two-arc-segment closed ones with &lt;EM&gt;unequal&lt;/EM&gt;&amp;nbsp; arc segments [whether or not they look like a circle as Donuts do], one-&lt;EM&gt;arc&lt;/EM&gt;-segment-and-one-&lt;EM&gt;line&lt;/EM&gt;-segment&amp;nbsp;closed ones [such as a capital-D shape], and single-arc-segment &lt;EM&gt;open&lt;/EM&gt;&amp;nbsp; ones.&lt;/P&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Sure I see that. The code is offered merely as a start point for someone to&amp;nbsp;expand&amp;nbsp;on and not a complete solution. Thanks for the input though!&lt;/P&gt;</description>
      <pubDate>Mon, 06 Aug 2018 22:31:52 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/m-p/8181075#M107640</guid>
      <dc:creator>ronjonp</dc:creator>
      <dc:date>2018-08-06T22:31:52Z</dc:date>
    </item>
    <item>
      <title>Re: Offset multiple objects at once</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/m-p/8181092#M107641</link>
      <description>You should discard the concept of outboard vs. inboard altogether. It's&lt;BR /&gt;actually a matter of left vs. right. Arcs and circles and ellipses are&lt;BR /&gt;always drawn in the direction of AutoCAD angular increase... CCW, so for&lt;BR /&gt;them, to the left is always inside and to the right is always outside. But&lt;BR /&gt;polylines are bisexual... they can go either way, thus the need for one of&lt;BR /&gt;the myriad direction determinators that flood the ether. But, other than&lt;BR /&gt;reversing, the only ones I found displayed direction arrows, that a program&lt;BR /&gt;can't see.</description>
      <pubDate>Mon, 06 Aug 2018 22:50:43 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/m-p/8181092#M107641</guid>
      <dc:creator>john.uhden</dc:creator>
      <dc:date>2018-08-06T22:50:43Z</dc:date>
    </item>
    <item>
      <title>Re: Offset multiple objects at once</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/m-p/8431111#M107642</link>
      <description>&lt;P&gt;I use the above offout and offin lisp about 200 times per day to offset multiple objects simultaneously.&amp;nbsp; I always need to erase the originals and have been trying to add the delete option but cannot figure out where the subroutine should go or the correct syntax.&amp;nbsp; Any help would be appreciated.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 28 Nov 2018 19:07:04 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/m-p/8431111#M107642</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2018-11-28T19:07:04Z</dc:date>
    </item>
    <item>
      <title>Re: Offset multiple objects at once</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/m-p/8431148#M107643</link>
      <description>&lt;P&gt;Add the green highlighted line:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 557px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/574743i036E89012811A61D/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 28 Nov 2018 19:19:53 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/m-p/8431148#M107643</guid>
      <dc:creator>ronjonp</dc:creator>
      <dc:date>2018-11-28T19:19:53Z</dc:date>
    </item>
    <item>
      <title>Re: Offset multiple objects at once</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/m-p/8431186#M107644</link>
      <description>&lt;P&gt;Wow! I was WAY over complicating it.&amp;nbsp; You are amazing and I will be raking through this lsp to see how it works and learn all I can.&lt;/P&gt;</description>
      <pubDate>Wed, 28 Nov 2018 19:28:53 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/m-p/8431186#M107644</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2018-11-28T19:28:53Z</dc:date>
    </item>
    <item>
      <title>Re: Offset multiple objects at once</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/m-p/8431311#M107645</link>
      <description>&lt;P&gt;Glad to help! You could also try this version .. will keep settings between sessions and consolidates the two commands into one.&lt;/P&gt;
&lt;PRE&gt;(defun c:offf (/ _off a b d i o p s x)
  ;; RJP » 2018-11-28
  (defun _off (o d / r)
    (cond ((= 'list (type (setq r (vl-catch-all-apply 'vlax-invoke (list o 'offset d))))) (car r)))
  )
  (or (setq p (getenv "RJP_Offset_Side")) (setq p "Inside"))
  (or (setq i (getenv "RJP_Offset_Dist")) (setq i "1"))
  (or (setq b (getenv "RJP_Offset_Delete")) (setq b "No"))
  (cond
    ((and (progn (initget "Outside Inside")
		 (setq p (cond ((getkword (strcat "\nOffset [Outside/Inside] &amp;lt;" p "&amp;gt;: ")))
			       (p)
			 )
		 )
	  )
	  (setq	i (cond	((getdist (strcat "\nEnter Offset Distance: &amp;lt;" i "&amp;gt;: ")))
			((atof i))
		  )
	  )
	  (progn (initget "Yes No")
		 (setq b (cond ((getkword (strcat "\nDelete original? [Yes/No] &amp;lt;" b "&amp;gt;: ")))
			       (b)
			 )
		 )
	  )
	  (setq s (ssget ":L" '((0 . "*POLYLINE,ARC,CIRCLE,ELLIPSE,SPLINE"))))
     )
     (setenv "RJP_Offset_Dist" (vl-princ-to-string i))
     (setenv "RJP_Offset_Side" p)
     (setenv "RJP_Offset_Delete" b)
     (foreach e	(vl-remove-if 'listp (mapcar 'cadr (ssnamex s)))
       (setq o (vlax-ename-&amp;gt;vla-object e))
       (cond
	 ((= 2
	     (length (setq
		       a (vl-remove
			   'nil
			   (mapcar '(lambda (x)
				      (cond ((setq d (_off o (x i))) (list d x (vlax-curve-getarea d))))
				    )
				   (list + -)
			   )
			 )
		     )
	     )
	  )
	  (setq a (vl-sort a '(lambda (r j) (&amp;lt; (caddr r) (caddr j)))))
	  (and (= p "Outside") (setq a (reverse a)))
	  (vla-delete (car (last a)))
	  (and (= "Yes" b) (entdel e))
	 )
	 (t (vla-put-color o 1) (print "Something went wrong.."))
       )
     )
    )
  )
  (princ)
)
(vl-load-com)&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 28 Nov 2018 20:01:35 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/m-p/8431311#M107645</guid>
      <dc:creator>ronjonp</dc:creator>
      <dc:date>2018-11-28T20:01:35Z</dc:date>
    </item>
    <item>
      <title>Re: Offset multiple objects at once</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/m-p/8431321#M107646</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;@Anonymous&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;....&amp;nbsp; I always need to erase the originals ....&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/593837"&gt;@ronjonp&lt;/a&gt;'s suggestion in Message 17 should do it, &lt;FONT color="#ff0000"&gt;&lt;EM&gt;provided&lt;/EM&gt;&lt;/FONT&gt;&amp;nbsp; you never have the situation where something is too small to Offset inward by the specified distance!&amp;nbsp; In that case, the (entdel ent) in that position in the code would delete the original even with no Offset result replacing it.&amp;nbsp; If you would ever have that situation, and you want the original &lt;EM&gt;retained&lt;/EM&gt;, it would need to be handled differently, such as like this [very minimally tested]:&lt;/P&gt;
&lt;PRE&gt;....&lt;BR /&gt;              (if ; level4 is level3 then -- check comparative areas:
                ((if (= subpr "In") &amp;gt; &amp;lt;) (vla-get-Area (vlax-ename-&amp;gt;vla-object (entlast))) oarea)
                (progn ; level4 then -- went wrong way
                  (entdel (entlast))
                  (if ; level5 -- go the other way [if possible]
                    (vl-catch-all-error-p ; returns T for error if inward but too small
                      (vl-catch-all-apply 'vla-offset (list obj (- *OIOdist)))
                    ); -error-p
                    (setq nogo (1+ nogo)); then -- add to count of too-small&lt;FONT color="#00ccff"&gt;; [had no else]&lt;/FONT&gt;&lt;BR /&gt;                    &lt;FONT color="#0000ff"&gt;&lt;STRONG&gt;(entdel ent)&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT color="#00ccff"&gt;; else -- succeeded going other way, delete original&lt;/FONT&gt;
                  ); if level5
                ); progn
                &lt;FONT color="#0000ff"&gt;&lt;STRONG&gt;(entdel ent)&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT color="#00ccff"&gt;; else -- went right way first, delete original&lt;/FONT&gt;
              ); if level4 [went wrong way]
              (if (= subpr "Out")&lt;FONT color="#00ccff"&gt;; entire function was one line, now expanded&lt;/FONT&gt;
                ; level3 else -- too small for inward; go other way only if OffOut
                &lt;STRONG&gt;&lt;FONT color="#0000ff"&gt;(progn&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#00ccff"&gt;; then -- now two operations&lt;/FONT&gt;
                  (vla-offset obj (- *OIOdist))&lt;FONT color="#00ccff"&gt;; will always succeed&lt;/FONT&gt;
                  &lt;FONT color="#0000ff"&gt;&lt;STRONG&gt;(entdel ent)&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT color="#00ccff"&gt;; delete original
&lt;/FONT&gt;                &lt;FONT color="#0000ff"&gt;&lt;STRONG&gt;)&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT color="#00ccff"&gt;; progn&lt;/FONT&gt;
                (setq nogo (1+ nogo))&lt;FONT color="#00ccff"&gt;; else, and &lt;EM&gt;don't&lt;/EM&gt; delete original&lt;/FONT&gt;
                  ; if OffIn, add to count of too-small
              ); if&lt;BR /&gt;....
&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 28 Nov 2018 20:06:43 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/offset-multiple-objects-at-once/m-p/8431321#M107646</guid>
      <dc:creator>Kent1Cooper</dc:creator>
      <dc:date>2018-11-28T20:06:43Z</dc:date>
    </item>
  </channel>
</rss>

