21
AutoCAD .NET API / Как реализовать тип данных ref Object[] в AutoLispe?
« Последний ответ от alex-63 03-06-2025, 13:47:20 »Какой тип данных соответствует ссылке (exampe C# ref par
)
На JavaScript
в AutoLispe?
Реализация на AutoLIspe:
Импортирую typelibrary
(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 ? Как обойти эту проблему?
Код - C# [Выбрать]
- object par = new Object[] { "" };
- Obj.GetMnParam(ref par, OBP_VALUES);
На JavaScript
Код - Javascript [Выбрать]
- var arrParam = new Array();
- Obj.GetMnParam(arrParam, OBP_VALUES); // Получаем значения параметров
в AutoLispe?
Реализация на AutoLIspe:
Импортирую typelibrary
Код - Auto/Visual Lisp [Выбрать]
- (vlax-Import-Type-Library :tlb-filename file :methods-prefix "sm-" :properties-prefix "sp-" :constants-prefix "sc-")
- (setq refpar (vlax-make-variant (vlax-make-safearray vlax-vbObject (cons 0 0))))
- (defun ak_list->variantArray0 (ptsList)
- (vlax-make-variant (vlax-safearray-fill (vlax-make-safearray vlax-vbvariant; element type
- (cons 0 ;from
- (- (length ptsList) 1) ;to
- ) ; array dimension
- )
- (mapcar 'vlax-make-variant ptsList)
- );fill
- )
- )
Ни этот (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 ? Как обойти эту проблему?