CheerfulCoon Posted March 4, 2010 Report Share Posted March 4, 2010 1. есть ли как таковая возможность СОЗДАНИЯ динамического блока? 2. не могли бы выложить кусочек кода для подключения nanocad к экселю (делаю автоматизацию расчета гидравлики и черчения по ним аксонометрических схем). с автокадом я такое провернул по аэродинамике, но подключал там эксель к автокаду по примеру: dim objExc as Excel.Application sub MySub () set objexcel = getobject ("Excel.Application") [код] end sub (это в VBA под автокад) я любитель, программированию не учился нигде, поэтому если не трудно, покажите кусочек кода, где в ячейку экселя вставляется например значение длины данного отрезка 3. имеется ли VBA-подобная собственная среда у вашего продукта? 4. имеется ли аналог "поля", как у офиса или акада, позволяющий создавать текстовые шаблоны? 5. имеется ли возможность передавать скрипты в командную строку? 6. командная строка тут никак не связана с Autolisp как в акаде? эти же вопросы я оставил на rustracker.org (ex-torrents.ru) в комментариях к вашему релизу Quote Link to comment Share on other sites More sharing options...
dows Posted March 15, 2010 Report Share Posted March 15, 2010 Статья, посвященная написанию скриптов под nanoCAD на VBS и JS: http://habrahabr.ru/company/nanosoft/blog/86970/ Думаю, что может быть полезна для пользователей nanoCAD. Плюс приглашаю к обсуждению. Quote Link to comment Share on other sites More sharing options...
vud81 Posted April 8, 2010 Report Share Posted April 8, 2010 1. есть ли как таковая возможность СОЗДАНИЯ динамического блока? 2. не могли бы выложить кусочек кода для подключения nanocad к экселю (делаю автоматизацию расчета гидравлики и черчения по ним аксонометрических схем). с автокадом я такое провернул по аэродинамике, но подключал там эксель к автокаду по примеру: dim objExc as Excel.Application sub MySub () set objexcel = getobject ("Excel.Application") [код] end sub (это в VBA под автокад) я любитель, программированию не учился нигде, поэтому если не трудно, покажите кусочек кода, где в ячейку экселя вставляется например значение длины данного отрезка 3. имеется ли VBA-подобная собственная среда у вашего продукта? 4. имеется ли аналог "поля", как у офиса или акада, позволяющий создавать текстовые шаблоны? 5. имеется ли возможность передавать скрипты в командную строку? 6. командная строка тут никак не связана с Autolisp как в акаде? эти же вопросы я оставил на rustracker.org (ex-torrents.ru) в комментариях к вашему релизу Я пользуюсь вот этим... procedure Start_nanoCad(var nanoCadApp: InanoCADApplication); begin try GetActiveOleObject('nanoCad.Application').QueryInterface(InanoCADApplication, nanoCadApp); except nanoCadApp := nil; end; if not (Assigned(nanoCadApp)) then begin try nanoCadApp := CoApplication.Create; nanoCadApp.Visible := True; except if (Assigned(nanoCadApp)) then begin nanoCadApp.Quit; end; end; end; end; Quote Link to comment Share on other sites More sharing options...
vud81 Posted April 8, 2010 Report Share Posted April 8, 2010 К стати очень легко перевел свои DLL с AutoCad на nanoCad и сделал их универсальными работают в обоих Кадах практически без изменений. Quote Link to comment Share on other sites More sharing options...
dimpop Posted April 12, 2010 Report Share Posted April 12, 2010 Еще одна статья для любителей программирования на скриптах "nanoCAD и сбоку бантик" Интересно, кто из вас уже попробовал писать скрипты для nanoCAD? Кстати, на скриптами едиными - практически весь nanoCAD доступен через COM. Quote Link to comment Share on other sites More sharing options...
vb2005 Posted April 14, 2010 Report Share Posted April 14, 2010 будет ли в версии для разработчиков присутствовать инструментарий для разработки специализированных решений таких как nanoCAD СПДС (например, nanoCAD МНЛЗ) с созданием панелей, меню и т.п.? Quote Link to comment Share on other sites More sharing options...
shoorup Posted April 14, 2010 Report Share Posted April 14, 2010 Боюсь даже начинать что-то изучать для нано... Идеи есть конечно, что попробовать реализовать, но боюсь столкнуться еще и с проблемой багов самой платформы. Всетаки на сегодняшний день нано еще пока сыроват. Если у меня и получится прикрутить какойнить функционал к нанокаду, то я думаю предприятие моё не поскупиться купить N-ое количество лицензий. Пока попробую побаловаться с программированием. Потом отпишусь что получилось Quote Link to comment Share on other sites More sharing options...
dows Posted April 15, 2010 Report Share Posted April 15, 2010 Интересен ваш результат :-) Quote Link to comment Share on other sites More sharing options...
shoorup Posted April 16, 2010 Report Share Posted April 16, 2010 нате Dim str str = "Hello, world!" MsgBox str Quote Link to comment Share on other sites More sharing options...
dimpop Posted April 16, 2010 Report Share Posted April 16, 2010 Есть 2 подхода при написании приложений для платформ САПР: 1. Все своё ношу с собой, то есть интерфейс к платформе сводится к разумному минимуму, при этом все что можно написать в интерфейсе пользователя без привлечения средств платформы так и делается 2. Максимальная интеграция с платформой Оба подхода имеют плюсы и минусы, но среди минусов 2 подхода - полное попадалово при каких-либо телодвижениях разработчика платформы. Это проверено на опыте. Поэтому совет - используйте 1 подход и вам не потребуются интерфейсные "бантики" от Нанософт. Более того, если писать приложения так, чтобы их можно было легко переносить с AutoCAD на Нанокад и далее - везде, вам будет счастье. Что касается прямого ответа на ваш вопрос, то - да, будут. Но оно вам надо? Quote Link to comment Share on other sites More sharing options...
dows Posted April 20, 2010 Report Share Posted April 20, 2010 ну nanoCAD и сбоку бантик поинтереснее будет :-) Quote Link to comment Share on other sites More sharing options...
mike-k20 Posted April 28, 2010 Report Share Posted April 28, 2010 К стати очень легко перевел свои DLL с AutoCad на nanoCad и сделал их универсальными работают в обоих Кадах практически без изменений. Добрый день! Не могли бы Вы поделиться опытом, как Вы смогли переделать свои библиотеки для работы под наноКАД? Может быть, есть описание функций наноКАДа? Я работаю с автоКАДом из Delphi через COM-объекты (примерно так же, как Вы описывали выше создание экзепляра наноКАДа). С уважением, Михаил. Quote Link to comment Share on other sites More sharing options...
vud81 Posted April 29, 2010 Report Share Posted April 29, 2010 Добрый день! Не могли бы Вы поделиться опытом, как Вы смогли переделать свои библиотеки для работы под наноКАД? Может быть, есть описание функций наноКАДа? Я работаю с автоКАДом из Delphi через COM-объекты (примерно так же, как Вы описывали выше создание экзепляра наноКАДа). С уважением, Михаил. День добрый! в Delphi создал два файла Type Library (nanoCAD_TLB и OdaX_TLB). Добавил их в проект и сделал проверку на присутствие наноКада или автоКада, т.е. если наноКад есть его запускает, если нет, то автоКад. function Start_nanoCad(var nanoCadApp: InanoCADApplication): Boolean; begin try GetActiveOleObject('nanoCad.Application').QueryInterface(InanoCADApplication,nanoCadApp); Result := True; Exit; except try CreateOleObject('nanoCad.Application').QueryInterface(InanoCADApplication,nanoCadApp); Result := True; Exit; except nanoCadApp := nil; end; end; Result := False; end; function Start_AutoCad(var AutoCadApp: OleVariant): Boolean; begin try AutoCadApp := GetActiveOleObject('AutoCad.Application'); Result := True; Exit; except try AutoCadApp := CreateOleObject('AutoCad.Application'); Result := True; Exit; except AutoCadApp := Null; end; end; Result := False; end; If Start_nanoCad(nanoCad) then begin //проверка наноКада ncad := nanoCad.ActiveDocument; //Цепляемся к активному документу ... //Выполняем нужные действия end else If Start_AutoCad(AutoCad) then begin //проверка автоКада acad := AutoCad.ActiveDocument; //Цепляемся к активному документу ... //Выполняем нужные действия end else begin ShowMessage('Не найдены ни АвтоКад, ни наноКад. Обратитесь к администратору'); exit; end; у наноКада функции теже, что и у автоКада, поэтому сам код менять практически не пришлось. P.S. Однако при программном запуске наноКада у него отсутствуют все панели (как их загрузить пока не знаю, просто сказал юзерам сначала запускать наноКад, а потом нажимать кнопку). Сейчас разбираюсь как подгрузить DLL в наноКад и добавить свои пункты в меню при его запуске (если у кого есть готовые решения может быть поделитесь). 1 Quote Link to comment Share on other sites More sharing options...
crucified Posted July 7, 2010 Report Share Posted July 7, 2010 Я пробовал подключаться к nanocad через COM из под делфи. Команды, которые работали в autocad работают и в nanocad, это радует А вот выделени объектов, получение количества выделенных объектов не работает. Выделение объектов, в частности, вообще вываливается с эксепшеном. Да и добавление уже существующего слоя также валится, хотя в автокаде все проходит гладенько. Так что работать, имхо, есть над чем, к тому же отечественная САПР - это здорово. Может у кого есть решение указанных проблем? Был бы рад услышать совет от коллег по цеху Quote Link to comment Share on other sites More sharing options...
AlexUkolov Posted July 13, 2010 Report Share Posted July 13, 2010 Вот, как раз, вопрос с COM. Использую "Delphi 2007" и "nanoCAD Механика". Для начала, пытаюсь получить описание библиотеки типов, для того, чтобы воспользоваться всеми преимуществами раннего связывания. Увы, при выполнении операции импорта RAD Studio выдает ошибку. Неприятно, ну да ладно… Пробую подключиться к серверу автоматизации nanoCAD, используя позднее связывание: Var App: OleVariant; Doc: Olevariant; MSpace: OleVariant; VPoint: Olevariant; begin App:= CreateOleObject('nanoCad.Application'); Doc:= Var.ActiveDocument; Проходит на «ура», связь с сервером установлена: ShowMessagae(App.Name +’: ’+ Doc.Name); //наблюдаем «nanoCAD: Без имени0» Пытаюсь отрисовать в пространстве модели точку: VPoint:= VarArrayCreate([0, 2], VarDouble); VPoint[0]:= x; VPoint[1]:= y; VPoint[2]:= 0; MSpace:= Doc.ModelSpace; MSpace.AddPoint(VPoint); Ошибка! EOleSysError: «Ошибка при загрузке библиотеки». В выражении «MSpace:= Doc.ModelSpace;». И как сие понимать? Как будто нет у документа nanoCAD свойства ModelSpace. Или объектная модель nanoCAD не повторяет объектную модель AutoCAD? Кто уже разобрался, подскажите, плиз! И, как все же, *_TLB.pas получить, весьма любопытно. Quote Link to comment Share on other sites More sharing options...
vud81 Posted August 19, 2010 Report Share Posted August 19, 2010 Выкладываю nanoCAD_TLB и OdaX_TLB. Могет кому помогет. nano_TLB.zip Quote Link to comment Share on other sites More sharing options...
vud81 Posted August 19, 2010 Report Share Posted August 19, 2010 Кто уже разобрался, подскажите, плиз! И, как все же, *_TLB.pas получить, весьма любопытно. посмотри тут Quote Link to comment Share on other sites More sharing options...
vud81 Posted September 8, 2010 Report Share Posted September 8, 2010 В nanoCad 2.5 не работают мои dll-ки. В подробности вдаваться не стал, нет времени, но факт. Поэтому дальнейшие испытания новой версии проводиться не будут, а жаль... Quote Link to comment Share on other sites More sharing options...
dows Posted September 15, 2010 Report Share Posted September 15, 2010 vud81, по всей видимости GUIDы у интерфейсов поменялись... обновитесь и будет счастье :-) Quote Link to comment Share on other sites More sharing options...
vud81 Posted September 15, 2010 Report Share Posted September 15, 2010 (edited) vud81, по всей видимости GUIDы у интерфейсов поменялись... обновитесь и будет счастье :-) Не подскажешь чаго обновить и где их взять? OdaX.tlb я обновил, а вот из ncauto.dll не хочет формироваться nanoCAD_TLB. Может быть вы их сами официально выложите, для скачивания. А то, то что в папке "Nanosoft\nanoCAD 2.5\help\api" присутствует помощь это хорошо, но ведь и делом надо это закрепить. Edited September 15, 2010 by vud81 Quote Link to comment Share on other sites More sharing options...
dows Posted September 15, 2010 Report Share Posted September 15, 2010 Вопрос 1: вы 2.5 версию как поставили? снесли 2.0 и поставили заново 2.5 или обновили 2.0 до 2.5? Вопрос 2: вы после перезагрузки компа пытались создать tlb-файл? у вас похоже не зарегистрировалась dll. Проверьте регистрацию библиотеки в системе... Quote Link to comment Share on other sites More sharing options...
vud81 Posted September 15, 2010 Report Share Posted September 15, 2010 Вопрос 1: вы 2.5 версию как поставили? снесли 2.0 и поставили заново 2.5 или обновили 2.0 до 2.5? Вопрос 2: вы после перезагрузки компа пытались создать tlb-файл? у вас похоже не зарегистрировалась dll. Проверьте регистрацию библиотеки в системе... Ответ 1: пытался ставить обоими способами (результат тот же). Ответ 2: да, при установке dll-ки не регистрируется ни ncauto.dll, ни OdaX_csd.dll. После сам зарегистрировал OdaX_csd.dll, а ncauto.dll не хочет выдает ошибку: --------------------------- RegSvr32 --------------------------- D:\Program Files\Nanosoft\nanoCAD 2.5\bin\ncauto.dll была загружена, но найти точку входа для DllRegisterServer не удалось. Зарегистрировать этот файл невозможно. --------------------------- ОК --------------------------- Quote Link to comment Share on other sites More sharing options...
dows Posted September 16, 2010 Report Share Posted September 16, 2010 чтобы зарегистрировать nanoCAD нужно запустить программу с ключем /register nCAD.exe /register Quote Link to comment Share on other sites More sharing options...
vud81 Posted September 16, 2010 Report Share Posted September 16, 2010 чтобы зарегистрировать nanoCAD нужно запустить программу с ключем /register nCAD.exe /register Вот после этого поехало!!! Спасибо! Quote Link to comment Share on other sites More sharing options...
shurik5b Posted December 1, 2010 Report Share Posted December 1, 2010 Как поставить VB-скрипт в автозагрузку nanoCADа? А то получается нужно каждый раз после запуска nanoCADа использовать команду VBS и путь к файлу. В АвтоКАДе, например, есть "Инструменты/Загрузить приложение/Исходный набор". Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.