Trim and Delete outside of closed polyline

Here is a very helpful routine that I seemed to have forgotten about. It lets you select a closed polyline and it will trim and delete everything outside of it. Anything that crosses its edge will be trimmed on the outside, while everything that is outside of the selected closed Polyline will be erased.

Known limitation: Closed polyline has to consist of straight segments (no arcs)

  • Here’s how:
  • OCD to start
  • Select closed Polyline

~enjoy

Link to http://www.autocadtips.wordpress.com


; Required Express tools
; OutSide Contour Delete with Extrim
; Found at http://forums.augi.com/showthread.php?t=55056
(defun C:OCD (  / en ss lst ssall bbox)
(vl-load-com)
  (if (and (setq en (car(entsel "\nSelect contour (polyline): ")))
           (wcmatch (cdr(assoc 0 (entget en))) "*POLYLINE"))
    (progn
      (setq bbox (ACET-ENT-GEOMEXTENTS en))
      (setq bbox (mapcar '(lambda(x)(trans x 0 1)) bbox))
      (setq lst (ACET-GEOM-OBJECT-POINT-LIST en 1e-3))
      (ACET-SS-ZOOM-EXTENTS (ACET-LIST-TO-SS (list en)))
      (command "_.Zoom" "0.95x")
      (if (null etrim)(load "extrim.lsp"))
      (etrim en (polar
                  (car bbox)
                  (angle (car bbox)(cadr bbox))
                  (* (distance (car bbox)(cadr bbox)) 1.1)))
      (if (and
            (setq ss (ssget "_CP" lst))
            (setq ssall (ssget "_X" (list (assoc 410 (entget en)))))
           )
        (progn
          (setq lst (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))
          (foreach e1 lst (ssdel e1 ssall))
          (ACET-SS-ENTDEL ssall)
          )
        )
      )
    )
  )
(princ "\nType OCD to start")
(princ)
Unknown's avatar

About AutoCAD Tips

This blog serves as a knowledge base for myself (and anyone else) so that I can reference tips & tricks that I have learned and also refer others to it as well. I hope that this blog helps you learn at least one tip to make your drafting/design experience better.
This entry was posted in AutoLISP, AutoLISP: Modify, AutoLISP: Polylines, Modifying. Bookmark the permalink.

9 Responses to Trim and Delete outside of closed polyline

  1. cihangir's avatar cihangir says:

    you know what? you rocks! greetings from casablanka tramway project,
    Best Regards,
    Cihangir.

  2. Clive Jones's avatar Clive Jones says:

    could you amend the code so that you can pick inside the pline or outside the line for the erase trim to perform.

  3. Diaa Khalifa's avatar Diaa Khalifa says:

    its fantastic, but it doesn’t delete text outside the polyline . can it be modified please

  4. f801ma's avatar f801ma says:

    it works thanks at all

  5. eren's avatar eren says:

    Could you Trim and Delete inside of closed polyline?

  6. dave's avatar dave says:

    OCD just gives me “unknown command”. Any tips?

  7. Jhon Milton's avatar Jhon Milton says:

    Cordial Saludo.
    Me sirve para lo que yo busco, pero en mi caso no es necesario el zoom, me puedes indicar como eliminarlo o si sencillamente no se puede.

    [English]
    “Regards.
    It is useful for what I am looking for, but in my case the zoom is not necessary, you can tell me how to eliminate it or if it simply cannot be done.”

Leave a reply to f801ma Cancel reply