display order and blocks

Daron Denton

Usenet Archive
Joined
Jul 21, 2003
Messages
55
Reaction score
0
2000 / 2004

one of my programs which creates dynamic label blocks, puts a solid/solids behind all other objects in the label. when creating the block, the sset of solids are first, the other objects are added.

here's the problem:

when using acad's display order on objects not relating in any way to the labels, any new blocks created by this program display backwards - solids in front.

have already tried sending the solid objects layer to the back - nada.

thanks
 
i'm not trying to use draworder, but some of my users do and it messes up the drawings.

i want to know how to fix my program to overcome draworder, if it's possible
 
Could it be that acad reverses selection sets? If you copy overlapping objects sorted by creation order (not draworder), the copy is reversed. I have a copy routine that reverses the selection set to maintain the sort order.

Dan
 
Dan Allen said:
Could it be that acad reverses selection sets?

it appears so, but what i don't understand is that none of the layers involved in the label are being selected by user during the draworder command.

if layer order is:
A
B
C
D
E

and you bring D to the front, why are objects on B and C being altered?
 
off the top of my head, to remove draworder table ...

for each block name in drawing including *Model_space, do this:

(dictremove
(cdr
(assoc 360
(member'(102 . "{ACAD_XDICTIONARY")
(entget(cdr(assoc 330(entget(tblobjname"BLOCK"<block name>))))) ) ) ) "ACAD_SORTENTS" )
 
if i supply a name of a block that is displaying incorrectly, (assoc 330(entget(tblobjname"BLOCK" "ROOMLBL-6021911")))
returns nil
 
sorry,
i suppose what i said only applies to *Model_space block. the 330 code of a block is its block_record which has an extension dictionary which has the acad_sortents

so in your startup procedure, ...(tblobjname"BLOCK""*model_space")... and (setvar"SORTENTS"127)
should keep everybody in line
 

Latest threads

Back
Top