Добро пожаловать!
на форум VerZak.Ru

09.03.24 Обновлена программа Браком до версии 1.03

09.03.24 Обновлена программа Тексель до версии 1.64



АвторСообщение
Flash



Пост N: 1
Зарегистрирован: 13.12.09
ссылка на сообщение  Отправлено: 13.12.09 16:42. Заголовок: VBA


Здравствуйте! Вы не могли бы подсказать/намекнуть как переменную VBA получить одно из полей основной надписи (например <материал наим.>)?

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


brigval

Брагин Игорь



Пост N: 1406
Зарегистрирован: 07.07.07
ссылка на сообщение  Отправлено: 13.12.09 20:42. Заголовок: О чем идет речь?


Не понятно о VBA для какой программы (автокад, офис...) идет речь.
Тему сделал доступной всем, в связи с отсутствием в ней содержания личного характера.

brigval Спасибо: 0 
Профиль Ответить
Flash



Пост N: 2
Зарегистрирован: 13.12.09
ссылка на сообщение  Отправлено: 14.12.09 21:54. Заголовок: Ну, раз уж не прогнали...


Сложилась следующая ситуация: имеется трёхмерная сборка в autodesk inventor 2009 prof. Материалы деталей в моделях не указаны (по умолчанию, АВS plastic, углеродистая сталь...). Однако в проекте имеются 2d чертежи с заполненой основной надписью, где в числе прочего и проставлен материал (пруток, фанера, круг и т.п.). Внимательно изучив шаблон форматки я обнаружил, что материал хранится в полях <Материал ГОСТ>,<Материал Наим.>и <Материал Класс>. В настоящий момент мне необходимо экспортировать эти значения в текстовый файл на диске, но я не знаю, как к ним обратиться и что они из себя представляют. Кроме того, описание объктной модели 9 инвентора мне найти не удалось, хотя пообещали прислать от 10 версии. Так что очень надеюсь на помощь и советы более опытных пользователей автодесковской продукции...
VBA, соответственно, инвенторовский, хотя это и не принципиально, подключиться к inventor я смогу


Спасибо: 0 
Профиль Ответить
brigval

Брагин Игорь



Пост N: 1407
Зарегистрирован: 07.07.07
ссылка на сообщение  Отправлено: 15.12.09 10:51. Заголовок: Flash Я бы порекоме..


Flash
Я бы порекомендовал Вам научиться пользовться хелпом в Инвенторе. Там есть и очень подробная объектная модель и очень много доступных примеров.

Если текстовые поля в рамке, то сначала надо обратиться к TitleBlock.Definition, потом к эскизу Sketch, а в нем к текстовым полям TextBox. Перебором находите нужный TextBox и считываете из него текст.

brigval Спасибо: 1 
Профиль Ответить
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

Может быть, подскажете как быть, ведь где-то же эти поля хранятся???

Спасибо: 0 
Профиль Ответить
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)

brigval Спасибо: 1 
Профиль Ответить
Flash



Пост N: 4
Зарегистрирован: 13.12.09
ссылка на сообщение  Отправлено: 16.12.09 21:06. Заголовок: Заработало!


Спасибо за помощь!

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



Форум начат 07.07.07