Я пытаюсь запустить очень простую функцию, которая принимает входные данные для двух точек, и Solidworks делает из нее линию.
Dim swApp As Object
Sub main()
Set swApp = Application.SldWorks
line = CreateLine(1, 1, 1, 0, 0, 0)
End Sub
Function CreateLine( _
ByVal X1 As System.Double, _
ByVal Y1 As System.Double, _
ByVal Z1 As System.Double, _
ByVal X2 As System.Double, _
ByVal Y2 As System.Double, _
ByVal Z2 As System.Double _
) As SldWorks.SketchSegment
Dim instance As ISketchManager
Dim X1 As System.Double
Dim Y1 As System.Double
Dim Z1 As System.Double
Dim X2 As System.Double
Dim Y2 As System.Double
Dim Z2 As System.Double
Dim value As SketchSegment
value = instance.CreateLine(X1, Y1, Z1, X2, Y2, Z2)
End Function
Всякий раз, когда я пытаюсь запустить это, я получаю сообщение об ошибке «Определенный пользователем тип не определен». Как мне это исправить?
value = instance.CreateLine(X1, Y1, Z1, X2, Y2, Z2)
? Я предполагаю, что это потому, чтоinstance
на самом деле никогда ничего не устанавливает. - person ArcherBird   schedule 29.07.2020System
не относится к VBA, если только он не является частью основной библиотеки SolidWorks. Кроме того, вы скрыли параметры своей функции, объявив локальные переменные с тем же именем, и ваша функция ничего не возвращает. И вам нужно использоватьSet
при назначении переменных объектного типа - person Tim Williams   schedule 29.07.2020