Тема: ObjectARX и VisualLISP что выбрать?

Стоит ли переходить на ObjectARX с LISP, на сколько это сложно (и перспективно ли)- освоить OBjectARX C++ после LISP.
Есть ли что сравнивать у этих напралений, или это небо и земля по возможностям с сложности освоения?

Re: ObjectARX и VisualLISP что выбрать?

сам по себе ARX не сильно сложный, есть хелп, эта ветка форума :) да и общий принцип такой же как и у лиспа.
Вся проблема заключается в С++. На нормальное освоение "с нуля" прийдется потратить где-то от года и больше. Но возможностей у С++ чуток по больше :) поэтому на перспективу наверно стоит переходить, хотя решать Вам

Re: ObjectARX и VisualLISP что выбрать?

Прошу не кидать помидорами, но кажется неполной постановка вопроса. ИМХО для выбора есть еще VBA и автоматизация "снаружи" через VB, Delphi и др. Чтобы что-то автоматизировать для внутреннего использования (предполагаю, речь идет именно об этом) С++/ARX не всегда лучший выбор. Изучать ARX безусловно полезно, но не стоит при этом пренебрегать остальными вариантами. Лично я руководствовался принципом: максимум lisp-a для автоматизации каких-то операций в пределах одного чертежа, VBA - если нужно что-то делать "за пределами" отдельного чертежа и/или если требуется немного графического интерфейса (окошки, listview, и т.п.), DLL на Дельфи, если нужна скорость при довольно больших объемах вычислений. На долю C++ остается то, чего нельзя добиться вышеперечисленным - создание новых типов примитивов (а часто ли это оправдано?), всякие разные реакторы на события (некоторые можно и в лиспе сделать), всякие красивые диалоги (например выпадающий список с выбором цвета или типа линии) и т.д. Плюсов такого подхода несколько: при средней квалификации шансов уронить автокад гораздо меньше, чем с помощью ARX, переносимость кода гораздо выше (Интерфейс для lisp-программиста почти не изменился, а с выходом акада 2007 все ARX-приложения приходится не просто пересобирать с новыми библиотеками а переделывать под UNICODE.

Re: ObjectARX и VisualLISP что выбрать?

> Мамкин Мансур
А голова не болит от использования такого количества средств разработки (хотя если честно то и мы с этого начинали) :).

DLL на Дельфи, если нужна скорость при довольно больших объемах вычислений

Это меня даже удивило немного. С каких пор Delphi стал быстрее С++? :)
А по поводу 2007 акада - ну так уж придумали. От этого никуда не даться, но если б все было на одном языке, то было бы гораздо проще переделывать все сразу чем открывать разные куски модуля в разных прогах разработки.
Вот. А теперь про сам С++. ObjectARX значительно проще и легче встраивается в С++. Да и возможностей у языка побольше - по-этому и С++, хотя это на любителя.

Re: ObjectARX и VisualLISP что выбрать?

Мансуру респект. Поддерживаю твое мнение, т.к. каждая задача должна решаться тем путем, который для нее наиболее оптимальный и простой. Если легче написать на lisp, то на кой ... писать на OARX? Если интерфейс удобно разрабатывать в Delphi, то на кой мне lisp и C++? Ну, а на долю С++ останется тот код, от которого просто не отказаться, т.к. OARX только под VC. :(
А Autodesk'у за запоздалую поддержку Unicode надо морду набить. Поддержка unicode косвенная в акаде была через недокументированные функции и программеры енто использовали успешно. Теперь мне лично придется неслабо попотеть, чтобы мой ATable переписать под их народившийся unicode. Хады...

Re: ObjectARX и VisualLISP что выбрать?

Николай пишет:

А голова не болит от использования такого количества средств разработки

Не болит :). Она у меня болит, когда не высплюсь. Думаю, она и не должна болеть - просто опыт позволяет для конкретной задачи выбирать наиболее подходящий инструмент. Особенно если реальный результат нужен в приемлемые сроки и написанное приложение должно работать сразу в локальной сети, не вызывая падения автокада (предвижу реплику про кривые руки :). Также удобна возможность быстрой замены/апгрейда приложений lisp/vba/delphi, находящихся на расшаренном ресурсе в сети. Заменить ARX-файл в такой ситуации будет проблематично.

С каких пор Delphi стал быстрее С++? :)

Я не сравнивал скорость Delphi c C++. Да и неразумно было бы это делать без учета особенностей конкретных компиляторов, опций компиляции и самих процессоров (что хорошо для P3, совсем необязательно хорошо для P4). Имелась в виду разница в скорости между нативной DLL на дельфи и интерпретируемым кодом VBA/lisp. Насчет удобства разработки всего на одном языке - уж извиняйте, в общем случае я не согласен. Но если у кого-то рука набита на C++ - это отдельный вопрос - вопрос привычки.

