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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > .NET > Преобразование данных Autolisp для VB.NET

Преобразование данных Autolisp для VB.NET

Ответ
Поиск в этой теме
Непрочитано 22.01.2023, 16:46 #1
Преобразование данных Autolisp для VB.NET
power85
 
Регистрация: 03.02.2017
Сообщений: 56

Здравствуйте помоги пожалуйста преобразовать данные Autolisp для VB.NET. Это функцию буду использовать в Autolisp.
Всего в rbArgs 12 аргументов и все они объявлены см. ниже.

Код:
[Выделить все]
Public Class Yporadich_mleader
    <LispFunction("Find_new_mesto_mleader")>
   Public Function Find_new_mesto_mleader(rbArgs As ResultBuffer)
        If Not rbArgs = Nothing Then
            Dim cpicok_kontyrov As List(Of Object) ' lisp тип: ((() ()) (() ())...)...)
            Dim cpicok_napravlenii_kontyrov As List(Of Object) ' lisp тип: ((() ()...)...)
            Dim koord_ramok_mleader As List(Of Object) ' lisp тип: ((() ()...)...)
            Dim koord_conect_text_mleader As List(Of Object) ' lisp тип: ((() ()...)...)
            Dim koord_x_vniz_left_vibora As Double ' lisp тип: десятичное число
            Dim koord_y_vniz_left_vibora As Double ' lisp тип: десятичное число
            Dim kol_strok_area_work As Integer ' lisp тип: целое число
            Dim kol_stolb_area_work As Integer ' lisp тип: целое число
            Dim cpicok_koordi_ramki_true As List(Of Object) ' lisp тип: ((() ()...)...)
            Dim matrix_in_ramok_koord_kontyrov As Object() ' lisp тип: ((() ()) (() ())...)...)
            Dim matrix_out_in_ramok_koord_kontyrov As Dictionary(Of String, Object) ' lisp тип: ((key . () ()...)...)
            Dim tochek_strelok_mleader As List(Of Object) ' lisp тип: ((() ()...)...)
            Dim nCnt As Integer = -1
            For Each Arg As TypedValue In rbArgs
                nCnt = nCnt + 1
                If nCnt = 0 Then
                    ??????
                End If
                ??????
            Next
            
 End Function
End Class

Последний раз редактировалось power85, 22.01.2023 в 18:16.
Просмотров: 2502
 
Непрочитано 22.01.2023, 17:29
#2
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


в свое время Александр Ривилис писал
Цитата:
Передача большого списка (десятки тысяч элементов и больше) из VisualLisp в lisp-функцию, созданную при помощи .NET очень не рекомендую. Замечал очень большие задержки именно на этапе передачи списка. Причем это не только в .NET, но и в чистом ObjectARX.
Сергей812 вне форума  
 
Автор темы   Непрочитано 22.01.2023, 17:37
#3
power85


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


У меня десятки тысяч элементов не будет. Я эту фикцию делаю для себя. Время не проблема.
power85 вне форума  
 
Непрочитано 22.01.2023, 17:55
#4
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


как человек ленивый, поставил бы на входе в функцию точку останова и посмотрел бы в отладчике - что и в каком виде передали через ResultBuffer)
Сергей812 вне форума  
 
Автор темы   Непрочитано 22.01.2023, 18:14
#5
power85


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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
как человек ленивый, поставил бы на входе в функцию точку останова и посмотрел бы в отладчике - что и в каком виде передали через ResultBuffer)
А как мне это сделать? Функцию Find_new_mesto_mleader я только могу запустить в Autocad же.
И если ли возможно NET функции отлаживать в Autocad?
power85 вне форума  
 
Непрочитано 22.01.2023, 19:25
#6
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


а как иначе вылавливать логические runtime ошибки? - например
Сергей812 вне форума  
 
Автор темы   Непрочитано 22.01.2023, 19:36
#7
power85


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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
а как иначе вылавливать логические runtime ошибки? - например
Интересно. Посмотрим.
power85 вне форума  
 
Непрочитано 22.01.2023, 19:53
#8
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
а как иначе вылавливать логические runtime ошибки? - например
Только вот лично мне при попытке посмотреть на ролик вываливается Access Denied (правда, я пока VPN не пользую).
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 22.01.2023, 20:18
#9
power85


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Только вот лично мне при попытке посмотреть на ролик вываливается Access Denied (правда, я пока VPN не пользую).
Через VPN показывает.
power85 вне форума  
 
Непрочитано 22.01.2023, 20:59
1 | #10
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


Кулик Алексей aka kpblc, но картинки то показывает) Можно на пока еще без впн трубе - акад как внешний процесс
Сергей812 вне форума  
 
Автор темы   Непрочитано 22.01.2023, 21:33
#11
power85


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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
как человек ленивый, поставил бы на входе в функцию точку останова и посмотрел бы в отладчике - что и в каком виде передали через ResultBuffer)
Вот что выдал (см. во вложении картинку). Там какой то список размером 2300 элементов. Разделение на 12 аргументов не видно.
Миниатюры
Нажмите на изображение для увеличения
Название: list.JPG
Просмотров: 28
Размер:	263.2 Кб
ID:	252757  
power85 вне форума  
 
Непрочитано 22.01.2023, 21:53
#12
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


Цитата:
Сообщение от power85 Посмотреть сообщение
Dim cpicok_kontyrov As List(Of Object) ' lisp тип: ((() ()) (() ())...)...)
(1) 5016 - начало списка
(2...13) 5002 - 2D Point (2 вещественных числа)
(14) 5017 - конец списка

и т.д. Никто и не обещал, что данные будут сразу в вашем формате - собственно, вижуал студия даже об нем и не знает)
Сергей812 вне форума  
 
Автор темы   Непрочитано 22.01.2023, 22:27
#13
power85


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


Спасибо за ответы.
Понятно. А как понять что начинается другой аргумент в списке у меня autolisp их целых 12 ввел?
Наверное 5016 и 5016 в подряд это начало аргумента, а 5017 и 5017 в подряд это конец аргумента.
И еще вопрос последовательноcть аргументов в списке у них какае же как autolisp?
power85 вне форума  
 
Непрочитано 22.01.2023, 23:08
#14
Кулик Алексей aka kpblc
Moderator

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


См. в сторону LispDataType (если я правильно помню) - там должно быть нечто типа ListBegin / ListEnd.
ЗЫ https://adndevblog.typepad.com/autoc...t-to-lisp.html ?

----- добавлено через 20 сек. -----
+ http://www.theswamp.org/index.php?topic=35714.0
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 23.01.2023, 00:31
#15
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


Цитата:
Сообщение от power85 Посмотреть сообщение
И еще вопрос последовательноcть аргументов в списке у них какае же как autolisp?
а иначе как вообще можно разобрать данные, когда в буфере они по сути безымянные...
Сергей812 вне форума  
 
Автор темы   Непрочитано 23.01.2023, 09:52
#16
power85


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


Хорошо. Спасибо.
power85 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > .NET > Преобразование данных Autolisp для VB.NET

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно ли преобразовать из типа данных STR в тип данных SUBR granit201z Программирование 12 02.03.2015 10:27
Какой эквивалент в AutoLISP есть COM-овскому типу данных SAFEARRAY (массиву строк BSTR) lexluther LISP 3 03.08.2009 19:36