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

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

Динамич. блоки. Програмное изм. свойств

Ответ
Поиск в этой теме
Непрочитано 05.10.2007, 11:44
Динамич. блоки. Програмное изм. свойств
ct_ycte
 
Россия
Регистрация: 29.08.2007
Сообщений: 28

Здравствуйте!!!
Создал динам. блок, например с изменением его длины. При его выделении появляется ручка где показаны все возможные варианты длины.
Вопрос: А нельзя изменение длины(для этого случая) запрограммировать на кнопку?

Спасибо за помощь!!!

(Просто хочется сделать форматы на основе динам. блоков с удобным интерфейсом)
Просмотров: 11992
 
Непрочитано 08.11.2007, 15:07
#21
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Да, читал я все и понимаю прекрасно. Только наука взломология ушла чуток вперед.
Дело в том, что параметр видимости может быть доступен только один в текущий момент. В первом (нулевом) уровне все прекрасно, можно динамические свойства устанавливать и графику. Во втором и выше вы можете поставить только графику и завязать ее видимость на окна в этом уровне. Сделать это можно (пока, не сомневаюсь) только в редакторе. И причем после слома lookupa, который должен быть последним из установленных динамических свойств первого (нулевого) уровня. После того, как все visibility сделаны и графика в них установлена, можно починить lookup и станет доступен нулевой уровень visibility, где уже динамическими свойствами завязать графику других visibility.
Вот такая вот безумная идея. Вручную я это уже делал, но вспотел безбожно. Надо сделать специальный гаечный ключ.
Supermax вне форума  
 
Непрочитано 08.11.2007, 15:10
#22
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Евгений, ты до сих пор считаешь, что я параметры видимости сам вставлял в словарь?
Да они сами туда вставляются, как только lookup нарушаешь!
Supermax вне форума  
 
Непрочитано 08.11.2007, 15:15
#23
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


Цитата:
Сообщение от Supermax Посмотреть сообщение
Евгений, ты до сих пор считаешь, что я параметры видимости сам вставлял в словарь?
Да они сами туда вставляются, как только lookup нарушаешь!
Я показывал дерево взаимосвязей объектов для описания динамических блоков. Короче, я полностью переписывал три нижних уровня, со всеми динамическими свойствами и.т.д...
Делал все полностью программно, но не единой программой, а частями, хотя все из лисп редактора.
Елпанов Евгений вне форума  
 
Непрочитано 08.11.2007, 15:26
#24
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Да и я тоже самое делал, да только взаимосвязь "левых" visibility обнаруживается только при их установке через редактор. Правда с динамическими свойствами вкупе я не пробовал.
И еще очень хочу перенести stretch в другой блок, да никак не разберусь с вот этим:
Код:
[Выделить все]
(92 . 0) Ну это счетчик, я и так понял.
(93 . 0) Это всегда в нуле никогда не встречал другого значения, наверное маркер.
(94 . 2) 
(91 . 0) 
(91 . 1) 
(92 . -1) Это и ниже вроде кода - не совсем еще проанализировал, но всегда оно одно и тоже.
(92 . -1) 
(92 . -1) 
(92 . 1) 
(92 . -1)
Supermax вне форума  
 
Непрочитано 08.11.2007, 15:43
#25
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


А дерево шикарное, да вот беда, его надо в витрину выставить, а оно почти недосигаемо. Может и в эту тему его вставить?
Да! Надо, однако.
Евгений - это твое, тебе и вставлять.
Supermax вне форума  
 
Непрочитано 08.11.2007, 18:36
#26
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Последние наблюдения:
В блоке лежит примитив, скажем полилиния. Я вхожу в редактор и делаю (entget (car (entsel))).
-1 DXF код показывает от вхождения к вхождению все время разные значения. Но если я захожу в параметр visibility и смотрю там на этот примитив, то его -1 код всегда один и тот же.
Вот чем они отличаются:

