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

ADN Club => Inventor API => Тема начата: Bookvoed от 13-05-2021, 10:50:14

Название: Работа inventor с таблицей Excel
Отправлено: Bookvoed от 13-05-2021, 10:50:14
Добрый день. Необходимо поочерёдно приравнивать два параметра инвентора (ширина, высота) к соответствующим параметрам из таблицы эксель, т.е. A = X(i), B = Y(i).
Насколько я понимаю, необходимо создать массив, и цикл , который будет с ним работать.
Подскажите, как создать массив в iLogic из связанного с ним файла эксель?
Название: Re: Работа inventor с таблицей Excel
Отправлено: mikazakov от 13-05-2021, 11:28:47
А может просто подлинковать экселевский файл с параметрами через таблицу параметров, пользовательскими средствами м подцепить парметры к заранее созданному массиву

(https://i.postimg.cc/zbLXkWb4/image.png) (https://postimg.cc/zbLXkWb4)
Название: Re: Работа inventor с таблицей Excel
Отправлено: Bookvoed от 13-05-2021, 12:57:23
Файл я подтянул так:
Код - Visual Basic [Выбрать]
  1. GoExcel.Open("\\10.0.10.12\tech\КТО\KTO\Базы\Панели.xlsx", "Лист1")
Подскажите как обратиться к параметрам в экселевской таблицы из iLogic?
Название: Re: Работа inventor с таблицей Excel
Отправлено: mikazakov от 13-05-2021, 16:06:15
Я так понимаю, нужно вот это
https://knowledge.autodesk.com/support/inventor/learn-explore/caas/CloudHelp/cloudhelp/2018/ENU/Inventor-Help/files/GUID-E897A20C-3859-435A-AA5F-8B6D5921FFAE-htm.html
Название: Re: Работа inventor с таблицей Excel
Отправлено: R.I.Chernov от 27-05-2021, 01:18:11
Подскажите, как создать массив в iLogic из связанного с ним файла эксель?
В инвенторе есть два способа связи с эксель таблицами: внедрением и ссылкой.
Если вы внедряете компонент, то обратиться к нему можно как-то наподобие:

Код - C# [Выбрать]
  1. // using Excel = Microsoft.Office.Interop.Excel;
  2. // oDoc - ссылка на деталь с внедренным экселем
  3. object exlWorkbookTemp;
  4. Excel.Workbook exlWorkbook;
  5.  
  6. Inventor.ReferencedOLEFileDescriptor referencedOLEF;
  7. referencedOLEF = oDoc.ReferencedOLEFileDescriptors.ItemByName["Name"];
  8. referencedOLEF.Activate(Inventor.OLEVerbEnum.kHideOLEVerb, out exlWorkbookTemp); //kHideOLEVerb   kShowOLEVerb
  9. exlWorkbook = (Excel.Workbook)exlWorkbookTemp;
  10.  
  11. Excel.Worksheet exlWorksheet;
  12. exlWorksheet = (Excel.Worksheet)exlWorkbook.Sheets["SheetName"];

Код старый, наверняка можно получше написать, просто для примера.