Author Topic: Filter objects not in Block during Refedit  (Read 1937 times)

0 Members and 1 Guest are viewing this topic.

Woabow

  • Newt
  • Posts: 56
Filter objects not in Block during Refedit
« on: February 26, 2013, 11:20:43 AM »
During Edit Block in Place (REFEDIT) Bricscad does not allow to select objects outside the block (when the "lock entities not in working set" option is set). So when I do:

Code: [Select]
(setq ss (ssget "_:L"))
and select both objects in and outside the block BC will respond with
Code: [Select]
"X were not in the working set.<Selection set: 14a6b500>"
But Autocad does allow me to select all objects and filters the "not in working set entities" out when doing a command, like MOVE.

I would like to do a selection where the user is not able to select objects outside the block, because I turn the objects into VLA objects. Acad will not filter out the objects outside the working set when applying VLA-MOVE or similar.

Is there a filter with SSGET that does not select objects outside the block? Or another way to prevent editing entities outside the block?

CAB

  • Global Moderator
  • Seagull
  • Posts: 10401
Re: Filter objects not in Block during Refedit
« Reply #1 on: February 26, 2013, 04:32:38 PM »
Lock or Freeze all objects before entering the block edit.  8-)
I've reached the age where the happy hour is a nap. (°¿°)
Windows 10 core i7 4790k 4Ghz 32GB GTX 970
Please support this web site.

Woabow

  • Newt
  • Posts: 56
Re: Filter objects not in Block during Refedit
« Reply #2 on: February 27, 2013, 06:38:06 AM »
Hmmm, maybe.

Or can I check wether selected objects belong to the block I'm editing?

irneb

  • Water Moccasin
  • Posts: 1794
  • ACad R9-2016, Revit Arch 6-2016
Re: Filter objects not in Block during Refedit
« Reply #3 on: February 27, 2013, 08:52:30 AM »
Nope, the Lock or Freeze all the layers which are not contained in the block - would still leave the issue of external entities on the same layer(s) as internals.
Or can I check wether selected objects belong to the block I'm editing?
Well, all the objects inside the block would have a 330 code linking to the Block Record's ename. But that's only correct while "not" in RefEdit mode, because while inside RefEdit all the stuff contained inside the block is temporarily changed to be inside of the *Model_Space block instead.

Even their enames / handles change due to RefEdit. So you can't even try using a filter for only the handles (code 5) of those objects inside the block definition.

Though what you can do is save the value of entlast just before RefEdit starts (perhaps reactor or redefining the RefEdit command), then you can step through all the temporary "new" objects using entnext to get the "internals".
Common sense - the curse in disguise. Because if you have it, you have to live with those that don't.