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

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

Кирпичная кладка. Как осуществить регулировку видимости в зависимости от линейного параметра?

Ответ
Поиск в этой теме
Непрочитано 27.11.2024, 11:40
Кирпичная кладка. Как осуществить регулировку видимости в зависимости от линейного параметра?
gumel
 
Регистрация: 20.04.2011
Сообщений: 487

Делаю динамический блок плана кирпичной кладки. На данный момент сделал три варианта этого блока, а хотелось бы сделать один.

Из скриншота всё должно быть понятно:

Нажмите на изображение для увеличения
Название: Снимок экрана 2024-11-27 150512.png
Просмотров: 250
Размер:	103.3 Кб
ID:	265647

Блок 1 - выполняется растяжение с шагом 260 мм, есть возможность регулировки видимости половинок
Блок 2 (похож на 1) - выполняется растяжение с шагом 260 мм, есть возможность регулировки видимости половинок
Блок 3 - выполняется растяжение с шагом 130 мм, но нет возможности регулировки видимости половинок (сымитировал рисование кирпичей заливкой)

Хотелось бы сделать блок с шагом растяжения 130 мм и с возможностью регулировки видимости половинок.

Функционала 1 и 2 блока достаточно для того чтобы нарисовать любую кладку (ну или почти любую). Но их неудобно применять, так например, при длине стены 640 мм нужен первый блок, при длине стены 770 - второй и т.д.
Можно ли сделать такой блок в котором автоматически изменялась видимость элементов в зависимости от значения линейного параметра? Либо быть может возможно нужно использовать параметрические зависимости?

Процедура растяжения в третьем варианте этого блока выполняется корректно (с шагом 130 мм), но я не знаю как можно реализовать изменение видимости половинок..

Есть какие-нибудь идеи, как это изящно выполнить?

Вложения
Тип файла: dwg
DWG 2018
Динамический блок кирпичной кладки.dwg (154.0 Кб, 115 просмотров)

Просмотров: 2585
 
Автор темы   Непрочитано 03.12.2024, 08:42
#21
gumel


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


Цитата:
Сообщение от elovkov Посмотреть сообщение
Надо еще шовчик учесть, чтобы друг на друга складывать)
С геометрией тут всё чётко!


Цитата:
Сообщение от Demonakor Посмотреть сообщение
Ещё поэкспериментировал - можно в таблице перечислить через запятую без скобок все нужные значения длины, тогда останется всего 2 строки
Насчёт этой фишки. Судя по всему, есть какое-то ограничение по длине строки.

Не получается забить в таблицу такие длинные строки (пришлось привлечь excel для их составления ):

380,640,900,1160,1420,1680,1940,2200,2460,2720,2980,3240,3500,3760,4020,4280,4540,4800,5060,5320,5580,5840,6100,6360,6620,6880,7140,7400,7660,7920,8180,8440,8700,8960,9220,9480,9740,10000
510,770,1030,1290,1550,1810,2070,2330,2590,2850,3110,3370,3630,3890,4150,4410,4670,4930,5190,5450,5710,5970,6230,6490,6750,7010,7270,7530,7790,8050,8310,8570,8830,9090,9350,9610,9870

Но сделать конечно можно (я сделал не 2, а 4 строчки). Эх, вот если бы была возможность в таблице (!) писать формулы, было очень круто!
Вложения
Тип файла: dwg
DWG 2018
Кирпичная кладка - FINAL new.dwg (135.0 Кб, 56 просмотров)
gumel вне форума  
 
Непрочитано 03.12.2024, 09:26
#22
Demonakor


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


