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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Динамические блоки > Как управлять извне вложенными динамическими блоками с помощью пользовательских переменных?

Как управлять извне вложенными динамическими блоками с помощью пользовательских переменных?

Ответ
Поиск в этой теме
Непрочитано 12.06.2016, 13:58
Как управлять извне вложенными динамическими блоками с помощью пользовательских переменных?
Кондратий Тихонович
 
Регистрация: 06.06.2016
Сообщений: 327

У меня в блок X вложено 3 динамических блока A,B и C.
Хотелось бы в чертеже, где используется X, чтобы когда я меняю значения параметров X автоматом менялись внутренние динамические блоки A,B и C.

К примеру
ширину A задать внутри X выражение ШИР+2,
ширину B задать внутри X выражением ШИР+2*с
ширину C задать внутри X выражением ШИР+2*e

Где ШИР, с и e - пользовательские параметры блока X.

И чтобы когда я в чертеже изменю ШИР блоки A, B и С автоматом перерисовались в соответствии с этим.

Но почему то в окне свойств дин. блоков я не могу задавать выражения. Или там можно только числа вводить?

А как же тогда сделать, чтобы вложенные динамические блоки АВТОМАТИЧЕСКИ менялись?
Просмотров: 13497
 
Непрочитано 01.07.2016, 15:01
#41
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Цитата:
Сообщение от max4airkin Посмотреть сообщение
Я не понимаю следующий момент:
Сообщение номер 2 в этом топике именно об этом и там же ниже ответ.
Boxa вне форума  
 
Автор темы   Непрочитано 03.07.2016, 17:08
#42
Кондратий Тихонович


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


Цитата:
Сообщение от Владимир_М Посмотреть сообщение
Все то же самое: задание параметров и получение нового графического отображения. Только результат не какой-то блок из нескольких линий, а сразу три листа чертежей.
Т.е. с помощью ЛИСПА и C# можно реализовать возможность задания значений одних параметров блока в виде формул из параметров других блоков. И чтобы при изменении параметра в чертеже значения зависимых параметров ВЛОЖЕННЫХ блоков автоматически пересчитывались, изменялись и вложенные блоки автоматически перестраивались в соответствии с изменившимися значениями параметров.

Я правильно Вас понял?

Т.е. можно реализовать что-то типа: Блок_А.Блок_Б.длина = sin(38+P1)
И чтобы, когда я меняю P1 в чертеже параметр "длин" блока "Блок_Б"(который вложен в блок "Блок_А") автоматически модифицировался и вложенный блок автоматом перерисовывался
Кондратий Тихонович вне форума  
 
Непрочитано 04.07.2016, 07:02
#43
Владимир_М


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


Цитата:
Сообщение от Кондратий Тихонович Посмотреть сообщение
Т.е. с помощью ЛИСПА и C# можно реализовать возможность задания значений одних параметров блока в виде формул из параметров других блоков.
Да можно.

Цитата:
Сообщение от Кондратий Тихонович Посмотреть сообщение
И чтобы при изменении параметра в чертеже значения зависимых параметров ВЛОЖЕННЫХ блоков автоматически пересчитывались, изменялись и вложенные блоки автоматически перестраивались в соответствии с изменившимися значениями параметров.
Вот про "вложенных" не буду врать, что-то и мысли не приходило до сих пор зачем их ВКЛАДЫВАТЬ друг в друга?. Но, по-моему, никаких проблем не должно быть.

Единственное, что я вам хотел предложить в своем предыдущем посте как раз вот это, подумать так ли необходимо для вышей задачи (для окончательного результата) вся эта городьба с вложенными и динамическими блоками. Вам, конечно же, виднее как и зачем все это у Вас используется.
Но вот у меня, например, есть рамка чертежа (обычная форматка). Это не статический блок, и не динамический, две простые полилинии и два размера. Но с помощью приложения на VBA эти две линии взаимосвязаны между собой, по двойному клику мышкой меняют автоматически свои размеры, в зависимости от того в каком месте этот клик происходит, форматка именно по этой стороне увеличивается или уменьшается, при этом находятся ближайшие стандартные значения высоты и ширины форматки. Ну и, конечно же, все штампы и штампики ползают прилепленные к рамке. Не знаю можно ли какими-то вложенными, динамическими и прочими блоками такого добиться...
Владимир_М вне форума  
 
