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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Объединение кусков текста в AutoCad LT (DIESEL?)

Объединение кусков текста в AutoCad LT (DIESEL?)

Ответ
Поиск в этой теме
Непрочитано 27.06.2011, 15:36 #1
Объединение кусков текста в AutoCad LT (DIESEL?)
Kirillspec
 
Расчет АМС
 
Москва
Регистрация: 11.03.2008
Сообщений: 113

Здравствуйте уважаемые специалисты!
Работаю в AutoCAD 2011 LT а по сему ограничен в возможностях по программированию.
Проблема следующая: при конвертации pdf в автокад текст разбивается на куски. Приходится потом вручную их соединять - копировать и вставлять отдельные куски в один мультитекст. Можно ли как-то это ускорить (автоматизировать)? например при помощи макрокомманд (diesel)...
Представляю я себе это примерно так:
выделил первый кусок, а затем кликая на последующие они сами вставляются в первый по очереди и удаляются.
Или выделяются сразу все куски, и после вызова команды они объединяются.

Последний раз редактировалось Kirillspec, 28.06.2011 в 10:51.
Просмотров: 16141
 
Автор темы   Непрочитано 05.07.2011, 13:48
#2
Kirillspec

Расчет АМС
 
Регистрация: 11.03.2008
Москва
Сообщений: 113


