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

Replase reference(Batch Process)

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


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

СообщениеДобавлено: Пт Июл 20, 2007 6:28 pm    Заголовок сообщения: Ответить с цитатой

Используем VBA
В меню Tools - References ставим галку напротив Microsoft Shell Controls and Automation

А процедура получится что-то типа этого

Код:

Sub reattachFiles()

Dim SH As Shell32.Shell
Dim F As Shell32.Folder

Set SH = New Shell32.Shell

' вызываем диалоговое окно выбора директории
Set F = SH.BrowseForFolder(0&, Caption, &H1, "с:")

' имя используемой модели
Dim strModelName As String
strModelName = "Default"

' если все в порядке
If Not F Is Nothing Then

    Dim FC As Shell32.FolderItems
    Dim FI As Shell32.FolderItem
   
    Set FC = F.Items ' содержимое директории
   
    ' итерация по элементам директории
    For Each FI In FC
   
        ' проверяем - нам нужен только файл .DGN
        If Not FI.IsFolder And LCase(Right(FI.Path, 4)) = ".dgn" Then
   
            Dim DF As DesignFile
            Dim ATT As Attachment
           
            Set DF = Application.OpenDesignFile(FI.Path)
           
            Dim Index As Integer
            Index = 1 ' здесь Index - номер файла в списке референсов, я использую его
            ' если нужно отыскать файл по имени, то надо будет организовать его поиск в списке
           
            ' берем референс
            Set ATT = DF.Models(strModelName).Attachments(Index)
           
            ' переподключаем к нему новый файл, имя не забудьте поставить свое :)
            ATT.Reattach "c:\newfile.dgn", strModelName
       
        End If
   
    Next

End If


End Sub

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



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

СообщениеДобавлено: Ср Июл 25, 2007 7:58 am    Заголовок сообщения: Ответить с цитатой

Не проще-ли в Batch Process включить пару комманд
reference detach border.dgn
reference attach border1.dgn
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Leonid
давно здесь сидим


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

СообщениеДобавлено: Ср Июл 25, 2007 9:54 am    Заголовок сообщения: Ответить с цитатой

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



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

СообщениеДобавлено: Чт Июн 05, 2008 8:40 am    Заголовок сообщения: Ответить с цитатой

attach это конечно хорошо , но я как понимайу проблема в том что бы скале рамки и точка вставки сохранилась....
поидее должно быть быть не токо attach а аналог attachment Settings ( как при двойном клике на референс) это ипозволит сохранить и точку вставки и масштаб ... осталось токо найти Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
ВалВл



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

СообщениеДобавлено: Чт Июн 05, 2008 11:07 am    Заголовок сообщения: Ответить с цитатой

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

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


Powered by phpBB © 2001, 2005 phpBB Group