Автор темы   Непрочитано 04.07.2016, 23:35
#44
Кондратий Тихонович


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


А теперь представьте, что у Вас не один "штампик", а тысяча.
Согласитесь все прокликать "двойным кликом" уже будет довольно напряжно.
А если привязать параметры всех штампиков к некоторым формулам с 3..4 параметрами.
И сделать, чтобы значения параметров "штампиков" автоматом пересчитывались при изменении главных 3...4 параметров и геометрия автоматом перестраивалась, то это гораздо проще, чем прокликивать все эти тысячу "штампиков"
Кондратий Тихонович вне форума  
 
Непрочитано 05.07.2016, 08:49
#45
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,835


Для таких вещей существуют блоки с атрибутами и команды ЕТ _attout и _attin
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 05.07.2016, 09:39
#46
max4airkin


 
Регистрация: 26.03.2015
Екатеринбург
Сообщений: 382


Вам не кажется, что, несмотря на то, что количество постов в теме уже приближается к полусотне, обсуждать предметно до сих пор нечего, так как ТС не представил какого-либо более менее существенного примера, объясняющего, почему нельзя не вкладывать блок в блок. То, что было на видео и в приложенном чертеже - мелочь, которая свободно решается обычной геометрией из примитивов внутри блока.
ТС, давайте кусок файла в тему и в нем покажите, что там за блоки в блоках, которые нельзя расчленить.
max4airkin вне форума  
 
Непрочитано 05.07.2016, 10:58
#47
Владимир_М


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


Цитата:
Сообщение от Кондратий Тихонович Посмотреть сообщение
А теперь представьте, что у Вас не один "штампик", а тысяча.
А-а-а... ну, теперь представил... однако при использовании ЯП ничего особо не поменялось,
например, добавится только несколько строк для перебора всех примитивов, автоматического выбора нужных (прокликивать ничего не нужно)... дальнейшее их изменение по любым формулам и любой логике какую Вы захотите остается таким же как предлагалось выше.

Последний раз редактировалось Владимир_М, 05.07.2016 в 11:04.
Владимир_М вне форума  
 
Автор темы   Непрочитано 05.07.2016, 18:18
#48
Кондратий Тихонович


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


Offtop:
Цитата:
Сообщение от max4airkin Посмотреть сообщение
почему нельзя не вкладывать блок в блок.
Объяснил в самом начале теме:
Цитата:
Сообщение от Кондратий Тихонович Посмотреть сообщение
Я бы рад. Но просто у меня блоки состоят из одних и тех же типовых элементов, различающихся только размерами.
Поэтому вполне естественно возникло желание оформить эти типовые элементы в виде вложенных динамических блоков. И настраивать параметры этих вложенных блоков извне, "по месту".


----- добавлено через ~4 мин. -----
Цитата:
Сообщение от Владимир_М Посмотреть сообщение
дальнейшее их изменение по любым формулам и любой логике какую Вы захотите
Понял. Что без изучения программирования мою задачу не решить.
А я хотел отделаться "малой кровью".
А теперь видимо все затянется на месяцы.
Ибо я в программировании автокада полный нуль.
Никогда им не занимался

----- добавлено через ~9 мин. -----
Владимир_М
Не могли бы Вы дать ссылку на материалы по программированию в автокаде для тех, кто в этом полный нуль.
До такой степени, что ЛИСП не отличает от Визуал Бейсика и Си-шарпа и понятия не имеет как написать, отладить, откомпилировать и запустить даже самый примитивный скрипт/сценарий?

----- добавлено через ~11 мин. -----
Наверное начать нужно с изучения устройства среды исполнения в автокаде и того как устроен чертеж с точки зрения структур данных, которые можно использовать в коде?