Re: ObjectARX и VisualLISP что выбрать?

Одно время мы пытались максимальную часть функциональности вынести в лисп (по соображениям, которые изложил Мамкин Мансур). Но, в тоже самое время, мы развивали свою библиотеку на С++, которая значительно упрощает работу с ObjectArx. В итоге, сейчас практически любая задача (из тех, с которыми приходится иметь дело нам) у нас решается на С++ гораздо проще, чем на Лисп или любом другом языке. Собственно, в этом (в широких возможностях по повторному использованию) заключается одна из самых сильных сторон С++.
Т.е. если расчитывать заниматься этим долго и всерьез, то С++ может оказаться очень удачным выбором.

Re: ObjectARX и VisualLISP что выбрать?

А еще не стоит путать ObjectARX, как библиотеку, позволяющую делать собственные объекты, не имеющиеся в AutoCAD, и язык C++.
Если надо создать объект СТЕНА с собственными свойствами, то тут без ObjectARX никуда. Это его принципиальное преимущество.
Если надо создать нечто визуальное (или невизуальное), то писать можно на чем угодно. В Delphi, например, визуальных компонентов во много раз больше, уж так сложилось. С языками у программистов давно нет никаких проблем - знают не меньше десятка.
Но ObjectARX, так как его развивает AutoDesk, обладает громадным недостатком - привязка к конкретным версиям AutoCAD и компилятора. COM-dll или "нативная" dll, сделанная хоть на чем будет работать под любой версией, а вот ARX - нет. Даже если он не использует никаких особенностей очередной версии AutoCAD. Так уж они сговорились.

на сколько это сложно (и перспективно ли)- освоить OBjectARX C++ после LISP

Примерно как скрипку после гитары. У скрипки струн меньше. И "всерьез и надолго" скрипка лучше. Только скрипачей меньше, чем гитаристов.
>archimag
Насчет повторного использования кода C++, его "межплатформенности" и универсальности, в принципе, правда. Но не по отношению к ObjectARX. Вот когда можно было для AutoCAD делать в любой среде, с любым компилятором C++, то универсальность была. Еще в R14 ARX можно было вообще на Delphi делать.

Re: ObjectARX и VisualLISP что выбрать?

> ShaggyDoc
> Но не по отношению к ObjectARX.
Скажем так, мы приложили определенные усилия к тому, что бы это было верно и в отношении ObjectArx smile Основная часть проблема снимается "правильным" выбором библиотек и инструментальных средств...

Re: ObjectARX и VisualLISP что выбрать?

ShaggyDoc пишет:

Но ObjectARX, так как его развивает AutoDesk, обладает громадным недостатком — привязка к конкретным версиям AutoCAD и компилятора.

Это не недостаток, это особенность. Универсального подхода (чтобы работал с разными компиляторами и версиями акада) добится невозможно принципиально. Это все выродится в какой-то доморощенный COM. У меня, например, есть долгосрочный проект, который компилируется под любую версию акада (2000-2002, 2004-2007). Просто надо правильно писать :)

Re: ObjectARX и VisualLISP что выбрать?

Astra пишет:

Стоит ли переходить на ObjectARX с LISP

Без серьезного знания C++/ООП - лучше даже не пытатся.

Re: ObjectARX и VisualLISP что выбрать?

> Exhumer
> Это не недостаток, это особенность
Непр …  21:11:46)

Без серьезного знания C++/ООП — лучше даже не пытатся.

И это точно. Если для очень серьезного изучения LISP достаточно полгода, то с C++ и года маловато будет. Хотя простенький проект ("Превед, мартышка") можно сделать и через день.

Re: ObjectARX и VisualLISP что выбрать?

ShaggyDoc пишет:

Зачем к каждой версии CAD прикупать VS?

Ну не к каждой. 2000, 2000i и 2002 компилялись vc6.0. 2004, 2005 и 2006 компилялись 7.0. Я бы сказал, что вполне умеренно.
С любым другим компилятором было бы не лучше -другой runtime для каждой новой версии.

Re: ObjectARX и VisualLISP что выбрать?

> ShaggyDoc
И в дополнение к Exhumer могу сказать лишь, что стоимость VS по сравнению с ACAD это где-то как "моська и слон". И если писанием программ зарабатываешь денежки, то делиться надо со всеми и с ACADом и с SV и даже с виндузами:)

Re: ObjectARX и VisualLISP что выбрать?

Если сформировалось желание, то надо двигаться в сторону ObjectARX после ликвидации пробелов в C++. Просто не следует надеяться на быстрый успех. Минусы у ARX есть, но плюсов больше.
Задачи попроще лучше решать в LISP. И самое главное - необходимо хорошо разобраться во внутренней структуре документа AutoCAD (примитивы, таблицы, словари и т.д.), это заметно облегчает программирование на любом языке.