Перейти к содержанию

Рекомендуемые сообщения

Собрал тестовый кодик

Компилируется и в АС и в нано,

в АС работает,

нано жалится: "ошибка, функция не определена"

using System;

#if NC
  using Teigha.DatabaseServices;
  using Teigha.Runtime;
  using Teigha.Geometry;
  using HostMgd.ApplicationServices;
  using HostMgd.EditorInput;

  using Platform = HostMgd;
  using PlatformDb = Teigha;
#else
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.Runtime;
using AcadApp = Autodesk.AutoCAD.ApplicationServices.Application;

using Platform = Autodesk.AutoCAD;
using PlatformDb = Autodesk.AutoCAD;
#endif

// вызов   (_dr_Test "Тестовый тест")

namespace NetToLisp
{
    public class drTests
    {
        [LispFunction("_dr_Test")]
        public static bool LispTest(ResultBuffer arguments)
        {
            bool res = false;
            Array args = arguments.AsArray();
            if (args.Length == 1)
            {
                string sText = ((TypedValue)(args.GetValue(0))).Value.ToString();
                Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
                ed.WriteMessage("Answer "+sText);
                res = true;
            }
            return res;
        }
    }
}

в эту же dll добавил класику жанра

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
#if NC
  using Teigha.DatabaseServices;
  using Teigha.Runtime;
  using Teigha.Geometry;
  using HostMgd.ApplicationServices;
  using HostMgd.EditorInput;

  using Platform = HostMgd;
  using PlatformDb = Teigha;
#else
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.Runtime;
using AcadApp = Autodesk.AutoCAD.ApplicationServices.Application;

using Platform = Autodesk.AutoCAD;
using PlatformDb = Autodesk.AutoCAD;
#endif

namespace NetToLisp
{
    public class Class1
    {
        [CommandMethod("HelloWorld")]
        public void HelloWorld()
        {
            Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
            ed.WriteMessage("Hello World");
        }
    }
  
}

[CommandMethod("HelloWorld")] работает и в нано и в АС

что не так я делаю с LispFunction!!!

Ссылка на сообщение
Поделиться на другие сайты
16 минут назад, A.Kudrjashov сказал:

эти имена не должны быть одинаковыми ?

хм, автокаду это не мешает)))

более того 

[CommandMethod("dr_del_layer")]
        public void DelLayer()
        {
            Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
            //-------------
            PromptStringOptions opts = new PromptStringOptions("Введите имя удаляемого слоя");
            opts.AllowSpaces = true;
            PromptResult pr = ed.GetString(opts);
            if (PromptStatus.OK == pr.Status)
            {
                string delLayerName = pr.StringResult;
                if (EraseLayer(delLayerName) == true) ed.WriteMessage("Почищено");
                else ed.WriteMessage("Косяк");
            }
            else ed.WriteMessage("Сам отказался.");
        }

вполне себе работает и в нано

----------

не то что мне прям эти лиспфункции в нано нужны

выше в примере, почти  то же самое, только через пользовательский ввод

просто интересно, кто из нас не умеет.. я или nano?

Ссылка на сообщение
Поделиться на другие сайты

интересно. что ответят разработчики... если ответят

Ссылка на сообщение
Поделиться на другие сайты
14 часов назад, doctorraz сказал:

вполне себе работает и в нано


Теоретически, конечно, имена совпадать не обязаны. Но кто же его NC знает, что там он себе думает ?

На VB.Net такая же ерунда ?

Изменено пользователем A.Kudrjashov
Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, A.Kudrjashov сказал:

Но кто же его NC знает, что там он себе думает ?

имя лисп функции должно начинаться с подчеркивания (что бы работало во всех локалях), т.е. одинаково называть лисп функцию и программную функцию не вариант((((

как назло ни одного примера нет ни в нано ни в АК SDK(((

2 часа назад, A.Kudrjashov сказал:

На VB.Net такая же ерунда ?

да проверил, те жэж ...

Цитата

ошибка: функция не определена:

-----------

ладно это был чисто спортивный интерес

CommandMethod вполне

---------

жалко что мы так и не услышали начальника транспортного цеха комментарии nanaразработчиков

Изменено пользователем doctorraz
Ссылка на сообщение
Поделиться на другие сайты
1 час назад, doctorraz сказал:

как назло ни одного примера нет ни в нано ни в АК SDK(((

 

Вот здесь есть готовый проект

http://bushman-andrey.blogspot.com/2012/12/autolispvisual-lisp.html

Ссылка на сообщение
Поделиться на другие сайты

Технология создания LISP функций на .NET в nanoCAD-e не реализована. Создал в Клубе разработчиков пожелание #455.

Ссылка на сообщение
Поделиться на другие сайты
21 минуту назад, ISL сказал:

Создал в Клубе разработчиков пожелание

Спасибо.

Просто я до конца не был уверен, что проблема в nano

То что пожелание это правильно, совсем не горит.

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Расскажите друзьям

    Нравится Официальный форум компании Нанософт? Расскажите друзьям!
×
×
  • Создать...