Author Topic: Helping filtering out Paperspace object  (Read 991 times)

0 Members and 1 Guest are viewing this topic.

AVCAD

  • Newt
  • Posts: 29
Helping filtering out Paperspace object
« on: July 26, 2023, 12:35:27 PM »
Hey All, Wondering if someone can solve this for me

Simple backgroundmask not sure where i got it i forget.

Anyway to have this filter out anything in paperspace?

Thanks in advance!

Code - Text: [Select]
  1. (defun c:bkgndmask ()
  2. (mleader-mask)
  3. (mtxt-mask)
  4. (princ)
  5. )
  6.  
  7.  
  8. (defun mleader-mask (/ ss i)
  9.   (if (setq ss (ssget '((0 . "MULTILEADER"))))
  10.     (repeat (setq i (sslength ss))
  11.       (setpropertyvalue (ssname ss (setq i (1- i))) "MText/BackgroundFill" 1)))
  12.   (princ)
  13. )
  14.  
  15.  
  16. (defun mtxt-mask ( / js n dxf_ent)
  17.         (setq js (ssget '((0 . "MTEXT"))))
  18.         (cond
  19.                 (js
  20.                         (repeat (setq n (sslength js))
  21.                                 (setq dxf_ent (entget (ssname js (setq n (1- n)))))
  22.                                 (entmod (append dxf_ent '((90 . 3) (63 . 256) (45 . 1.1) (441 . 0))))
  23.                         )
  24.                 )
  25.         )
  26.   (princ)
  27. )
  28.  

Jeff_M

  • King Gator
  • Posts: 4096
  • C3D user & customizer
Re: Helping filtering out Paperspace object
« Reply #1 on: July 26, 2023, 02:08:32 PM »
This will select all Mleaders in modelspace:
(setq ss (ssget "X" '((0 . "MULTILEADER")(-4 . "<NOT")(67 . 1)(-4 . "NOT>"))))

AVCAD

  • Newt
  • Posts: 29
Re: Helping filtering out Paperspace object
« Reply #2 on: July 26, 2023, 02:31:15 PM »
This will select all Mleaders in modelspace:
(setq ss (ssget "X" '((0 . "MULTILEADER")(-4 . "<NOT")(67 . 1)(-4 . "NOT>"))))


I added this in and it seems to work great. Can you explain what its doing? i believe its only selecting those mleader and mtxt in model space even if i am in paperspace and do "all" which is perfect.

i just dont know what this is "(-4 . "<NOT")(67 . 1)(-4 . "NOT>")"

Code - Text: [Select]
  1. (defun c:bkgndmask (/ ss i js n dxf_ent)
  2.  
  3. (if (setq ss (ssget "X" '((0 . "MULTILEADER")(-4 . "<NOT")(67 . 1)(-4 . "NOT>")))) ;;<---added
  4. ;;;;(if (setq ss (ssget '((0 . "MULTILEADER"))))<---old line
  5.     (repeat (setq i (sslength ss))
  6.       (setpropertyvalue (ssname ss (setq i (1- i))) "MText/BackgroundFill" 1)))
  7. (setq js (ssget '((0 . "MTEXT")(-4 . "<NOT")(67 . 1)(-4 . "NOT>")))) ;;<---added
  8. ;;;;;(setq js (ssget '((0 . "MTEXT"))))<---old line
  9.         (cond
  10.                 (js
  11.                         (repeat (setq n (sslength js))
  12.                                 (setq dxf_ent (entget (ssname js (setq n (1- n)))))
  13.                                 (entmod (append dxf_ent '((90 . 3) (63 . 256) (45 . 1.1) (441 . 0))))
  14.                         )
  15.                 )
  16.         )
  17.   (princ)
  18. )
  19.  

Jeff_M

  • King Gator
  • Posts: 4096
  • C3D user & customizer
Re: Helping filtering out Paperspace object
« Reply #3 on: July 26, 2023, 03:13:22 PM »
DXF code 67 Absent or zero indicates entity is in model space. 1 indicates entity is in paper space (optional).

SO teh filter is saying if the DXF code 67 is NOT 1 select it since it is in modelspace

Tharwat

  • Swamp Rat
  • Posts: 710
  • Hypersensitive
Re: Helping filtering out Paperspace object
« Reply #4 on: July 26, 2023, 04:19:49 PM »
Another way:
Code - Auto/Visual Lisp: [Select]
  1. (setq ss (ssget "X" '((0 . "MULTILEADER") (410 . "Model"))))