Автор | Сообщение |
Flash
|
| |
Пост N: 1
Зарегистрирован: 13.12.09
|
|
Отправлено: 13.12.09 16:42. Заголовок: VBA
Здравствуйте! Вы не могли бы подсказать/намекнуть как переменную VBA получить одно из полей основной надписи (например <материал наим.>)?
|
|
Профиль
Ответить
|
Ответов - 6
[только новые]
|
|
brigval
|
| Брагин Игорь
|
Пост N: 1406
Зарегистрирован: 07.07.07
|
|
Отправлено: 13.12.09 20:42. Заголовок: О чем идет речь?
Не понятно о VBA для какой программы (автокад, офис...) идет речь. Тему сделал доступной всем, в связи с отсутствием в ней содержания личного характера.
|
|
Профиль
Ответить
|
Flash
|
| |
Пост N: 2
Зарегистрирован: 13.12.09
|
|
Отправлено: 14.12.09 21:54. Заголовок: Ну, раз уж не прогнали...
Сложилась следующая ситуация: имеется трёхмерная сборка в autodesk inventor 2009 prof. Материалы деталей в моделях не указаны (по умолчанию, АВS plastic, углеродистая сталь...). Однако в проекте имеются 2d чертежи с заполненой основной надписью, где в числе прочего и проставлен материал (пруток, фанера, круг и т.п.). Внимательно изучив шаблон форматки я обнаружил, что материал хранится в полях <Материал ГОСТ>,<Материал Наим.>и <Материал Класс>. В настоящий момент мне необходимо экспортировать эти значения в текстовый файл на диске, но я не знаю, как к ним обратиться и что они из себя представляют. Кроме того, описание объктной модели 9 инвентора мне найти не удалось, хотя пообещали прислать от 10 версии. Так что очень надеюсь на помощь и советы более опытных пользователей автодесковской продукции... VBA, соответственно, инвенторовский, хотя это и не принципиально, подключиться к inventor я смогу
|
|
Профиль
Ответить
|
brigval
|
| Брагин Игорь
|
Пост N: 1407
Зарегистрирован: 07.07.07
|
|
Отправлено: 15.12.09 10:51. Заголовок: Flash Я бы порекоме..
Flash Я бы порекомендовал Вам научиться пользовться хелпом в Инвенторе. Там есть и очень подробная объектная модель и очень много доступных примеров. Если текстовые поля в рамке, то сначала надо обратиться к TitleBlock.Definition, потом к эскизу Sketch, а в нем к текстовым полям TextBox. Перебором находите нужный TextBox и считываете из него текст.
|
|
Профиль
Ответить
|
Flash
|
| |
Пост N: 3
Зарегистрирован: 13.12.09
|
|
Отправлено: 15.12.09 20:35. Заголовок: Спасибо как за ответ..
Спасибо как за ответ, так и за совет, и хотя в предыдущем сообщении я писал об обстоятельствах заставивших меня обратиться на форум, придется ему (совету) последовать. Но это первая неделя знакомства с инвентором. А вот в процессе реализации совета вышла заминка - дело в том, что так я смог получить опять же только названия полей, а не их значения( ) Вот пример получившегося кода: Public Sub TitleBlockCopy() Dim i As Long Dim Inventor9 As Inventor.Application Set Inventor9 = GetObject(, "Inventor.Application") Dim oNewDocument As Inventor.DrawingDocument Set oNewDocument = Inventor9.Documents.Open("D:\Труба.idw") Dim oSourceDocument As DrawingDocument Set oSourceDocument = Inventor9.ActiveDocument Dim oSourceTitleBlockDef As TitleBlockDefinition Set oSourceTitleBlockDef = oSourceDocument.ActiveSheet.TitleBlock.Definition With oSourceTitleBlockDef 'For Each Item In .sketch.TextBoxes MsgBox (.sketch.TextBoxes.Item(26).Text + .sketch.TextBoxes.Item(27).Text + .sketch.TextBoxes.Item(28).Text) 'выдает "<Материал Класс><Материал Наим.><Материал ГОСТ>" 'Next End With End Sub Может быть, подскажете как быть, ведь где-то же эти поля хранятся???
|
|
Профиль
Ответить
|
brigval
|
| Брагин Игорь
|
Пост N: 1408
Зарегистрирован: 07.07.07
|
|
Отправлено: 15.12.09 21:32. Заголовок: Flash пишет: With o..
Flash пишет: цитата: | With oSourceTitleBlockDef 'For Each Item In .sketch.TextBoxes MsgBox (.sketch.TextBoxes.Item(26).Text + .sketch.TextBoxes.Item(27).Text + .sketch.TextBoxes.Item(28).Text) 'выдает "<Материал Класс><Материал Наим.><Материал ГОСТ>" 'Next End With |
| Попробуйте воспользоваться функцией txt = oSourceDocument.ActiveSheet.TitleBlock.GetResultText(oTextBox)
|
|
Профиль
Ответить
|
Flash
|
| |
Пост N: 4
Зарегистрирован: 13.12.09
|
|
Отправлено: 16.12.09 21:06. Заголовок: Заработало!
Спасибо за помощь!
|
|
Профиль
Ответить
|
|