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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Портирование .Net + lisp приложений для BricsCAD

Портирование .Net + lisp приложений для BricsCAD

Ответ
Поиск в этой теме
Непрочитано 24.12.2012, 20:05 #1
Портирование .Net + lisp приложений для BricsCAD
Sleekka
 
-
 
Москва
Регистрация: 24.07.2005
Сообщений: 1,335

Итак начну свой рассказ:
Многие программисты на форуме знают меня, для тех кто не знает, я разработчик приложений для AutoCAD и аналогов.
По определенным причинам мне давно симпатизирует приложение BricsCAD (лисп выполняется быстрее, само приложение компактное надежное, дешевое, к разработчикам относятся по человечески ).

.NET + lisp дают широкие возможности для разработки ПО. Раньше я боялся .Net в Автокаде, и даже подумать боялся, что там под BricsCAd.

ССылка на сайт брикса https://www.bricsys.com/bricscad/hel...Ref/index.html

Итак подробности смотрите в моем видео (лучше HD качество переключаемо ):




Коды:

Код:
[Выделить все]
   ; load

(cond
  ((equal (getvar "product") "Bricscad")
   (setq *sl-platform* 1)
  )
  ((equal (getvar "product") "AutoCAD")
   (setq *sl-platform* 2)
  )
  ((equal (getvar "product") "ZWCAD")
   (setq *sl-platform* 3)
  )
  ((setq *sl-platform* 4))
)


(if (equal *sl-platform* 2)
  (vl-cmdf "_.netload"
	   (findfile "ApiTest.dll")
  )
(vl-cmdf "_.netload"
	   (findfile "Bricks.dll")
  )
  )
Просмотров: 4732
 
Непрочитано 24.12.2012, 22:38
#2
Кулик Алексей aka kpblc
Moderator

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


Так в чем собственно вопрос? Времени на просмотр видео нет совсем, говорю сразу.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 24.12.2012, 22:52
#3
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Так в чем собственно вопрос? Времени на просмотр видео нет совсем, говорю сразу.
Видео занимает всего несколько минут. Вряд ли ты настолько занят, что пару минут не можешь выделить при желании. Касательно видео - там у автора нет никакого вопроса (отвечу, раз уж тебе самому лень смотреть )... Краткая суть видео в том, что исходный код .net плагинов автокада, легко компилируется и работает и в брикскаде (как впрочем и в нанокаде). То, что озвучено в видео, собственно не является чем-то неожиданным, но было вполне ожидаемым (поскольку прочие разработчики сапр проектируют свои API по аналогии с автокадом, для совместимости). Про информацию автора насчёт лиспа - я пожалуй воздержусь от подробных комментариев, но если кратко, то он, на мой взгляд, не с той стороны к лошади подходит: не .net приложения нужно грузить лиспами, а лиспы грузить .net плагином (если это он пытался намекнуть на написание самостоятельного загрузчика), поскольку дотнет работает в контексте приложения, в то время как лиспы - в контексте документа (во всяком случае в автокаде). Хотя это уж на любителя экзотики...
Цитата:
Сообщение от Sleekka
Итак начну свой рассказ
как-то не тянет это на "рассказ" по объёму материала
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 24.12.2012 в 23:27.
hwd вне форума  
 
Непрочитано 24.12.2012, 23:47
#4
Кулик Алексей aka kpblc
Moderator

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


hwd, про последовательность загрузки: лично я предпочитаю именно лиспом грузить все нужные плагины. ИМХО вопрос привычки
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 25.12.2012, 00:53
#5
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от hwd Посмотреть сообщение
как-то не тянет это на "рассказ" по объёму материала
ну, э, ну, вы поняли

Цитата:
Сообщение от hwd Посмотреть сообщение
он, на мой взгляд, не с той стороны к лошади подходит
Тоже соглашусь, вот только все эти связки лисп + нет, лисп + впф, лисп + вба, лисп + опендсл..., как мост через Лету, ни к чему хорошему не приведет. Хотя конечно печально, что американские товарищи втянули многих в буриданову историю. Хотели ж как лучше...

Уточню, что вся эта радость доступна не всем, а только счастливым обладателям про и платиновой лицензий.

