|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
27.06.2011, 15:36 | #1 | |
Объединение кусков текста в AutoCad LT (DIESEL?)
Расчет АМС
Москва
Регистрация: 11.03.2008
Сообщений: 113
|
||
Просмотров: 16141
|
|
||||
Впечатление хуже даже чем об LT?
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: Последний раз редактировалось hwd, 07.07.2011 в 12:13. |
||||
|
||||
Цитата:
Если подумать, то и на дизеле можно попробовать это сделать - единственное препятствие - максимальный размер программы на дизеле...
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны. /Сунь Цзы/ |
||||
|
||||
Цитата:
имхо налицо противоборство: автодеск умышленно лишает пользователей возможности кодинга, а пользователи пытаются придумать способ обойти эту преграду. Однако доска в данной ситуации всегда будет "на коне" (имхо). Даже если некий энтузиаст и придумает способ кодинга в LT посредством "левых костылей", то не исключено, что если сие будет чем-то серьёзным - эту "неувязочку" автодеск в дальнейшем устранит, дабы всё было "как надо", ибо не устранить - значит терять деньги.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: Последний раз редактировалось hwd, 08.07.2011 в 08:14. |
||||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
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. |
||||
|
||||
Цитата:
К примеру, во внешней программе генерируем текстовый файл с текстом как примитивом в формате dxf, где нибудь в темпах и вставляем его в чертеж как блок - весь файл, потом расчленяем блок и получаем текст.
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны. /Сунь Цзы/ |
||||
|
||||
С фантазией у меня плохо.
А у тебя похоже хорошо, но... Как предложенный тобой вариант поможет топикстартеру решить его проблему? Костыль с " внешней программой", генерирующей dxf не решит все его проблемы, поскольку автору нужно не только создать новые примитивы, но и удалить из файла уже имеющийся мусор, полученный из pdf (или ты это тоже можешь как-то через dxf обыграть?). Кроме того, обозначенную "внешнюю программу" ты предлагаешь топикстартеру самому писать?
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
|
||||
я только хотел сказать, что задача в нано или лт решаются одинаково сложно. В одном случае, разработчики вообще не парились ради сторонних разработчиков, в другом сделали упрощенную версию с урезанным функционалом. Но это совершенно не значит, что в какой либо программе невозможно решить задачу. В конце концов, если заказчик требует - можно отправить файл в dxf, обработать вообще все тексты, удалить лишнее, объединить нужное и обратно вставить в нано или лайт кад...
По поводу данной темы отвечу - да, я могу решить эту задачу вообще в полном объеме для AutoCAD LT любой версии, но по затратам эта задача и все последующие могут стать значительно дороже перехода на полную версию када.
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны. /Сунь Цзы/ |
||||
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 5,095
|
Цитата:
Цитата:
|
|||
|
||||
Цитата:
ps. Хотя, всякое бывает - сейчас занимаюсь повтором функционала инвентора в автокаде...
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны. /Сунь Цзы/ |
||||
|
||||
Любопытства ради установил AutoCAD 2011 LT, зарегистрировал в реестре тестовый .net-модуль:
Код:
Код:
Чуть позже добавлено: У меня кое-что получилось... Значит так, если в .net-сборке я определяю класс, реализующий IExtentionApplication, то весь код, который я пропишу в методе Initialize будет выполнен в AutoCAD LT - я вывел на консоль автокада сообщение и создал в пространстве модели примитив однострочного текста. Но на этом пока все радости заканчиваются, ибо команды, которые я определяю в этом модуле AutoCAD LT не хочет выполнять. Далее показываю код примера и скрин результата: Код:
Я пытался обойти ограничение банальной обработкой события неизвестной команды: Код:
Но... как говорится: "на безрыбье и лебедь щука" - пока хоть IExtentionApplication можно заюзать, всё равно лучше, чем ничего (хотя я согласен с тем, что сей способ весьма плохо пахнет)...
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: Последний раз редактировалось hwd, 09.07.2011 в 22:45. |
||||
|
||||
Регистрация: 16.12.2009
Сообщений: 214
|
Цитата:
В LT надо придумать как обойти защиту автодеска + написать что-то, что выполняло бы эту задучу, а в нано просто написать скрипт. Цитата:
В нано затраты будут на порядок меньше (а может на порядки). |
|||
|
||||
Если говорить о тексте, то возможно. Если же говорить о проектировании, то будут проблемы даже с оффсетом плоской полилинии (в некоторых сложных случаях)...
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны. /Сунь Цзы/ |
||||
|
||||
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. Очень уж они прожорливы. |
|||
|
||||
Цитата:
Во первых, в экспрессах есть подобная команда. Во вторых, здесь уже есть коды со схожим функционалом. В третьих, многие помогут написать подобную программу из любви к искусству...
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны. /Сунь Цзы/ |
||||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Вот я об єтом и говорил!
Имеется такая книженция, сколько ни читал, ничего не понял... и про autolisp там "ничего" не написано... Имхо Для внешних программ Autocad интересен в связке клиент-сервер, где он является сервером, предлагая программисту методы, "труднореализуемые" "с нуля" (так называемый командный метод) Альтернативой dxf являются скрипты... А дизель не для того создавался, чтоб чего-то там редактировать чего-то там... Это язык для создания макрокоманд и "облагораживания" меню... Насчет нано, то со скриптами там не все в порядке... но это, думаю, временно... |
|||
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 5,095
|
Цитата:
Цитата:
|
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
Цитата:
Думаю, что это специальный саботаж от Autodesk. Если бы функция startapp имела ещё один аргумент - флаг модальности (а это построчки кода), программистам было бы неизмеримо проще. Но тогда они бы не пользовались многой хренью, впариваемой Microsoft. Приходится свои костыли изобретать. |
|||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Сугубо ИХМО - слава богу что такого аргумента нет - модальные режимы запуска уходящие корнями в ДОС - это из разряда на C DXF генерить - какому-то программисту может и проще, но метод этот явно тупиковый и бесперспективный. Есть куча методов синхронизации выполнения задач - вот давайте ими и пользоватся - так может и посложней, но не будем забывать что программа для пользователя должна писаться - а не "как мне проще".
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
Предлагаю интереса ради тем, кто пишет на 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: |
||||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
А более сложные методы "синхронизации" и прочего (COM, например) программисты придумывают "шоб не дать мужику дохтуром стать". Т.е. чтобы не дать инженеру (а подавляющее большинство программ для AutoCAD делают инженеры) делать хорошие программы без участия программистов. Заодно и Autodesk, как жалкий вассал, идет на поводу у Microsoft. Вот раньше ARX-приложения можно было делать в любой среде программирования, в которой можно было скомпилировать dll. А потом - только в MS VS, да с привязкой версий. Теперь вот с .NET то же самое наблюдается... |
|||
|
||||
Честно говоря не понял, что там с дотнетом "наблюдается"... Он не привязан к MS VS, да ещё и к конкретной версии.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Какого года выпуска те "среды" где нету COM? Турбо Паскаль или QBASIC? Вы считаете, что автодеск должен "тянутся" за теми "инжинерами" которые в них программируют? Зачем - чтоб как упомянутый Вами Dennis N левой ногой правое ухо чесать. Лично у меня методы типа: сгенерировать строку параметра->запустить->сгенерить в файл->прочитать из файла->обработать прочитанное->произвести действия с тем что прочитанно - вызывают скептическое настроение и я очень рад тому - что можно использовать более рациональные методы - и не дай бог участвовать в "совместном" проекте с такими трудами инжинеров.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
Неужели кроме Александра Ривилиса никто не пишет на ObjectARX?
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
|
||||
То о чём пишу я - официально предоставленный компанией AutoDesk механизм программирования в AutoCAD.
Твою за ногу! /kpblc/
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: Последний раз редактировалось Кулик Алексей aka kpblc, 11.07.2011 в 22:53. |
||||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
Цитата:
|
|||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
А я собственно не про инжинеров, а про их програмные труды (по крайней мере, те что я видел) - естественно, чтоб что-то написать надо знать, что требуется и без участия инжинера (как заказчика и будущего пользователя этой программы) что-то хорошее вряд-ли выдет. Короче я за то чтоб инжинеры работали на современном уровне (а не, например, листы в модели чертили) и программисты соответственно использовали современные техноголии (не то что что-то новое вышло - сразу все бросай и переписывай - есть вполне состоявшиеся и зарекомендовавшие себя технологии) и забывали про то как было (им) "хорошо" в ДОСе и как сейчас все неправильно.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588
|
ИМХО. в ЛТ все таки оставили один инструмент программирования, это scr файла. Никто не запрещает генерировать эти файлы программно.
Несколько лет назад работал с одним сотрудником, который очень любил FoxPro и очень хотел автоматизации, так он и писал на фокспро генераторы scr на все случаи жизни. В тонкости Я не вникал, но что то у него там работало. |
|||
|
||||
Цитата:
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. |
||||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
запуск программы из 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 |