<?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: AutoLISP to offset closed polyline, hatch, and delete the second polyline [C3D] in Visual LISP, AutoLISP and General Customization Forum</title>
    <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-to-offset-closed-polyline-hatch-and-delete-the-second/m-p/10184927#M91618</link>
    <description>&lt;P&gt;Just maybe a different way use bpoly then its pick 1 point, the only question is that its a object with no holes. The new bpoly save ename then offset using previous pt using 1st vertice of bpoly and 1st vertice of offset go 1/2 way between then hatch. Then it does not matter if 1 or more plines make up the outer boundary eg two buildings touching. Kaden you can add correct layer etc.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I do understand may be objects inside the building so use Layiso if required.&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;&lt;LI-CODE lang="markup"&gt;(defun c:test ( / oldsnap ent1 ent2 co-ord pt1 pt2 pt3)

(setq oldsnap (getvar 'osmode))
(setvar 'osmode 0)

(setq pt1 (getpoint "\Pick inside point "))

(command "bpoly" pt1 "")
(setq ent1 (entlast))
(setq co-ord (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget ent1))))
(setq pt2 (nth 0 co-ord))

(command "offset" 5 ent1 pt1 "")
(setq ent2 (entlast))
(setq co-ord (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget ent2))))
(setq pt3 (nth 0 co-ord))

