|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
18.08.2014, 16:15 | 11 | | #1 |
LISP. Очистка чертежа от мусора
строю, ломаю
Украина
Регистрация: 03.04.2008
Сообщений: 5,515
|
||
Просмотров: 182882
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Добавь еще очистку параметрических зависимостей и историю твердых тел Можно заодно еще и словари посносить, но это только для варианта "невертикального" AutoCAD (ИМХО).
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Очистка истории твердых тел какая-то есть. Насчет параметризации я пока не нашел "некомандный" способ для сего действия. В планах еще разобраться с с пустыми блоками, изображениями и внешними ссылками (код спилю у VVA из bgtools) и очистка прокси с помощью программы А. Ривилиса.
Алгоритм обработки текста самый простой пока, но это все поправимо |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Посмотри у меня на сайте - я делал все это.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Не думаю, что получится. Посмотри мой код http://autolisp.ru/2014/03/24/clear-dwg-at-opening/ - вроде бы работало. Нарисовать для этого кода dcl не проблема, но мне сегодня точно не до этого будет.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Более ли менее потестировал по всем пунктам - ошибок не нашел.
Критиковать - нос не дорос, а вот предложения - пожалуй (в добавок к #3): 1. Прикрутить бы туда удаление дубликатов из overkill'a. 2. Мое мнение: галочки на удаление точек и маскировок и групп по умолчанию лучше бы убрать. Думаю, их правильнее сознательно поставить, чем случайно посносить нужные объекты. А в идеале - запоминать галочки, выбранные ранее. Хотя бы в пределах сеанса, но неплохо бы и глобально. Как это сделать лучше - не знаю. Может в реестр писать или в текстовый файл? 3. Не смог создать пустой Мтекст (однострочник получилось), может, программно надо было - поленился. А вот текст, содержащий только пробелы, не удаляется. Жаль, потому что его нельзя выделить кроме как Ctrl+A. Может, добавить галку "Текст из пробелов"? Ну или под одну грубенку его, все равно не могу придумать от него практического толку - в топку. Беру на вооружение, спасибо, gomer. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Offtop: Если завтра будет время, опубликую графический вариант своего кода.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Тут я бы посоветовал макрос, так как overkill - самостоятельная команда со своим диалогом
Цитата:
Цитата:
Текст с маскировкой может быть полезен Сейчас программа выбирает только пустой текст. Придумаешь маску (условие пустоты) для выбора, добавлю. Вообще это не так просто, нужно выбрать все тексты и каждый проверить на наличие контента и уж потом удалить. Это займет больше времени, а я уже заметил, что на больших файлах программа может вызвать подвисание. В-общем нужно тестить. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Цитата:
Цитата:
Вариант №1: 1. Создаем для каждой галки запись в реестре. Шучу. Если это будет сумма битовых флагов, то записи хватит одной. 2. При запуске читаем эту запись. 3. При изменении пользователем набора галочек... чтобы узнать что будем делать, отправь смс на короткий номер Вариант №2: 1. Создаем в укромном местечке, а может и в той же самой папке, откуда запущен лисп (кстати, не об этом ли здесь?) текстовый файл и делаем туда запись суммы битовых флагов. 2. Далее как и в п.п. 2 и 3 варианта №1. Ну ладно, не в топку. То есть, если делать, то непременно отдельную галку? А маскированные пустые тексты, может, вообще удалять/не удалять вместе с маскировками? Пока слёту так и не могу придумать маску для n-ного количества пробелов. А заодно и "непустых" пробелов (те, что Ctrl+Shift+Space). А может и не надо, потому что - это как-то не айс. Реально долго это может быть. Если уж и делать такую галку, то с пометкой "долго" и выключенной по умолчанию ----- добавлено через ~1 ч. ----- Еще пару мыслей: 1. Линии нулевой длины. 2. Может, "плющилку" 2D? Или хотя бы обнуление уровня полилиний? В частности случаи, когда полилиния ведет себя как-то неадекватно. Попадались такие файлы, может, смогу найти - выложу. При выборе такой полилинии не видна ее центральная ручка (при GRIPS=2) , и при попытке потянуть за крайнюю ручку рядом с полилинией появляется начало координат, с осью, параллельной этой полилинии (СК объекта?). У таких полилиний уровень всегда ненулевой, и при попытке обнулить его через свойства полилиния просто пропадает из виду. Надеюсь, понятно объяснить получилось... Последний раз редактировалось skkkk, 20.08.2014 в 04:14. |
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Это не шутки, так и придется сделать, ведь
и сразу найдутся товарищи, кому не по нраву линии маленькой, но гордой, ненулевой длины. Точнее отрезки и скукоженные полилинии но это опять же лопатить. Знаю, спрашивал... Хотя лопатить все равно придется, если нужно будет чистить в блоках |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Еще раз говорю - посмотри у меня на сайте (http://autolisp.ru/2014/03/24/clear-dwg-at-opening/). Вся очистка регулируется единственным параметром - битом. А разбираешь ты его уже внутри кода.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Тримить строку от пробелов и табуляции и проверять на пустоту.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
А заодно сносить форматирование...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Да, если мтекст и все что на его основе.
Offtop: Как же с этим проще в NET! Там напрямую из MTEXT без танцев с бубном можно прочитать строку без форматирования...
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Цитата:
Цитата:
----- добавлено через ~11 мин. ----- В смысле, только из-за линий нулевой длины придется делать запись в реестре для каждой галочки? Не пойму, почему так? |
|||
|
||||
Offtop:
Цитата:
Если убрать всю "обвязку" (используемые имена пространств, выбор объектов, открытие-закрытие объектов на запись и пр...), то все сводится к одной строчке: Код:
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Я не думаю что, это под силу лиспу, слишком уж он медленный. Если говорить о растрах и ссылках в чертеже, то это реализовано в bgtools. У меня просто руки не доходят допилить под свою прогу
|
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Цитата:
Кто знает, что это за такое, и можно ли сделать с такой линией что-то, чтоб она осталась на своем видимом месте, но с нулевым уровнем и адекватная? |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Там система координат объекта ни разу не похожа на мировую. Поэтому в качестве решения: flatten из ET или SuperFlatten из архивов форума )
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
посмотри код 210 у твоей полилинии
----- добавлено через ~3 мин. ----- У меня тут беда случилась с исходником... нет, никуда он не потерялся. Но слетела кодировка, и в блокноте++ при открытии абракадабры наблюдаю. При этом НП++ показывает кодировку макинтош... Но какой макинтош? если я сроду им не пользовался... это меня бесит чрезвычайно |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
gomer, я не понял, дело в файле (и в каком именно?) или в NP++? Файлы на всякий прилагаю. Вроде я в них ничего пока не менял.
У меня как-то что-то давно слетало в NP++, так я после этого, когда вернул все обратно, сделал backup папок NP++ из Program Files и из AppData->Roaming. После переустановки Windows очень помогло. В том числе перешла и вся моя подсветка синтаксиса, и выпадающее меню функций (автозавершение) и все остальное. Очень советую. Если нужно, могу скинуть свои баки. Правда, перевод у меня какой-то кривой стал почему-то: половина меню на русском, другая - на английском. Но на скорость не влияет, и я заморачиваться не стал. |
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
А у тебя мои исходники нормально открываются? Дело в том, что например я меняю кодировку на win1251 тескт становится нормальным, переоткрываю блокнот, текст нормальный, закрываю файл и переоткрываю блокнот - абракадабры и макинтош, будь он не ладен
|
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Полностью. Как и все другие. Может, настройки? У меня вообще ANSI...
P.S.:Смотрю, там у тебя изменения уже есть P.P.S.: Прошу прощение за качество скрина, но качественный не прикрепляется из-за размера |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Offtop: У меня версия 6.1.2. Последняя на данный момент, вроде 6.6.9.
Я устанавливал недавно последнюю версию, но оказалось, что в ней переработали алгоритм сортировки функций автозавершения. В файле с перечнем этих функций я записал их в таком порядке, что самые часто используемые находятся выше остальных, игнорируя алфавитный порядок. А в новой версии этот порядок не игнорируется и применяется "насильно", мне это жутко не понравилось, вот я и решил откатиться. Что-то подзагадилась как-то ветка ... Может, откроем тему про NP++ для лиспа и других языков под AutoCAD? |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
|
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Offtop: Думаю, тут дело в NP++. Может, проще всего его переустановить? Сохранив настройки из папок программы. Ума не приложу, что это может быть.
Возвращаясь к неадекватной полилинии... Надеюсь, что это по теме "Очистка чертежа...", хотя более подходит под тему обнуления Z-координаты, но раз я уж начал ходатайствовать о добавлении в очистку такой функции, то продолжу тут. gomer, если ты против, скажи сразу - я отстану. Почитал, 210 - это координата Х вектора направления выдавливания. Меняю ее на '(0.0 0.0 1.0) - полилиния улетает совершенно в другое место. А хотелось бы, чтоб она при этом осталась на своем месте. И вообще не пойму, как в чертежах, присланных тётеньками, может оказаться подобное? Цитата:
Может, добавить обработку таких полилиний с кодом 210: взрывать их и преобразовывать обратно в PLINE? Или отстать? |
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
ставил неоднократно чуть ли ни все версии, результат 0... Проблема в файле, до абсурда доходит: убираешь строчку, нормальная кодировка, добавляешь - слетает.
Насчет кривых полилиний - это все таки другая задача. Да и лисп имеет ограничение по количеству объектов. Сейчас до 10000 объектов еще приемлимо лопатятся, больше уже серьезный зависон. Чем больше операций, тем меньше лимит на чертеж. |
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
|
|||
|
||||
Конструктор Регистрация: 01.09.2012
Уфа
Сообщений: 80
|
|
|||
|
||||
Инженер Регистрация: 21.08.2007
Сообщений: 597
|
может только у меня такое происходит, но при нажатии кнопки "По умолчанию" программа останавливается с ошибкой: "bad argument type: stringp 0bad argument type: VLA-OBJECT nil".
Система Win7x64, Autocad 2013
__________________
Склероз нельзя вылечить, но о нем можно забыть. (Ф. Раневская) |
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Эта программа делает 3х-кратный тоталпурж, так что в стандартном пурже отпадает необходимость
Вы случайно не исходники не редактировали? |
|||
|
||||
бывший... Регистрация: 13.08.2009
Краснодар
Сообщений: 1,171
|
gomer, при нажатии кнопки "По умолчанию" окно программы закрывается, в командной строке автокада появляется запись: "неверный тип аргумента: stringp 0неверный тип аргумента: VLA-OBJECT nil".
Какие сведения нужны? Кино сделать? Система Win7x64, Autocad 2012 |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Получил файл съемки, решил почистить новой версией. Из изменений заметил, что выбранные чекбоксы сохраняются от сеанса к сеансу. Удобно.
Раньше (до появления CleanDWG) я пользовался составленным при помощи форума еще на рассвете моей карьеры инженера макросом на кнопку: Код:
Затем запустил CleanDWG. Надооооолго так всё подзадумалось (минуты на полторы), в результате - 900кб. Вот это я понимаю: прибрался так прибрался. Однако попробовал сделать наоборот: сначала CleanDWG, потом мой макрос - после макроса удалилось еще 26 приложений, хотя изначально (до CleanDWG) он удалял 246. То есть, почему-то не все приложения почистились. Почему бы? И еще: увидел в конце отчета записи "Размер откреплен". А галочки такой в настройках не нашел. Не всегда хочется диссассоциировать размеры. P.S.: И еще расскажите, пожалуйста, мне, темноголовому, что это за файл *.des? |
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Это модуль CleanDWG для брикскада
Цитата:
Цитата:
Цитата:
Как вариант: можно снять галки с удаления истории тел и параметрических зависимостей. Тогда программа не будет обрабатывать весь чертеж. 800 или 900 - не принципиально - это нюансы формата файла DWG |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Интересно, а я каким боком к этой разработке?
Скорее всего, загружен lsp, а dcl код найти не может. Все вопросы к автору
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Какой кад вы использовали для запуска программы и какая версия
|
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Встречал подобный глюк на bricscad10. Рекомендую загружать не исходник, а CleanDWG.vlx - скомпилированный модуль, исходник я вложил для kpblc, ну и для будущих вундеркиндов. Из-за низкой скорости лиспа в автокаде использовать исходник строго не рекомендуется на тяжелых чертежах.
хм... только сейчас заметил лажу в архиве... Readme нет, исходнике не в папке для исходников... Моя вина конечно. Будет исправлено в следующем апдейте, если он случится... |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Просто надо удалять не все словари подряд, а фильтровать те, которые надо оставить "в живых". Я сам на таком же в свое время погорел )
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Там в архиве есть lsp файл. Фрагмент удаления словарей ниже. Самое сложное определить имя или имена словарей Mep
В коде не удаляются словари "ACAD_*" и "AcDb*" Код:
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
|
|||
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
|
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Вот и решение, похоже. От VVA обычно другого и не ждешь.
Думаю подобная проверка не займет сильно больше миллисекунды. А польза от нее ощутима. А по-хорошему вообще отрыть где-либо список всех возможных словарей из вертикалок (как минимум, префиксов) и тоже добавить. Беглый поиск по Сети не увенчался у меня успехом, поэтому предлагается заинтересованным в топике обладателям вертикалок выудить их прям с поля боя. Этот пример из Полещука вернет список словарей: Код:
- то и словаря этого нет. Но префиксы, думаю, можно для каждой вертикалки выловить таким образом. А также надо не забыть добавить свои словари. И после этого спокойненько сносить все лишнее. |
|||
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Можно снять, если знаешь, что она зарубит проект. А если не знаешь? Тогда, дескать, закрывай чертежа без сохранения. Только безобразие это не сразу обнаруживается, можно случайно и сохранить по "вредной" привычке сохранять чертеж после каждого телодвижения.
|
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Такая возможность не планируется. Во первых потому, что параметров достаточно много, во-вторых, процесс очистки занимает много времени и давать возможность консольного управления - это обречь себя на непонимание пользователя... слишком много есть таких кто любит загружать всяких хлам при загрузке...
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
AutoCAD случайно не 2013, английский, и без SP?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Регистрация: 12.01.2015
Сообщений: 261
|
Может быть поможет один из вариантов:
1. В пакете загружающем lisp заменить (load "имя файла") на (load (strcat (getvar 'dwgprefix) "имя файла")) Не понял почему, но после этого находятся и DCL и вспомогательные текстовые файлы. 2. В строку запуска программы с рабочего стола добавить ключ /s с путем к файлам поддержки Заменяет ранее установленные пути. 3. От Александр Ривилис, установить LEGACYCODESEARCH = 1. |
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Проблема в скорости выполнения программ на Visual LISP и количестве объектов в чертеже.
Решение - снять галку История твердых тел и Параметрические зависимости, они запускают механизм прополки всего чертежа |
|||
|
||||
Регистрация: 14.11.2011
Сообщений: 21
|
AutoCAD 2008 - English SP1
После пользования утилитой CLEANDWG13 (даже при настройках по умолчанию) получаю чертеж с багом но не во всех файлах. После печати из Layout и последующей попытки сохранения получаем ошибку "FATAL ERROR: Unhandled e06d7363h Exception at 75a1c41fh" Если ничего не печать то все сохраняется до первой печати. Автокад 2011 либо ZWCAD 2014 c файлом и далее работают чудесно но 2008 автокад уже его не сохраняет. Пересохранение в 2011 акаде на 2000, 2004 не помогает (2008 акад открьівает печатает но не может сохранить), аналогично ZWCAD и DWG TrueView. Пробьівал даже сохранять в 2013 (через ZWCAD или DWG TrueView), а потом в 2007 или 2000 - результат открьітие 2008 акадом файл - открьіваеться но не сохраняеться. Сохранение в dxf портит штриховки и не расматриваеться. После удаления содержимого (без последующего _purge) чертеж с лейаутами ( Layout ) можно сохранить. Содержимое Model также можно скопировать и вставить в новьій чертеж (все слои открьітьі и не замороженьі). Потом копирование назад содержимого Model в чертеж с Layout восстанавливает сохранение чертежа 2008 акадом. Если ничего не печатать все хорошо сохраняется. Причину такой ошибки искал два дня. ---Updated Ошибку получаем после первого сохранения и потом открьітия и попьітки сохранения Какая галочка именно вызывает ошибку пока не понял Нашел - Масштабы анотаций приводит к "FATAL ERROR: Unhandled Access Violation Reading 0x0000 Exaption ad 6237788dh" после сохранения, закрытия, открытия и сохранения Последний раз редактировалось doslidnik, 15.05.2016 в 10:45. |
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Не должна. Это ограничение лиспа - пройтись лиспом по базе чертежа и проверить используемые масштабы за вменяемое время нереально.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 14.11.2011
Сообщений: 21
|
Визуальные объекты -> Точки приводит к такой ошибке прораммы (Выбран только етот пункт)
Код:
Код:
Код:
Вот отработка cleandwg13 Код:
Нюанс - у меня 19 Лейаутов. Может из-за них? Проверил в каждом лейауте(Layout) меню "Modify->Anotative Object Scale" не активно. Активно только в модели (Model). Результат запуска cleandwg из Model и из Layout дает одинаковый результат (последующую ошибку при новом откытии чертежа). Все слои открьітьі и область ZoomExtens. Команда _AIOBJECTSCALEREMOVE всегда срабатьівала в проблемном чертеже но один раз нет. Вот как-то получил такое после ~15-30го простоя чертежа. Закрьіл не сохраняя открьіл- Поменял автосохранениt на 1 минуту но такого не добилься. [IMG]http://i.*******info/i9/f62dd30ef255e404ebe02fd65031b144/1463569979/10788/1035265/Bezymiannyi_240.jpg[/IMG][IMG]http://i.*******info/a3/2016-05-18-11-13/i9-9824752/240x172-r/i.gif[/IMG] ----- добавлено через 52 сек. ----- [IMG]http://i.*******info/i9/4e33d06423664d8e44c02898109ddf09/1463569979/16084/1035265/Bezymiannyi.png[/IMG] Последний раз редактировалось doslidnik, 18.05.2016 в 14:16. |
|||
|
||||
Регистрация: 30.03.2016
Сообщений: 55
|
gomer
Список словарей Мэпа здесь. Если ещё нужно. Последний раз редактировалось SlavaLu, 22.05.2016 в 19:35. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Можно. Допиливай, автор вряд ли будет против.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 15.01.2010
Сообщений: 254
|
Хороший ответ) Но суть вопроса в другом, как ты наверняка понял, - кто бы это мог сделать с соответствующей квалификацией и знаниями.
Тем более, что Я попробовал свести это с http://dwg.ru/dnl/11817 - результат нулевой, из сотни файлов обрабатывается (?) только два, выдает ошибку, и новые файлы абсолютно чисты (глобально так почистилось ) |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Сергей812, ну так *error* и вызывается принудительно в конце. Как меня в своё время учил gomer, если строчки друг друга повторяют, смысл приводить их два раза? Ладно тут только метка отмены. А если в коде нужно обеспечить возврат к первоначальным значениям нескольких десятков переменных? Повторять придется уже не одну строку. Подход gomer'a мне пришелся по душе и я его перенял.
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Добро пожаловать в "Поиск исполнителей"
Да, кстати, пока сообразил: в Autodesk AppStore есть пакетные "чистилки" файлов.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Offtop:
Цитата:
Можно, конечно, добавить функцию, которая будет обеспечивать восстановление системы к первоначальному состоянию, ставить конечную метку отмены, удалять временные примитивы, делать регенерацию и т.д. и т.п., а затем вызывать ее в конце кода, или внутри обработчика ошибок. Логичнее? Пожалуй. Лаконичнее? Нет. Но более важный вопрос: это может чему-то помешать или быть в корне в чём-то неверным? Вряд ли. Поэтому принципиальной разницы в этих подходах не вижу. А экономия на дополнительных телодвижениях по созданию дополнительной функции возврата среды или повтору кусков кода в начале и в конце программы - налицо. Только и всего. ----- добавлено через ~11 мин. ----- Может, лучше для начала обратиться к gomer'у в личку? Кстати, сообщения в личке скорее всего, сопровождаются уведомлением на почту. Это к тому, что вдруг возникнут сомнения в частоте посещении им форума. |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Регистрация: 15.01.2010
Сообщений: 254
|
VVA, то, что доктор прописал, спасибо! Радует, что бесплатная, есть русский язык и куча настроек)
Минусов, правда, два - нужна установка (на работе все установки только админские) и поддержка с 2012 версии (многие сидят на 2008). Хотя, установку, думаю, можно обойти, распаковав инсталлятор и прописав нужные пути в настройках AutoCAD... Хотя не все так радужно - каждый файл при последующем открытии требует восстановления, если выбрать другую версию формата dwg Последний раз редактировалось superkot007, 03.12.2017 в 12:50. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,048
|
Offtop: принципиальную разницу увидите, если придется копаться в чужом коде такого же "оптиматизатора") Для себя можно писать как удобно, конечно.
|
|||
|
||||
Регистрация: 12.03.2013
Сообщений: 650
|
Люди подскажите плиз, может есть киде готовое решение по очистке неактуального содержимого из диспетчера внешних ссылок? Т.е. задача удалять потерянные ссылки без вызова диспетчера вш. ссылок, т.е. как говорится в одно касание, т.е. одной командой.
|
|||
|
||||
Проектировщик Регистрация: 25.07.2020
Челябинск
Сообщений: 5
|
Впервые пытаюсь воспользоваться возможностями LISP. В данном случае - Вашим кодом.
Команда прошла (см. screen 1.png). Правда, слегка "ругнулась" в конце (см. screen 2.png). После сохранения файла его объем - больше 8 Мб. Что-то пошло "не так"? |
|||
|
||||
Проектировщик Регистрация: 12.11.2015
Orenburg
Сообщений: 1
|
Спасибо! AutoCad 2014, файлы очищены от мусора. В работе с "грязными" файлами - просто глоток свежего воздуха.
Было: после копирования из другого файла dwg, файлы весили не меньше 4,5 Мб, даже если оставить одну линию и почистить пургеном, прокси и т.д. по списку из "dwg.ru - уменьшение размера dwg". Не понимаю, что удаляет программа, но после ее использования проблема с копированием исчезает!!!) |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Чему равна системная переменная LISPSYS? Попробуй поставить в 0
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
ingénieur Регистрация: 21.07.2008
Сообщений: 763
|
|
|||
|
||||
Регистрация: 30.11.2018
Сообщений: 14
|
Доброго времени суток !
Подскажите, почему у меня данный LISP не работает? AutoCAD 2021. Ввожу команду CLEANDWG и ничего не происходит, возле командной строки сразу появляется три надписи: "отмена команды пользователем. Очистка завершена. Команда:" Как исправить ? LISP загружал так же как и остальные до этого, все работают кроме этого |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Попробуй эту запустить. Возможно, сработает.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Проектировщик ВК Регистрация: 18.09.2014
Анапа
Сообщений: 55
|
не не работает. VLX не видит а лисп не работает
----- добавлено через ~6 мин. ----- Команда: APPLOAD APPLOAD,ЗАГПРИЛ - Загрузка приложения... C:CLEANDWG CleanDWG.lsp загружен. Команды: CLEANDWG nil Команда: CleanDWG CLEANDWG - CLEANDWG GETCFG функция не определена GETCFG функция не определена GETCFG функция не определена GETCFG функция не определена GETCFG функция не определена GETCFG функция не определена GETCFG функция не определена GETCFG функция не определена GETCFG функция не определена GETCFG функция не определена GETCFG функция не определена GETCFG функция не определена GETCFG функция не определена GETCFG функция не определена GETCFG функция не определена GETCFG функция не определена GETCFG функция не определена GETCFG функция не определена Очистка документа... Всего удалено визуальных объектов: 0 Очистка завершена |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
А, ну это не лечится. Только полная переделка всех обращений к getcfg / setcfg, раз уж они не реализованы в NC. ИМХО к автору.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
начинающий инженер-гидротехник Регистрация: 18.04.2010
Санкт-Петербург
Сообщений: 893
|
Вот в этой теме на форуме нанокада выкладывали что-то похожее
https://forum.nanocad.ru/index.php?/...i-ne-pomogaet/ |
|||
|
||||
У меня Autocad 2017. Загружал файл CleanDWG.vlx. После нажатия кнопки ок в окне программы, в командной строке пишет:
Команда: _CLEANDWG Очистка документа... Всего удалено визуальных объектов: 0 no function definition: vlax-vla-object->ename"no function definition: vlax-vla-object->ename" Если загружать CleanDWG.lsp, то пишет "Очистка документа...", но тоже ничего не чистит. После сохранения размер файла (с одним отрезком) в 5МБ не изменился. Может я что-то делаю не так? |
||||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Похоже на то, что перед запуском _CLEANDWG нужно ввести в комстроке (vl-load-com).
Хотя, очень странно, что в компилированном лиспе от gomer'a не прописан этот вызов функции, которая загружает vla-расширение (в CleanDWG.lsp - есть), и дело может быть в другом. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,048
|
чистильщиками реестра не пользовались перед этим?
----- добавлено через ~3 мин. ----- можно попробовать принудительно загружать vl.arx. Если и при этом не будет работать - переустановка акада скорее всего. |
|||
|
||||
В командной строке нужно вводить не vl-load-com, а (vl-load-com) (т.е. со скобками, так как это вызов lisp-функции, а не команда).
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
|
||||
Александр Ривилис, Ввожу команду (vl-load-com), ничего не происходит:
Команда: *Прервано* Команда: (vl-load-com) Cleandwg пишет тоже самое: Команда: _CLEANDWG Очистка документа... Всего удалено визуальных объектов: 0 no function definition: vlax-vla-object->ename"no function definition: vlax-vla-object->ename" ----- добавлено через ~2 мин. ----- Команда ARX - Файлы показывает, что vl.arx загружен |
||||
|
||||
Project-gaz,
Увы, но похоже только переустановка AutoCAD (в режиме восстановления) может помочь.
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
|
||||
Слетят конечно. Но у тебя похоже и так половина lisp-функций/команд не должна работать.
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Почему очистка чертежа не выполняется при наличии Object Enabler? | Xara | AutoCAD | 15 | 03.07.2014 11:50 |
Создание шаблона и очистка чертежа | Сержик | AutoCAD | 9 | 14.02.2013 23:06 |
LISP. Как запустить LISP программу при создании чертежа по шаблону? (Автоматическое заполнение основной надписи) | Do$ | LISP | 25 | 22.06.2011 15:39 |
очистка скана от мусора | grozd62 | Прочее. Программное обеспечение | 4 | 04.04.2011 21:41 |
LISP для очистки чертежа от дублирующихся объектов | Nikolays | AutoCAD | 5 | 13.12.2010 16:59 |