Данные (entget (car (entsel)))
Код:
[Выделить все]
((-1 . <Entity name: 7e995218>) 
(0 . "LWPOLYLINE") 
(330 . <Entity name: 7e984cf8>) 
(5 . "133") 
(100 . "AcDbEntity") 
(67 . 0) 
(410 . "Model") 
(8 . "0") 
(100 . "AcDbPolyline") 
(90 . 4) 
(70 . 1) 
(43 . 0.0) 
(38 . 0.0) 
(39 . 0.0) 
(10 0.0 104.334) 
(40 . 0.0) 
(41 . 0.0) 
(42 . 0.0) 
(10 246.811 104.334) 
(40 . 0.0) 
(41 . 0.0) 
(42 . 0.0) 
(10 246.811 0.0) 
(40 . 0.0) 
(41 . 0.0) 
(42 . 0.0) 
(10 0.0 0.0) 
(40 . 0.0) 
(41 . 0.0) 
(42 . 0.0) 
(210 0.0 0.0 1.0))
Данные через visibility
Код:
[Выделить все]
((-1 . <Entity name: 7e984fb0>) 
(0 . "LWPOLYLINE") 
(330 . <Entity name: 7e984f70>) 
(5 . "EE") 
(100 . "AcDbEntity") 
(67 . 0) 
(8 . "0") 
(100 . "AcDbPolyline") 
(90 . 4) 
(70 . 1) 
(43 . 0.0) 
(38 . 0.0) 
(39 . 0.0) 
(10 0.0 104.334) 
(40 . 0.0) 
(41 . 0.0) 
(42 . 0.0) 
(10 246.811 104.334) 
(40 . 0.0) 
(41 . 0.0) 
(42 . 0.0) 
(10 246.811 0.0) 
(40 . 0.0) 
(41 . 0.0) 
(42 . 0.0) 
(10 0.0 0.0) 
(40 . 0.0) 
(41 . 0.0) 
(42 . 0.0) 
(210 0.0 0.0 1.0))
Отличие весьма существенные. Так, что перетаскивать простым копированием примитивы в visibility врядли получится.
Интересно как себя поведут vla-функции в покареженном блоке?
Supermax вне форума  
 
Непрочитано 08.11.2007, 18:48
#27
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Хотя можно поробовать стерать и 410 код вместе с -1 и 5.

А вот таже полилиния, только в пространстве модели с координатами как в блоке (место точки вставки в 0,0,0).

Код:
[Выделить все]
((-1 . <Entity name: 7e995250>) 
(0 . "LWPOLYLINE") 
(330 . <Entity name: 7e984cf8>) 
(5 . "13A") 
(100 . "AcDbEntity") 
(67 . 0) 
(410 . "Model") 
(8 . "0") 
(100 . "AcDbPolyline") 
(90 . 4) 
(70 . 1) 
(43 . 0.0) 
(38 . 0.0) 
(39 . 0.0) 
(10 0.0 104.334) 
(40 . 0.0) 
(41 . 0.0) 
(42 . 0.0) 
(10 246.811 104.334) 
(40 . 0.0) 
(41 . 0.0) 
(42 . 0.0) 
(10 246.811 0.0) 
(40 . 0.0) 
(41 . 0.0) 
(42 . 0.0) 
(10 0.0 0.0) 
(40 . 0.0) 
(41 . 0.0) 
(42 . 0.0) 
(210 0.0 0.0 1.0))
Я просто блок взорвал и переместил полилинию в 0,0,0.

Последний раз редактировалось Supermax, 08.11.2007 в 18:53.
Supermax вне форума  
 
Непрочитано 08.11.2007, 18:52
#28
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


330 - всегда постоянный, что в блоке, что за пределами его.

Чтобы вставить графику в блок, в свойство visibility, надо подставить нужный 330 код от этого visibility и стереть кое-что не нужное. Можно и обратно делать тоже самое. Можно свой редактор блоков сделать.

Последний раз редактировалось Supermax, 08.11.2007 в 18:58.
Supermax вне форума  
 
Непрочитано 08.11.2007, 21:41
#29
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Надо попробовать изменить объект динамических свойств из под редактора блоков. То есть произвести модификацию свойства из пространства редактора. Если получится, то это даст представление о связи символов свойств с описанием объектов модели.
Supermax вне форума  
 
Непрочитано 08.11.2007, 22:44
#30
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Что такое код 95 в словаре "ACAD_EVALUATION_GRAPH"?
Счетчик созданного свойства. Если все время удалять Stretch, а потом вставлять и опять удалять и вставлять, 95 код над этим элементом в словаре прибавляет от раза к разу единицу.

