Сообщество программистов Autodesk в СНГ

ADN Club => Inventor API => Тема начата: fedor от 12-09-2019, 09:09:16

Название: Ошибка при выполнении процедуры SetPromptResultText в BorderDefinition
Отправлено: fedor от 12-09-2019, 09:09:16
Доброго времени суток
Нашел код, который в теории, программно может изменять значения в Border, TitleBlock, SketchedSymble.
Изменяет имя текста процедура SetPromptResultText( DefinitionText As TextBox, NewValue As String )
Но в коде, именно на этой процедуре выдается ошибка: "Invalid procedure call or argument"
Подскажите пожалуйста, в чем может быть причина и как ее исправить?
Ниже будет ссылка на источник и код программы
Ссылка на источник тут: https://adndevblog.typepad.com/manufacturing/2012/07/getset-the-prompted-text-in-the-border-of-a-sheet-in-inventor-api.html
Код - Visual Basic [Выбрать]
  1. Sub changePrompt()
  2.   Dim doc As DrawingDocument
  3.   Set doc = ThisApplication.ActiveDocument
  4.  
  5.   Dim tb As TextBox
  6.  
  7.   Dim border As border
  8.   Set border = doc.ActiveSheet.border
  9.  
  10.   Dim borderDef As BorderDefinition
  11.   Set borderDef = border.Definition
  12.  
  13.   For Each tb In borderDef.Sketch.TextBoxes
  14.       If tb.Text = "<Sheet Description>" Then
  15.           Call border.SetPromptResultText(tb, "first sheet")
  16.       End If
  17.   Next
  18. End Sub
  19.  
Название: Re: Ошибка при выполнении процедуры SetPromptResultText в BorderDefinition
Отправлено: mikazakov от 12-09-2019, 13:27:08
Еще сам файл чертежный нужно приаттачить, посмотреть его
Название: Re: Ошибка при выполнении процедуры SetPromptResultText в BorderDefinition
Отправлено: fedor от 12-09-2019, 13:31:03
Пробовался на чертеже, выполненном на стандартном шаблоне инвентора. Вместо значения "<Sheet Description>" можно вставлять свой параметр
Тут вопрос именно в срабатывании метода SetPromptResultText
У меня одного возникает ошибка?
Название: Re: Ошибка при выполнении процедуры SetPromptResultText в BorderDefinition
Отправлено: mikazakov от 12-09-2019, 17:53:02
Попробовал, нормально работает макрос:

(https://i.postimg.cc/CZXx099N/image.png) (https://postimg.cc/CZXx099N)

Но в коде, именно на этой процедуре выдается ошибка: "Invalid procedure call or argument"
Возможно, переменная типа tb не инициализирована попадает в сигнатуру SetPromptResultText
Название: Re: Ошибка при выполнении процедуры SetPromptResultText в BorderDefinition
Отправлено: Александр Ривилис от 12-09-2019, 20:16:50
fedor,
Какая версия Inventor и установлены ли все обновления?
Название: Re: Ошибка при выполнении процедуры SetPromptResultText в BorderDefinition
Отправлено: fedor от 13-09-2019, 11:10:26
Версия 18
Обновления установлены