Импорт координат из Excel в Autodesk Inventor через VBA - PullRequest
0 голосов
/ 25 марта 2019

Общая цель кода заключается в том, чтобы иметь возможность генерировать модель канала в Autodesk Inventor с помощью функции развертки из набора узловых координат в Microsoft Access, которые были импортированы в Excel, поэтому Excel действует как«средний человек».Другими словами, попытка подключить Excel к Inventor для импорта координат из Excel.

Существующий код, который я создал, сгенерирует трубу из узловых координат и значений изгиба, вручную введенных в VBA.

Я неоднократно пытался соединить Excel с Inventor безуспешно.Наиболее многообещающее из тех, что я показал ниже, нацелено на выбор файла Excel, хотя моя попытка извлечь значение из ячейки A5 и вставить его в мои вручную вмененные координаты не работает.

Другие методы, которые я пробовал, включают точки импорта (где оказывается, что API не поддерживает это) и манипулирование кодом по следующей ссылке:

https://reinventinginventor.wordpress.com/vba-code-for-exporting-inventor-parts-list-to-excel-with-thumbnails/

Но, безрезультатно.

'Set up 3D sketch
Dim Sketch2 As Sketch3D
Set Sketch2 = partDef.Sketches3D.Add


'Identify File address path
Dim Path1 As String
Path1 = InputBox("Enter Excel file Path e.g         C:\SapWorkDir\Inventor\UpdateOpen.xlsx", "Excel file Path")


' Get the Excel file
Dim Excel As Excel.Application
Dim wb As Workbook
Dim ws As WorkSheet
Set Excel = New Excel.Application'Set wb = Excel.Workbooks.Open(Path1)
Set ws = wb.Sheets(1)

Dim Test As Integer
Test = ws.Range("A5").Select





'input coordinate values (CURRENTLY MANUAL)
Dim oCoor(1 To 8) As WorkPoint
Set oCoor(1) = partDef.WorkPoints.AddFixed(tg.CreatePoint(0, 0, 0))
Set oCoor(2) = partDef.WorkPoints.AddFixed(tg.CreatePoint(100, 100, 0))
Set oCoor(3) = partDef.WorkPoints.AddFixed(tg.CreatePoint(100, 50, 30))
Set oCoor(4) = partDef.WorkPoints.AddFixed(tg.CreatePoint(200, 700, 30))
Set oCoor(5) = partDef.WorkPoints.AddFixed(tg.CreatePoint(600, 700, 70))
Set oCoor(6) = partDef.WorkPoints.AddFixed(tg.CreatePoint(600, 700, 500))
Set oCoor(7) = partDef.WorkPoints.AddFixed(tg.CreatePoint(600, 900, 500))
Set oCoor(8) = partDef.WorkPoints.AddFixed(tg.CreatePoint(600, 2000, 500))
'

Этот метод явно не работает, так как я не могу вызвать значение «A5» в любое из моих вручную введенных значений координат.

Я предполагаю, что не могу подключиться к Excel с помощью этого метода, так кто-нибудь знает как?

1 Ответ

0 голосов
/ 26 марта 2019

Вы можете импортировать библиотеку Excel в VBA Inventor, чтобы VBA узнала об Excel и его API.Используйте команду «Ссылки» в меню «Сервис» и установите флажок рядом с «Библиотекой объектов Microsoft Excel 16.0» из списка, как показано ниже.

Referencing the Excel library

Теперь вы можете использовать код, подобный показанному ниже, для доступа к Excel, а затем использовать его полный API для извлечения значений из ячеек.Мне нравится метод Cells, в котором я могу легко указать строку и столбец.

Public Sub ConnectToExcel()
    ' Connect to Excel
    Dim excelApp As Excel.Application
    Set excelApp = GetObject(, "Excel.Application")

    ' Run this line if you want to see Excel.  By default it is invisible.
    ' excelApp.Visible = True

    ' Open the workbook.
    Dim workBook As workBook
    Set workBook = excelApp.Workbooks.Open("C:\Temp\Test.xlsx")

    ' Get the sheet.
    Dim sheet As WorkSheet
    Set sheet = workBook.Sheets.Item("Sizes")

    ' Get some values.
    Dim val1 As String
    val1 = sheet.Cells(1, 1)
    Dim val2 As String
    val2 = sheet.Cells(1, 2)

    ' Close it down.
    excelApp.Quit
End Sub
...