Цитата:
Сообщение от gumel Посмотреть сообщение
Очень полезный пример с формулами
Да, только я делал проверку на чётные/нечетные значения, но такая формула совсем уж неправильно себя ведёт с дробными значениями (если отключить шаг у расстояния).
Сделал вариант с косинусоидой для высоты H - формула даже проще вышла.
Код:
[Выделить все]
120+(cos((L-250)*180/130)+1)*65
Можно её усложнить, если добавить проверку на положительные/отрицательные значения (в данном блоке с шагом в размере это всё не важно, но для понимания его работы было полезно).
Код:
[Выделить все]
trunc(atan(COS)/90+1)*120+(1-trunc(atan(COS)/90+1))*250
где COS - переменная
Код:
[Выделить все]
cos((L-380)*90/65)
Миниатюры
Нажмите на изображение для увеличения
Название: GIF 03.12.2024 9-12-57.gif
Просмотров: 48
Размер:	810.3 Кб
ID:	265753  
Demonakor вне форума  
 
Автор темы   Непрочитано 03.12.2024, 10:32
#23
gumel


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


Цитата:
Сообщение от Demonakor Посмотреть сообщение
Сделал вариант с косинусоидой для высоты H - формула даже проще вышла.
Да, забавно выходит. Очень наглядна работа формулы ))

К сожалению, не знаю с какими функциями работают формулы автокада. Я бы использовал что-то такое:

Код:
[Выделить все]
  V := (L div 130) mod 2;
, где:
L - длина кладки;
V - на выходе выдает либо 0 либо 1.

То есть, для 380 будет 0, для 510 - 1 и т.д.
gumel вне форума  
 
Непрочитано 03.12.2024, 10:52
#24
Demonakor


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


Вроде вот всё, что работает в формулах:

sin(угол)
Синус угла

cos(угол)
Косинус угла

tang(угол)
Тангенс угла

asin(веществ)
Арксинус числа; значение аргумента должно быть в пределах от -1 до 1

acos(веществ)
Арккосинус числа; значение аргумента должно быть в пределах от -1 до 1

atan(веществ)
Арктангенс числа

ln(веществ)
Натуральный логарифм числа

log(веществ)
Десятичный логарифм числа

exp(веществ)
Натуральная экспонента числа

exp10(веществ)
Десятичная экспонента числа

sqr(веществ)
Квадрат числа

sqrt(веществ)
Квадратный корень числа (неотрицательного)

abs(веществ)
Абсолютная величина числа (модуль)

round(веществ)
Число, округленное до ближайшего целого

trunc(веществ)
Целая часть числа

r2d(угол)
Преобразование угла из радиан в градусы. Например, r2d(pi) преобразует pi радиан в 180 градусов

d2r(угол)
Преобразование угла из градусов в радианы. Например, d2r(180) преобразует угол 180 градусов в радианы и возвращает значение, равное константе pi

pi
Константа "пи"

Table(XXX).A1
Ссылка на ячейку A1 в таблице с номером XXX (узнать через "поле")


Плюс формулы для имитации условий (это те, которые я придумал - может есть варианты и проще):

Функция ЕСЛИ
A*a+B*b
где A - первое условие, a - значение при его выполнении; B - второе условие, b - значение при его выполнении

Функция И
trunc((A+B+...+N)/n)*z
где A...N - условия; n - количество условий; z - значение при выполнении всех условий

Функция ИЛИ
1-trunc(abs((A+B+...+N)/n-1))*z
где A...N - условия; n - количество условий; z - значение при выполнении хоть одного условия

Условия:

1 - если X=Y, 0 - если X>Y или X<Y
-trunc(abs(atan(X-Y)/90)-1)

1 - если X>Y или X=Y, 0 - если X<Y
trunc(atan(X-Y)/90+1)

1 - если X<Y или X=Y, 0 - если X>Y
1-trunc(atan(X-Y)/90+1)-trunc(abs(atan(X-Y)/90)-1)

1 - если X<Y, 0 - если X>Y или X=Y
1-trunc(atan(X-Y)/90+1)

1 - если X>Y, 0 - если X<Y или X=Y
trunc(atan(X-Y)/90+1)+trunc(abs(atan(X-Y)/90)-1)



