| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Передача примитивов в функции

Передача примитивов в функции

Ответ
Поиск в этой теме
Непрочитано 10.10.2008, 14:45 #1
Передача примитивов в функции
archee
 
Регистрация: 09.10.2008
Сообщений: 10

Пусть, к примеру имеется функция:

Public Function getAngle(line As AcadLine) As Double
Set getAngle = line.Angle
End Function

И я хочу вызвать эту функцию из другой, например

Public Sub Main()
Dim AcLine As AcadLine
Dim angle As Double

angle = getAngle(AcLine) <- Здесь ошибка!!! Почему?
End Sub

Пишет

Compile Error:
ByRef argument type mismatch

Может где-нить нужно прописать ByRef? Опыта у меня просто в vba нет, поэтому и задаю такие глупые вопросы...
Просмотров: 2484
 
Непрочитано 10.10.2008, 15:04
#2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,832


Покажи, как ты получаешь AcLine.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 10.10.2008, 15:27
#3
archee


 
Регистрация: 09.10.2008
Сообщений: 10


Ну у меня есть чертеж с линиями типа AcDbLine, я их извлекаю из чертежа, загоняю в объект типа AcadLine и пытаюсь этот объет передать в функцию, но компилятор ругается.

Пишу код

Dim line_list As Collection
For Each obj in ThisDrawing.ModelSpace
If (obj.ObjectName = "AcDbLine") Then
line_list.Add obj
End If
Next

Теперь у меня в line_list все объекты типа AcDbLine

И теперь я пытаюсь передать эти объекты в функцию:
Dim AcLine As AcadLine

For Each line in line_list
Set AcLine = line <- Здесь все нормально
angle = getAngle(AcLine) <- Ошибка здесь!
Next

Не могу понять почему ошибка выскакивает, ведь присвоение ссылки проходит нормально и объект типа AcDbLine фактически становиться объектом с типом AcadLine. Т.о. не могу передать линию в другую функцию. Чо за фак?
archee вне форума  
 
Непрочитано 10.10.2008, 18:30
#4
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Э.. set то лишний:
Код:
[Выделить все]
Public Function getAngle(line As AcadLine) As Double
Set getAngle = line.Angle
End Function
А что это за линии такие, созданные в ARXе? Можно файло хоть с одной такой линией посмотреть?
Vildar вне форума  
 
Автор темы   Непрочитано 13.10.2008, 11:06
#5
archee


 
Регистрация: 09.10.2008
Сообщений: 10


Убрал Set, выскакивает та же ошибка. В чем дело?
archee вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Передача примитивов в функции

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Предложение: Готовые функции Apelsinov Библиотека функций 170 27.06.2010 23:51
Как создать массив для группы примитивов в Bricscad? Tonic Программирование 8 19.12.2007 09:22
Как связать две функции Holon Программирование 11 30.07.2007 13:32
Выбор примитивов в функции (command) mmax Программирование 12 19.05.2006 20:02
Странности функции rtos FWA Программирование 2 16.02.2005 11:37