И еще маленький комментарий по лисп коду, как раз в соседней ветке обсуждались те же грабли с переменными
вот набросал на коленке свой вариант
Код:
[Выделить все]
 (mapcar
  (function
    (lambda (fn)
        (if (findfile fn)
         (vl-cmdf "_.netload" fn))))
   (cdr (assoc  (getvar "product")
              '(( "AutoCAD" . ("ApiTest.dll" ))
               ( "Bricscad" .
                 ("Bricks.dll"
                  "Bricks2.dll"))))))
хотя такой функционал даже излишний
Из последних наблюдений, в брикскаде сильно ограничена глубина рекурсии, что может несколько подпортить первоначальную эйфорию.
Ну и последнее, портировать обратно будет труднее, так что лучше сразу определиться, чего можно и чего не стоит делать
gomer вне форума  
 
Непрочитано 25.12.2012, 08:51
#6
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
hwd, про последовательность загрузки: лично я предпочитаю именно лиспом грузить все нужные плагины. ИМХО вопрос привычки
Привычки бывают и вредными
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 25.12.2012, 10:02
#7
Дима_

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


Про последовательнось загрузки - тут больше важно что пишется изначально - программа на .Net которая имеет небольшие лисп "вкрапления", или-же лисп с .Net модулями - мне лично, в этом разрезе, глубоко по барабану, что работает в контексте документа, а что в контексте приложения - короче я не могу однозначно сказать что делать надо всегда так, или эдак - в зависимости от задачи - то что "правильно" из Net грузить лиспы - это только если смотреть далеко со стороны - вроде да - так правильней, но если Net в проекте в целом используется только для "красоты" - то в случае "неудачи" с версией или еще чем - это вполне можно обработать програмно (не появились функции - alert'нуть об этом - мол можно красивей - обновитесь, и заменить на такую же но "пострашнее" - работать будет) - на кой мне в таком случае грузить "правильно", но не надежно??
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 25.12.2012, 10:32
#8
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Дима_ Посмотреть сообщение
на кой мне в таком случае грузить "правильно", но не надежно??
Вообще-то, если изначально принято решение грузить лиспы .net загрузчиком, зарегистрированным в реестре, то проверка наличия нужного фрэймворка определяется один раз перед тем, как выполнить эту запись в реестре (по грамотному). Кроме того, AutoCAD попросту не загрузится, если на компьютере будет отсутствовать нужная ему (AutoCAD) версия фрэймворка.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 25.12.2012, 11:23
#9
Дима_

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


Цитата:
Сообщение от hwd Посмотреть сообщение
Вообще-то, если изначально принято решение грузить лиспы .net загрузчиком, зарегистрированным в реестре...
Чего??? Кем принято? Если писать модуль под предприятие со своими стандартами для загрузки (да еще со своей версией/ями Автокада) - там вобще на половину проверок можно положить - там никакой проблемы совместимости не возникнет, ежили писать чтоб "везде работало" - тут совсем другая песня - и "управлением из лиспа" можно обработать практически любую "неожиданность" - в отличие от Net - который "чуть что" просто не заработает.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 25.12.2012, 11:24
#10
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Дима_ Посмотреть сообщение
Кем принято?
разработчиком.
Цитата:
Сообщение от Дима_ Посмотреть сообщение
ежили писать чтоб "везде работало" - тут совсем другая песня
в этом случае так же проблем не будет, если руки растут оттуда, откуда надо.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 25.12.2012, 11:32
#11
Кулик Алексей aka kpblc
Moderator

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


Ну вы еще подеритесь, горячие финские парни.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 25.12.2012, 11:37
#12
Дима_

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


Offtop: Мы без злого умысла
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 25.12.2012, 11:41
#13
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Дима_ Посмотреть сообщение
Мы без злого умысла
Offtop: И я вовсе не намекал на Дима_, а обобщал.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Портирование .Net + lisp приложений для BricsCAD

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Zwcad vs Bricscad TanSi Другие CAD системы 200 23.10.2012 15:20
.Net API Bricscad hwd .NET 27 28.01.2012 15:12
{Конкурс} Lisp. Задачки для студентов gomer LISP 10 05.01.2011 16:33
Аналог lisp команды command в .net xsakabsx LISP 3 18.11.2010 23:31
Почему в lisp отсутствует аналог функции (arxload ...) для .NET сборок. Pastor LISP 16 17.11.2010 13:15