Тема: Поиск текста в файлах чертежей Инвентора
Каким образом наиболее эффективно организовать поиск текста в чертежах Инвентора (текст находится в текстовом поле)? Обычные механизмы поиска ищут лишь в свойствах файла.
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Autodesk → Inventor → Поиск текста в файлах чертежей Инвентора
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Каким образом наиболее эффективно организовать поиск текста в чертежах Инвентора (текст находится в текстовом поле)? Обычные механизмы поиска ищут лишь в свойствах файла.
В общем, похоже этого нельзя сделать:
http://discussion.autodesk.com/thread.j … dID=581322
http://discussion.autodesk.com/thread.j … dID=571649
В общем, похоже этого нельзя сделать:
Можно! Если написать макрос отрывающий файлы считывающий текст и снова их закрывающий.
К сожалению, все-таки на поиск с помощью макросов наложены ограничения: я так и не нашел способа доступа к текстовым полям, находящимся прямо на листе (Sheet). Остальной текст, который меня интересует: текстовые поля textBox в эскизах DrawingSketch чертежа, в основной надписи и т.д. - ко всему этому есть доступ.
> Андрей Березин
Похоже, вы правы. Надеюсь, в планы Autodesk'а входит открыть доступ к этим объектам.
я так и не нашел способа доступа к текстовым полям, находящимся прямо на листе (Sheet).
Да вот же они!
ThisApplication.ActiveSheet.DrawingNotes.GeneralNotes
точнее
ThisApplication.ActiveDocument.ActiveSheet.DrawingNotes.GeneralNotes
> brigval
Круто! Вы правы. Разве так сразу поймешь, что текст в эскизах называется так-то, а на листе совсем по-дугому.
> brigval
Большое человеческое спасибо. Сажусь за написание плагина!
Вот накропал для поиска текста в открытом чертеже:
Sub Findtext() Dim oDrawDoc As DrawingDocument Set oDrawDoc = ThisApplication.ActiveDocument Dim Message, Title, Default, MyValue Message = "Enter a text string" ' Set prompt. Title = "Search text in drawing" ' Set title. Default = "TITLE" ' Set default. ' Display message, title, and default value. MyValue = InputBox(Message, Title, Default) If oDrawDoc.Sheets.Count > 0 Then Dim sh As Sheet For Each sh In oDrawDoc.Sheets 'поиск среди текстовых полей на листе If sh.DrawingNotes.GeneralNotes.Count > 0 Then Dim gn As GeneralNote For Each gn In sh.DrawingNotes.GeneralNotes If InStr(gn.Text, MyValue) > 0 Then MsgBox gn.Text End If Next End If 'поиск среди текстовых полей в спецификациях If sh.PartsLists.Count > 0 Then Dim oPartList As PartsList For Each oPartList In sh.PartsLists Dim i As Long For i = 1 To oPartList.PartsListRows.Count ' Get the current row. Dim oRow As PartsListRow Set oRow = oPartList.PartsListRows.Item(i) ' Iterate through each column in the row. Dim j As Long For j = 1 To oPartList.PartsListColumns.Count ' Get the current cell. Dim oCell As PartsListCell Set oCell = oRow.Item(j) If InStr(oCell.Value, MyValue) > 0 Then MsgBox oCell.Value End If Next Next Next End If 'поиск среди текстовых полей в эскизах If sh.Sketches.Count > 0 Then Dim ds As DrawingSketch For Each ds In sh.Sketches If ds.TextBoxes.Count > 0 Then Dim tb As TextBox For Each tb In ds.TextBoxes If InStr(tb.Text, MyValue) > 0 Then MsgBox tb.Text End If Next End If Next End If Next End If End Sub
Так, на вскидку.
1 Количество листов всегда больше нуля, поэтому можно не проверять.
2 Если PartsList не вставлен, то Вы в нем ничего не найдете. У Вас отсутствует вариант вставки PartsList, когда он не вставлен.
3 Для базовых видов будут разные PartsList, когда виды получены из разных сборок. Необходимо сделать проверку и вставлять все PartsList. Если это, конечно, нужно.
4 Проверка ведется только с учетом регистра. Возможно, надо предусмотреть вариант поиска и без учета регистра.
5 Я бы добавил еще поиск в Leader Note.
6 Нет классической проверки MyValue на отсутствие текста. Если текст не введен, то нет смысла его искать.
> brigval
Спасибо за советы! Постараюсь учесть.
Сделал плагин, предназначенный для поиска текста в чертежах Инвентора, находящихся в выбранной папке (и ее подпапках и т.д.).
После установки искать в меню Tools (Средства). Проверялся на AIP11 SP3.
Название: IDWTSetup.rar
Размер: 803.17 кб
Доступен до: 2007-09-23 13:10:28
Ссылка для скачивания файла: http://ifolder.ru/3095353
Переработал плагин.
Изменения:
-теперь это отдельное приложение (требует запущенного Инвентора)
-поддержка многозадачности (кнопка Stop для процесса поиска)
-поддержка поиска с указанием набор мест поиска (набор дисков или набор папок)
Объекты чертежа для поиска:
-General Notes
-Leader Notes
-Parts Lists
-Sketches on Sheets
-Sketches on Drawing Views
Название: IDWT21.rar
Размер: 387.92 кб
Доступен до: 2007-09-30 09:29:59
Ссылка для скачивания файла: http://ifolder.ru/3174696
Сделал плагин, предназначенный для поиска текста в чертежах Инвентора, находящихся в выбранной папке (и ее подпапках и т.д.).
После установки искать в меню Tools (Средства). Проверялся на AIP11 SP3.
Название: IDWTSetup.rar
Размер: 803.17 кб
Доступен до: 2007-09-23 13:10:28
Ссылка для скачивания файла: http://ifolder.ru/3095353
Здравствуйте!
Подскажите на 2024 версию имеется такой плагин?
И если нет, можете написать? Конечно за плату, Очень срочнонужно!
Андрей Березин пишет:Сделал плагин, предназначенный для поиска текста в чертежах Инвентора, находящихся в выбранной папке (и ее подпапках и т.д.).
После установки искать в меню Tools (Средства). Проверялся на AIP11 SP3.
Название: IDWTSetup.rar
Размер: 803.17 кб
Доступен до: 2007-09-23 13:10:28
Ссылка для скачивания файла: http://ifolder.ru/3095353Здравствуйте!
Подскажите на 2024 версию имеется такой плагин?
И если нет, можете написать? Конечно за плату, Очень срочно нужно!
И кстати ссылка не рабочая!!
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Autodesk → Inventor → Поиск текста в файлах чертежей Инвентора
Форум работает на PunBB, при поддержке Informer Technologies, Inc