| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Очистка неиспользуемых масштабов аннотаций

Очистка неиспользуемых масштабов аннотаций

Ответ
Поиск в этой теме
Непрочитано 20.02.2018, 13:37 #1
Очистка неиспользуемых масштабов аннотаций
Mitek
 
Мостовик-затейник
 
Москва
Регистрация: 25.02.2006
Сообщений: 76

Всем привет
Очень нужен лисп, который бы давал результат, аналогичный команде (command "_-scalelistedit" "_d" "*" "_e"), то есть очищал именно неиспользуемые масштабы аннотаций.
Все лиспы, которые я находил на эту тему, приводили к полному сбросу списка масштабов.
Лисп нужен для вставки в реактор, в котором невозможно выполнение команд (вернее "с ножом к горлу" возможно, но отрабатывает не так, как нужно).
Просмотров: 4011
 
Непрочитано 20.02.2018, 13:50
#2
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


это вроде таблица "ACAD_SCALELIST" .. если не командными методами
Сергей812 вне форума  
 
Автор темы   Непрочитано 20.02.2018, 13:58
#3
Mitek

Мостовик-затейник
 
Регистрация: 25.02.2006
Москва
Сообщений: 76


Я знаю что эта таблица. А толку от этого знания?
Mitek вне форума  
 
Непрочитано 20.02.2018, 14:34
#4
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


Цитата:
Сообщение от Mitek Посмотреть сообщение
А толку от этого знания?
отправная точка для поиска)
Сергей812 вне форума  
 
Непрочитано 20.02.2018, 20:47
#5
Alex.gomel


 
Регистрация: 09.11.2017
Сообщений: 28


Как вариант:
Код:
[Выделить все]
 (vlax-for i (vla-item (vla-get-dictionaries (vla-get-activedocument (vlax-get-acad-object))) "acad_scalelist")
    (if (not (eq (cdr (assoc 300 (entget (vlax-vla-object->ename i)))) (getvar "CANNOSCALE"))) (vla-delete i))
  )
Alex.gomel вне форума  
 
Автор темы   Непрочитано 21.02.2018, 09:56
#6
Mitek

Мостовик-затейник
 
Регистрация: 25.02.2006
Москва
Сообщений: 76


Цитата:
Сообщение от Alex.gomel Посмотреть сообщение
Как вариант:
Код:
[Выделить все]
 (vlax-for i (vla-item (vla-get-dictionaries (vla-get-activedocument (vlax-get-acad-object))) "acad_scalelist")
    (if (not (eq (cdr (assoc 300 (entget (vlax-vla-object->ename i)))) (getvar "CANNOSCALE"))) (vla-delete i))
  )
Опять же это убивание всех масштабов, даже используемых.
Для понимания прикладываю файл.
Почистите его командой (command "_-scalelistedit" "_d" "*" "_e") и этим лиспиком. Почувствуйте разницу.

----- добавлено через ~25 мин. -----
Видимо сам отвечу на вопрос.
Немного подробнее опишу проблему.
Практически все неиспользуемые масштабы перетекают из ссылок (и при этом прикрепляются к файлу, за что автодеску "огромное спасибо"). То есть при подключении к чертежу1 ссылки на чертёж2 с кучей масштабов, вся эта куча масштабов из чертежа2 перекочёвывает в чертёж1. Получается снежный ком. Есть файлы, хранящие 40-60 тысяч масштабов. Такие файлы плохи тем, что подключаются в качестве ссылки неимоверно долго.
Выяснилось, что в своём названии масштабы, перетёкшие из ссылок, имеют маркер XREF. Нарыл на буржуйском форуме утилиты по очистке масштабов, в том числе и ссылочных.
https://forums.autodesk.com/t5/autoc...p/td-p/5645436
Меня это вполне устраивает. Повесил очистку ссылочных масштабов на реактор команды закрытие.
Вложения
Тип файла: dwg
DWG 2013
Аннотативные масштабы.dwg (1.25 Мб, 45 просмотров)
Mitek вне форума  
 
Непрочитано 21.02.2018, 10:28
#7
Alex.gomel


 
Регистрация: 09.11.2017
Сообщений: 28


Тогда возникает вопрос к постановке задачи и терминологии (используемый - это текущий).
Необходимо оставить только созданные пользователем масштабы аннотаций (используемые) отличные от стандартных, и удалить остальные (неиспользуемые)?
Alex.gomel вне форума  
 
Непрочитано 21.02.2018, 10:58
#8
trir


 
Регистрация: 18.12.2010
Сообщений: 5,047


Цитата:
Есть файлы, хранящие 40-60 тысяч масштабов. Такие файлы плохи тем, что подключаются в качестве ссылки неимоверно долго.
так удалите эти масштабы
trir вне форума  
 
Автор темы   Непрочитано 21.02.2018, 11:00
#9
Mitek

Мостовик-затейник
 
Регистрация: 25.02.2006
Москва
Сообщений: 76


Цитата:
Сообщение от Alex.gomel Посмотреть сообщение
Тогда возникает вопрос к постановке задачи и терминологии (используемый - это текущий).
Необходимо оставить только созданные пользователем масштабы аннотаций (используемые) отличные от стандартных, и удалить остальные (неиспользуемые)?
Используемых (в процессе работы) может быть много, текущий - только один в конкретный момент времени. Очищать надо неиспользуемые, аналогично команде (command "_-scalelistedit" "_d" "*" "_e").
А насоздавал ли пользователь своих масштабов или использовал часть стандартных - мне неизвестно.

----- добавлено через ~1 мин. -----
Цитата:
Сообщение от trir Посмотреть сообщение
так удалите эти масштабы
Гениально! А я что по вашему хочу сделать?

----- добавлено через ~2 мин. -----
В общем ещё раз: вопрос решился удалением ссылочных масштабов аннотаций утилитами по приведённой ранее ссылке, ибо в основном они и есть неиспользуемые. Всем спасибо

Последний раз редактировалось Mitek, 21.02.2018 в 11:05.
Mitek вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Очистка неиспользуемых масштабов аннотаций

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Произвольное изменение масштаба аннотаций при переходе из модели в лист и обратно Nik6 AutoCAD 12 03.11.2023 19:59
Дополнительные команды для Аннотативных масштабов. Удаление лишних масштабов, копирование масштабов между объектами и т.п. Red Nova Программирование 62 24.06.2023 15:09
Новый масштаб аннотаций добавляется к уже нарисованным линиям AVO AutoCAD 3 03.04.2013 14:21
Проблема с редактированием списка масштабов в Autocad 2008 Syoma AutoCAD 1 04.09.2009 08:32
Проблема со списком масштабов аннотаций mkung AutoCAD 3 19.02.2009 11:28