Пользователь alz разместил новый ресурс: TrimObjects - Разрезает объекты чертежа Узнать больше об этом ресурсе...
Подскажите, как установить. Распаковал в папку C:\Program Files\Autodesk\ApplicationPlugins\TrimObjects.bundle, в командной строке ввожу trim_objects и ничего не происходит. Пишет: Неизвестная команда "TRIM_OBJECTS". Для вызова справки нажмите F1.
1) Проверьте на всякий случай что по этому пути(C:\Program Files\Autodesk\ApplicationPlugins\TrimObjects.bundle\contents) находится библиотека TrimObjects.dll, а то иногда при распаковке винраром например папка дублируется. 2) Если автокад был запущен надо перезапустить, 3) Иногда требуется библиотеку (TrimObjects.dll) один раз запустить через netload 4) Так же иногда после скачивания архив бывает заблокирован и перед распаковкой его надо разблокировать
Хмм, выложите этот контур, даже интересно стало, вообще при выборе программа проверяет что бы контур был замкнутый и не самопересекающийся, но при тестировании даже очень кривые контура просто выдавали что они не подходят и все, что бы висло такого не припомню.
Пользователь alz обновил ресурс TrimObjects новой записью: Обновление Узнать больше об этом обновлении...
Вот, что у меня пишет, при попытке загрузить: Код: Команда: NETLOAD Не удалось загрузить сборку. Сведения об ошибке: System.IO.FileLoadException: Не удалось загрузить файл или сборку "file:///C:\Program Files\Autodesk\ApplicationPlugins\TrimObjects.bundle\contents\Trim_objects.dll" либо одну из их зависимостей. Операция не поддерживается. (Исключение из HRESULT: 0x80131515) Имя файла: 'file:///C:\Program Files\Autodesk\ApplicationPlugins\TrimObjects.bundle\contents\Trim_objects.dll' ---> System.NotSupportedException: Предпринята попытка загрузить сборку из сетевого ресурса, что в предыдущих версиях .NET Framework могло привести к помещению сборки в "песочницу". Этот выпуск .NET Framework не включает политику CAS по умолчанию, поэтому данная загрузка может быть опасной. Если эта нагрузка не предназначена для изоляции сборки, включите переключатель loadFromRemoteSources. Дополнительные сведения см. на странице http://go.microsoft.com/fwlink/?LinkId=155569. в System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) в System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) в System.Reflection.RuntimeAssembly.InternalLoadFrom(String assemblyFile, Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm, Boolean forIntrospection, Boolean suppressSecurityChecks, StackCrawlMark& stackMark) в System.Reflection.Assembly.LoadFrom(String assemblyFile) в Autodesk.AutoCAD.Runtime.ExtensionLoader.Load(String fileName) в loadmgd() Версия .NET Framework 4.8.4084.0 Версия продукта: R.118.0.0 AutoCAD 2021.1
Спасибо, действительно, поставил галочку в архиве, и после переустановки команда появилась. Решил проверить на довольно тяжелом файле. В результате AutoCAD вылетел с ошибкой. Выбор опций показан на рисунке. Файл, на которым тестировалось:
Посмотрел ваш файл, ошибок у меня не было, но после 20 минут обработки блока "Топооснова" решил вырубить, есть тут в коде не совсем оптимальные решения. На таких тяжелых файлах я не тестил, максимум метров на 8 и то в режиме расчленения блоков, по хорошему надо бы всю программу перебрать и оптимизировать, так как я ее писал когда только начал программированием заниматься и код для меня сейчас выглядит ппц страшно) Но это не на 5 минут, будет время займусь, а пока будем считать что на такие объемы программа не рассчитана, соре если не оправдал надежд.
Оч. полезная программка для базового AutoCAD. Оффтоп (Move your mouse to the spoiler area to reveal the content) На всякий случай - в Map/Civil есть команда MAPTRIM. Эта мощнее: обрабатывает с учетом внутреннего контура, обрабатывает блоки. С блоками лучше поосторожнее - блоки отдельных объектов чаще нужно сохранять целыми. По умолчанию лучше выключить "Удалить пересекаемые и необрезаемые элементы" - лучше контролировать результат. Лучше включить "Не трогаем блоки" - чтобы случайно их не испортить. Включить "Внутри контура" - самый востребованный режим, и без него не сразу понятно, почему не включается "Обрезать". Если программа в принципе работает не быстро, то лучше добавить часы или т.п. - дать понять, что идет процесс.
В целом она писалась для того, что бы между контурами можно было вырезать, ускорить выделение элементов чертежа, если какой-то участок нужен, типа такого Счетчик там есть, показывает количество обработанных объектов, только если одним из объектов будет блок, внутри которого сотни тысяч элементов, то тут все сложнее.
Мне была очень интересна ваша программа, еще и потому, что я пытался написать подобное на LISP. Надо сказать, только для одной задачи - обрезать по контуру оставив объекты внутри. Получилось 2 команды, 1 - обрезает по контуру, 2 - добавляет контур в блок. Потому как в случае с блоками как раз и возникала проблема. Я решил это так, что контур программно добавлялся в выбранный ВРУЧНУЮ блок функцией "2", а затем уже внутри пространства редактора запускалась функция "1", которая обрезает объекты по указанию режущего контура. В коде "1" использовался метод Break, а не Trim. В итоге процесс затягивается ручным перебиранием блоков. Если бы эта программа делала это автоматически, то это было бы явно лучше, чем сейчас у меня. У вас, кстати, как решено с блоками? Если есть 2 определения блока, которые нужно подрезать, то один из них что, заменяется переименованным? А что с вложенными в блок блоками?
3 варианта работы с блоками, естественно все это делается если блок попадает на контур. 1) вообще не трогает, считает блок отдельным элементом и реагирует на него как как другие не обрезаемые элементы, если стоит галочка удалять попавшие на границу необрезаемые элементы то удаляет. 2) работает внутри блока, рекурсивно по всех вложенных до получения объектов - не блоков и их собственно разрезает, соответственно меняет все экземпляры, пометка об этом стоит там где этот выбор собственно и дается, в целом этим вариантом не пользуюсь, он особо не проработан, думаю все же надо будет сделать вариант копией и уже ее изменением. 3) просто разбивает блок на составляющие и работает уже с ними Сейчас затык происходит на функции определения границ блока, так как что бы получить его границу приходится проходить по всем элементам внутри и смотреть уже их границы, метод там жутко не оптимальный и поэтому если попадается тяжелый блок все становится очень печально, будет время переработаю. Если учесть разницу в быстродействии лиспа и .net думаю на лиспе вообще бесперспективно пытаться обработать что-то типа генплана, но так как в лиспе не профессионал естественно ИМХО.
При запуске NETLOAD выдает: Спойлер (Наведите указатель мыши на Спойлер, чтобы раскрыть содержимое) Раскрыть Спойлер Свернуть Спойлер Команда: NETLOAD Не удалось загрузить сборку. Сведения об ошибке: System.IO.FileLoadException: Не удалось загрузить файл или сборку "file:///C:\Program Files\Autodesk\ApplicationPlugins\TrimObjects.bundle\contents\Trim_objects.dll" либо одну из их зависимостей. Операция не поддерживается. (Исключение из HRESULT: 0x80131515) Имя файла: 'file:///C:\Program Files\Autodesk\ApplicationPlugins\TrimObjects.bundle\contents\Trim_objects.dll' ---> System.NotSupportedException: Предпринята попытка загрузить сборку из сетевого ресурса, что в предыдущих версиях .NET Framework могло привести к помещению сборки в "песочницу". Этот выпуск .NET Framework не включает политику CAS по умолчанию, поэтому данная загрузка может быть опасной. Если эта нагрузка не предназначена для изоляции сборки, включите переключатель loadFromRemoteSources. Дополнительные сведения см. на странице http://go.microsoft.com/fwlink/?LinkId=155569. в System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) в System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) в System.Reflection.RuntimeAssembly.InternalLoadFrom(String assemblyFile, Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm, Boolean forIntrospection, Boolean suppressSecurityChecks, StackCrawlMark& stackMark) в System.Reflection.Assembly.LoadFrom(String assemblyFile) в Autodesk.AutoCAD.Runtime.ExtensionLoader.Load(String fileName) в loadmgd() Система: windows 10 home + net + autocad 2020
Пользователь alz обновил ресурс TrimObjects новой записью: Полная переработка Узнать больше об этом обновлении... --- Сообщения объединены, 29 окт 2023, Оригинальное время сообщения: 29 окт 2023 --- В переработанной версии этот файл обрабатывался около 25 минут но в целом отработал корректно, было удалено около 1.5 миллионов объектов.