Код:
[Выделить все]
((-1 . <Entity name: 7ef81628>) 
(0 . "ACAD_EVALUATION_GRAPH") 
(5 . "1AD") 
(102 . "{ACAD_REACTORS") 
(330 . <Entity name: 7ef81620>) 
(102 . "}") 
(330 . <Entity name: 7ef81620>) 
(100 . "AcDbEvalGraph") 
(96 . 6) 
(97 . 6) 
(91 . 0) Счетчик по порядку описания свойства начинается в словаре "ACAD_EVALUATION_GRAPH" начинается с 0
(93 . 32) Разрядность представления в базе
(95 . 1) Счетчик последовательности создания свойства. был создан в первую очередь, но стоит убить и опять вставить примет значение последнего созданного 95 кода +1.
(360 . <Entity name: 7ef81630>) это словарь где описано свойство distance
(92 . -1) Про -1 могу сказать только одно: Скорее всего это признак неопределенности или отсутствия значения
(92 . -1) 
(92 . 0) 
(92 . 0) 
(91 . 1) 
(93 . 32) 
(95 . 6) а здесь его номер в базе последовательностей создания. Если убивать stretch и опять вставлять будет расти на 1.
(360 . <Entity name: 7ef81638>) вот это stretch
(92 . 0) 
(92 . 0) 
(92 . -1) 
(92 . -1) 
(92 . 0) 
(93 . 0) 
(94 . 2) 
(91 . 0) 
(91 . 1) 
(92 . -1) 
(92 . -1) 
(92 . -1) 
(92 . -1) 
(92 . -1))

Последний раз редактировалось Supermax, 12.11.2007 в 15:26.
Supermax вне форума  
 
Непрочитано 12.11.2007, 15:22 Про недокументированные данные
#31
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Некоторые люди считают, что если данные не документированы, то и изучать их не надо, поскольку в следующих версиях программы они могут быть изменены.
Отвечу следующее: Да они обязательно будут изменены, поскольку совершенства в этой области не достигло своего апогея. Но если при этом совершенствовании будет нарушена приемственность форматов одной программы в другую - это будет уже две разных программы и выбор какой пользоваться за пользователем естественно.
Вот есть у меня 2006 кад, в котром я могу создавать динамические блоки с несколькими параметрами видимости, а 2007 даже 3Dорбит в редакторе блоков работать перестал (правда в 2008 восстановили), так и что? Закроют в 2009 каде вообще динамические свойства (я лично сомневаюсь) и будем держать сразу несколько кадов. Расковыряем 2006 на все 100 и будем его модернизировать сами. Да я думаю, что в конце концов эти сведения опубликуют, как только поймут, что публиковать уже поздно.
Supermax вне форума  
 
Непрочитано 12.11.2007, 18:55
#32
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Я нашел закономерность по которой образуются коды выделенные красным.

(91 . 14)
(93 . 32)
(95 . 31)
(360 . <Entity name: 7efa1ac0>)
(92 . 11)
(92 . 11)
(92 . -1)
(92 . -1)


В них определена связь объектов друг с другом и одновременно последовательность описания в зависимости от последовательности создания. (да не треснут ваши головы)
Supermax вне форума  
 
Непрочитано 12.11.2007, 22:38 Про свойства
#33
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Вот что я нарыл:
Цитата:
Поле parent используется для построения иерархической структуры; дерева объектов. Каждому объекту присваивается его порядковый номер при следовании в файле, поле parent выставляется в -1, если у данного объекта нет родителя. Вот пример.

Код:
[Выделить все]
объект | номер | parent
--------+-------+--------
    A   |   0   |   -1
    B   |   1   |    0                    A
    C   |   2   |    1          +---------+----+
    D   |   3   |    2          B         K    N
    E   |   4   |    1     +----+----+    +    +
    F   |   5   |    4     C    E    H    L    O
    G   |   6   |    5     +    +    +    +    +
    H   |   7   |    1     D    F    I    M    P
    I   |   8   |    7          +    +
    J   |   9   |    8          G    J
    K   |  10   |    0
    L   |  11   |   10
    M   |  12   |   11
    N   |  13   |    0
    O   |  14   |   13
    P   |  15   |   14
