|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
08.04.2021, 17:09 | #1 | |
Создание листа и вписывание в него объекта на LISP
Инженер-конструктор
Крым
Регистрация: 04.06.2014
Сообщений: 15
|
||
Просмотров: 7790
|
|
||||
Инженер-конструктор Регистрация: 04.06.2014
Крым
Сообщений: 15
|
Потому что внутреннюю кухню автокада я не знаю, и то каким образом связать автокад и плюсы.
Да и как мне кажется поставленная задача в лиспе займет строк 30-50. Смысл это делать на плюсах? хотя может я чего и не знаю. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,046
|
Цитата:
2. Ну тут либо изучать внутреннюю программную модель акада на хорошо знакомом C++, либо изучать внутреннюю программную модель акада плюс весьма своеобразный списочный лисп) для затравки - собственно, это официальный сайт поддержки разработчиков на русском) |
|||
|
||||
Инженер-конструктор Регистрация: 04.06.2014
Крым
Сообщений: 15
|
nickname2019, спасибо, но это именно то о чём я и говорил про С++ в связке с Автокадом: где искать описание классов, таких как AcDViewPort и их методов, как мне узнать названия функций для выбора объектов, создания листа, переключения в этот лист, переименования листа и т.п. С++ в данном случае у меня вызвает массу вопросов: в чём писать код? В студии? Какой формат выходного файла должен быть? ARX или dll, или ещё что-то. Если это ARX, то я знаю как его подключить. Если dll, то я хз как подключать его к автокаду (думаю не сложно, но я в данном направлении даже не копал). Вообще C++ был упомянут, чтобы указать что я понимаю что такое программирование и только. А писать на нём плагин с таким "простым" функционалом - по моему - овчинка выделки не стоит.
Мне всего-то нужно сделать: получить объект в модели, найти в нём координаты верхней-правой и нижней-левой точек и запомнить их. Создать лист и переключиться в него. Потом переключиться в видовой экран и вызвать зум->рамка, в которую передать в 2 точки. Закрыть видовой экран и вернуться в модель. Ладно, пойду копать книги по AutoLISPу. |
|||
|
||||
Регистрация: 18.11.2019
Сообщений: 1,521
|
Цитата:
Имхо, Вам проще разобраться с с++ https://forum.dwg.ru/showthread.php?t=158219 У лиспа есть ограничения (и тормоза), на нем не всё можно сделать. Лучше месяц потратить на изучение, потом за пять минут сделать все, что нужно, чем тратить время на лисп, наработать сотни строк кода, а потом выяснить, что какую-то задачу сделать не выйдет. Последний раз редактировалось nickname2019, 08.04.2021 в 19:41. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,046
|
Цитата:
|
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,589
|
На плюсах же можно писать managed .NET dll... а значит строгих ограничений на версию студии и компиляцию под версии можно не касаться...
Да и порог вхождения .NET API у автокада несколько ниже, чем ARX, а примеров кода в инете больше. В любом случае удачи Вам. Почему? Чем это принципиально отличается от работы в любом другом блоке, в том числе и в модели? |
|||
|
||||
С одной стороны, на лиспе все давно написано рядом.
С другой стороны, какая разница на чем писать. если есть навыки писать на С++ почему бы и нет? Цитата:
можно в кад стучатся через lisp (vla-get-Utility (vla-get-activeDocument (vlax-get-acad-object))) а можно и через .net Autodesk.AutoCAD.ApplicationServices.DocumentManager.MdiActiveDocument.Editor ИМХО. Лисп интересен инженеру-НЕпрограммисту низким порогом входа и возможностью написать костыль на бегу.
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы... |
||||
|
||||
Инженер-конструктор Регистрация: 04.06.2014
Крым
Сообщений: 15
|
Спасибо за подсказки.
Для себя решил, что в качестве обучения и для предметного понимания разницы, попробую решить эту задачу двумя способами: на Lisp'е и на С++. О результате обязательно отпишусь в этой теме. Всем лёгкой пятницы. |
|||
|
||||
Цитата:
Что то мне подсказывает, что имея под рукой студию и опыт работы с ней, разобраться в структуре када будет даже проще, чем копать лисп. И еще один неоспоримый факт: лисп реализует доступ не ко всей модели када. Второй факт (где можно поспорить): лисп реализует доступ к модели када через задний проход весьма изощренными способами. Ну и на закуску, тут Алексей недавно тесты проводил, где одна и та же задача на .net реализуется в 600 раз быстрей чем на VisualLisp. з.ы. я бы ставил вопрос не Lisp против C++, а C# против Pyton против C++. Тут суть одна, что это .net. обычно C++ используют для серьезных программ под кад, когда надо создавать свои новые объекты со своим поведением.
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы... |
||||
|
||||
Регистрация: 18.11.2019
Сообщений: 1,521
|
Цитата:
Т.е. не нужно настраивать виды из листа, туда-сюда мышкой тыкать, масштаб аннотаций выбирать, ждать регенерации и т.д. Но я занимаюсь чертежами КР, КЖ, КМ, тут своя специфика. |
|||
|
||||
Инженер-конструктор Регистрация: 04.06.2014
Крым
Сообщений: 15
|
Вот и начались танцы с бубном, которых я опасался при использовании С++. Плохо. Очень плохо((
/* * Версия SDK: 2016 * http://download.autodesk.com/esd/obj...and_32_Bit.exe * Совместимость с версиями AutoCAD: 2016 * Версии Microsoft Visual Studio: 2012 * Версия SDK: 2011 * http://download.autodesk.com/esd/obj...and_32_Bit.exe * Совместимость с версиями AutoCAD: 2011, 2012 * Версии Microsoft Visual Studio: 2008 SP1 */ Так как я указывал, что "Программа должна работать в AutoCAD 2011 и 2016", помимо версий SDK 2011 и 2016, мне ещё нужно скачать и установить VS 2012 и VS 2008. А "Visual Studio 2019 можно использовать только для создания arx-приложений для AutoCAD 2021" @ Александр Ривилис Итог: лучше уж написать костыль на лиспе (который будет работать и на 2011 и на 2016 версии автокада), чем я буду ставить 2 студии, а потом выискивать причины проблем линковки разных версий. |
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,589
|
[igrik], а зачем Вы стали писать arx?!?! Ранее писал, что на C++ можно писать managed .NET dll и не вляпываться в проблемы с версиями, зачем усложнять себе жизнь, а потом героически преодолевать эти сложности?
https://docs.microsoft.com/ru-ru/cpp...?view=msvc-160 |
|||
|
||||
Инженер-конструктор Регистрация: 04.06.2014
Крым
Сообщений: 15
|
Цитата:
|
|||
|
||||
Инженер-конструктор Регистрация: 04.06.2014
Крым
Сообщений: 15
|
Так, на лиспе готово (смотреть первый пост).
Тонну сайтов пришлось перелопатить... Но я так и не нашёл я нормально-сформированной справки по vla-* Теперь буду пробовать запилить через .NET dll UPD 21/05/2022: Сделано на .NET dll. Подробнее тут Последний раз редактировалось [igrik], 21.05.2022 в 13:12. Причина: Реализация на .NET dll |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
LISP. Создание таблицы координат. | 741520 | LISP | 2 | 30.03.2016 09:22 |
Создание Lisp для расчета глубины траншеи | Тимур С. | LISP | 17 | 24.03.2016 20:57 |
Как создать объект SPDS Extension из visual lisp? | Владас | LISP | 5 | 26.05.2015 15:12 |
Lisp. Создание слоя(слоёв) из мастер-списка. Изменения в программу CLAY от JefferyPSanders | 99xt1 | LISP | 24 | 01.12.2014 12:24 |
Lisp - ошибка определения длины объекта | Лиспер | LISP | 8 | 30.11.2010 00:37 |