| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
09.06.2008, 10:30 | 10 | 1 | #1 |
LISP. Нормализация блоков текущего файла.
Moderator
LISP, C# (ACAD 200[9,12,13,14])
С.-Петербург
Регистрация: 25.08.2003
Сообщений: 39,790
|
||
Просмотров: 94869
|
|
||||
В тех случаях, когда слой, на котором установлен блок отключаешь, а он все равно виден. У нас этим грешат архитекторы или когда чертежи приходят со стороны, как правило с творческих мастерских.
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
А можно добавить возможность применить команду не ко всем блокам, а только к выбранным?
__________________
Блог |
||||
|
||||
пианист Регистрация: 18.02.2008
Питер
Сообщений: 418
|
|
|||
|
||||
Цитата:
Цитата:
__________________
Блог |
||||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Смотрю с точки зрения изготовления подосновы из чужого (архитектурного) чертежа.
Согласен с №4. На загруженном чертеже невозможно проконтролировать результат. Кроме того, инструкцию по кодам придется записать на бумажке и приклеить на стену, так как не каждый день по 5 раз будет применятся. Либо несколько кнопок сделать. Хотя это возможно Надо бы иметь возможность вернуть в исходное, чтобы попробовать другой бит-код |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,790
|
Red Nova, #4 : такой задачи не ставилось. Но в принципе возможно (правда, придется переписывать практически наполовину )
ButcheR, #6: этот лисп исключает из обработки внешние ссылки. При чем тут "в какой слой (xref) его помещаете и какие свойства при этом задаёте" не очень понятно. Vova, #8: стандартная команда отмены должна вернуть все обратно.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 15.04.2005
Сообщений: 243
|
Цитата:
Такую задачу обычно решаем при подготовке подосновы, полученной от архитекторов. То, что для них было важно и они старались выделить, для нас становится второстепенно и должно отображаться тонкими линиями. Было бы не плохо ещё заменять в блоках, если встречаются, ttf шрифты на какой-нибудь стандартный shx, например simplex. Особенно это актуально если внутри блока применяется Mtext и фонт прописан прямо в нём. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,790
|
Теоретически - возможно. Практически...
1) Практически перенос толщин полилиний внутри блока в 0 проблем не составляет. Завтра только, сегодня уже силенок не хватат. 2) Установка свойств примитивов внутри блока в ByLayer лично я считаю неверным принципиально (см. аттач): слева блок с цветом примитива "ByLayer", справа - "ByBlock". Как разница, ощущается? 3) Замена только стиля (кстати, на какой? На текущий?) тоже проблем в общем-то не составит. Но вот снятие форматирования mtext'ов... Тут надо просто искать гарантированно работающий код. Кстати, как поступать с атрибутами блоков? P.S. Скорость работы такого лиспа будет, скорее всего, на порядок ниже, чем у исходного. P.P.S. Я уже несколько раз убеждался, что под "нормализацией" каждый понимает что-то свое
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
|||||
Регистрация: 15.04.2005
Сообщений: 243
|
Цитата:
Цитата:
Для нормализации подосновы, по крайней мере у нас, требуется чтобы она была только фоном и печаталась тонкими линиями. Поскольку у нас печать производится по цвету примитива, простая замента цвета всех елементов блока (и размерных стилей) на цвет ByLayer и замена цвета всех слоёв на необходимый цвет, в принципе, решает эту задачу. Цитата:
Взяты очень давно отсюда: ChStyle StripMtext v2.1 R15+ Copyright Steve Doman [email protected] 8/25/01 Полагаю замена должна производится глобально т.е. и в атрибутах тоже. Цитата:
Вполне вероятно я мог и ошибиться |
||||
|
||||
По поводу смены текстового стиля есть хорошая функция, опубликованная T.Willey здесь
Код:
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 24.09.2009 в 18:18. |
||||
|
||||
Регистрация: 15.04.2005
Сообщений: 243
|
Цитата:
|
|||
|
||||
Залётный,
Цитата:
А про BATTMAN поподробнее.
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Регистрация: 15.04.2005
Сообщений: 243
|
Цитата:
NORMBLOCKS всё переопределя в цвет, для меня, ByLayer. Если в чертёж вставлять блок, то он будет цветом ByLayer. Однако атрибуты блоков уже имеющиеся в чертеже сохраняют свой цвет. Поэтому их требуется синхронизировать, что выполнняется при помощи команды BATTMAN. Просто открывается этот блок в BATTMAN и нажимается кнопка Sync. Возможно ли выполнить такую синхронизацию при помощи LISP и если да, то добавить её к коду NORMBLOCKS. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,790
|
Так дело в том, что "нормализуются" описания блоков, а не их вхождения. Атрибуты - отдельная головная боль. Пользователь может каждому конкретному атрибуту выставить свой слой, тип, вес и цвет линии, текстовый стиль. И чего и в какой вид приводить?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 15.04.2005
Сообщений: 243
|
Вот вот. Как я понимаю, BATTMAN приводит атрибуты вставленных блоков к тому виду, чтобы они соответствовали "нормализованному" описанию. В случае когда они нормализовались в цвет ByLayer, они сразу принимают цвет слоя, что и требовалось в начале.
|
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Алексей прав - надо отделять мух от котлет. Нормализация определений блоков одно, вставок (в т.ч. атрибутов) - другое.
При этом надо определяться с понятием "нормализация". Блоки-то разные бывают. Например, другой чертеж вставленный в виде блока скорее всего не надо нормализировать. А вот различные блоки условных обозначений - надо. Особенно если они сделаны черт знает кем и когда. У меня для нормализации используется 16 функций, которые применяются в разных сочетаниях. Что нормализуется: 1. Все примитивы блоков переносятся на слой 0. 2. Большинству примитивов назначается цвет ByBlock. Исключения - когда элементу задан конкртеный цвет, который должен быть постоянным всегда и в любых условиях. 3. Особые сложности с шириной и весом линий. Если задан вес 0, то он переводится в LwDefault - иначе могут быть пробемы с печатью. Если у полилиний не постоянная физическая ширина - она не изменяется. Для полилиний с постоянной физической шириной - вес ByLayer. Если у полилиний уже есть Lw, и он не 0 и не Default - устанавливается ByBlock. Ну и другие варианты есть. 4. Вес линий для текстов и атрибутов LwDefault или зависящий от высоты текста - чтоб "большие" буквы выглядели жирнее, как по ЕСКД. Что касается атрибутов во вставках, их надо приводить к действующему определению стиля. Во вставленных блоках при изменении параметров текстового стиля (наклон, сжатие) вид атрибутов не изменяется. Чтобы их причесать используется специальная функция. |
|||
|
Опции темы | Поиск в этой теме |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Импорт палитры блоков при помощи LISP | TwoZero | LISP | 13 | 31.01.2019 17:38 |
Lisp. Расстановка блоков на пересечении линий. | wetr | LISP | 22 | 03.04.2018 10:54 |
AutoCAD 2008 - вставка блоков из файла в файл | Vavan Metallist | AutoCAD | 14 | 25.05.2009 19:37 |
Удаление не используемых блоков из файла | Гузалия | AutoCAD | 3 | 13.12.2007 10:06 |
2008. Глюк с назначением текущего цвета из Lisp? | _Andre_ | LISP | 5 | 25.10.2007 13:50 |