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

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

Числовая переменная в динамическом блоке

Ответ
Поиск в этой теме
Непрочитано 11.10.2024, 11:35 #1
Числовая переменная в динамическом блоке
Mozgolom
 
Регистрация: 19.06.2012
Сообщений: 95

Всем привет. В динамическом у меня есть несколько переменных с небольшими расчетами. Вокруг блока рисуется окружность, размер которой высчитывается в зависимости от некоторых переменных. На окружность наложена зависимость по радиусу от этой переменной. Все работает. Но мне необходимо на окружности выводить число - другую переменную. И это число должно быть привязано к окружности, потому что окружность может меняться в размерах и это число, соответственно, также должно перемещаться вслед за окружностью. Подскажите, как это сделать?
Просмотров: 1409
 
Непрочитано 11.10.2024, 12:01
#2
sp1ash


 
Регистрация: 10.07.2011
Вологда
Сообщений: 294


Наложите параметрическую зависимость "совпадение", при необходимости используйте скрытую вспомогательную геометрию. Кажется должно работать.
sp1ash вне форума  
 
Автор темы   Непрочитано 11.10.2024, 12:07
#3
Mozgolom


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


Цитата:
Сообщение от sp1ash Посмотреть сообщение
Наложите параметрическую зависимость "совпадение", при необходимости используйте скрытую вспомогательную геометрию. Кажется должно работать.
Как мне вообще вывести свою переменную на план, чтобы я видел её значение рядом с блоком?
Mozgolom вне форума  
 
Непрочитано 11.10.2024, 12:19
#4
name02


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


Выложи блок
name02 вне форума  
 
Непрочитано 11.10.2024, 14:13
#5
Demonakor


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


Получилось что-то подобное (значение атрибута обновляется после регенерации).
Вложения
Тип файла: dwg
DWG 2013
Круг с формулой.dwg (52.5 Кб, 42 просмотров)
Demonakor вне форума  
 
Автор темы   Непрочитано 14.10.2024, 08:39
#6
Mozgolom


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


Цитата:
Сообщение от Demonakor Посмотреть сообщение
Получилось что-то подобное (значение атрибута обновляется после регенерации).
Вроде все понятно, но не могу разобраться, как работает параметр вертикальности. Правильно ли я понимаю, что сначала необходимо добавить линейный параметр, а затем уже вертикальную зависимость? Когда пытаюсь добавить вертикальную зависимость, мне предлагается выбрать 2 точки. Но, какие-бы точки я ни пытался выбрать, возвращается ошибка: Недопустимый выбор для вертикальность.
Mozgolom вне форума  
 
Непрочитано 14.10.2024, 08:49
#7
name02


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


В блоке нет вертикальных зависимостей - только две зависимости "Фиксация" - для окружности и для левой точки пунктирного отрезка. Но достаточно только для окружности.
name02 вне форума  
 
Непрочитано 14.10.2024, 09:19
#8
Demonakor


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


Привязывал центр окружности к атрибуту.
Миниатюры
Нажмите на изображение для увеличения
Название: GIF 14.10.2024 9-17-47.gif
Просмотров: 63
Размер:	158.4 Кб
ID:	265066  
Demonakor вне форума  
 
Непрочитано 14.10.2024, 09:41
#9
name02


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


Как я понял работу блока:
Есть параметр длины отрезка - Формула
Радиус окружности зависит от значения Формулы
Центр окружности зафиксирован
Расстояние от центра окружности до атрибута равно Радиусу
name02 вне форума  
 
Непрочитано 14.10.2024, 09:51
#10
Demonakor


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


Нет, радиус от формулы не зависит. По условию радиус является одной переменной, а значение атрибута (задаваемое формулой) - второй.
Demonakor вне форума  
 
Автор темы   Непрочитано 16.10.2024, 20:12
#11
Mozgolom


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


