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

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

Мои динамические блоки

Закрытая тема
Поиск в этой теме
Непрочитано 07.11.2006, 15:22
Мои динамические блоки
Shoorup
 
Минск
Регистрация: 16.09.2006
Сообщений: 1,587

Прогресс и опыт не стоит на месте. А по этому хочу поделиться своим опытом по созданию динамических блоков и конечно посмотреть на чужой.
Динамические блоки очень мощный инструмент, а умело им пользоваться далеко не каждый умеет. Уверен большинство идей (ухищрений, модификаций, построений) можно применить и для своей работы тем самым свести к минимуму однотонную и трудоемкую работу => что я и предлагаю на данной теме.
---
Дополнительно (спасибо VVA):
В 2010-2011-2012 в редакторе блоков при настройках по умолчанию нельзя добавлять к операциям некоторые вещи, например к операции Flip добавить Strech и т.д.
Описание проблемы:
http://forum.dwg.ru/showpost.php?p=7...postcount=2666
Решение:
http://forum.dwg.ru/showpost.php?p=7...postcount=2679
----
Тема закрыта, продолжение: http://forum.dwg.ru/showthread.php?t=66721
__________________
Поезд который устал от ржавого здравомыслия рельсов...

Последний раз редактировалось Кулик Алексей aka kpblc, 09.11.2011 в 14:01.
Просмотров: 1891355
 
Автор темы   Непрочитано 01.09.2008, 16:42
#601
Shoorup


 
Регистрация: 16.09.2006
Минск
Сообщений: 1,587
<phrase 1= Отправить сообщение для Shoorup с помощью Skype™


Supermax, эту программу я жду больше всего! Думаю она будет пользоваться наибольшей популярностью.
__________________
Поезд который устал от ржавого здравомыслия рельсов...
Shoorup вне форума  
 
Непрочитано 01.09.2008, 23:39
#602
Supermax

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


Подправил ошибки и выложил в данлоадс-автокад-программы-блоки.
Supermax вне форума  
 
Непрочитано 02.09.2008, 07:52
#603
Volodich

проектировщик-электрик
 
Регистрация: 20.12.2007
Челябинск
Сообщений: 475


Здравствуйте.
Хочу немного вернуть вас с высших материй и спросить что попроще
Сделал блок, не могу решить пару проблем.
1. Есть два параметра отражения - вертикальное и горизонтальное. Почему-то отражается все, кроме ручек отражения. Объясните в чем причина? Я уже и ось отражения добавлял отдельно и ручку отражения отдельно и все вместе! Бесполезно!
2. В выложенном примере в параметре "строка2" записано: "Н12". Если теперь нажать на стрелочку вертикального отражения, все отразится нормально. Но если теперь в "Н12" дописать "34", чтобы получилось "Н1234", то во-первых строка эта уже будет стоять в блоке криво, а во-вторых при обратном вертикальном отражении тоже встанет криво. Криво имеется ввиду не на месте. (в сравнении со строкой "Н").
Можно ли как-то сделать чтобы можно было блок редактировать в при любом состоянии и строки бы выравнивались?

И сразу еще один вопрос. Как можно использовать программу, написанную Supermax'ом по перестановке свойств динамического блока?
Вложения
Тип файла: dwg
DWG 2004
Выноска_списка_кабелей.dwg (41.7 Кб, 3712 просмотров)
Volodich вне форума  
 
Непрочитано 02.09.2008, 09:10
#604
Supermax

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


После правки значений атрибута делай attsync в ком. строке и все становится на место. Можешь на кнопку эту команду вывести.
А программу по перестановке имен свойств применяют там, где они есть. Вот к примеру в твоем блоке углы можно вместе отражать, а не сначала угол, затем длина1, затем угол1 и вообще, там где свойствами надо не только динамику обеспечить, а еще и параметры изделия определить (это когда динамическим блоком 3D графику оформляют). Там надо чтобы все свойства были строго в определенной последовательность отображены, а не как бог на голову пошлет.
Supermax вне форума  
 
Непрочитано 02.09.2008, 09:12
#605
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,536
<phrase 1= Отправить сообщение для wetr с помощью Skype™


Volodich,
http://dwg.ru/f/showpost.php?p=280530&postcount=4
Посмотри - много полезного.
1. Сделал заново - все работает
2. Сделай Move action и прицепи к нему свой атрибут
Вложения
Тип файла: dwg
DWG 2004
Выноска_wetr.dwg (52.1 Кб, 3767 просмотров)
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Непрочитано 02.09.2008, 12:01
#606
Supermax

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


Благодаря твоему блоку, где ты переименовал названия свойств, подправил и свою прогу. Теперь она двигает и твои углы с длинами в связке. В данлоадсе выложил последнюю версию в виде фаса.
Supermax вне форума  
 
Автор темы   Непрочитано 03.09.2008, 10:43
#607
Shoorup


 
Регистрация: 16.09.2006
Минск
Сообщений: 1,587
<phrase 1= Отправить сообщение для Shoorup с помощью Skype™


