|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Опасные приемы программирования в AutoCAD
CNC
Israel
Регистрация: 07.07.2007
Сообщений: 302
|
||
Просмотров: 3868
|
|
||||
Остекляем!!! Алюминим!!! Регистрация: 21.02.2005
Москва
Сообщений: 3,917
![]() |
Offtop:
Один чудак в гостинице спрашивает номер, ему отвечают: "Нет, мол, номеров". А он очень упрашивает - ну хоть каморку какую-нибудь. Ему и говорят: - Ну ладно, есть один люкс, но у него слава дурная, там уже восемь человек повесилось. Чудак в ответ: - Я не суеверный. Отводят его в номер, показывают ему все, а он спрашивает: - А как, мол, повесились-то? - Все вот на этой дверной ручке. - Не может быть! - Да вот, уж, смогли. Утром уборщица открывает дверь - мужик висит на ручке двери, мертвый. - Елки зеленые, еще один любопытный.
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search: |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Ну и зачем это? В #1 не функция, которой можно снести AutoCAD (например, из-за каких-то его внутренних ошибок, которые можно не знать). Приведенная функция делает именно то, что автор написал - заменяет список путей на один. Может не подумавши написал. Это просто элементарная ошибка, а может так и специально задумано.
Зачем создавать копилку мусора? Ошибочного кода наберется раз в 10 больше, чем правильного. Кроме того, непременно найдутся люди, которые будут эти ошибки тиражировать. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Есть одна замечательная функция - purge называется. Теоретически ее можно заменить на vla-delete, применяемого к элементам соответствующих коллекций и словарей. Так вот: очищать таким образом словарь стилей таблиц нельзя - надо оставлять как минимум 1 "в живых". В противном случае: если в файле не было ни одной таблицы, и тут же пытаться ее создать вручную, вылет практически гарантирован. Сохранение файла происходит нормально, но открыть его невозможно.
Проверял на AutoCAD 2005 Eng, ADT 2005 Eng, AutoCAD 2006 Eng, AutoCAD 2006 Rus, ADT 2006 Eng, ADT 2006 Rus. На более поздних версиях экспериментов не ставил.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Изобретение металлических гаражей Регистрация: 10.09.2004
Сибирь
Сообщений: 559
|
Цитата:
Таблицы не использую совсем (а может и использую, но не знаю что это такое). Недавно научился делать Файл/Утилиты/Очистить/Удалить все Размер файла уменьшился с 4 мегабайт до 100 килобайт. Отправил на согласование - там проблем с открытием не было. Сейчас попробовал создать новый файл, нарисовал кружочек, в листе настроил видовой экран, сохранил, закрыл. Потом открыл, почистил способом Удалить все. Сохранил.... Закрыл... Открыл... Нормально всё..
__________________
В этом и состоит диалектика жизни |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Вот Алексей правильно про опасность удаления стилей таблиц написал. В 2008 этот баг сохранился. И с программированием это напрямую связано. Создавая таблицу программно надо предварительно проверить наличие стиля (причем с ловушкой ошибки), создать его, если отсутствует. И делать это надо каждый раз, не полагаясь на то, что стиль был создан "недавно". Пользователь мог его удалить.
Это действительно ошибка Автокада. В принципе любые стили - это всего лишь совокупность некоторых настроек, чтобы пользователю при ручной работе облегчить жизнь. Объекты вообще-то можно создавать программно, назначать нужные свойства и вообще не думать о стиле. А вот таблицы попадают в исключения - нужно думать о наличии стиля. Правильным решением со стороны Аутодеск была бы невозможность ручного удаления единственного стиля (как нельзя слой 0 удалить). Может быть сообразят... |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
ShaggyDoc, вряд ли. На примере ADT (он же АА) - версии от 2005 до 2008 включительно. Там есть такая штука, как стили (стен, проемов, окон и проч.лабуды). Так вот, при ручном удалении ядро AA проверяет - а не использовался ли этот стиль (в том числе - стили с именем Standard не удаляются никак). При попытке программного удаления такого стиля (ну да, хранится он в отдельном словаре) все как бы проходил "ок", только вот ни повторно стили не импортировать, ни согласовать их - не получается.
Отсюда для себя я вывел такую мораль: в вертикальных решениях оставить возможность копаться "в потрохах" либо юзеру, либо самому ядру. И без особо крайней нужды туда не лезьть (только если прочитать что-либо). --- Добавлено: Mek, а что ты будешь делать, если удалять надо без применения командных методов? Ну вот такое хитрое условие.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Изобретение металлических гаражей Регистрация: 10.09.2004
Сибирь
Сообщений: 559
|
Цитата:
Цитата:
Не могу представить ситуацию когда лично мне надо будет действовать в каких-то хитрых условиях. Если речь идет о всяких ваших программных зачистках - в теме не участвую, в дебри лиспов не лезу... Пас.
__________________
В этом и состоит диалектика жизни |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Mek, а у меня такая ситуация в полный рост стояла: выполнять очистку файла от "мусора" при сохранении этого файла. Выход был только один - использовать командный реактор. А там применять command нельзя.
То, что ты с ней еще не сталкивался - еще ничего не значит. Рано или поздно столкнешься, если начнешь заниматься программированием под AutoCAD. --- Добавлено: под "мусором" понимается не только то, что выдает _.pugre...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
|
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ObjectARX. Расчленение и удаление proxy-объектов | Profan | Готовые программы | 293 | 08.04.2024 09:37 |
запуск программы из AutoCADа | kminas | Программирование | 19 | 15.06.2012 13:42 |
О создании темы (раздела) для новичков в AutoCAD. | Profan | Разное | 110 | 23.10.2008 10:01 |
AUTOCAD 2006 | Aragorn | AutoCAD | 14 | 01.04.2005 00:55 |
Что нового в AutoCAD 2005 | ilka_t | AutoCAD | 40 | 19.05.2004 16:48 |