Цитата:
Сообщение от Demonakor Посмотреть сообщение
Нет, радиус от формулы не зависит. По условию радиус является одной переменной, а значение атрибута (задаваемое формулой) - второй.
Спасибо за помощь, но я, возможно, не совсем корректно выразился.
Я пытаюсь понять, можно ли как-то связать значение переменной (выражения) с атрибутом? То есть, чтобы при изменении значения переменной автоматически обновлялся и атрибут.
Если переменную привязать к атрибуту нельзя, то можно ли значение переменной сразу отображать на плане в виде атрибута?

----- добавлено через ~37 мин. -----
Пока я придумал только вот что. Создал атрибут и добавил поле. Категория полей: объекты. Имена полей: объект. Тип объекта: можно выбрать необходимую мне окружность, которая пересчитывается всякий раз при изменении переменной. Далее выбрал радиус окружности , формат единиц и все. Теперь у меня на плане отображается поле со значением переменной. Но беда в том, что при изменении радиуса окружности значение поля не меняется, пока не дать команду РЕГЕН. Вот как заставить поле автоматически обновляться вслед за переменной?
Mozgolom вне форума  
 
Непрочитано 17.10.2024, 08:51
1 | #12
Demonakor


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


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

Есть вариант использовать не атрибут, а обычный размер (скрыть линии, оставив только текстовое значение).
Вложения
Тип файла: dwg
DWG 2013
Круг с формулой.dwg (60.4 Кб, 18 просмотров)
Demonakor вне форума  
 
Автор темы   Непрочитано 17.10.2024, 09:04
#13
Mozgolom


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


Цитата:
Сообщение от Demonakor Посмотреть сообщение
Сам придумал? Я же блок с использованием этого способа и выкладывал... Только в качестве объекта для переменной делал не радиус окружности, а длину линии.
Я крутил ваш блок вдоль и поперек, но поля там не увидел. Смотрел диспетчер параметров. Там параметр горизонтальной зависимости, вертикальной зависимости. Если честно, я так и не разобрался, как работает ваш блок. И у вас переменная в блоке не выглядит, как поле. У меня же сразу после вставки поля я сразу понял, что это поле, потому что оно выделяется на плане контрастным квадратом.
Подскажите, как после вставки поля его отредактировать? Я так и не нашел. В итоге, чтобы изменить что-то в поле я его удаляю и вставляю заново.
В общем, теперь стоит вопрос а можно ли обновлять значения полей автоматически? У меня получается только через Реген.
Mozgolom вне форума  
 
Непрочитано 17.10.2024, 09:50
1 | #14
Demonakor


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


Поле внутри атрибута спокойно редактируется.
Второй вариант я уже выложил - регенерации не требует.
Миниатюры
Нажмите на изображение для увеличения
Название: GIF 17.10.2024 9-47-46.gif
Просмотров: 39
Размер:	530.0 Кб
ID:	265136  
Demonakor вне форума  
 
Автор темы   Непрочитано 17.10.2024, 10:08
#15
Mozgolom


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


Цитата:
Сообщение от Demonakor Посмотреть сообщение
Второй вариант я уже выложил - регенерации не требует.
Спасибо. Буду разбираться вечером. Отпишусь.
Mozgolom вне форума  
 
Автор темы   Непрочитано 17.10.2024, 21:32
#16
Mozgolom


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


Цитата:
Сообщение от Demonakor Посмотреть сообщение
Второй вариант я уже выложил - регенерации не требует.
Нарисовал полилинию, как у вас. Затем установил размерную зависимость от длины этой полилинии. А длину линии привязал к своей переменной. Теперь в зависимости от значения переменной меняется длина линии и вместе с ней размер этой линии. У размера я выключил размерные стрелки - осталось только числовое значение самого размера. Все работает без регена, но... Размер отображается задом наперед почему-то. Пока не разобрался, как положение этого размера привязать к окружности, чтобы размер перемещался вместе с ней. И не разобрался, как мне полностью спрятать мою полилинию. Сделал ей прозрачность 90. Да, ее не видно, но при выборе блока она тоже выбирается и становится видна.
Миниатюры
Нажмите на изображение для увеличения
Название: задом наперед.PNG
Просмотров: 18
Размер:	19.8 Кб
ID:	265146  

