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

замена cell'ов

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



Зарегистрирован: 22.06.2012
Сообщения: 103
Откуда: Москва

СообщениеДобавлено: Пн Авг 11, 2014 3:04 pm    Заголовок сообщения: замена cell'ов Ответить с цитатой

Не заменяются селлы с помощью Replaced Cells.
Селлы из автокадовских файлов.
Правильно понимаю, что причина не замены в том, что это shared cell, а не просто cell?
Если я делаю Drop Element--Shared Cells--To Normal Cell, то тоже не заменяются. От того, что нет таких cell в библиотеке?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Leonid
давно здесь сидим


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

СообщениеДобавлено: Вт Авг 12, 2014 7:46 am    Заголовок сообщения: Ответить с цитатой

В таком вопросе легче понять проблему если посмотреть сам файл...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
АлексЮстасу



Зарегистрирован: 22.06.2012
Сообщения: 103
Откуда: Москва

СообщениеДобавлено: Вт Авг 12, 2014 12:49 pm    Заголовок сообщения: Ответить с цитатой

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


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

СообщениеДобавлено: Ср Авг 13, 2014 7:46 am    Заголовок сообщения: Ответить с цитатой

например - яндекс-диск
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
АлексЮстасу



Зарегистрирован: 22.06.2012
Сообщения: 103
Откуда: Москва

СообщениеДобавлено: Ср Авг 13, 2014 2:29 pm    Заголовок сообщения: Ответить с цитатой

https://yadi.sk/d/HolJdYgRZYxvk
Например, заменить блоки стрелок заполненных (115-5) на блок стрелок не залитых (ЛЭП_НИЗ_НАПР__СТРЕЛКА_НА_2).
Я понимаю, что это автокадовский dwg-файл. Но переводить в dgn не желательно.
И в реальном файле описаны десятки блоков.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Leonid
давно здесь сидим


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

СообщениеДобавлено: Пн Авг 18, 2014 9:38 am    Заголовок сообщения: Ответить с цитатой

Похоже только так

Код:


Sub repshcell()

    Dim ee As ElementEnumerator
    Dim esc As ElementScanCriteria
   
    Set esc = New ElementScanCriteria
   
    esc.ExcludeAllTypes
    esc.IncludeType msdElementTypeSharedCell
   
    Dim sc1 As SharedCellElement
    Dim sc2 As SharedCellElement
   
    Set ee = ActiveModelReference.Scan(esc)
    Do While ee.MoveNext
        Set sc1 = ee.Current.AsSharedCellElement
        If sc1.Name = "115-5" Then
            Set sc2 = CreateSharedCellElement2("ЛЭП_НИЗ_НАПР__СТРЕЛКА_НА_2", sc1.Origin, sc1.Scale, True, sc1.Rotation)
            ActiveModelReference.ReplaceElement sc1, sc2
        End If
    Loop

End Sub
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
АлексЮстасу



Зарегистрирован: 22.06.2012
Сообщения: 103
Откуда: Москва

СообщениеДобавлено: Пн Авг 18, 2014 3:20 pm    Заголовок сообщения: Ответить с цитатой

Круто! Спасибо!
Хотя, сам я не умею еще этим воспользоваться Smile

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


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

СообщениеДобавлено: Вт Авг 19, 2014 3:59 pm    Заголовок сообщения: Ответить с цитатой

это VBA
работает со всеми восьмыми версиями
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
АлексЮстасу



Зарегистрирован: 22.06.2012
Сообщения: 103
Откуда: Москва

СообщениеДобавлено: Чт Авг 21, 2014 4:35 pm    Заголовок сообщения: Ответить с цитатой

Ээээ... Долго чесал репу, да еще активно отвлекали.
Потом зашел в Utilities--Macro--Visual Basic Editor, вставил в окно этот код, нажал Run, и конкретно shared cell "ЛЭП_НИЗ_НАПР__СТРЕЛКА_НА_2" заменились на конкретно shared cell "115-5".
Т.е. непосредственно для этих селлов сработало. Smile
Еще раз спасибо!

Может быть сделать на форуме "ответ на часто задаваемый вопрос" - "Как воспользоваться кодом на VBA "?
Например, на dwg.ru есть такое - "Как воспользоваться кодом на лиспе", где пошагово описано, как непссвещенным превратить код в вызываемую команду.
Или с VBA и в Microstation такое не получится?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Конференция САПР Bentley MicroStation -> Работа в MicroStation Часовой пояс: GMT + 3
Страница 1 из 1

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


Powered by phpBB © 2001, 2005 phpBB Group