Насколько я понял, дерево используется следующим образом: если к какому-то узлу дерева применяется преобразование, то оно же автоматически применяется и ко всем узлам, "растущим" из этого. То есть, если объект B в нашем примере есть рука, а объекты C, D, E, F, G, H, I, J - пальцы, то при повороте руки пальцы должны повернуться автоматически, вместе с рукой. В результате блок CHUNK_TRACKROTATE для пальцев может быть пустым, а пальцы будут вращаться вместе с рукой.
Вот от сюда:
http://www.enlight.ru/faq3d/articles/75.htm

Не находите сходство?
Я по этому примеру опишу эти красные коды 92, но чуть позже.

Последний раз редактировалось Supermax, 12.11.2007 в 22:49.
Supermax вне форума  
 
Непрочитано 19.11.2007, 15:26
#34
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Вот сюда я выложил программу, которая заполняет Lookup-ы из Excel.
http://dwg.ru/f/showthread.php?t=8940&page=6

Пост№114
Supermax вне форума  
 
Непрочитано 22.11.2007, 23:39
#35
Владимир М

-
 
Регистрация: 31.07.2005
Ухта
Сообщений: 381
<phrase 1=


Проверь свой макрос Supermax, что-то он мне не нравится (не срабатывает). Он автоматом начинает работать, когда подгужаешь LISPик через Сервис - AutoLISP - Приложения
AutoCAD Ругается таким образом: (load "Excel-Loocup.lsp" "Фаил Excel-Loocup.lsp не найден") "Фаил
Excel-Loocup.не найден"
__________________
Я не волшебник, я только учусь…
Владимир М вне форума  
 
Непрочитано 23.11.2007, 18:22
#36
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Не знаю что у тебя за кад. НО! Если лисп загружать ручками, то есть через Tools\AutoLISP\Load Application, то путь не нужен вообще. А вот если ты положил мой лисп в свою папочку для лиспов и хочешь кнопочкой его от туда вызвать, а судя по
Цитата:
(load "Excel-Loocup.lsp" "Фаил Excel-Loocup.lsp не найден")
именно это ты и хочешь сделать, то тебе путь лежит в Tools\Option\Files\Support File Search Path\ с нажатием Add и Browse... Далее тыкаешь в папочку где лежит твой (бывший мой) лисп и нажимаешь Apply то есть применить.
Удачи!
Supermax вне форума  
 
Непрочитано 23.11.2007, 18:59
#37
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


>Supermax Я бы в темах, где публиковал программы дал ссылки на download. Ведь там самое свежее
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 23.11.2007, 19:03
#38
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Дык, я ж давал! Да и в темах ничем не отличаются по свежести от тех. Правда не все в данлоад кладу. Ну кому нужны лиспы для ковыряния дин. блоков? Да и народ как-то вяло темой этой интересуется. Качают, а зачем сами наверное не знают.

Не, правда твоя, в данлоад не давал. Так на главной и так пару дней висит и маячит, неужели не замечают?
Supermax вне форума  
 
Непрочитано 24.11.2007, 18:22
#39
Владимир М

-
 
Регистрация: 31.07.2005
Ухта
Сообщений: 381
<phrase 1=


Supermax, как это мало интересуются? То чем ты занимался и что выложил это класс! Эта помощь просто супер! теперь дин блоки можно очень быстро делать (где много позиций). Я доволен! Спасибо огромное всем кто этим занимался и тебе огромное что выложил сюда! Просто нет слов!
__________________
Я не волшебник, я только учусь…
Владимир М вне форума  
 
Непрочитано 17.04.2009, 17:21
#40
Juss_00

Инженер
 
Регистрация: 11.12.2007
Москва
Сообщений: 295


Скажите пожалуйста, тока без страшных кодов.)
Есть ли теперь возможность использовать больше одного параметра видимости в динамических блоках?

Visibility Set - это и есть то самое?

Теперь знаю что есть такие блоки. Увидел файл с 5 параметрами видимости. ))
Просвятите где самое лаконичное объяснение или тупо где "кнопку" сделать для вставки ещё видимостей.
__________________
Live as though tomorrow you will die,
Study as though you will live eternally.

Последний раз редактировалось Juss_00, 17.04.2009 в 17:32. Причина: Непрочёл исходную тему до конца
Juss_00 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Динамич. блоки. Програмное изм. свойств

Реклама i
Опции темы Поиск в этой теме
Поиск в этой теме:

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