On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение



Пост N: 60
Откуда: Волгоград
Рейтинг: 0
ссылка на сообщение  Отправлено: 28.09.07 12:27. Заголовок: Разделение многолистовых чертежей на отдельные листы


Вашему вниманию предлагается макрос по разделению многолистовых чертежей Инвентора на отдельные файлы, содержащие по одному листу. Тестировалось на AIP 11 SP3. Работает с текущим чертежом.

Sub SplitIDW()
' Set a reference to the drawing document.
' This assumes a drawing document is active.
Dim oDrawDoc As DrawingDocument
Set oDrawDoc = ThisApplication.ActiveDocument

Dim str1 As String

str1 = oDrawDoc.FullFileName

Dim s As Sheet

For Each s In oDrawDoc.Sheets

Dim oDrawDoc1 As DrawingDocument

Set oDrawDoc1 = ThisApplication.Documents.Add(kDrawingDocumentObject)

Call s.CopyTo(oDrawDoc1)

oDrawDoc1.Sheets.Item(1).Delete

Dim str As String

str = s.DrawingViews.Item(1).ReferencedDocumentDescriptor.FullDocumentName

str = Right(str, Len(str) - InStrRev(str, "\"))

str = Left(str, Len(str) - 4)

Dim fname As String

fname = Replace(str1, ".idw", "_" & Replace(s.Name, ":", "_") & "_" & str & ".idw")

Call oDrawDoc1.SaveAs(fname, False)

Call oDrawDoc1.Close
Next
End Sub

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 1 [только новые]





Пост N: 73
Откуда: Волгоград
Рейтинг: 0
ссылка на сообщение  Отправлено: 10.10.07 06:54. Заголовок: Re:


Немного доработал. Добавил активацию листа перед копированием.

Sub SplitIDW()
' Set a reference to the drawing document.
' This assumes a drawing document is active.
Dim oDrawDoc As DrawingDocument
Set oDrawDoc = ThisApplication.ActiveDocument

Dim str1 As String

str1 = oDrawDoc.FullFileName

Dim s As Sheet

For Each s In oDrawDoc.Sheets

s.Activate

Dim oDrawDoc1 As DrawingDocument

Set oDrawDoc1 = ThisApplication.Documents.Add(kDrawingDocumentObject)

Call s.CopyTo(oDrawDoc1)

oDrawDoc1.Sheets.Item(1).Delete

Dim str As String

str = s.DrawingViews.Item(1).ReferencedDocumentDescriptor.FullDocumentName

str = Right(str, Len(str) - InStrRev(str, "\"))

str = Left(str, Len(str) - 4)

Dim fname As String

fname = Replace(str1, ".idw", "_" & Replace(s.Name, ":", "_") & "_" & str & ".idw")

Call oDrawDoc1.SaveAs(fname, False)

Call oDrawDoc1.Close
Next
End Sub


Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 3
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация вкл, правка нет