Supermax, последний вариант программы не работает.
Дает ошибку:
Код:
[Выделить все]
(LOAD "C:/ShSCB/move-properties.fas")
Выберите объект: np_prop: dialog{label=" - Virtual Building Technologies - ";
  :row{label="Перемещение позиций свойств в динамическом блоке";
  :column{label="";
  :text{label="Свойство, выбранное для перемещения";alignment=centered;}
  :popup_list{label=" ";list=" ";value=" 
";key="b4";width=35;alignment=centered;}
  :row{label="Перемещение";
  :button{label="Move Up";key="df4";fixed_width=true;}
  :button{label="Move Down";key="df5";fixed_width=true;}
  }
  :ok_button{label="Ok";key="df3";alignment=centered;fixed_width=true;}
  }
  :list_box{label="Список свойств блока";list=" ";value=" 
";key="b10";width=35;}}}
  //
; ошибка: неверный тип аргумента: streamp nil
__________________
Поезд который устал от ржавого здравомыслия рельсов...
Shoorup вне форума  
 
Непрочитано 03.09.2008, 13:21
#608
Volodich

проектировщик-электрик
 
Регистрация: 20.12.2007
Челябинск
Сообщений: 475


Supermax, Спасибо за совет с attsync. Действительно срабатывает! Подскажи, пожалуйста, какой должен быть макрос кнопки, чтобы нажал ее, блок выбрал и все ? (я не знаю как в макросе <enter> обозначается).
Про свойства я понял, что еще пока не дорос до таких блоков, где нужно вручную свойства устанавливать А "длина1" и "угол1" - это в моем блоке мусор. Просто он еще окончательно недоделан ввиду вышеперечисленных проблем. А в конечном варианте я вообще все эти свойства из свойств блока уберу. Мне достаточно ручек для его настройки. Но я думаю, что это дело времени.
wetr, Спасибо за переделку блока! Но в чем причина-то была? Я тоже несколько раз заново этот параметр отражения добавлял... Может быть от того что у меня автокад русский и нелицензионный и глючит?
Volodich вне форума  
 
Непрочитано 03.09.2008, 13:32
#609
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


Цитата:
Сообщение от Volodich Посмотреть сообщение
Подскажи, пожалуйста, какой должен быть макрос кнопки, чтобы нажал ее, блок выбрал и все ? (я не знаю как в макросе <enter> обозначается).
Код:
[Выделить все]
^C^C(defun C:M-Command () (vl-cmdf "_.ATTSYNC" "_S" Pause "_Y"));M-Command;
Makswell вне форума  
 
Автор темы   Непрочитано 03.09.2008, 14:03
#610
Shoorup


 
Регистрация: 16.09.2006
Минск
Сообщений: 1,587
<phrase 1= Отправить сообщение для Shoorup с помощью Skype™


Makswell, ето для чего? Есть же кнопка "Синхронизировать атрибуты" на панели "Редактирование-2".
__________________
Поезд который устал от ржавого здравомыслия рельсов...
Shoorup вне форума  
 
Непрочитано 03.09.2008, 15:08
#611
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


Shoorup, ну типа движений меньше...
Makswell вне форума  
 
Непрочитано 05.09.2008, 20:20
#612
Supermax

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


Shoorup, а собственно что ты перемещаешь? Я вижу у тебя в сообщении текст DCL файла и все. Я вполне допускаю, что мог прозевать какое-нибудь свойство или обсоятельство, но ты сначала по русски объясни когда выскакивает эта надпись. У меня все работает, да и другие не жалуются.
Может ты примерчик скинешь?
Supermax вне форума  
 
Непрочитано 09.09.2008, 11:43
#613
Supermax

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


Мне неловко, но застрял на чисто детском вопросе
Делаю прогу исключительно работающую в пространсве редактора блоков (если его так можно назвать). Список всех существующих параметров видимости - пожалуйста, а как узнать где я нахожусь в данный момент - дудки. Также пока не выяснил как узнать из пространства редактора блоков, какой собственно блок в него в данный момент загружен.
Мне надо это все получать в виде данных для лиспа. На экране я и так все вижу. Например, команда _-BVSTATE сначала выдает сообщение о текущем параметре видимости -

Current visibility state: GX-26_P Стандарт 0.4

а уж затем предлагает ввести ключ и новое значение параметра

Enter an option [New/Set/Delete] <New>: _s
Enter visibility state name to make current or [?]: GX-26_P Стандарт 0.5

Где оно его берет, это текущее значение?
Я сделал специальный лисп, который создает Dump файл всех значений системных переменных, во всяком случае тех, которые описаны в хелпе и даже некоторых, там не описанных. И второй лисп, который читает этот Dump и сравнивает текущее значение с тем, которое в Dump-е записано. Результат неравенства выводится на экран в виде имен системных переменных и их значений. Выводятся только те системные переменные, которые не совпадают по значению с данными из Dump-a.
Но там нет указателей ни по номеру, ни по имени на текущее значение параметра видимости. Есть толькоодна надежда, на то, что я не все системные переменные вставил в список.
Кому надо, могу дать эти лиспы.

А прога, которую я пишу позволяет выделив группу элементов прописывать им видимость сразу в целой группе параметров видимости, выделяя их в списке через Ctrl или Shift. Есть возможность как добавлять к существующим параметрам видимости, так и определять видимоть для этой группы исключительно в выделенных Visibility state-ах. Также и на удаление выбранной группы из группы выделенных Visibility state-ов. Также кнопки "Показать везде" и "Скрыть везде".
И все написал, а по окончании вернуться в исходный параметр видимости не могу, поскольку не знаю как прочесть текущее значение этой триклятой видимости.
Если не найду ответ, так и оставлю. Ручками будете возвращаться в то состояние видимости, откуда была запущена прога.
Supermax вне форума  
 
Непрочитано 09.09.2008, 12:02
#614
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


Цитата:
Сообщение от Supermax Посмотреть сообщение
Список всех существующих параметров видимости - пожалуйста, а как узнать где я нахожусь в данный момент - дудки.
Узнать можно так:
Код:
[Выделить все]
(getvar "BLOCKEDITOR")
Makswell вне форума  
 
Непрочитано 09.09.2008, 13:19
#615
Supermax

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


Makswell, (getvar "BLOCKEDITOR") показывает что ты находишся в редакторе, но где конкретно не известно. Я ж по русски написал, нужно определить в каком из вариантов параметров видимости я нахожусь. Заодно и имя блока не плохо было бы узнать.
Есть совсем дурацкий способ это узнать.
1. Нарисовать программно точку.
2. Открыть ее и "слизать" ее -1 код
3. В ней же открыть цепочку словарей от 330 до словаря Visibility и найти в нем этот -1 код. Там их два. Один в списке всех элементов находящихся в блоке и в списке с той видимостью, в которой мы ее поставили.
4. Во втором вхождении этого кода подняться по списку вверх до кода 303 и прочесть его значение. Это и будет текущее значение данной видимости.
5. Удалить эту точку.
Supermax вне форума  
 
Непрочитано 09.09.2008, 13:45
#616
Supermax

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


Что я и сделал.
Supermax вне форума  
 
Непрочитано 09.09.2008, 13:46
#617
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


Извини, не внимательно прочитал.

Кстати (так, в порядке бреда) если посмотреть на коды полей, которые могут использоваться только в редакторе блока и только в атрибутах (т.н. местозаполнители блока), то они в итоге такие:
Имя блока
Код:
[Выделить все]
%<\AcObjProp.16.2 Object(?BlockRefId).EffectiveName>%
Видимость
Код:
[Выделить все]
%<\AcObjProp.16.2 Object(?BlockRefId).Parameter(1).VisibilityState>%
Ну и т.д.

Что-то в этих кодах сильно напоминает актив-иксовое. Хотя, как я уже написал выше, скорее всего это бред, просто пока никаких мыслей в голову не пришло. Но вдруг это тебя на что-нибудь натолкнет...
Makswell вне форума  
 
Автор темы   Непрочитано 09.09.2008, 14:19
#618
Shoorup


 
Регистрация: 16.09.2006
Минск
Сообщений: 1,587
<phrase 1= Отправить сообщение для Shoorup с помощью Skype™


Supermax, судя по всему написание заветной программы уже во всю идёт Очень жду выхода релиза!
__________________
Поезд который устал от ржавого здравомыслия рельсов...
Shoorup вне форума  
 
Непрочитано 09.09.2008, 22:20
#619
Supermax

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


Пока Shoorup, я делаю то, что мне давит на больной мазоль. Но скоро будет и видимость в ассортименте, а пока новая прога по массовому занесению выбранных элементов в набор Visibility state.
Когда блок сложный, где элементы громоздятся на элементах, а представлений видимости не одно и даже не десять очень муторно (очень - это очень мягко сказано) переключаться на каждый из них и выделять в этом "стогу соломы" несколько соломинок которые должны быть видимы в некоторых (скажем в половине существующих) представлениях.
В окне со списком всех Visibility state вы можете через Ctrl или Shift выделить группу представлений видимости и одним нажатием кнопки прописать выбранным вами до этого элементам видимость в них.
Удачи!

Не забывайте про наличие в корне С папки TMP латинскими буквами.
Вложения
Тип файла: rar Move-to-visibilityset.rar (4.2 Кб, 164 просмотров)
Supermax вне форума  
 
Непрочитано 09.09.2008, 22:27
#620
Supermax

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


Несколько измененная, ранее выложенная программа по передвижке имен свойств.
Вложения
Тип файла: rar move-properties.rar (4.7 Кб, 190 просмотров)
Supermax вне форума  
Закрытая тема
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Динамические блоки > Мои динамические блоки