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

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

list >>> safearray

Ответ
Поиск в этой теме
Непрочитано 06.01.2009, 15:42 #1
list >>> safearray
Sleekka
 
-
 
Москва
Регистрация: 24.07.2005
Сообщений: 1,335

Подскажите подалуйста
Имею список вида:
Код:
[Выделить все]
(((-2.85447e+006 -944361.0 57910.7) (-2.85447e+006 -944361.0 57910.7) 
(-2.85447e+006 -944361.0 57910.7)) ((-2.77761e+006 -1.38059e+006 183074.0) 
(-2.77761e+006 -1.38059e+006 183074.0) (-2.77761e+006 -1.38059e+006 183074.0)) 
((-2.75758e+006 -1.84882e+006 204664.0) (-2.75758e+006 -1.84882e+006 204664.0) 
(-2.75758e+006 -1.84882e+006 204664.0)))
Для метода (vla-Add3Dmesh требуется безопасный массив, как его получить?
Просмотров: 3622
 
Непрочитано 06.01.2009, 16:17
#2
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Примеры
http://www.cadforums.net/ftopic2686.html
http://student.fsid.cvut.cz/~kubicek...ISP/grafun.lsp
http://www.caduser.ru/cgi-bin/f1/board.cgi?t=17851cB
По последней ссылке посмотри ф-цию safe-points
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 06.01.2009, 16:24
#3
Donhuan

Проектировщик СС
 
Регистрация: 24.06.2008
Минск
Сообщений: 134
<phrase 1=


Не тестировал, но возожно так:
Код:
[Выделить все]
((lambda (x)
   (vlax-safearray-fill
     (vlax-make-safearray
       vlax-vbdouble
       (cons 0 (- (length x) 1))
     ) ;_ end of vlax-make-safearray
     x
   ) ;_ end of vlax-safearray-fill
 ) ;_ end of lambda
  (apply 'append (apply 'append list_point))
)
p.s. при создании сетки важно правильно занести в список столбцы и ряды точек.
Donhuan вне форума  
 
Автор темы   Непрочитано 06.01.2009, 17:54
#4
Sleekka

-
 
Регистрация: 24.07.2005
Москва
Сообщений: 1,335


Разобрался, СПАСИБО, чтобы я без вас делал!!!
Sleekka вне форума  
 
Непрочитано 15.09.2014, 20:36
#5
Lorens

Учусь
 
Регистрация: 19.04.2007
Санкт-Петербург
Сообщений: 624


А вот мне не разобраться

ситуация схожая - хочу создать полилинию addPolyline, требуется массив (безопасный) у меня точки загнаны в варианты. А вот как из набора вариантов получить массив я не понимаю - штудирую Полещука, но как то видимо не на то я учился
Lorens вне форума  
 
Непрочитано 15.09.2014, 20:41
#6
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Цитата:
Сообщение от Lorens Посмотреть сообщение
А вот как из набора вариантов
А что в Вашем понимании набор
з.ы. а лучше сразу код с комментариями чего от него хотим...
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 15.09.2014, 20:46
#7
Lorens

Учусь
 
Регистрация: 19.04.2007
Санкт-Петербург
Сообщений: 624


Функцией vlax-3d-point насоздавал вариантов с тремя вещественными числами (координаты точек). Хочу их всунуть в addPolyline и.и.и подвисаю.

Грубо говоря:

(setq po1 (vlax-3d-point 0 0))
(setq po2 (vla-polarpoint objU po1 (/ pi 2) 1000))

(setq po3 (vlax-3d-point 1000 0))
(setq po4 (vla-polarpoint objU po3 (/ pi 2) 1000))

(setq varian (vlax-make-safearray vlax-vbVariant '(0 . 12)))
(vlax-safearray-fill varian (list po1 po2 po3 po4))

(vla-addPolyline objM varian)



пока они у меня в разных переменных хранятся.

p.s. Понимаю, что вопрос дурацкий, но мне надо разбираться с ActivX. А как то пока не получается

Последний раз редактировалось Lorens, 15.09.2014 в 20:58.
Lorens вне форума  
 
Непрочитано 15.09.2014, 21:57
#8
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,176


PLTOOLS выложены с исходниками. Там можно найти множество примеров программной работы с полилиниями. А возможно, и готовое решение Вашей реальной задачи.
kp+ вне форума  
 
Непрочитано 15.09.2014, 23:30
#9
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


DwgRuLispLib: Преобразование variant или safearray в список
там в примерах
Код:
[Выделить все]
(setq lst '(1 2 3))
(setq lst1 (vlax-make-variant (vlax-safearray-fill
   (vlax-make-safearray vlax-vbVariant (cons 0 (1- (length Lst))))
   '(1 2 3))))
Посмотри здесь функции LM:SafearrayVarian и LM:PointVariant
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 16.09.2014, 11:39
#10
Lorens

Учусь
 
Регистрация: 19.04.2007
Санкт-Петербург
Сообщений: 624


Разобрался - оказывается safearray-fill заполняет массив только списком из чисел.
Lorens вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > list >>> safearray



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с экспортом координат полилинии в txt alost AutoCAD 31 10.01.2020 23:35
Как получить доступ к таблице Access Cleper Программирование 22 02.02.2016 07:05
3D Konstruktor для проектировщиков КМ. Дима_ Готовые программы 17 10.07.2008 10:03
Как считать координаты курсора относительно окна AutoCAD? Spirit Программирование 4 25.10.2007 08:50
Помогите с автолиспом MaloI LISP 12 26.12.2006 08:05