Тема: Блоки с атрибутами

Подскажите есть какие либо варианты или способы (идея) как получит габариты блоков без атрибутов или сделать так что бы в автрибуты не учитвать когда пользуешься методом blockRefObj1.IntersectWith(blockRefObj2, acExtendNone)

Re: Блоки с атрибутами

Мысля таая есть ))
Скопировать блок. Удалить атрибуты. Определить габариты. Удалить подделку. Готово!

Re: Блоки с атрибутами

Использовать метод GetBoundnigBox не получается?

Re: Блоки с атрибутами

GetBoundnigBox учитывает положение и "габариты" атрибутов. Если атрибут "внутри" блока и не высовывается за его габариты, то все о'кей... В противном случае надо действовать, как Vildar написал... Чего-то типа такого (если objBlk - вставка блока, габариты которой нужны):

Set copyobjBlk = objBlk.Copy()
    For Each Attr In copyobjBlk.GetAttributes
           Attr.Delete
           copyobjBlk.Update
    Next
  copyobjBlk.GetBoundingBox minExt, maxExt
  copyobjBlk.Delete

Re: Блоки с атрибутами

> AlexV
тогда уж проще будет добраться до описания блока, получить габариты всех входящих в описание примитивов, исключая атрибуты; полученные точки "прибавить" к точке вставки и повернуть, учитывая угол поворота блока и его OCS.

Re: Блоки с атрибутами

> Кулик Алексей aka kpblc
Йоу, как просто )))

Re: Блоки с атрибутами

> Кулик Алексей aka kpblc
Ну да, можно и так. Только так заморочней: перебрать все примитивы блока, затем из массива значений minExt и maxExt найти "самые" min и max, соотнести найденные точки с точкой вставки, углом поворота,системой координат; а если блок динамический? Тогда вообще смысла нет описание блока теребить, т.к. если пытаться все это соотнести со значением динамических параметров, то легче застрелиться... ))

Re: Блоки с атрибутами

Решил этот вопрос следующим методом

For Each blockRefObj1 In objSS1
        VARattributeRef = blockRefObj1.GetAttributes
        For i = 0 To 3
            VARattributeRef(i).Invisible = True
        Next i
    Next
For Each blockRefObj1 In objSS2
    VARattributeRef = blockRefObj1.GetAttributes
        For i = 0 To 3
            VARattributeRef(i).Invisible = False
        Next i
 Next