|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Как получить скопированных(вставленны) набор примитивов?
Регистрация: 30.03.2015
Сообщений: 153
|
||
Просмотров: 2365
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
А откуда код будет знать, какие примитивы "скопированы", а какие "нет"? Чисто теоретически можно написать свою обработку: получить послдений примитив entlast, выполнить команду, и потом через entnext получать все примитивы и засовывать их хоть в набор, хоть в список.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
либо, например, через события - но не уверен, что на лиспе будет без подтормаживаний работать при заметном количестве объектов
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
В этом контексте что события, что реакторы - те же Фаберже, вид сбоку ИМХО.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 30.03.2015
Сообщений: 153
|
Я про это думал (про реакторы, события - не ахти (компиляция почти на каждую версию акада или через 3) //иногда приходится менять версию акада) => но решил спросить, вдруг есть более тривиальное решение, но просто не знаю...
Последний раз редактировалось prajdziswet, 25.01.2024 в 08:53. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
С чего вдруг уверенность, что "надо пересобирать"? Если лисп - то не надо. Если NET - то далеко не факт что понадобится.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Я пользуюсь вот этим кодом. Когда-то давно нашёл основу тут, на форуме, переделал под свои нужды. Загружаем лисп в автозагрузку, активируется реактор. Реагирует он на команды, создающие новые объекты, а после завершения этих команд добавляет в переменную набор новых объектов. Подсветить новые объекты нужно командой GNS (или GET-NEW-SELECT). Думаю, должно подойти.
Код:
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
Причем 100% гарантии, что лисп код будет работать на всех версиях акада без доработки - тоже нет. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Offtop: Скажем так, я не могу гарантировать, что код сработает, если пользователь руками вызовет соответствующую команду в английском каде и на нижнем регистре.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 30.03.2015
Сообщений: 153
|
Цитата:
- Насчет лиспа у меня больше уверености, мои файлики миниум по 10 год отработали, да тут реакторы - есть нюансы (очистка чертежа, отработка и т.д)...- но мне большая уверенность в лиспе, что я столкнусь с проблемой перекомпиляции и т.д ----- добавлено через ~8 мин. ----- Спасибо, остальное дело техники - можно еще почистить (например взрыв, изменение - набор можно получить (ssget "_p"), т.е не на все команды вешать).+ добавить проверку == но как говорю тут уже дело техники... Спасибо Последний раз редактировалось prajdziswet, 26.01.2024 в 10:59. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Сказанное не есть правда на 100%.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Offtop:
Цитата:
А .Net - это сборки в промежуточном байт-коде CIL (MSIL), которые при загрузке в акад разворачиваются для исполнения в виртуальной машине. И за счет обратной совместимости .Net как раз .Net надстройка имеет определенные шансы в виде запуска старой версии сборки на новых версиях акада с новой версией ядра. Если, конечно, в коде не используются специфические вещи типа того же экспорта функций. |
|||
![]() |
|
||||
Регистрация: 15.11.2007
Сообщений: 40
|
Может это поможет:
https://dwg.ru/b/klisp/397 |
|||
![]() |
|
||||
Регистрация: 30.03.2015
Сообщений: 153
|
Давно писал для автокада на Net и не совсем прозрачно выразился, может так лучше будет "для лучшей совместимости придется почти на каждый год перекомпелировать сборку". == блин ито коряво, Алексей правильно написал: "Сказанное не есть правда на 100%"...
Смысл в том, что на лиспе у тебя команда ssget сработает и в 10 и в 20 автокаде, да есть нюансы, типа какая версия руская, англиская и т.д -но это можно сказать не существенно (относительно минимальные), по сравнению с с++ и net. 1) нэт зависит от целевой версии нэт автокада (т.е ты не можешь написать для автокада 2020 под версию net 3.0) 2) ты подгружаешь в свою сборку различные библиотеки автокада (типа mgd.dll...), вопрос как их подгружать??? - если просто без копирования (то тогда у тбя явно подгружается путь, я незнаю как подгрузить чтобы оно подтягивало различные без динамической загрузки и рефлексии) - если с копированием, тогда ты точно не можешь гарантировать, что оно адекватно сборка mgd.dl 2012(автокада) отработает в автокаде 2014 - если динамическая и с рефлексией, то тебе чуть ли все клаcсы и функции автокада(что используешь) надо переопределять //(да возможно - я все незнаю(я любитель, а не професионал в том же Net), есть подгрузка типа в строке using (но я такую не знаю и ты все равно не решишь "1", мне кажется - но оно ругалось и недавало собрать (возможно ошибаюсь по 1)) 3) если у тебя один файл на лиспе условно и 10 на Net (ну пусть 4), что лучше? - да я понимаю, когда ты не можешь с базой данных sql работать напрямую через автолисп или удобства в написании...=> да теоретически все можно, но если тебе при этом надо пройти через 10 костылей, то выбор по мне очевиден Последний раз редактировалось prajdziswet, 31.01.2024 в 08:33. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
Ну и для размышлений - тыц и собственно от Ривилиса Александра - тыц (там ругается на сертификат - просто Аутодеск не стал выдавать новый). |
|||
![]() |
|
||||
Регистрация: 30.03.2015
Сообщений: 153
|
Цитата:
Что то типа такого, но это от версии Net: Код:
Код:
Я незнаю, как это сделать (может и можно - интересно как, для общего развития - может и Алексей подскажет..), но возникает риторический вопрос - стоит извращаться?! - если можно написать на лиспе, например как skkkk пример привел (да отредактировать, причесать...\\ но по мне условно меньше гемороя (различных зависимостей, непредвиденных ошибок и т.д )) _________________ п.с БЛАГОДАРЮ (огромное спасибо), всем кто подсказывал Последний раз редактировалось prajdziswet, 31.01.2024 в 08:37. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Цитата:
Цитата:
Цитата:
ИМХО стоит.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,611
|
Offtop: тут аккуратнее нужно быть. В версии 2025 обещают переход с .NET Framework 4.8 на .NET Core, с обновлением версии C# с 6 на 12... что то я не уверен, что версии dll под 2021-2024 будут работать на 2025.
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Offtop: Бананокад уже почти год как "типа на NET6", а, судя по высказываниям на форуме, в нем под виндой прекрасно работают сборки на Framework. Если что - сам не проверял, лениво
![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 30.03.2015
Сообщений: 153
|
Цитата:
- по мне если база данных - удобнее через тот же "Entity Framework", а на лисп честно говоря я с базой и не работал //во-вторых я люблю базы данных, которые переносятся qlite например - не завязан есть ли тот же MYSQL или MS SQL на компьютре _____________ насчет двух первых надо разобраться (мне надо ручками поэксперементировать-вопрос как руки дойдут): 1) "Под ACAD как минимум с 2013 вполне можно использовать NET Framework 4.6+, и этого достаточно. Работать будет с гарантией 97%" я обычно отлаживал - прикреплял запускной автокад, а потом мою сборку - и мне почемуто кажется (что visual ругался на не совместимость версии если ты для старого например 2013 ставишь 4.5 Framework) => но могу ошибаться (не утверждаю), если так как ты говоришь - то супер 2) "Если свои собственные - то AssemblyResolve, поскольку при компиляции основной сборки "сопутствующие" будут брошены рядом. Если кадовские - то почему бы не использовать соответствующие NuGet-пакеты? Ну или вручную подключать соответствующие dll с указанием CopyLocal = False." последнее вручную и CopyLocal не вариант (кроме AssemblyResolve и ну NuGet-тут надо глянуть),хочется чтобы не привязывалось точно к определенной версии //чтобы по возможности своя сборка - условно была универсальная 2013-2020/21. _________________________ Алексей и остальным: Блогадарю, буду время -буду разбиратся. -первоначальный вопрос был не в этом (это больше для саморазвития) === Спасибо ВСЕМ ----- добавлено через ~9 мин. ----- Цитата:
Еще раз Спасибо Последний раз редактировалось prajdziswet, 01.02.2024 в 08:43. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Offtop: а arx одни на все версии акада?)
Ну и, естественно, ссылки не смотрели - а там все несложно: в решении создается один набор исходных файлов с условной компиляцией по зависимым от версий акада фрагментам кода. Затем создаются проекты по версиям акада и в каждый проект добавляются общие файлы исходников как ссылки. Потом каждый проект настраивается как нужно - своя версия Фреймворка, свои версии ссылок на библиотеки соответствующего акада, свои символы условной компиляции и т.д. И потом собирается проекты под все акады одним нажатием кнопки VS - "Пересобрать решение". А после сборки можно результирующие сборки автоматически средствами VS собрать (скопировать) в одну выходную папку. Но вы не в коем случае не используйте стандартные решения, ведь это костыли согласно вашему пониманию) |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Получить цифровую модель комнаты из dwg | gizmo_zx | Программирование | 12 | 30.11.2019 14:32 |
Получение координат примитивов в Регионе (AcadRegion), C# | AkaPaul | Программирование | 6 | 14.05.2010 22:22 |
Быстро получить Набор объектов попадающих в Сферу | [N.S] | Программирование | 10 | 09.08.2009 11:04 |
Выбор всех примитивов одним кликом | DANZZ | AutoCAD | 5 | 12.08.2006 17:49 |