Импорт step файла

Автор Тема: Импорт step файла  (Прочитано 10247 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн izhgtumekhanikАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 54
  • Карма: 0
  • Skype: izhgtumekhanik@gmail.com
Импорт step файла
« : 14-10-2023, 23:24:34 »
Доброго, не могу понять как импортировать step файл.

Дело в том такая запись ошибочна - options.Value("SaveComponentDuringLoad") = True.

И поэтому код не хочет работать и я не пойму как указывается параметры детали как - составная/сшивание/отдельная.

Код - Python [Выбрать]
  1. import math
  2. from datetime import datetime
  3.  
  4. # import pythoncom
  5. from win32com.client import Dispatch, gencache
  6.  
  7. '''
  8. -----------------------------------------------------------------------------
  9.    inventor v2016
  10. -----------------------------------------------------------------------------
  11. '''
  12.  
  13. import inventorApiV16 as inventorApi
  14. from inventorApiV16 import constants as in_const_
  15.  
  16. AppInvCom = Dispatch('Inventor.Application')
  17. AppInvType = inventorApi.Application(AppInvCom)
  18.  
  19. file_import = r"D:\testорпус.stp"
  20.  
  21. oSTPTranslator = AppInvCom.ApplicationAddIns.ItemById("{90AF7F40-0C01-11D5-8E83-0010B541CD80}")
  22. oSTPTranslator = inventorApi.TranslatorAddIn(oSTPTranslator)
  23.  
  24. oTransientObject = AppInvCom.TransientObjects
  25. oTransientObject = inventorApi.TransientObjects(oTransientObject)
  26.  
  27. oDataMedium = oTransientObject.CreateDataMedium()
  28. oDataMedium = inventorApi.DataMedium(oDataMedium)
  29.  
  30. oDataMedium.FileName = file_import
  31.  
  32. oTranslationContext = oTransientObject.CreateTranslationContext()
  33. oTranslationContext = inventorApi.TranslationContext(oTranslationContext)
  34.  
  35. oTranslationContext.Type = in_const_.kDataDropIOMechanism
  36.  
  37. oOptions = oTransientObject.CreateNameValueMap()
  38. oOptions = inventorApi.NameValueMap(oOptions)
  39.  
  40. print(oOptions.Count)
  41.  
  42. #сохранение компонента во время загрузки
  43. oOptions.Value("SaveComponentDuringLoad", True)
  44.  
  45. # не совсем понятно
  46. oOptions.Value("SaveLocationIndex", 0)
  47.  
  48. # путь к папке, в которую будет сохранен компонент.
  49. oOptions.Value("ComponentDestFolder", "")
  50.  
  51. # импорт твердых тел
  52. oOptions.Value("ImportSolid", True)
  53.  
  54. # импорт поверхностей
  55. oOptions.Value("ImportSurface", False)
  56.  
  57. #импорт проволочных моделей
  58. oOptions.Value("ImportWire", False)
  59.  
  60. #импорт точек
  61. oOptions.Value("ImportPoint", False)
  62.  
  63. #Задает индекс для создания поверхности
  64. oOptions.Value("CreateSurfIndex", 1)
  65.  
  66. #Задает индекс имени группы
  67. oOptions.Value("GroupNameIndex", 0)
  68.  
  69. #указать имя группы
  70. oOptions.Value("GroupName", "")
  71.  
  72. #Задает уровень группы элементов совместной среды
  73. oOptions.Value("CEGroupLevel", 0)
  74.  
  75. #отключение префикса
  76. oOptions.Value("CEPrefixCk", False)
  77.  
  78. #Здесь можно указать префикс
  79. oOptions.Value("CEPrefixString", "")
  80.  
  81. #Задает единицы измерения при импорте
  82. oOptions.Value("ImportUnit", 0)
  83.  
  84. #отключение проверки во время загрузки
  85. oOptions.Value("CheckDuringLoad", False)
  86.  
  87. #автоматическое объединение
  88. oOptions.Value("AutoStitchAndPromote", True)
  89.  
  90. #отключение расширенного восстановления
  91. oOptions.Value("AdvanceHealing", False)
  92.  
  93. oDoc = None
  94. oSTPTranslator.Open(oDataMedium, oTranslationContext, oOptions, oDoc)

Оффлайн izhgtumekhanikАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 54
  • Карма: 0
  • Skype: izhgtumekhanik@gmail.com
Re: Импорт step файла
« Ответ #1 : 15-10-2023, 09:41:16 »
Объект oOptions - список(dict) который имеет следующие объекты 'Add', 'CLSID', 'Clear', 'Count', 'Insert', 'Item', 'Name', 'Remove', 'SetValue', 'Value'
Логически предположить получит число записей в ней, а оно почему то равно нулю print(oOptions.Count) = 0
И как программно получить список oOptions? - получается он пуст?
Отсюда использовать SetValue заместо Value вполне логично или Add.

oOptions.Value("SaveComponentDuringLoad") = True - так везде пишут и в хелпе тоже

Но Python не может функции присваивать значения и ругается на избыточность входных параметров oOptions.Value("SaveComponentDuringLoad", True).
« Последнее редактирование: 15-10-2023, 11:51:35 от izhgtumekhanik »

Отмечено как Решение izhgtumekhanik 15-10-2023, 10:49:51

Оффлайн izhgtumekhanikАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 54
  • Карма: 0
  • Skype: izhgtumekhanik@gmail.com
Re: Импорт step файла
« Ответ #2 : 15-10-2023, 10:49:46 »
Да! так и есть список(dict) пуст и после SetValue - заполняется.

И как программно получить список oOptions?
получается не как ? (получить имена - SaveComponentDuringLoad/GroupNameIndex и тд)
« Последнее редактирование: 15-10-2023, 11:51:25 от izhgtumekhanik »

Оффлайн izhgtumekhanikАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 54
  • Карма: 0
  • Skype: izhgtumekhanik@gmail.com
Re: Импорт step файла
« Ответ #3 : 15-10-2023, 19:26:53 »
начал различные манипуляции проводить с этими опциями - не работает :(