----- добавлено через ~13 мин. -----
И на чем лучше кодить: ЛИСП, VBA, C#?
Уточню. У меня автокад 2012 Portable+Electrical.
Он вроде ЛИСП уже не поддерживает как и VBA?
Кондратий Тихонович вне форума  
 
Непрочитано 05.07.2016, 19:07
#49
Владимир_М


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


Цитата:
Сообщение от Кондратий Тихонович Посмотреть сообщение
Владимир_М
Не могли бы Вы дать ссылку на материалы по программированию в автокаде
Думаю, если ответа на Ваш изначальный вопрос никто тут не дает, и Вы четко для себя решили осваивать ЯП, то перво-наперво надо перейти в другой раздел - Программирование.
Offtop: Материалы, да для начала и для простейших макросов - любую книжку для чайников. Потом я прежде всего использовал "справку", которая имеется в разделе программирования (Developer) в ACAD. Выбираешь там подходящий примерчик по своей теме и приспосабливаешь под себя.

Цитата:
Сообщение от Кондратий Тихонович Посмотреть сообщение
И на чем лучше кодить: ЛИСП, VBA, C#?
Уточню. У меня автокад 2012 Portable+Electrical.
Он вроде ЛИСП уже не поддерживает как и VBA?
Чтобы Acad не поддерживал Lisp, мне сдается, такого быть не может. Про VBA что-то такое муссируется, но пока что все работает и под Acad 2016. Если Вы в эту тему собираетесь влазить всерьез и на долго, наверное, лучше С#. На перспективу, для программирования под Ревит, сам для себя выбрал С# (хотя там и VB.net тоже имеет место быть и мне он казалось бы ближе после VBA).

Последний раз редактировалось Владимир_М, 05.07.2016 в 19:20.
Владимир_М вне форума  
 
Непрочитано 06.07.2016, 10:48
#50
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Тут интересный канал про программирование под акад на .NET (C#) : https://www.youtube.com/channel/UCZq...lDlXagGv6OlmdA
Boxa вне форума  
 
Автор темы   Непрочитано 06.07.2016, 21:08
#51
Кондратий Тихонович


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


Цитата:
Сообщение от Boxa Посмотреть сообщение
Тут интересный канал про программирование под акад на .NET (C#) : https://www.youtube.com/channel/UCZq...lDlXagGv6OlmdA
Какое уж там видео. Писал же

Цитата:
Сообщение от Кондратий Тихонович Посмотреть сообщение
у меня трафик не безлимитный. Весь суточный лимит потратил на попытки залить. На 3G сижу
...
Цитата:
Сообщение от Кондратий Тихонович Посмотреть сообщение
Просто у меня скорость маленькая. 6 килобайт в секунду. Поэтому заливка 10 Мегов длится больше получаса.

Мне бы хорошую книжку на русском языке, где объясняются устройство автокада и все базовые понятия и принципы программирования для тех кто полный нуль.
Кондратий Тихонович вне форума  
 
Непрочитано 06.07.2016, 22:22
#52
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,835


Смотри самые свежие книги Полещука. Например, http://adn-cis.org/forum/index.php?topic=1097.0 . Она же: http://www.private.peterlink.ru/pole...r2013-2015.htm
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 12.02.2018, 13:18
#53
Алексей Ковалёв


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


Кондратий Тихонович, Приветствую. Получилось у вас разобраться в данном вопросе, решили задачу?
Алексей Ковалёв вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Динамические блоки > Как управлять извне вложенными динамическими блоками с помощью пользовательских переменных?

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как с помощью КЭ смоделировать упругое основание в ЛИРЕ? РастОК Лира / Лира-САПР 25 02.10.2012 09:51
Как настроить плавное движение курсора при редактировании с помощью ручек? tasia AutoCAD 9 22.06.2011 15:35
Извлечение значений атрибутов блоков AutoCAD Electrical с помощью AutoLisp zaraki_kenpachi LISP 16 19.02.2011 15:30
Моделирование расчетной схемы с помощью объемных КЭ и оболочки в SCAD. Albino SCAD 14 02.06.2010 20:58
Подскажите как построить кривую с помощью команды SPLiNE, к boban Программирование 1 02.11.2003 19:58