Причём trunc() оказывается работает не так, как ЦЕЛОЕ() в Excel, так как он симметричен относительно 0. То есть ЦЕЛОЕ(0.9)=0; ЦЕЛОЕ(-0.9)=-1; trunc(0.9)=trunc(-0.9)=0

Последний раз редактировалось Demonakor, 03.12.2024 в 11:01.
Demonakor вне форума  
 
Автор темы   Непрочитано 03.12.2024, 11:19
#25
gumel


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


TRUNC вроде просто отбрасывает дробную часть
gumel вне форума  
 
Непрочитано 03.12.2024, 13:41
#26
Demonakor


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


Оказывается в диспетчере параметров функции отличаются от тех, что работают в таблицах (те, что я описал выше)... А ведь достаточно было просто нажать на строку правой кнопкой мыши.

Тригонометрические функции
cos()
sin()
tan()
acos()
asin()
atan()

Гиперболические тригонометрические функции
cosh()
sinh()
tanh()
acosh()
asinh()
atanh()

Знаковая функция (для отрицательных -1; для нуля 0; для положительных 1)
sign()

Натуральная/десятичная экспонента числа
exp()
exp10()

Число, округленное до меньшего
floor()

Число, округленное до большего
ceil()

Число, округленное до ближайшего целого
round()

Целая часть числа (положительные округляет до меньшего; отрицательные округляет до большего)
trunc()

Абсолютная величина числа (модуль)
abs()

Максимальное/минимальное значение X или Y
max(X;Y)
min(X;Y)

Натуральный/десятичный логарифм
ln()
log()

Квадратный корень
sqrt()

X в степени Y (аналог X^Y)
pow(X;Y)

r2d()
d2r()

Константы "Пи" и "е"
pi
e


С новыми операциями формулы для условий вышли проще.

Функция ЕСЛИ
A*a
где A - условие, a - значение при его выполнении

Функция И
floor((A+B+...+N)/n)*z
где A...N - условия; n - количество условий; z - значение при выполнении всех условий

Функция ИЛИ
sign(A+B+...+N)*z
где A...N - условия; z - значение при выполнении хоть одного условия

Условия для параметров:

1 - если X=Y, 0 - если X>Y или X<Y
1-abs(sign(X-Y))

1 - если X>Y или X=Y, 0 - если X<Y
sign(sign(X-Y)+1)

1 - если X<Y или X=Y, 0 - если X>Y
-sign(sign(X-Y)-1)

1 - если X>Y, 0 - если X<Y или X=Y
max(0;sign(X-Y))

1 - если X<Y, 0 - если X>Y или X=Y
-min(0;sign(X-Y))

Последний раз редактировалось Demonakor, 03.12.2024 в 15:09.
Demonakor вне форума  
 
Автор темы   Непрочитано 04.12.2024, 08:09
#27
gumel


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


Цитата:
Сообщение от Demonakor Посмотреть сообщение
С новыми операциями формулы для условий вышли проще.
Ну да. Но всё равно их маловато и приходится чудить..

Простая "паскалевская" запись V := (L div 130) mod 2;
превратится в что-то такое V = ceil(floor(L/130)/2) - floor(floor(L/130)/2)
gumel вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Динамические блоки > Кирпичная кладка. Как осуществить регулировку видимости в зависимости от линейного параметра?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как реализовать зависимость параметра видимости от значения атрибута? rostyan Динамические блоки 4 17.07.2021 23:02
Как устроена свисающая кирпичная кладка в данном случае ,какое армирование (норматив)? Сергулька515 Каменные и армокаменные конструкции 0 30.07.2018 17:27
Кирпичная кладка с уширенным швом: в какой части к ней применяется Свод правил СП 15.13330.2012? Хрюндель Каменные и армокаменные конструкции 10 31.01.2018 21:51
Управление параметром видимости дин. блока через sheetset custom properties Red Nova AutoCAD 12 25.06.2008 13:44
фигурная кирпичная кладка stepnoi Прочее. Архитектура и строительство 83 10.05.2007 10:56