Список форумов Конференция САПР Bentley MicroStation Конференция САПР Bentley MicroStation
www.ustation.ru
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

VBA. How to hide/display off elements on Z<=0 in referen

 
Начать новую тему   Ответить на тему    Список форумов Конференция САПР Bentley MicroStation -> Прикладное
Предыдущая тема :: Следующая тема  
Автор Сообщение
Natash



Зарегистрирован: 07.03.2007
Сообщения: 21

СообщениеДобавлено: Пт Окт 15, 2010 11:36 am    Заголовок сообщения: VBA. How to hide/display off elements on Z<=0 in referen Ответить с цитатой

Как отключить видимость елементов в референсе на высоте ноль?

active depth не подходит, т.к. работает с видом... а нужно только с референсом

есть вот такой вот код, работает только в v8, но отключает временно, метод redraw не работатет, потому чtо елементы в референсе
про высоту меньше либо равно 0 пока нет, дело не в етом даже
задача отключить елементы в референсе
Код:

Sub TurnOffRefOnZero()
   
    Dim oAtt As Attachment
    Dim oEl As Element
    Dim oPnt As Point3d
    Dim oElPntList() As Point3d

    Dim index As Long
    Dim oEc As ElementCache
   
    For Each oAtt In ActiveModelReference.Attachments
   
        Set oEc = oAtt.GraphicalElementCache
        Debug.Print "oEc.Count=" & oEc.Count
        For index = 0 To oEc.Count - 1 Step 1
           
            If oEc.IsElementValid(index + 1) = True Then
           
                Set oEl = oEc.GetElement(index + 1)
                If oEl.IsGraphical Then
                    oEl.Redraw msdDrawingModeErase
                    oEl.IsHidden = True
                    'oEl.Rewrite
                End If   
            End If         
        Next
    Next
   
End Sub

в v8i не работает

вообще, думается мне, что сам подход не верен
может найдутся идеи?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Leonid
давно здесь сидим


Зарегистрирован: 28.01.2006
Сообщения: 598
Откуда: С.-Петербург

СообщениеДобавлено: Пт Окт 15, 2010 2:53 pm    Заголовок сообщения: Ответить с цитатой

Первое что приходит в голову - это попробовать использовать DisplaySets. Хотя не уверен, что VBA с ними работает...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Leonid
давно здесь сидим


Зарегистрирован: 28.01.2006
Сообщения: 598
Откуда: С.-Петербург

СообщениеДобавлено: Пт Окт 15, 2010 3:27 pm    Заголовок сообщения: Ответить с цитатой

Посмотрел чуть подробнее...
С дисплейсетами в VBA действительно туго.
Я бы сделал так: написал макрос который добавляет элементы в NamedGroup. А включить/отключить дисплейсет по группе - это одно нажатие кнопки...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Конференция САПР Bentley MicroStation -> Прикладное Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group