Как реализовать тип данных ref Object[] в AutoLispe?

Автор Тема: Как реализовать тип данных ref Object[] в AutoLispe?  (Прочитано 1433 раз)

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

Оффлайн alex-63Автор темы

  • ADN OPEN
  • Сообщений: 21
  • Карма: 0
  • Skype: alx_14521963
Какой тип данных соответствует  ссылке (exampe  C#   ref par
Код - C# [Выбрать]
  1.         object par = new Object[] { "" };
  2.         Obj.GetMnParam(ref par, OBP_VALUES);
  3.  
)
На JavaScript
Код - Javascript [Выбрать]
  1. var arrParam = new Array();
  2.       Obj.GetMnParam(arrParam, OBP_VALUES); // Получаем значения параметров
  3.  


в AutoLispe?

Реализация на AutoLIspe:
Импортирую typelibrary
Код - Auto/Visual Lisp [Выбрать]
  1.   (vlax-Import-Type-Library :tlb-filename file :methods-prefix    "sm-" :properties-prefix "sp-" :constants-prefix   "sc-")
  2.  (setq  refpar (vlax-make-variant (vlax-make-safearray  vlax-vbObject (cons 0 0))))
  3. (defun ak_list->variantArray0 (ptsList)    
  4. (vlax-make-variant (vlax-safearray-fill (vlax-make-safearray  vlax-vbvariant; element type
  5.                                           (cons 0 ;from
  6.                                                 (- (length ptsList) 1) ;to
  7.                                                 ) ; array dimension
  8.                                         )                      
  9.                         (mapcar 'vlax-make-variant ptsList)
  10.                      );fill
  11.     )                                  
  12. )
  13.  
(setq  refpar   (ak_list->variantArray0 '("")))
Ни этот (sm-GetMnParam obj refpar OBP_VALUES);
Ни этот вызов не работает (sm-GetMnParam  obj  'refpar OBP_VALUES);
Зато передача по значению срабатывает :
(setq  lPtsArray (ak_list->variantArray0 lPts)) ;     // получить массив координат
(if PL (sm-AddPoints PL  lPtsArray))
Есть ли возможность реализовать в Autolispe  вызов типа данных ref ? Как обойти эту проблему?


Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13922
  • Карма: 1793
  • Рыцарь ObjectARX
  • Skype: rivilis
Есть ли возможность реализовать в Autolispe  вызов типа данных ref ? Как обойти эту проблему?
Нет. Не пытайся передавать C#<->VisualLisp COM/ActiveX объекты.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение