|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
Выкладываю новые мои блоки. Может кому пригодяться или идея по душе будет...
Поправил dwgKOLF_03.dwg (спасибо за замечание Krieger)
__________________
Поезд который устал от ржавого здравомыслия рельсов... Последний раз редактировалось Shoorup, 27.12.2007 в 10:57. |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Supermax, cвойства или значения свойств?
--- Добавлено: код не проверял, только просмотрел.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Новая версия лиспа.
Создает файл "словарь.txt" в той же папке, из которой запущен лисп (если не указано жестко куда сохранять по умолчанию). Распечатывает в этот файл содержимое словаря ACAD_EVALUATION_GRAPH При этом к каждой распечатке окружения словаря свойства добавляет имя этого свойства. Так что это не точное содержание этого словаря, а чуток расширенное, для лучшего понимания. Каждый раз, как запускается лисп этот файл переписывается по новой, так что будьте внимательны. С начала надо содержимое этого файла в mtext перекачать. Как? - Руками. На лиспе день угрохал и ничего не получилось толкового. |
||||
|
||||
Теперь надо закономерности выявлять.
Все объекты делятся на три группы: - Параметры - Активаторы параметров - Ручки параметров Ручки параметров описаны тоже тремя видами элементов: - BLOCKXYGRIP сама ручка - BLOCKGRIPLOCATIONCOMPONENT положение по Х - BLOCKGRIPLOCATIONCOMPONENT положение по Y 1-я закономерность: - Никогда описание ручек параметра не может находиться перед самим параметром. Поскольку кад сначала ставит параметр, а потом его ручки ставит автоматом. Вот и получается, что ручки идут за параметром. 2-я закономерность: - Если параметр убить, автоматом сносятся и его ручки. Но если ручки выключить - параметр останется, а из словаря исчезнут ручки. 3-я закономерность: - Поставить активатор параметра просто в чисто поле не получится, но если установить пару параметр-активатор параметра, а потом параметр убить - активатор останется висеть одиноким холостяком. В 2006 каде прикосновение к нему приводит к слетанию када, в 2007 и 2008 это исправили. Короче в 2007 и 2008 кадах возможно сделать пару активатор параметра - параметр. То есть в словаре будет идти сначала активатор, а потом параметр. 4-я закономерность: - Если ручки выключили, блок пересохранили, а потом опять ручки включили - они появляются в конце списка. Как новые элементы. 5-я закономерность - Все 92 коды следующие после словаря переписываются каждый раз, как произошло изменение в составе основных элементов словаря (дин. параметры и их ручки). 6-я закономерность - Маркировка начинается с динамических параметров кроме blocklookupparameter (третий слева 92 код) с 0. Маркируются по очереди все параметры пока маркировка не упрется в первую ручку, потом маркируются BLOCKGRIPLOCATIONCOMPONENT этой ручки и идет возврат в начало списка, от куда маркируются уже активаторы (1-й и 2-й 92-ые коды). |
||||
|
||||
7-я закономерность
- У элемента Alignment Parametr нельзя выключить ручку и поэтому он всегда в сопровождении своего окружения ручки и ее положения по X и Y. Маркировка в этой группе начинается с ручки и далее на параметр, потом на положения. "BLOCKALIGNMENTPARAMETER" (91 . 5) (93 . 32)(95 . 37)(360 . <Entity name: 7ec222f0>) (92 . 0) (92 . 0) (92 . 1) (92 . 2) "BLOCKALIGNMENTGRIP" (91 . 6) (93 . 32)(95 . 38)(360 . <Entity name: 7ec222f8>) (92 . -1) (92 . -1) (92 . 0) (92 . 0) "BLOCKGRIPLOCATIONCOMPONENT" (91 . 7) (93 . 32)(95 . 39)(360 . <Entity name: 7ec22300>) (92 . 1) (92 . 1) (92 . -1) (92 . -1) "BLOCKGRIPLOCATIONCOMPONENT" (91 . 8) (93 . 32)(95 . 40)(360 . <Entity name: 7ec22308>) (92 . 2) (92 . 2) (92 . -1) (92 . -1) |
||||
|
||||
Вот так примерно надо и прослеживать порядок маркировки элементов.
Я то порядок проследил, и даже установил, что указателей вутри самих свойств, которые могли бы прямо указывать на следующее в маркировке свойство НЕТ. Только правилами все сделано. Надо эти правила выявлять. 8-я закономерность: - Все четыре 92 кода разделены строго на две группы. Первая слева на право бит-0 маркируется только один раз и уже не видоизменяется. бит-1 маркируется тем же номером, что и бит-0, но затем может быть перемаркирован. Поэтому через него два раза проходит путь маркировки. Вторая группа тоже начинается с бит-0 (3-тья 92 группа слева) маркируется и не изменяется, бит-1 маркируется и может быть перемаркирован. Я может где и ошибся чуток, до сих пор еще колеблюсь в правилах, но в целом картина правильная. |
||||
|
||||
Лиспик, который распечатывает содержимое всех свойств в файл "словарь-нутро.txt" а то в экран не влазит ничего.
Небольшая переделка файла. Я использовал другой лисп, как первоначальный и забыл сюда вставить его "вступление". Извиняйте за оплошность. Вот новый вариант. Последний раз редактировалось Supermax, 18.11.2007 в 13:23. |
||||
|
||||
Вот, за выходные сделал.
Программа заполняет динамическое свойство Lookup из содержимого файла Excel. Сначала надо в Lookup-e создать нужное количество столбцов (lookup Properties – крайние справа). Затем в Excel создать таблицу с содержимым всех столбцов включая и столбцы lookup Properties. Разделитель должен быть точка. Точность после запятой – 14 знаков (желательно, но работает и так). Запустить макрос. Войти в редактор блока и зайдя в редактор Lookup-a включить «Allow reverse lookup». Выйти с сохранением. Все. |
||||
|
||||
Вот DWG с квадратиком и двумя растяжками (по ширине и высоте).
В блоке есть Lookup и в нем уже установлены столбцы Distance Distance1 Lookup Lookup1 Не путайте название активатора с названием параметра. Активатор - желтая стрелка Параметр - с треугольной ручкой (или просто надпись). В данном примере один из столбцов "Lookup1" и активатор тоже имеет имя "Lookup1". Их можно и переименовать. |
||||
|
||||
Вот таблица Excel, где на первом листе дана таблица заполнения Lookup-a.
Первый столбец - Distance Второй столбец - Distance1 Третий столбец - Lookup Четвертый столбец - Lookup1 Не забудьте после выполнения макроса зайти в блок и там в редактор lookup-a и выйти от туда с сохранением. |
||||
|
||||
Сначала я сделаю Lookup-Excel.lsp для переписывания содержимого одного Lookup-a в Excel, из которого можно это перенести прожкой Excel-Lookup.lsp в другой Lookup.
Ну и ломатель тоже скоро сделаю. Он проще, намного, только вот, что получится - не знаю. Можно и lookup-Lookup.lsp сделать. Теперь все можно. |
||||