Последний раз редактировалось Mozgolom, 17.10.2024 в 21:33. Причина: добавление
Mozgolom вне форума  
 
Непрочитано 18.10.2024, 09:13
#17
Demonakor


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


В моём примере полилиния не только изменяет длину, в зависимости от значения переменной, но и перемещается при изменении радиуса (соответственно размер вслед за ней).
Чтобы скрыть полилинию нужно воспользоваться функцией вспомогательной геометрии (БЛОКОНСТР). Либо, если в блоке используются видимости, просто во всех состояниях её скрыть.
На счёт отзеркаливания - предположу, что в свойствах стоит отрицательный масштаб по оси X. Если блок иногда нужно отзеркаливать - можно добавить операцию отражения.
Demonakor вне форума  
 
Автор темы   Непрочитано 21.10.2024, 19:57
#18
Mozgolom


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


Цитата:
Сообщение от Demonakor Посмотреть сообщение
На счёт отзеркаливания - предположу, что в свойствах стоит отрицательный масштаб по оси X.
Там действительно стоял минус. Эту проблему решил. Спасибо большое.
----- добавлено через ~3 мин. -----
Цитата:
Сообщение от Demonakor Посмотреть сообщение
В моём примере полилиния не только изменяет длину, в зависимости от значения переменной, но и перемещается при изменении радиуса (соответственно размер вслед за ней).
У меня размер полилинии рассчитывается по определенной формуле и никак не связан с величиной радиуса. Радиус считается по своей формуле, а моя переменная, к которой привязана полилиния, по своей. Поэтому пока не могу разобраться, как мою полилинию заставить перемещаться за изменяющейся окружностью .

----- добавлено через ~21 мин. -----
Например, окружность имела радиус 50. По касательной к окружности расположена моя полилиния, размер которой я и отображаю на плане. Изменяю входной параметр и радиус пересчитывается. Например, радиус стал 150. А полилиния как была на своем месте, так и осталась. Вот я завис на том, как "приклеить" полилинию к окружности, чтобы при изменении радиуса окружности полилиния также перемещалась вслед за ней и всегда располагалась по касательной к окружности. Попробовал зависимость "касание". При увеличении радиуса полилиния действительно перемещается вслед за окружностью. но при уменьшении радиуса, она так и остается на своем месте, да еще и как-то наклоняется. В общем, "касание" работает только один раз на увеличение.

Последний раз редактировалось Mozgolom, 21.10.2024 в 20:12.
Mozgolom вне форума  
 
Непрочитано 22.10.2024, 09:17
1 | #19
Demonakor


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


Цитата:
Сообщение от Mozgolom Посмотреть сообщение
У меня размер полилинии рассчитывается по определенной формуле и никак не связан с величиной радиуса.
А где я писал, что они должны быть связаны? У меня есть значение радиуса - перемещающее полилинию, и значение переменной - меняющее её длину. Каждое из этих значений можно задать своей независимой формулой. Блок я выкладывал, там всё прекрасно работает.
Demonakor вне форума  
 
Автор темы   Непрочитано 22.10.2024, 19:31
#20
Mozgolom


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


Спасибо. Вроде разобрался. Все получилось. Подскажите, где можно взять руководство по динамическим блокам с примерами?
Mozgolom вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Динамические блоки > Числовая переменная в динамическом блоке



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Расчёты в динамическом блоке Mozgolom AutoCAD 2 28.09.2022 00:18
Фиксированное относительное положение в динамическом блоке daft13 Динамические блоки 1 21.01.2021 04:27
Мои динамические блоки [2] Кулик Алексей aka kpblc Динамические блоки 4334 22.04.2019 09:16
Баг. Штриховка в динамическом блоке не заполняет контур после _updatefield wetr Баги и пожелания в Autodesk 0 18.11.2009 04:35