(setq pt3 (mapcar '* (mapcar '+ pt2 pt3 ) '(0.5 0.5)))

(command "-hatch" "P" "Ansi32" 5.0 0.0 pt3 "")

(command "erase" ent1 ent2 "")

(setvar 'osmode oldsnap)

(princ)
)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 25 Mar 2021 02:52:23 GMT</pubDate>
    <dc:creator>Sea-Haven</dc:creator>
    <dc:date>2021-03-25T02:52:23Z</dc:date>
    <item>
      <title>AutoLISP to offset closed polyline, hatch, and delete the second polyline [C3D]</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-to-offset-closed-polyline-hatch-and-delete-the-second/m-p/8644297#M91601</link>
      <description>&lt;P&gt;Hi. In our firm, we often created partial hatches within buildings (represented by closed polylines). The process is as follows:&lt;BR /&gt;1. We select a closed polyline that was previously drawn and that represents the outline of a building.&lt;/P&gt;
&lt;P&gt;2. We offset the polyline 2 units inside, creating a scaled version of the original polyline within the first.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;3. We hatch the area within the two polylines with a specific hatch pattern, scale, layer and color.&lt;/P&gt;
&lt;P&gt;4. We delete the smaller, inside polyline, leaving the original building outline and the new hatch within.&lt;/P&gt;
&lt;P&gt;I'm looking to automate this process in some way. I had some marginal success with the Action Recorder, but it wasn't consistent if the building outline was angled, and I had to always use the rightmost edge of the building. I'm sure AutoLISP can automate this sequence, but I'm a complete beginner.&lt;/P&gt;
&lt;P&gt;Can anybody spoonfeed me a script that does what I'm looking for? Thanks a whole ton.&lt;/P&gt;</description>
      <pubDate>Thu, 07 Mar 2019 23:11:08 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-to-offset-closed-polyline-hatch-and-delete-the-second/m-p/8644297#M91601</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2019-03-07T23:11:08Z</dc:date>
    </item>
    <item>
      <title>Re: AutoLISP to offset closed polyline, hatch, and delete the second polyline [C</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-to-offset-closed-polyline-hatch-and-delete-the-second/m-p/8645576#M91602</link>
      <description>&lt;P&gt;Here's the structure I'm imagined using:&lt;/P&gt;
&lt;P&gt;User begins command,&lt;/P&gt;
&lt;P&gt;User is prompted to select the object to inset,&lt;/P&gt;
&lt;P&gt;User selects the object to inset,&lt;/P&gt;
&lt;P&gt;The selected object is offset a fixed distance within its borders,&lt;/P&gt;
&lt;P&gt;A hatch is drawn between the inner and outer objects with a specific layer, hatch scale and color,&lt;/P&gt;
&lt;P&gt;The inner object is deleted.&lt;/P&gt;
&lt;P&gt;I attempted to make an action recorder macro to complete this process, which I'll attach to this reply. The main issues with it are that you always have to select the rightmost edge of the polyline, as it the offset side is fixed within the macro to be to the left. Also, depending on the angle of the polyline segment you select, and the amount you're zoomed in our out, it will sometimes not delete the inner polyline, but instead delete the hatch. This is because it's able to make the inner polyline and hatch between the two, but the only way I can delete with macros is to move a fixed distance, select and delete. If the line is angled, this fixed distance will make the macro select the hatch instead of the inner line. I've wracked my brain trying to think of a way to prevent this in the macro, but I think it's a limitation with using the Action Recorder.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 08 Mar 2019 14:21:14 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-to-offset-closed-polyline-hatch-and-delete-the-second/m-p/8645576#M91602</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2019-03-08T14:21:14Z</dc:date>
    </item>
    <item>
      <title>Re: AutoLISP to offset closed polyline, hatch, and delete the second polyline [C</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-to-offset-closed-polyline-hatch-and-delete-the-second/m-p/8646079#M91603</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;@Anonymous&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;A hatch is drawn between the inner and outer objects with a specific layer, hatch scale and color,&lt;/P&gt;
&lt;P&gt;The inner object is deleted.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;We cannot make a hatch without knowing the hatch layer, pattern scale and color. Care to enlighten us?&lt;/P&gt;</description>
      <pubDate>Fri, 08 Mar 2019 16:46:28 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-to-offset-closed-polyline-hatch-and-delete-the-second/m-p/8646079#M91603</guid>
      <dc:creator>dlanorh</dc:creator>
      <dc:date>2019-03-08T16:46:28Z</dc:date>
    </item>
    <item>
      <title>Re: AutoLISP to offset closed polyline, hatch, and delete the second polyline [C</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-to-offset-closed-polyline-hatch-and-delete-the-second/m-p/8646127#M91604</link>
      <description>&lt;P&gt;That's what draftspeople are for.&lt;/P&gt;</description>
      <pubDate>Fri, 08 Mar 2019 17:06:49 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-to-offset-closed-polyline-hatch-and-delete-the-second/m-p/8646127#M91604</guid>
      <dc:creator>john.uhden</dc:creator>
      <dc:date>2019-03-08T17:06:49Z</dc:date>
    </item>
    <item>
      <title>Re: AutoLISP to offset closed polyline, hatch, and delete the second polyline [C</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-to-offset-closed-polyline-hatch-and-delete-the-second/m-p/8646169#M91605</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/5644077"&gt;@dlanorh&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;@Anonymous&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;A hatch is drawn between the inner and outer objects with a specific layer, hatch scale and color,&lt;/P&gt;
&lt;P&gt;The inner object is deleted.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;We cannot make a hatch without knowing the hatch layer, pattern scale and color. Care to enlighten us?&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Are you being snarky, or are you interested in the specifics of the program? Let's say the layer would be inner_wall, the pattern would be solid fill, the scale would be 1.0 and the color would be 250,250,250.&lt;/P&gt;</description>
      <pubDate>Fri, 08 Mar 2019 17:24:15 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-to-offset-closed-polyline-hatch-and-delete-the-second/m-p/8646169#M91605</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2019-03-08T17:24:15Z</dc:date>
    </item>
    <item>
      <title>Re: AutoLISP to offset closed polyline, hatch, and delete the second polyline [C</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-to-offset-closed-polyline-hatch-and-delete-the-second/m-p/8646612#M91606</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;@Anonymous&amp;nbsp;wrote:&lt;BR /&gt;.... Let's say the layer would be inner_wall, the pattern would be solid fill, the scale would be 1.0 and the color would be 250,250,250.&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If it's the SOLID pattern, the hatch scale is irrelevant.&amp;nbsp; I'm assuming the color is part of the Layer, and that the Layer already exists in the drawing [those can be accounted for if necessary].&amp;nbsp; Give this a try [minimally tested]:&lt;/P&gt;
&lt;PRE&gt;(defun C:OI2H ; = Offset Inward by 2 drawing units, and Hatch
  (/ *error* doc);;;;; ss ent obj oarea pl2)
(setq ss nil ent nil obj nil oarea nil)
  (defun *error* (errmsg)
    (if (not (wcmatch errmsg "Function cancelled,quit / exit abort,console break"))
      (princ (strcat "\nError: " errmsg))
    ); if
    (vla-endundomark doc)
    (princ)
  ); defun - *error*
  (vla-startundomark (setq doc (vla-get-activedocument (vlax-get-acad-object))))
  (prompt "\nBuilding outline to Offset Inward and Hatch: ")
  (if (setq ss (ssget "_:S+." '((0 . "LWPOLYLINE") (-4 . "&amp;amp;") (70 . 1)))); one, closed only
    (progn ; then
      (setq
        obj (vlax-ename-&amp;gt;vla-object (setq ent (ssname ss 0)))
        oarea (vla-get-Area obj)
      ); setq
      (vla-offset obj 2)
      (if (&amp;gt; (vla-get-Area (vlax-ename-&amp;gt;vla-object (entlast))) oarea)
        (progn ; then -- went wrong way
          (entdel (entlast))
          (vla-offset obj -2)
        ); progn
      ); if [went wrong way -- no else; do nothing if it went right way]
      (command
        "_.hatch" "SOLID" ent (setq pl2 (entlast)) "" ""
        "_.chprop" "_last" "" "_layer" "&lt;STRONG&gt;&lt;EM&gt;&lt;FONT color="#ff00ff"&gt;YourLayerName&lt;/FONT&gt;&lt;/EM&gt;&lt;/STRONG&gt;" ""
        "_.erase" pl2 ""
      )
    ); progn -- then
  ); if
  (vla-endundomark doc)
  (princ)
); defun -- C:OI2H
(vl-load-com)
(prompt "\nType OI2H to Offset Inward by 2 drawing units and Hatch.")&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I also assume that no building outline will be so small that Offsetting 2 units inward will fail.&amp;nbsp; If one is of a kind of shape that results in &lt;EM&gt;two or more &amp;nbsp;&lt;/EM&gt;new Polylines inside, you won't get the results you want, but if that's possible, that can also be accounted for.&lt;/P&gt;</description>
      <pubDate>Fri, 08 Mar 2019 20:47:15 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-to-offset-closed-polyline-hatch-and-delete-the-second/m-p/8646612#M91606</guid>
      <dc:creator>Kent1Cooper</dc:creator>
      <dc:date>2019-03-08T20:47:15Z</dc:date>
    </item>
    <item>
      <title>Re: AutoLISP to offset closed polyline, hatch, and delete the second polyline [C</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-to-offset-closed-polyline-hatch-and-delete-the-second/m-p/8646816#M91607</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;@Anonymous&amp;nbsp;wrote:&lt;BR /&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Are you being snarky, or are you interested in the specifics of the program? Let's say the layer would be inner_wall, the pattern would be solid fill, the scale would be 1.0 and the color would be 250,250,250.&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;I was actually interested in helping but was unable without certain parameters. Here is my effort for what it's worth.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;(vl-load-com)
(defun gc:clockwise-p (p1 p2 p3) (&amp;lt; (sin (- (angle p1 p3) (angle p1 p2))) -1e-14));end_defun

(defun c:ofin ( / *error* sv_lst sv_vals c_doc ms h_patt h_scale h_lyr ss obj cw o_dist of_obj h_obj o_poly i_poly t_col)
  
  (defun *error* ( msg )
		(mapcar 'setvar sv_lst sv_vals)
    (if (and c_doc (= 8 (logand 8 (getvar 'UNDOCTL)))) (vla-endundomark c_doc))
		(if (not (wcmatch (strcase msg) "*BREAK*,*CANCEL*,*EXIT*")) (princ (strcat "\nOops an Error : " msg " occurred.")))
		(princ)
	);end_*error*_defun
    
  (setq sv_lst (list 'cmdecho 'osmode)
				sv_vals (mapcar 'getvar sv_lst)
        c_doc (vla-get-activedocument (vlax-get-acad-object))
        ms (vla-get-modelspace c_doc)
  );end_setq

  &lt;FONT color="#FF0000"&gt;;; Alterable Parameters&lt;/FONT&gt;
  (setq h_patt "solid"                &lt;FONT color="#FF0000"&gt;;change the hatch patteren here&lt;/FONT&gt;   
        h_scale 0.1                   &lt;FONT color="#FF0000"&gt;;change the hatch scale here&lt;/FONT&gt;
        o_dist 2.0                    &lt;FONT color="#FF0000"&gt;;change the offset distance here (must be a positive real number)&lt;/FONT&gt;
        h_lyr "inner_wall"            &lt;FONT color="#FF0000"&gt;;change hatch layer here&lt;/FONT&gt;
  );end_setq
  
  (mapcar 'setvar sv_lst '(0 0))

  (prompt "\nSelect Closed Building Polyline : ")
  (setq ss (ssget "_+.:E:S:L" '((0 . "LWPOLYLINE") (-4 . "&amp;amp;") (70 . 1)))
        obj (vlax-ename-&amp;gt;vla-object (ssname ss 0))
        cw (gc:clockwise-p (vlax-curve-getstartpoint obj) (vlax-curve-getpointatparam obj 1.0) (vlax-curve-getpointatparam obj 2.0))
  );end_setq
  
  (if (and c_doc (= 8 (logand 8 (getvar 'UNDOCTL)))) (vla-endundomark c_doc))
  (vla-startundomark c_doc)

  (if cw (setq o_dist (* o_dist -1.0)))
  (setq of_obj (car (vlax-invoke obj 'offset o_dist)))
  
  (setq h_obj (vla-addhatch ms acHatchPatternTypePredefined h_patt :vlax-false)
        o_poly (vlax-make-safearray vlax-vbObject '(0 . 0))
        i_poly (vlax-make-safearray vlax-vbObject '(0 . 0))
  );end_setq
  
  (vlax-safearray-put-element o_poly 0 obj)
  (vlax-safearray-put-element i_poly 0 of_obj)
  (vla-appendouterloop h_obj o_poly)
  (vla-appendinnerloop h_obj i_poly)
  (vla-evaluate h_obj)
  
  (vlax-put-property h_obj 'layer h_lyr)
  (setq t_col (vlax-create-object (strcat "autocad.accmcolor."(substr (getvar 'acadver) 1 2))))
  (vla-SetRGB t_col 250 250 250) &lt;FONT color="#FF0000"&gt;;change color RGB here (must be in R G B format)&lt;/FONT&gt;
  (vla-put-truecolor h_obj t_col)
  (vlax-release-object t_col)
  (vlax-put-property h_obj 'patternscale h_scale)
  (vla-delete of_obj)
  (vla-regen c_doc :vlax-true)
  
  (if (and c_doc (= 8 (logand 8 (getvar 'UNDOCTL)))) (vla-endundomark c_doc))
  (mapcar 'setvar sv_lst sv_vals)      
);end_defun

&lt;/PRE&gt;
&lt;P&gt;The lisp is pretty similar to Kent's above, with most of the same caveats; but I have explicitly changed the colour of the hatch. This is removeable if the RGB color is the same as the layers. The red commented lines are where you can change the hatch parameters if required. The hatch pattern name however must be that of a pattern contained within the acad.pat file. I have also indicated where you can change the RGB colour if required.&lt;/P&gt;</description>
      <pubDate>Fri, 08 Mar 2019 22:45:38 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-to-offset-closed-polyline-hatch-and-delete-the-second/m-p/8646816#M91607</guid>
      <dc:creator>dlanorh</dc:creator>
      <dc:date>2019-03-08T22:45:38Z</dc:date>
    </item>
    <item>
      <title>Re: AutoLISP to offset closed polyline, hatch, and delete the second polyline [C</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-to-offset-closed-polyline-hatch-and-delete-the-second/m-p/8648295#M91608</link>
      <description>&lt;P&gt;If you tested whether the polyline were clockwise or counterclockwise you wouldn't have to use trial and error.&lt;/P&gt;</description>
      <pubDate>Sun, 10 Mar 2019 17:12:03 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-to-offset-closed-polyline-hatch-and-delete-the-second/m-p/8648295#M91608</guid>
      <dc:creator>john.uhden</dc:creator>
      <dc:date>2019-03-10T17:12:03Z</dc:date>
    </item>
    <item>
      <title>Re: AutoLISP to offset closed polyline, hatch, and delete the second polyline [C</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-to-offset-closed-polyline-hatch-and-delete-the-second/m-p/8651019#M91609</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;P class="1552336331775"&gt;....&lt;/P&gt;
&lt;PRE&gt;(defun C:OI2H ; = Offset Inward by 2 drawing units, and Hatch
  (/ *error* doc);;;;; ss ent obj oarea pl2)
(setq ss nil ent nil obj nil oarea nil)
....&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Oops -- I left the part about localized variables in testing mode [don't localize, so they can be checked after running, but wipe them out at the beginning of each run].&amp;nbsp; Replace the top 3 lines with this:&lt;/P&gt;
&lt;PRE&gt;(defun C:OI2H ; = Offset Inward by 2 drawing units, and Hatch
  (/ *error* doc ss ent obj oarea pl2)&lt;/PRE&gt;
&lt;P&gt;Yes, &lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/3930636"&gt;@john.uhden&lt;/a&gt;, it could check for CW/CCW direction, but I imagine [without choosing one of the assorted ways of doing that]&amp;nbsp;that it would be [in code required]&amp;nbsp;as much work as, or possibly more than, the compare-the-resulting-area approach.&amp;nbsp; Admittedly, though, it could make a noticeable difference in the time it takes if the routine were&amp;nbsp;altered to do &lt;EM&gt;a&amp;nbsp;large quantity&amp;nbsp;of them at once&lt;/EM&gt;, instead of just one at a time.&amp;nbsp;&amp;nbsp;If that's a possibile need, it may be worth revising.&lt;/P&gt;</description>
      <pubDate>Mon, 11 Mar 2019 20:32:47 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-to-offset-closed-polyline-hatch-and-delete-the-second/m-p/8651019#M91609</guid>
      <dc:creator>Kent1Cooper</dc:creator>
      <dc:date>2019-03-11T20:32:47Z</dc:date>
    </item>
    <item>
      <title>Re: AutoLISP to offset closed polyline, hatch, and delete the second polyline [C</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-to-offset-closed-polyline-hatch-and-delete-the-second/m-p/8651052#M91610</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;@Anonymous&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;&lt;FONT size="2"&gt;....&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;1. We select a closed polyline that was previously drawn and that represents the outline of a building.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="2"&gt;2. We offset the polyline 2 units inside, creating a scaled version of the original polyline within the first.&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="2"&gt;3. We hatch the area within the two polylines with a specific hatch pattern, scale, layer and color.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="2"&gt;4. We delete the smaller, inside polyline.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="2"&gt;....&lt;/FONT&gt;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Another approach occurs to me, again if you're talking about SOLID for the Hatch pattern.&amp;nbsp; How about Offsetting the outline inward by &lt;FONT color="#000000"&gt;&lt;STRONG&gt;&lt;EM&gt;1&lt;/EM&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&amp;nbsp; unit to be the mid-line of that thick perimeter, and then &lt;FONT color="#000000"&gt;&lt;EM&gt;giving it a global Polyline width of 2 units?&lt;/EM&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp; It would take considerably less memory than a Hatch pattern, and&amp;nbsp;the need to delete a temporary object&amp;nbsp;afterward would be eliminated.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#ff6600"&gt;&lt;STRONG&gt;EDIT:&lt;/STRONG&gt;&lt;/FONT&gt;&amp;nbsp; Like this:&lt;/P&gt;
&lt;PRE&gt;(defun C:OI2 ; = Offset Inward for 2-unit-wide perimeter
  (/ *error* doc ss ent obj oarea)
  (defun *error* (errmsg)
    (if (not (wcmatch errmsg "Function cancelled,quit / exit abort,console break"))
      (princ (strcat "\nError: " errmsg))
    ); if
    (vla-endundomark doc)
    (princ)
  ); defun - *error*
  (vla-startundomark (setq doc (vla-get-activedocument (vlax-get-acad-object))))
  (prompt "\nBuilding outline to Offset Inward: ")
  (if (setq ss (ssget "_:S+." '((0 . "LWPOLYLINE") (-4 . "&amp;amp;") (70 . 1)))); one, closed only
    (progn ; then
      (setq
        obj (vlax-ename-&amp;gt;vla-object (setq ent (ssname ss 0)))
        oarea (vla-get-Area obj)
      ); setq
      (vla-offset obj 1)
      (if (&amp;gt; (vla-get-Area (vlax-ename-&amp;gt;vla-object (entlast))) oarea)
        (progn ; then -- went wrong way
          (entdel (entlast))
          (vla-offset obj -1)
        ); progn
      ); if [went wrong way -- no else; do nothing if it went right way]
      (setq edata (entget (entlast)))
      (entmod (subst '(43 . 2.0) (assoc 43 edata) edata))
      (command "_.chprop" "_last" "" "_layer" "YourLayerName" "")
    ); progn -- then
  ); if
  (vla-endundomark doc)
  (princ)
); defun -- C:OI2
(vl-load-com)
(prompt "\nType OI2 to Offset Inward to 2-drawing-unit-wide perimeter.")&lt;/PRE&gt;</description>
      <pubDate>Mon, 11 Mar 2019 21:02:58 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-to-offset-closed-polyline-hatch-and-delete-the-second/m-p/8651052#M91610</guid>
      <dc:creator>Kent1Cooper</dc:creator>
      <dc:date>2019-03-11T21:02:58Z</dc:date>
    </item>
    <item>
      <title>Re: AutoLISP to offset closed polyline, hatch, and delete the second polyline [C</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-to-offset-closed-polyline-hatch-and-delete-the-second/m-p/8651173#M91611</link>
      <description>No need to choose.  I'll give it to you (if you want).</description>
      <pubDate>Mon, 11 Mar 2019 21:45:44 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-to-offset-closed-polyline-hatch-and-delete-the-second/m-p/8651173#M91611</guid>
      <dc:creator>john.uhden</dc:creator>
      <dc:date>2019-03-11T21:45:44Z</dc:date>
    </item>
    <item>
      <title>Re: AutoLISP to offset closed polyline, hatch, and delete the second polyline [C</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-to-offset-closed-polyline-hatch-and-delete-the-second/m-p/8651178#M91612</link>
      <description>I think the "civil" drafting standard is to use a cross hatch like ANSI131.&lt;BR /&gt;I remember using two triangles to draw each line by hand.  A roloruler was&lt;BR /&gt;okay for pencil work, but not for ink.</description>
      <pubDate>Mon, 11 Mar 2019 21:48:44 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-to-offset-closed-polyline-hatch-and-delete-the-second/m-p/8651178#M91612</guid>
      <dc:creator>john.uhden</dc:creator>
      <dc:date>2019-03-11T21:48:44Z</dc:date>
    </item>
    <item>
      <title>Re: AutoLISP to offset closed polyline, hatch, and delete the second polyline [C</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-to-offset-closed-polyline-hatch-and-delete-the-second/m-p/10183791#M91613</link>
      <description>&lt;P&gt;I know that I'm responding to a 2 year old post but is there a way to get this to work when tracing the boundary of a building using a polyline rather than say using a rectangle? It doesn't seem to work for me on 2d polylines even though i've closed it back to the starting point. Or is there a way to code that the polyline selected will change the closed option to 'yes' rather than 'no'?&lt;/P&gt;</description>
      <pubDate>Wed, 24 Mar 2021 18:53:50 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-to-offset-closed-polyline-hatch-and-delete-the-second/m-p/10183791#M91613</guid>
      <dc:creator>kaden.bedwell</dc:creator>
      <dc:date>2021-03-24T18:53:50Z</dc:date>
    </item>
    <item>
      <title>Re: AutoLISP to offset closed polyline, hatch, and delete the second polyline [C</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-to-offset-closed-polyline-hatch-and-delete-the-second/m-p/10183854#M91614</link>
      <description>&lt;P&gt;I remember arguing with&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/69526"&gt;@Kent1Cooper&lt;/a&gt;&amp;nbsp; about inside vs. outside, the result of which is to pick the side.&lt;/P&gt;
&lt;P&gt;Anyway, I got so tired of doing the same thing myself that I wrote the following.&lt;/P&gt;
&lt;P&gt;Only thing wrong is that it doesn't set the hatch pattern scale, or angle ahead of time, but we can work on that.&lt;/P&gt;
&lt;LI-CODE lang="general"&gt;(defun C:HatchBldg ( / *error* Doc vars vals ans od e ent etyp Obj1 p Obj2 start end coords)
  ;; OffsetWithEnds by John Uhden, (06-04-18)
  ;; v1.1 (11-02-2020) revised for polylines only for LDC to speed up
  ;; creating existing building hatching.

  (gc)
  (vl-load-com)
  (princ "\nOffsetWithEnds v1.1 (c)2018-20, John F. Uhden")(princ)
  (or *acad* (setq *acad* (vlax-get-acad-object)))
  (setq Doc     (vla-get-ActiveDocument *acad*))
  (setq vars '("cmdecho"))
  (setq vals (mapcar 'getvar vars))
  (defun *error* (Error)
    (mapcar 'setvar vars vals)
    (if e (redraw e 4))
    (vla-endundomark Doc)
    (cond
      ((not Error))
      ((wcmatch (strcase Error) "*QUIT*,*CANCEL*")
        ;(vl-exit-with-error "\r                                              ")
      )
      (1
        (princ (strcat "\n*ERROR*: " Error))
        ;(vl-exit-with-error (strcat "\r*ERROR*: " Error))
      )
    )
    (princ)
  )
  (vla-endundomark Doc)
  (vla-startundomark Doc)
  (mapcar 'setvar vars '(0))
  (command "_.EXPERT" (getvar "EXPERT"))
  (defun @2d (p)(list (car p)(cadr p)))
  (and
    (setq od (getvar "offsetdist"))
    (not (initget 4))
    (if (setq ans (getdist (strcat "\nOffset distance &amp;lt;" (rtos od) "&amp;gt;: ")))
      (setvar "offsetdist" (setq od ans))
      1
    )
    (or (entmake) 1)
    (setvar "errno" 0)
    (while (/= (getvar "errno") 52)
      (if e (redraw e 4))
      (and
        (setq e (car (entsel "Select object to offset: ")))
        (setq Obj1 (vlax-ename-&amp;gt;vla-object e))
        (setq ent (entget e))
        (setq etyp (cdr (assoc 0 ent)))
        (or
          (= etyp "LWPOLYLINE")
          (prompt (strcat "\nObject selected is a(n) " etyp "."))
        )
        (setq closed (vlax-get obj1 'closed))
        (or (redraw e 3) 1)
        (setq p (getpoint "\nSide to offset: "))
        (vl-cmdf "_.offset" od e p "")
        (setq obj2 (vlax-ename-&amp;gt;vla-object (entlast)))
        (if (= closed 0)
          (progn
            (setq start (@2d (vlax-curve-getstartpoint Obj1)))
            (setq end (@2d (vlax-curve-getendpoint Obj1)))
            (setq coords (vlax-get Obj2 'Coordinates))
            (vlax-put Obj2 'Coordinates (append start coords end))
            1
          )
          1
        )
        (vl-cmdf "_.-hatch" "_S" (ssadd (vlax-vla-object-&amp;gt;ename Obj1) (ssadd (vlax-vla-object-&amp;gt;ename Obj2))) "" "")
        (vla-delete Obj2)
      )
    )
  )
  (*error* nil)
)
(defun c:HB ()(c:HatchBldg))
&lt;/LI-CODE&gt;</description>
      <pubDate>Wed, 24 Mar 2021 19:02:58 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-to-offset-closed-polyline-hatch-and-delete-the-second/m-p/10183854#M91614</guid>
      <dc:creator>john.uhden</dc:creator>
      <dc:date>2021-03-24T19:02:58Z</dc:date>
    </item>
    <item>
      <title>Re: AutoLISP to offset closed polyline, hatch, and delete the second polyline [C</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-to-offset-closed-polyline-hatch-and-delete-the-second/m-p/10183961#M91615</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/3930636"&gt;@john.uhden&lt;/a&gt;It works perfect for me (as shown below) until it asks to select another object and then no matter what i do, it decides to hatch the entire inside area rather than just my entered offset.&amp;nbsp; Ideally having the option to preset the hatch and layer/color is what i'd like as it would take out a few more steps when needing to do this on numerous houses up and down a street. I currently use ANSI32 at a scale of 5. I do like how it deletes the 2nd line though!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="HATCHBLDG.png" style="width: 420px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/897860i71D7515D2AAAB606/image-dimensions/420x278?v=v2" width="420" height="278" role="button" title="HATCHBLDG.png" alt="HATCHBLDG.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 24 Mar 2021 19:35:49 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-to-offset-closed-polyline-hatch-and-delete-the-second/m-p/10183961#M91615</guid>
      <dc:creator>kaden.bedwell</dc:creator>
      <dc:date>2021-03-24T19:35:49Z</dc:date>
    </item>
    <item>
      <title>Re: AutoLISP to offset closed polyline, hatch, and delete the second polyline [C</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-to-offset-closed-polyline-hatch-and-delete-the-second/m-p/10184094#M91616</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/7003711"&gt;@kaden.bedwell&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;... is there a way to get this to work when tracing the boundary of a building using a polyline rather than say using a rectangle? It doesn't seem to work for me on 2d polylines even though i've closed it back to the starting point. Or is there a way to code that the polyline selected will change the closed option to 'yes' rather than 'no'?&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;It works for me using any kind of shape, not just rectangles.&amp;nbsp; When you say you've "closed it back to the starting point," did you do it by just picking again at the starting point and ending the Polyline [&lt;EM&gt;not&lt;/EM&gt; truly "closed" as AutoCAD means the term], or did you use the &lt;EM&gt;Close option&lt;/EM&gt;&amp;nbsp;for the closing segment, to make it &lt;EM&gt;truly&lt;/EM&gt; closed?&amp;nbsp; If you only drew it back to the same spot, I would discourage just changing the Closed thing in Properties from 'no' to 'yes', because it will result in a &lt;EM&gt;zero-length closing segment&lt;/EM&gt; between two &lt;EM&gt;coincident vertices&lt;/EM&gt;, which can cause various kinds of problems with various AutoLisp routines, though it doesn't seem to be trouble for this one.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Other possibilities:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;See the end of Message 6 -- could your shape be such that &lt;EM&gt;more than one&lt;/EM&gt; new Polyline results from Offsetting?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Is it a &lt;EM&gt;"lightweight"&lt;/EM&gt; Polyline?&amp;nbsp; That is, was it drawn with the PLINETYPE System Variable set to 1 or 2, not 0?&amp;nbsp; When you pick it, does the Properties palette say it's a "Polyline" [that's the "lightweight" kind that the routine was written for] or a "2D Polyline" [the "heavy" kind that it wasn't written for]?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And finally:&amp;nbsp; What does "it doesn't seem to work" &lt;EM&gt;mean&lt;/EM&gt;?&amp;nbsp; What happens that you don't expect, or what doesn't happen that you do?&amp;nbsp; Are there any messages?&amp;nbsp; If you change the Closed property yourself to 'yes' first, does it work?&lt;/P&gt;</description>
      <pubDate>Wed, 24 Mar 2021 20:14:22 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-to-offset-closed-polyline-hatch-and-delete-the-second/m-p/10184094#M91616</guid>
      <dc:creator>Kent1Cooper</dc:creator>
      <dc:date>2021-03-24T20:14:22Z</dc:date>
    </item>
    <item>
      <title>Re: AutoLISP to offset closed polyline, hatch, and delete the second polyline [C</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-to-offset-closed-polyline-hatch-and-delete-the-second/m-p/10184391#M91617</link>
      <description>Your response in the first paragraph is accurate in what I was doing wrong. When i just click on the starting point the routine wouldnt even begin. When i properly "close" it, the routine works fine.&lt;BR /&gt;&lt;BR /&gt;The system variable is 2 and yes if i changed the closed property myself, the routine would work fine.&lt;BR /&gt;&lt;BR /&gt;I just tried changing the hatch from solid to ANSI32 and it prompted me for scale and angle and then asked to select object which in turn would hatch the entire interior of the object selected. Is there any way to include a hatch other than solid in the lisp code that would automatically have all that inputted into it and put the layer on a specified layer? I havent had any issues with yours hatching to the outside at all in my testing as others have mentioned above, but i do like how others deletes the offset line at the end.&lt;BR /&gt;&lt;BR /&gt;I'm pretty new at diving into Autolisp and most of my changes dont pan out for me...</description>
      <pubDate>Wed, 24 Mar 2021 21:57:19 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-to-offset-closed-polyline-hatch-and-delete-the-second/m-p/10184391#M91617</guid>
      <dc:creator>kaden.bedwell</dc:creator>
      <dc:date>2021-03-24T21:57:19Z</dc:date>
    </item>
    <item>
      <title>Re: AutoLISP to offset closed polyline, hatch, and delete the second polyline [C3D]</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-to-offset-closed-polyline-hatch-and-delete-the-second/m-p/10184927#M91618</link>
      <description>&lt;P&gt;Just maybe a different way use bpoly then its pick 1 point, the only question is that its a object with no holes. The new bpoly save ename then offset using previous pt using 1st vertice of bpoly and 1st vertice of offset go 1/2 way between then hatch. Then it does not matter if 1 or more plines make up the outer boundary eg two buildings touching. Kaden you can add correct layer etc.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I do understand may be objects inside the building so use Layiso if required.&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;&lt;LI-CODE lang="markup"&gt;(defun c:test ( / oldsnap ent1 ent2 co-ord pt1 pt2 pt3)

(setq oldsnap (getvar 'osmode))
(setvar 'osmode 0)

(setq pt1 (getpoint "\Pick inside point "))

(command "bpoly" pt1 "")
(setq ent1 (entlast))
(setq co-ord (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget ent1))))
(setq pt2 (nth 0 co-ord))

(command "offset" 5 ent1 pt1 "")
(setq ent2 (entlast))
(setq co-ord (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget ent2))))
(setq pt3 (nth 0 co-ord))

(setq pt3 (mapcar '* (mapcar '+ pt2 pt3 ) '(0.5 0.5)))

(command "-hatch" "P" "Ansi32" 5.0 0.0 pt3 "")

(command "erase" ent1 ent2 "")

(setvar 'osmode oldsnap)

(princ)
)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 25 Mar 2021 02:52:23 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-to-offset-closed-polyline-hatch-and-delete-the-second/m-p/10184927#M91618</guid>
      <dc:creator>Sea-Haven</dc:creator>
      <dc:date>2021-03-25T02:52:23Z</dc:date>
    </item>
    <item>
      <title>Re: AutoLISP to offset closed polyline, hatch, and delete the second polyline [C</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-to-offset-closed-polyline-hatch-and-delete-the-second/m-p/10185795#M91619</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/7003711"&gt;@kaden.bedwell&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;....&lt;BR /&gt;I just tried changing the hatch from solid to ANSI32 and it prompted me for scale and angle and then asked to select object which in turn would hatch the entire interior of the object selected. Is there any way to include a hatch other than solid ... and put the layer on a specified layer? I havent had any issues with yours hatching to the outside at all in my testing as others have mentioned above, but i do like how others deletes the offset line at the end.&lt;BR /&gt;....&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;When the pattern is &lt;FONT color="#000000"&gt;SOLID&lt;/FONT&gt;, it doesn't ask for scale or rotation, so with any other pattern, answers to those prompts need to be added.&amp;nbsp; Doing the command manually [starting it with (command "_.hatch") so it will use the same variety as the routine will] reveals the sequence of prompts.&amp;nbsp; Try this:&lt;/P&gt;
&lt;LI-CODE lang="general"&gt;(defun C:OI2H ; = Offset Inward by 2 drawing units, and Hatch
  (/ *error* doc ss ent obj oarea pl2)
  (defun *error* (errmsg)
    (if (not (wcmatch errmsg "Function cancelled,quit / exit abort,console break"))
      (princ (strcat "\nError: " errmsg))
    ); if
    (vla-endundomark doc)
    (princ)
  ); defun - *error*
  (vla-startundomark (setq doc (vla-get-activedocument (vlax-get-acad-object))))
  (prompt "\nBuilding outline to Offset Inward and Hatch: ")
  (if (setq ss (ssget "_:S+." '((0 . "LWPOLYLINE") (-4 . "&amp;amp;") (70 . 1)))); one, closed only
    (progn ; then
      (setq
        obj (vlax-ename-&amp;gt;vla-object (setq ent (ssname ss 0)))
        oarea (vla-get-Area obj)
      ); setq
      (vla-offset obj 2)
      (if (&amp;gt; (vla-get-Area (vlax-ename-&amp;gt;vla-object (entlast))) oarea)
        (progn ; then -- went wrong way
          (entdel (entlast))
          (vla-offset obj -2)
        ); progn
      ); if [went wrong way -- no else; do nothing if it went right way]
      (command
        "_.hatch" "ANSI32" 5 0 ent (setq pl2 (entlast)) "" ""
        "_.chprop" "_last" "" "_layer" "YourLayerName" ""
        "_.erase" pl2 ""
      )
    ); progn -- then
  ); if
  (vla-endundomark doc)
  (princ)
); defun -- C:OI2H
(vl-load-com)&lt;/LI-CODE&gt;
&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;&lt;FONT color="#FF0000"&gt;Make sure you edit the "&lt;/FONT&gt;&lt;FONT color="#00CCFF"&gt;YourLayerName&lt;/FONT&gt;&lt;FONT color="#FF0000"&gt;" to an appropriate name.&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/EM&gt;&amp;nbsp; If you &lt;EM&gt;didn't&lt;/EM&gt; do that before, and [as one might expect] you don't have a Layer of that name, that would explain its not removing the inboard boundary -- you would have gotten a message about that.&amp;nbsp; But with a valid Layer name, it does remove it.&lt;/P&gt;</description>
      <pubDate>Thu, 25 Mar 2021 11:04:04 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-to-offset-closed-polyline-hatch-and-delete-the-second/m-p/10185795#M91619</guid>
      <dc:creator>Kent1Cooper</dc:creator>
      <dc:date>2021-03-25T11:04:04Z</dc:date>
    </item>
    <item>
      <title>Re: AutoLISP to offset closed polyline, hatch, and delete the second polyline [C</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-to-offset-closed-polyline-hatch-and-delete-the-second/m-p/10186413#M91620</link>
      <description>&lt;P&gt;I think the value of HPSEPARATE has to be 1.&amp;nbsp; That worked for me.&lt;/P&gt;
&lt;P&gt;As to the pattern, scale, and angle, what I do is use the properties dialog to adjust one of the hatches and then use matchprop on any others.&amp;nbsp; Another way is to make one right, then use my MakeCurrent routine to change the drawing settings to that object.&amp;nbsp; Oops, the version I have at home is older than the one I updated at work.&amp;nbsp; We'll have to wait until I go back in on Monday for me to post it.&amp;nbsp; It doesn't handle every property of every type of object, but I did update it to change most HP* variables.&lt;/P&gt;</description>
      <pubDate>Thu, 25 Mar 2021 14:18:27 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-to-offset-closed-polyline-hatch-and-delete-the-second/m-p/10186413#M91620</guid>
      <dc:creator>john.uhden</dc:creator>
      <dc:date>2021-03-25T14:18:27Z</dc:date>
    </item>
  </channel>
</rss>

