Pan Xclipped xrefs

Hello Everybody!

Again a question i cant seem to find the answer to:

I referenced an xref to my drawing and xclipped it. Now i changed the order of things in my xref and would look to pan to for example 400 in x and 100 in y direction. But with the xclipped xref still in place where it should be.

Is that somehow possible?

Thanks in Advance!

Comments

  • [code]: XCLIP
    Select entities:
    Entities in set: 1
    Select entities:
    ON/OFF/Clipdepth/Delete/generate Polyline/New boundary/<New>: P
    : MOVE
    Select entities to move: L
    Entities in set: 1
    Select entities to move:
    Enter base point: <Displacement>:
    Enter second point: <ENTER to use base point as displacement>:
    : XCLIP
    Select entities:
    Entities in set: 1
    Select entities:
    ON/OFF/Clipdepth/Delete/generate Polyline/New boundary/<New>:
    Delete old boundary(s)? [Yes/No] <Yes>:
    [Select polyline/Polygonal/Rectangular] <Rectangular>: S
    Select polyline: L
    : ERASE
    Select entities to delete: L
    Entities in set: 1
    Select entities to delete: [/code]
  • Yep, i get the idea.
    Instead of erase i would have to displace the xref again to its place of origin, since i dont want it to be moved.

    But since i have to do this for quite a few entities always with the same displacement value is there a way to automate this? Like looping through a selection of xclips with displacement x,y?
  • The xref is not moved or erased. The new (generated) polyline is.
    Yes you can probably write code for this.
  • The xref not, but the xclip. The whole idea is to keep the xclip in place where it is and actually adjust the position of the xref underlying it.


  • Yes, I understand that. So first you move the xref and then you follow the procedure in post #2 to move the clip boundary back. Just try it.
  • yes yes, i know you understood, just to clarify for others who read this ;)
  • Hijacking this thread for a similar question. Seems like there should be a simple toggle...I'm hoping I'm just blind.

    How do you Invert an XCLIP in Brics?

  • hi chris!
    Actually i am pretty sure that this is impossible if i understand your question right.
    You want to go from the left xref clipping (outer rectangle whole xref, orange xclipped) to the right? so make the middle part xclipped?

    What you can do is lay a _wipeout above the part you dont want to see and then (for convenience) block the xclipped xref and the wipeout together.

    cheers

  • Thanks for the reply Benjamin!

    It's definitely possible, and quite easy in Autocad.

    https://knowledge.autodesk.com/support/autocad-lt/learn-explore/caas/CloudHelp/cloudhelp/2016/ENU/AutoCAD-LT/files/GUID-104EDB9F-F025-4F67-B5C9-B3F174CFE2F3-htm.html

    https://autocadtips1.com/2012/04/11/invert-xclip/

    I was just hoping I was missing something obvious. I'll give your suggestion a go, thanks again.

  • Roy Klein Gebbinck
    edited March 2017

    Chris is right: there is such a toggle. But you need a little program to change it.

    (defun XclipInvert (enm / dict spfl)
      (if
        (and
          (setq dict (vle-entget 360 enm))
          (setq dict (vle-dictobjname dict "ACAD_FILTER"))
          (setq spfl (vle-dictobjname dict "SPATIAL"))     ; "SPATIAL_FILTER" entity.
        )
        (progn
          (vle-entmod 280 spfl (boole 6 (vle-entget 280 spfl) 1))
          (entupd enm)
        )
      )
    )
    
    (defun c:XclipInvert ( / doc ss)
      (setq doc (vla-get-activedocument (vlax-get-acad-object)))
      (vla-endundomark doc)
      (vla-startundomark doc)
      (if (setq ss (ssget '((0 . "INSERT")(102 . "{ACAD_XDICTIONARY"))))
        (foreach enm (vle-selectionset->list ss)
          (XclipInvert enm)
        )
      )
      (vla-endundomark doc)
      (princ)
    )
    
  • @Roy Klein Gebbinck said:
    Chris is right: there is such a toggle. But you need a little program to change it.

    (defun XclipInvert (enm / dict spfl)
      (if
        (and
          (setq dict (vle-entget 360 enm))
          (setq dict (vle-dictobjname dict "ACAD_FILTER"))
          (setq spfl (vle-dictobjname dict "SPATIAL"))     ; "SPATIAL_FILTER" entity.
        )
        (progn
          (vle-entmod 280 spfl (boole 6 (vle-entget 280 spfl) 1))
          (entupd enm)
        )
      )
    )
    
    (defun c:XclipInvert ( / doc ss)
      (setq doc (vla-get-activedocument (vlax-get-acad-object)))
      (vla-endundomark doc)
      (vla-startundomark doc)
      (if (setq ss (ssget '((0 . "INSERT")(102 . "{ACAD_XDICTIONARY"))))
        (foreach enm (vle-selectionset->list ss)
          (XclipInvert enm)
        )
      )
      (vla-endundomark doc)
      (princ)
    )
    

    Roy, you're awesome, thank you very much!

    This is perfect.

    Cheers!

  • @Chris Schildmeier said:

    @Roy Klein Gebbinck said:
    Chris is right: there is such a toggle. But you need a little program to change it.

    (defun XclipInvert (enm / dict spfl)
      (if
        (and
          (setq dict (vle-entget 360 enm))
          (setq dict (vle-dictobjname dict "ACAD_FILTER"))
          (setq spfl (vle-dictobjname dict "SPATIAL"))     ; "SPATIAL_FILTER" entity.
        )
        (progn
          (vle-entmod 280 spfl (boole 6 (vle-entget 280 spfl) 1))
          (entupd enm)
        )
      )
    )
    
    (defun c:XclipInvert ( / doc ss)
      (setq doc (vla-get-activedocument (vlax-get-acad-object)))
      (vla-endundomark doc)
      (vla-startundomark doc)
      (if (setq ss (ssget '((0 . "INSERT")(102 . "{ACAD_XDICTIONARY"))))
        (foreach enm (vle-selectionset->list ss)
          (XclipInvert enm)
        )
      )
      (vla-endundomark doc)
      (princ)
    )
    

    Roy, you're awesome, thank you very much!

    This is perfect.

    Cheers!

    Well, looks like it's Resurrection time once again. :P

    This code definitely works in v16, but does not work in v17 or v18.

    ; ----- Error around expression -----
    (VLE-ENTGET 280 SPFL)

    Anyone else experiencing the same behavior?

    Thanks

  • @Chris Schildmeier:
    Since V17.2.07 a different DXF code is used for the inverted flag. The attached version of the program can handle both the old (280) and the new (290) DXF code.

  • @Roy Klein Gebbinck said:
    @Chris Schildmeier:
    Since V17.2.07 a different DXF code is used for the inverted flag. The attached version of the program can handle both the old (280) and the new (290) DXF code.

    Roy comes through again! Thank you for the explanation as well.

This discussion has been closed.

Howdy, Stranger!

It looks like you're new here. Click one of the buttons on the top bar to get involved!