Мда, судя по количеству ответов AutoCad LT можно выкидывать на помойку(
Kirillspec вне форума  
 
Непрочитано 05.07.2011, 14:55
#3
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,702
Отправить сообщение для Do$ с помощью Skype™


Нереально в нем такое сделать.
Do$ вне форума  
 
Непрочитано 06.07.2011, 11:24
#4
Сергей Богатов


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



а LISP в нём совсем нет?


уже прочитал что нет...
__________________
Я-проектировщик бывший проектировщик!
Сергей Богатов вне форума  
 
Непрочитано 07.07.2011, 11:07
#5
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,095


Цитата:
Сообщение от Kirillspec Посмотреть сообщение
... AutoCad LT можно выкидывать на помойку(
Я тоже так думал, пока не пересел на Нанокад
kp+ вне форума  
 
Непрочитано 07.07.2011, 12:07
#6
hwd

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


Цитата:
Сообщение от kp+ Посмотреть сообщение
Я тоже так думал, пока не пересел на Нанокад
Впечатление хуже даже чем об LT?
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 07.07.2011 в 12:13.
hwd вне форума  
 
Непрочитано 07.07.2011, 14:07
#7
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,095


Впечатления - В других ветках много сказано, не буду повторять
Короче, работать (пока) нельзя.
LT по сравнению с Nano - чудо высоких технологий (без иронии!)
kp+ вне форума  
 
Непрочитано 07.07.2011, 19:34
#8
gomer

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


Зато в нано можно попытаться сделать скрипт выполняющий, "Объединение кусков текста"...
gomer вне форума  
 
Непрочитано 08.07.2011, 01:03
#9
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


Цитата:
Сообщение от gomer Посмотреть сообщение
Зато в нано можно попытаться сделать скрипт выполняющий, "Объединение кусков текста"...
можно и в лт попытаться вызвать через ком строку внешнюю программу, которой передать выделенные тексты и в ней их объединить, а потом вставить в чертеж.
Если подумать, то и на дизеле можно попробовать это сделать - единственное препятствие - максимальный размер программы на дизеле...
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/
Елпанов Евгений вне форума  
 
Непрочитано 08.07.2011, 08:03
#10
hwd

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


Цитата:
Сообщение от Елпанов Евгений Посмотреть сообщение
вызвать через ком строку внешнюю программу, которой передать выделенные тексты и в ней их объединить, а потом вставить в чертеж.
вызвать-то не проблема (если у LT не урезаны в этом плане возможности)... программа обработает текст и вернёт результат (к примеру выведет его на консоль или запишет в файл), но что дальше? Если у LT нет возможности программирования, как он этот результат получит и обработает?

имхо налицо противоборство: автодеск умышленно лишает пользователей возможности кодинга, а пользователи пытаются придумать способ обойти эту преграду. Однако доска в данной ситуации всегда будет "на коне" (имхо). Даже если некий энтузиаст и придумает способ кодинга в LT посредством "левых костылей", то не исключено, что если сие будет чем-то серьёзным - эту "неувязочку" автодеск в дальнейшем устранит, дабы всё было "как надо", ибо не устранить - значит терять деньги.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 08.07.2011 в 08:14.
hwd вне форума  
 
Непрочитано 08.07.2011, 08:16
#11
gomer

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


http://www.globalcad.com/products/toolboxlt.htm
Правда есть ли поддержка 2011, не известно
gomer вне форума  
 
Непрочитано 08.07.2011, 08:35
#12
hwd

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


Цитата:
Сообщение от gomer Посмотреть сообщение
http://www.globalcad.com/products/toolboxlt.htm
Правда есть ли поддержка 2011, не известно
Да, любопытно...
У меня есть предположение о том, как это сделано, но проверить не могу, т.к. нет LT: если у LT ядро то же, что и у AutoCAD, просто сверху "налеплено" ограничение на вызов appload/netload, то можно попробовать свою библиотеку грузить в LT через реестр, подсунув тем самым LT их для загрузки (возможно, что придётся писать в раздел Application ветки HKLM, если не сработает для HKCU). Различные ARX-библиотеки автокад и так с реестра грузит, так что для самописных arx-модулей это может и пройдёт (проверять нужно), а вот для дотнета - не уверен, но тоже смотреть нужно... При этом нужно будет не забыть и о переменной DEMANDLOAD. Если сие безобразие пройдёт на "ура" - тогда зелёный свет кодингу в LT, ибо грузить либы в автокад можно не через appload/netload, а вызывая для этого непосредственно метод, определённый в ObjectARX и стандартный метод дотнета: Assembly.LoadFrom(...) - главное загрузить своего "загрузчика", а уж остальное дело техники.

п.с. Если в LT жёстко прописан перечень arx-модулей (причём контролируются имена файлов, но не их хеши), которые он должен искать в реестре и грузить, то можно попробовать один из них подменить своим загрузчиком. LT загрузит его, а он уже загрузит тот модуль, который был им подменён и все те либы, которые нужны юзеру.

Повторюсь - это лишь предположение, которое нужно проверять. Не факт, что это пройдёт.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 08.07.2011 в 08:48.
hwd вне форума  
 
Непрочитано 09.07.2011, 11:48
#13
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


Цитата:
Сообщение от hwd Посмотреть сообщение
вызвать-то не проблема (если у LT не урезаны в этом плане возможности)... программа обработает текст и вернёт результат (к примеру выведет его на консоль или запишет в файл), но что дальше? Если у LT нет возможности программирования, как он этот результат получит и обработает?

имхо налицо противоборство: автодеск умышленно лишает пользователей возможности кодинга, а пользователи пытаются придумать способ обойти эту преграду. Однако доска в данной ситуации всегда будет "на коне" (имхо). Даже если некий энтузиаст и придумает способ кодинга в LT посредством "левых костылей", то не исключено, что если сие будет чем-то серьёзным - эту "неувязочку" автодеск в дальнейшем устранит, дабы всё было "как надо", ибо не устранить - значит терять деньги.
Можно же проявить чуточку фантазии...
К примеру, во внешней программе генерируем текстовый файл с текстом как примитивом в формате dxf, где нибудь в темпах и вставляем его в чертеж как блок - весь файл, потом расчленяем блок и получаем текст.
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/
Елпанов Евгений вне форума  
 
Непрочитано 09.07.2011, 15:17
#14
hwd

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


Цитата:
Сообщение от Елпанов Евгений Посмотреть сообщение
Можно же проявить чуточку фантазии...
С фантазией у меня плохо.

Цитата:
Сообщение от Елпанов Евгений Посмотреть сообщение
К примеру, во внешней программе генерируем текстовый файл с текстом как примитивом в формате dxf, где нибудь в темпах и вставляем его в чертеж как блок - весь файл, потом расчленяем блок и получаем текст.
А у тебя похоже хорошо, но... Как предложенный тобой вариант поможет топикстартеру решить его проблему? Костыль с " внешней программой", генерирующей dxf не решит все его проблемы, поскольку автору нужно не только создать новые примитивы, но и удалить из файла уже имеющийся мусор, полученный из pdf (или ты это тоже можешь как-то через dxf обыграть?). Кроме того, обозначенную "внешнюю программу" ты предлагаешь топикстартеру самому писать?
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 09.07.2011, 16:43
#15
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


я только хотел сказать, что задача в нано или лт решаются одинаково сложно. В одном случае, разработчики вообще не парились ради сторонних разработчиков, в другом сделали упрощенную версию с урезанным функционалом. Но это совершенно не значит, что в какой либо программе невозможно решить задачу. В конце концов, если заказчик требует - можно отправить файл в dxf, обработать вообще все тексты, удалить лишнее, объединить нужное и обратно вставить в нано или лайт кад...
По поводу данной темы отвечу - да, я могу решить эту задачу вообще в полном объеме для AutoCAD LT любой версии, но по затратам эта задача и все последующие могут стать значительно дороже перехода на полную версию када.
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/
Елпанов Евгений вне форума  
 
Непрочитано 09.07.2011, 18:58
#16
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,095


Цитата:
По поводу данной темы отвечу - да, я могу решить эту задачу вообще в полном объеме для AutoCAD LT любой версии
Елпанов Евгений, уже раскопал "потайную дверку" Акада ЛТ? Крут! Поделиться секретом не прошу, понятно, что коммерческая тайна, но хоть в каком направлении копать?
Цитата:
Можно же проявить чуточку фантазии...
К примеру, во внешней программе генерируем текстовый файл с текстом как примитивом в формате dxf, где нибудь в темпах и вставляем его в чертеж как блок - весь файл, потом расчленяем блок и получаем текст.
Надеюсь, это была шутка
kp+ вне форума  
 
Непрочитано 09.07.2011, 20:22
#17
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


Цитата:
Сообщение от kp+ Посмотреть сообщение
Елпанов Евгений, уже раскопал "потайную дверку" Акада ЛТ? Крут! Поделиться секретом не прошу, понятно, что коммерческая тайна, но хоть в каком направлении копать?
ничего я не раскопал, но я действительно уверен, что нет нерешаемых задач! Есть задачи, которые по каким либо причинам, никто пока не сделал. Для данной и многих других задач скажу - считаю бесперспективным делать программы, которые уже сделаны - для урезанного автокада это полная версия.

ps. Хотя, всякое бывает - сейчас занимаюсь повтором функционала инвентора в автокаде...
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/
Елпанов Евгений вне форума  
 
Непрочитано 09.07.2011, 20:58
#18
gomer

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


Цитата:
Сообщение от Елпанов Евгений Посмотреть сообщение
всякое бывает
Зачем нужна программа для использования которой нужны дополнительные программы?
gomer вне форума  
 
Непрочитано 09.07.2011, 21:12
#19
hwd

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


Любопытства ради установил AutoCAD 2011 LT, зарегистрировал в реестре тестовый .net-модуль:
Код:
[Выделить все]
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD LT\R16\ACADLT-9001:419\Applications\HelloWorld]
"LOADER"="HelloWorld.dll"
"LOADCTRLS"=dword:00000002
"MANAGED"=dword:00000001
Запустил AutoCAD LT, однако в командной строке вижу это:
Код:
[Выделить все]
Выполняется регенерация модели.
Не удалось загрузить сборку. Сведения об ошибке: 
System.Security.SecurityException: Ошибка безопасности.
в 
Autodesk.AutoCAD.ApplicationServices.ExtensionLoader.ProcessA
ssembly(Assembly 
assembly)
Ошибкой завершилась сборка со следующим параметром Zone:
MyComputer
Команда: _RIBBON
Т.о. AutoCAD LT подхватил .net-модуль в автозагрузке, но отказался его грузить на основании ограничений политики безопасности. Возможно что он проверяет, подписана ли сборка сертификатом Autodesk... Я не силён по части безопасности, но думаю, что это решаемо, если поработать над этим вопросом - главное, что AutoCAD LT берётся грузить сторонний модуль... Кстати, раздел Application в ветке HKCU отсутствует, поэтому для регистрации я использовал HKLM, а библиотеку закинул в основной каталог AutoCAD LT.

Чуть позже добавлено:

У меня кое-что получилось... Значит так, если в .net-сборке я определяю класс, реализующий IExtentionApplication, то весь код, который я пропишу в методе Initialize будет выполнен в AutoCAD LT - я вывел на консоль автокада сообщение и создал в пространстве модели примитив однострочного текста. Но на этом пока все радости заканчиваются, ибо команды, которые я определяю в этом модуле AutoCAD LT не хочет выполнять. Далее показываю код примера и скрин результата:

Код:
[Выделить все]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using acad = Autodesk.AutoCAD.ApplicationServices.Application;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.Geometry;

[assembly: ExtensionApplication(typeof(HelloWorld.Class1))]
[assembly: CommandClass(typeof(HelloWorld.Class1))]

namespace HelloWorld
{
    public sealed class Class1 : IExtensionApplication
    {
        [CommandMethod("bush", "test", CommandFlags.Modal)]
        public void test()
        {
            acad.DocumentManager.MdiActiveDocument.Editor.WriteMessage("Привет Мир!\n");
        }

        public void Initialize()
        {
            Document dwg = acad.DocumentManager.MdiActiveDocument;
            Editor ed = dwg.Editor;
            Database db = dwg.Database;
            ed.WriteMessage("Сборка загружена!\n");
            
            using (Transaction t = db.TransactionManager.StartTransaction())
            {                
                BlockTable bt = (BlockTable) t.GetObject(db.BlockTableId, OpenMode.ForRead);
                
                BlockTableRecord acBlkTblRec;
                acBlkTblRec = t.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;
                
                DBText dt = new DBText();
                dt.SetDatabaseDefaults();
                dt.Position = new Point3d(2, 2, 0);
                dt.Height = 0.5;
                dt.TextString = "Привет, мир!!!";

                acBlkTblRec.AppendEntity(dt);
                t.AddNewlyCreatedDBObject(dt, true);
                
                t.Commit();
            }

        }

        public void Terminate()
        {
            //throw new NotImplementedException();
        }
    }
}
На скрине, в окне консоли AutoCAD LT видно сообщение: "Сборка загружена!", а в пространстве модели видим текст, полученный программно. Но далее в консоли мы так же видим сообщение на тему безопасности... Т.о. разовое выполнение кода в AutoCAD LT доступно уже сейчас, а с командами придётся повозиться.

Я пытался обойти ограничение банальной обработкой события неизвестной команды:
Код:
[Выделить все]
        public void Initialize()
        {
            Document dwg = acad.DocumentManager.MdiActiveDocument;
            Editor ed = dwg.Editor;
            Database db = dwg.Database;
            ed.WriteMessage("Сборка загружена!\n");
            
            using (Transaction t = db.TransactionManager.StartTransaction())
            {                
                BlockTable bt = (BlockTable) t.GetObject(db.BlockTableId, OpenMode.ForRead);
                
                BlockTableRecord acBlkTblRec;
                acBlkTblRec = t.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;
                
                DBText dt = new DBText();
                dt.SetDatabaseDefaults();
                dt.Position = new Point3d(2, 2, 0);
                dt.Height = 0.5;
                dt.TextString = "Привет, мир!!!";

                acBlkTblRec.AppendEntity(dt);
                t.AddNewlyCreatedDBObject(dt, true);
                
                t.Commit();
            }
            dwg.UnknownCommand += new UnknownCommandEventHandler(dwg_UnknownCommand);
        }

        void dwg_UnknownCommand(object sender, UnknownCommandEventArgs e)
        {
            Document dwg = acad.DocumentManager.MdiActiveDocument;
            Editor ed = dwg.Editor;
            Database db = dwg.Database;
            ed.WriteMessage(string.Format("Глобальное имя: {0}\n", e.GlobalCommandName));
            if (e.GlobalCommandName.Trim().ToUpper() == "BUSH.TEST")
                test();
        }
Однако по факту этот трюк не срабатывает - вызов метода dwg_UnknownCommand не происходит (видимо в свете всё той же безопасности)... Есть один маленький положительный момент (в смысле то, что у меня получилось): если я добавляю в метод Initialize код, загружающий др модули (посредством AssemblyLoadFrom), то при наличии в этом модуле IExtensionApplication будет выполнен код и его метода Initialize, с последующим сообщением на тему безопасности. Т.е. при желании можно организовать цикл разовых выполнений кода, имеющегося в разных сборках.

Но... как говорится: "на безрыбье и лебедь щука" - пока хоть IExtentionApplication можно заюзать, всё равно лучше, чем ничего (хотя я согласен с тем, что сей способ весьма плохо пахнет)...
Миниатюры
Нажмите на изображение для увеличения
Название: LT.jpg
Просмотров: 202
Размер:	43.8 Кб
ID:	62734  
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 09.07.2011 в 22:45.
hwd вне форума  
 
Непрочитано 09.07.2011, 22:02
#20
Artem_R


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


Цитата:
Сообщение от Елпанов Евгений Посмотреть сообщение
я только хотел сказать, что задача в нано или лт решаются одинаково сложно.
Почему это одинаково?
В LT надо придумать как обойти защиту автодеска + написать что-то, что выполняло бы эту задучу, а в нано просто написать скрипт.
Цитата:
Сообщение от Елпанов Евгений Посмотреть сообщение
По поводу данной темы отвечу - да, я могу решить эту задачу вообще в полном объеме для AutoCAD LT любой версии, но по затратам эта задача и все последующие могут стать значительно дороже перехода на полную версию када.
Ничего себе одинаково!
В нано затраты будут на порядок меньше (а может на порядки).
Artem_R вне форума  
 
Непрочитано 09.07.2011, 22:08
#21
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


Цитата:
Сообщение от Artem_R Посмотреть сообщение
В нано затраты будут на порядок меньше (а может на порядки).
Если говорить о тексте, то возможно. Если же говорить о проектировании, то будут проблемы даже с оффсетом плоской полилинии (в некоторых сложных случаях)...
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/
Елпанов Евгений вне форума  
 
Непрочитано 10.07.2011, 08:07
#22
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381


Да не надо вообще связываться с LT, если требуется что-то серьезное, связанное с программированием. Да и с "нано". Способы обмана LT были, их можно придумать еще, но они незаконны. Уж лучше пиратский полный AutoCAD использовать. Ну, а если не программировать, то LT вполне решает задачи, для которых выпушен.

Что касается технической законной стороны, то Евгений правильно про DXF писал. Была когда-то написана книга Dennis N. Jump AutoCAD Programming, и переведена в 1992 году под названием "AutoCAD программирование".

Автор в предисловии провозглашает: "Настоящие программисты используют DXF-файлы (и только садисты работают с файлами чертежей - DWG-файлами)".

И далее вся книга посвящена тому, как писать на древнем C программы, генерирующие DXF и DXB-файлы, как использовать сценарии. Конечно, книга ценна описанием работы с DXF, тут спору нет. Но она, возможно, была бы нужна где-то в 1983 году, когда никаких средств программирования не было. Примерно как в LT. Однако издана была, когда уже был и AutoCAD-10 с AutoLISP (автор об этом пишет). На мой личный взгляд именно автор является садомазохистом (и себя мучает, и тех, кого пытается завлечь в свои сети). Скромненько называя их "святыми".

Вот, если хочется как следует помучиться, можно и таким путем идти. Или нанять "святого". Правда на прокорм "святого" средств уйдет побольше, чем на покупку полного лицензионного AutoCAD. Очень уж они прожорливы.
ShaggyDoc вне форума  
 
Непрочитано 10.07.2011, 10:12
#23
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Вот, если хочется как следует помучиться, можно и таким путем идти. Или нанять "святого". Правда на прокорм "святого" средств уйдет побольше, чем на покупку полного лицензионного AutoCAD. Очень уж они прожорливы.
Осталось только добавить, что решение этой задачи с помощью этого форума на базе полного AutoCAD вообще бесплатно!
Во первых, в экспрессах есть подобная команда.
Во вторых, здесь уже есть коды со схожим функционалом.
В третьих, многие помогут написать подобную программу из любви к искусству...
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/
Елпанов Евгений вне форума  
 
Непрочитано 10.07.2011, 10:55
#24
gomer

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


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Способы обмана LT были, их можно придумать еще, но они незаконны.
Вот я об єтом и говорил!
Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Была когда-то написана книга Dennis N. Jump AutoCAD Programming
Имеется такая книженция, сколько ни читал, ничего не понял... и про autolisp там "ничего" не написано...
Имхо Для внешних программ Autocad интересен в связке клиент-сервер, где он является сервером, предлагая программисту методы, "труднореализуемые" "с нуля" (так называемый командный метод) Альтернативой dxf являются скрипты...
А дизель не для того создавался, чтоб чего-то там редактировать чего-то там... Это язык для создания макрокоманд и "облагораживания" меню...
Насчет нано, то со скриптами там не все в порядке... но это, думаю, временно...
gomer вне форума  
 
Непрочитано 10.07.2011, 11:05
#25
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,095


Цитата:
Т.о. разовое выполнение кода в AutoCAD LT доступно уже сейчас.

Цитата:
а с командами придётся повозиться
и хрен с ними! Вынести на внешнюю оболочку подгрузку нужного скрипта - достаточно для целей, не требующих особого интерактива
kp+ вне форума  
 
Непрочитано 10.07.2011, 14:16
#26
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381


Цитата:
Имеется такая книженция, сколько ни читал, ничего не понял... и про autolisp там "ничего" не написано...
Как это не написано - в конце введения упоминается AutoCAD версия 10, написано "я не вдавался" и "АвтоЛИСП" упоминается. Вот если бы "вдавался", эту книгу не писал бы в эти годы.
Цитата:
Вынести на внешнюю оболочку подгрузку нужного скрипта - достаточно для целей, не требующих особого интерактива
Не так уж просто. Да, возможность выполнения каких-то действий во внешней программе - хороший путь во многих случаях. Но после окончания работы внешней программы (например, создания DXF), надо автоматически продолжить работу. Например, вставить этот DXF. Значит должна быть возможность запуска внешней программы в модальном режиме - программа запускается, работатет и только когда закончит работу, управление возвращается в AutoCAD, в вызывающую функцию. Этого и в "большом" AutoCAD нет, что уж про LT говорить.

Думаю, что это специальный саботаж от Autodesk. Если бы функция startapp имела ещё один аргумент - флаг модальности (а это построчки кода), программистам было бы неизмеримо проще. Но тогда они бы не пользовались многой хренью, впариваемой Microsoft. Приходится свои костыли изобретать.
ShaggyDoc вне форума  
 
Непрочитано 11.07.2011, 00:46
#27
Дима_

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


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Думаю, что это специальный саботаж от Autodesk. Если бы функция startapp имела ещё один аргумент - флаг модальности (а это построчки кода), программистам было бы неизмеримо проще.
Сугубо ИХМО - слава богу что такого аргумента нет - модальные режимы запуска уходящие корнями в ДОС - это из разряда на C DXF генерить - какому-то программисту может и проще, но метод этот явно тупиковый и бесперспективный. Есть куча методов синхронизации выполнения задач - вот давайте ими и пользоватся - так может и посложней, но не будем забывать что программа для пользователя должна писаться - а не "как мне проще".
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 11.07.2011, 09:22
#28
hwd

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


Предлагаю интереса ради тем, кто пишет на ObjectARX - черкнуть пару строчек кода, в котором:

1. При загрузке модуля создать в модели примитив (дабы посмотреть, срабатывает ли .net-аналог Initialize)
2. Определить в модуле тестовую команду, выводящую на консоль автокада тот же "Hello World" (дабы посмотреть, подхватятся ли определённые в модуле команды).
3. С помощью этого же модуля попытаться загрузить в AutoCAD LT модули, написанные на lisp/VBA.

На написание этого модуля уйдёт минут 5 с учётом распивания кофе (я, к сожалению не пишу на ObjectARX, потому сам проверить не могу). Затем сей тестовый файл нужно зарегистрировать в разделе Application ветки HKLM, дабы LT смог подхватить его.

Если всё это сработает, то тогда вполне понятно как реализовано то, что показано на видео в посте #11 и для себя можно будет запомнить, что в случае необходимости (в жизни всякое бывает), можно будет выполнить свой код и на LT. Имхо - сие знание было бы не лишним.

п.с. Если у кого-то нет AutoCAD LT - я у себя дома на вирт. машине установил AutoCAD LT 2011 x86, т.о. если напишете под эту версию - могу вечером дома запустить, протестить.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 11.07.2011, 11:32
#29
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381


Цитата:
Сугубо ИХМО - слава богу что такого аргумента нет - модальные режимы запуска уходящие корнями в ДОС - это из разряда на C DXF генерить
Нет, это не из того разряда. При возможности запуска стороннего приложения в "модальном" режиме программист может написать его в любой среде. Разумеется, это должно быть приложение не "типа Word", а типа диалогового окна. Ему можно передать параметры, от него можно получить результат. И это будет программа для пользователя - для него она ничем не отличается от диалога. И такая программа может дать возможности, трудно реализуемые с помощью доступных в AutoCAD штатных методов.

А более сложные методы "синхронизации" и прочего (COM, например) программисты придумывают "шоб не дать мужику дохтуром стать". Т.е. чтобы не дать инженеру (а подавляющее большинство программ для AutoCAD делают инженеры) делать хорошие программы без участия программистов.

Заодно и Autodesk, как жалкий вассал, идет на поводу у Microsoft. Вот раньше ARX-приложения можно было делать в любой среде программирования, в которой можно было скомпилировать dll. А потом - только в MS VS, да с привязкой версий. Теперь вот с .NET то же самое наблюдается...
ShaggyDoc вне форума  
 
Непрочитано 11.07.2011, 11:55
#30
hwd

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


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Теперь вот с .NET то же самое наблюдается...
Честно говоря не понял, что там с дотнетом "наблюдается"... Он не привязан к MS VS, да ещё и к конкретной версии.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 11.07.2011, 12:00
#31
Дима_

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


Какого года выпуска те "среды" где нету COM? Турбо Паскаль или QBASIC? Вы считаете, что автодеск должен "тянутся" за теми "инжинерами" которые в них программируют? Зачем - чтоб как упомянутый Вами Dennis N левой ногой правое ухо чесать. Лично у меня методы типа: сгенерировать строку параметра->запустить->сгенерить в файл->прочитать из файла->обработать прочитанное->произвести действия с тем что прочитанно - вызывают скептическое настроение и я очень рад тому - что можно использовать более рациональные методы - и не дай бог участвовать в "совместном" проекте с такими трудами инжинеров.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 11.07.2011, 21:47
#32
hwd

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


Неужели кроме Александра Ривилиса никто не пишет на ObjectARX?
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 11.07.2011, 22:01
#33
gomer

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


Цитата:
Сообщение от hwd Посмотреть сообщение
Неужели кроме Александра Ривилиса никто не пишет на ObjectARX?
hwd, Неужели не ясно... то кчему вы агитируете - незаконно...
gomer вне форума  
 
Непрочитано 11.07.2011, 22:24
#34
hwd

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


Цитата:
Сообщение от gomer Посмотреть сообщение
незаконно...
То о чём пишу я - официально предоставленный компанией AutoDesk механизм программирования в AutoCAD.
Твою за ногу! /kpblc/
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось Кулик Алексей aka kpblc, 11.07.2011 в 22:53.
hwd вне форума  
 
Непрочитано 11.07.2011, 22:49
#35
gomer

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


ну-ну
gomer вне форума  
 
Непрочитано 12.07.2011, 06:07
#36
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381


Цитата:
Какого года выпуска те "среды" где нету COM? Турбо Паскаль или QBASIC? Вы считаете, что автодеск должен "тянутся" за теми "инжинерами" которые в них программируют?
Причем здесь Турбо Паскаль? Может быть и вполне современная "автономная" программа, например, расчетная. Но её можно и включить в меню AutoCAD, запускать оттуда, и в AutoCAD же использовать результаты расчетов. Например, для отрисовки чего-то.

Цитата:
и не дай бог участвовать в "совместном" проекте с такими трудами инжинеров.
И не дай бог инженерам участвовать в совместном проекте с такими "прогамЁрами", которые делают не то, что надо, и не так как надо. Без инженеров не создано ни одной более или менее приличной инженерной программы. Не от хорошей жизни инженеры вынуждены были и в DOS изучать и TP, и TB, и QB, и теперь продолжают этим заниматься, на другом уровне. Потому, что не с кем им работать.
ShaggyDoc вне форума  
 
Непрочитано 12.07.2011, 09:31
#37
Дима_

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


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Без инженеров не создано ни одной более или менее приличной инженерной программы.
А я собственно не про инжинеров, а про их програмные труды (по крайней мере, те что я видел) - естественно, чтоб что-то написать надо знать, что требуется и без участия инжинера (как заказчика и будущего пользователя этой программы) что-то хорошее вряд-ли выдет. Короче я за то чтоб инжинеры работали на современном уровне (а не, например, листы в модели чертили) и программисты соответственно использовали современные техноголии (не то что что-то новое вышло - сразу все бросай и переписывай - есть вполне состоявшиеся и зарекомендовавшие себя технологии) и забывали про то как было (им) "хорошо" в ДОСе и как сейчас все неправильно.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 21.06.2012, 21:43
#38
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


ИМХО. в ЛТ все таки оставили один инструмент программирования, это scr файла. Никто не запрещает генерировать эти файлы программно.
Несколько лет назад работал с одним сотрудником, который очень любил FoxPro и очень хотел автоматизации, так он и писал на фокспро генераторы scr на все случаи жизни.
В тонкости Я не вникал, но что то у него там работало.
Boxa вне форума  
 
Непрочитано 21.06.2012, 21:46
#39
hwd

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


Цитата:
Сообщение от Boxa Посмотреть сообщение
ИМХО. в ЛТ все таки оставили один инструмент программирования, это scr файла. Никто не запрещает генерировать эти файлы программно.
Несколько лет назад работал с одним сотрудником, который очень любил FoxPro и очень хотел автоматизации, так он и писал на фокспро генераторы scr на все случаи жизни.
В тонкости Я не вникал, но что то у него там работало.
Программирование под LT настолько же "удобно", насколько "удобно" просматривать сайты из консоли linux (без GUI), видя только текст. Это "на любителя".


Important AutoCAD LT Information for Developers
Dear Autodesk Developer Network (ADN) Member:

As you know, AutoCAD LT does not support the development of applications based on ObjectARX, LISP or VBA. AutoCAD LT is degined to deliver cost effective access to full drafting productivity and is not an application development platform. Autodesk is aware that some developers are developing applications for AutoCAD LT and we would like to call your attention to the following:

AutoCAD LT is not an application development platform and does not contain an application development environment.
Autodesk does not support application development for AutoCAD LT.
Users of AutoCAD LT must comply with the provisions of the Software License Agreement that accompanies the product. This license agreement specifically states that use of add-on applications is not acceptable.
ADN members must comply with the terms of their ADN Agreement with Autodesk and with the terms of the ObjectARX license agreement. The ObjectARX license specifically prohibits using the ObjectARX SDK to develop applications for AutoCAD LT. In addition, unauthorized copying of AutoCAD LT or any portion of its code is copyright infringement. Autodesk will vigorously protect its intellectual property rights in AutoCAD LT.
AutoCAD, AutoCAD OEM and the Vertical Desktops offer appropriate environments for developing independent applications. These products contain all necessary APIs, which are fully disclosed, and developer support for them is provided through the Autodesk Developer Network.
Because AutoCAD LT is not a development platform, programming changes may be made in future versions that cause such applications to cease functioning with AutoCAD LT. Autodesk assumes no responsibility should this occur.
To protect AutoCAD LT customers from the risk of unauthorized and unsupported use of AutoCAD LT by third-party developers, and to protect its own image and reputation, Autodesk will take such steps as may be necessary to prevent or impede such unauthorized use.
We thank you for your support and understanding. Please contact us with any questions you may have regarding this issue.

Sincerely,

The ADN team.

Т.е. если окольными путями что-то и удалось запустить в LT сегодня, то не факт, что получится после очередного обновления, либо в след. версии продукта.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 21.06.2012 в 21:58.
hwd вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Объединение кусков текста в AutoCad LT (DIESEL?)

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
запуск программы из AutoCADа kminas Программирование 19 15.06.2012 13:42
Проблемы с вводом текста в AutoCad 2005 lelka AutoCAD 3 01.07.2005 10:40
Конвертирование текста из AutoCad Legin85 AutoCAD 4 05.05.2005 14:22
AUTOCAD 2006 Aragorn AutoCAD 14 01.04.2005 00:55
Что нового в AutoCAD 2005 ilka_t AutoCAD 40 19.05.2004 16:48