Практический семинар Tekla Structures 2017

Нетто Vs Брутто

Ответить
Villcommen
Сообщения: 28
Регистрация: 10 янв 2017, 11:14

Нетто Vs Брутто

Сообщение Villcommen » 13 июл 2019, 11:52

Добрый день.

Подскажите не могу решить проблему.
на данный момент я для заказчика делаю вес абсолютно все в брутто (ниже вы видите код в шаблоне спецификации)
этот шаблон прописывали для другого завода с такими данными: что при подсчете массы непрямоугольных листовых деталей вписывающихся в прямоугольник до 0,2 м2, массу вычисляют пл площади этого прямоугольника, а для всех остальных - по фактической площади.
в текле нет параметра площадь одной плоскости детали, есть только общая площадь (или площадь покраски)
и ребята прописали код который вы видите ниже с использованием площади покраски.

Сейчас заказчик мне говорит что теперь брутто не надо, надо нетто, и указывает на временную инструкцию по Мельниковой в который написано что все детали толщиной более 12мм считаются по фактической площади
пункт вроде 12.18 страница 28.

окунувшись в шаблон я увидел что привязки делаи по толщине в нем нет, соответсвенно 2 детали к примеру 0,18 м2 и 0,22 м2 одна считается по брутто другая по нетто не смотря естественно на то что они из 16 мм толщины.

подскажите как решить данную проблему


if GetValue("WEIGHT_GROSS") < 0.1 then

"0.1"

else

if int(format(GetValue("AREA"), "Area", "cm2", 1)) <= 4400 then

round(GetValue("WEIGHT_GROSS"),0.1)

else

round(GetValue("WEIGHT_GROSS"),0.1)

endif

endif

Villcommen
Сообщения: 28
Регистрация: 10 янв 2017, 11:14

Re: Нетто Vs Брутто

Сообщение Villcommen » 13 июл 2019, 12:03

Также добавлю, в прямоугольной детали есть вырезы под болты (опорная пластина колонны), почему текла данные детали считает по нетто, ведь по сути масса должна проходить как брутто

Montag
Сообщения: 65
Регистрация: 14 фев 2017, 09:07

Re: Нетто Vs Брутто

Сообщение Montag » 14 июл 2019, 10:35

if int(format(GetValue("AREA"), "Area", "cm2", 1)) <= 4400 then

round(GetValue("WEIGHT_GROSS"),0.1)

else

round(GetValue("WEIGHT_GROSS"),0.1)

endif

странное условие. в любом случае вы получите WEIGHT_GROSS

Villcommen
Сообщения: 28
Регистрация: 10 янв 2017, 11:14

Re: Нетто Vs Брутто

Сообщение Villcommen » 14 июл 2019, 10:44

Вы правы, в последнем случает должен стоять просто WEIGHT.

я на скорую руку изменил код предназначеный для нетто

Montag
Сообщения: 65
Регистрация: 14 фев 2017, 09:07

Re: Нетто Vs Брутто

Сообщение Montag » 14 июл 2019, 10:45

подскажите как решить данную проблему
Надо добавить условие на проверку тощины.
if GetValue("PLATE_​THICKNESS") > 12.0
...
else
...
endif

Villcommen
Сообщения: 28
Регистрация: 10 янв 2017, 11:14

Re: Нетто Vs Брутто

Сообщение Villcommen » 14 июл 2019, 10:56

правильно ли я изменил данный код?

if GetValue("WEIGHT_GROSS") < 0.1 then

"0.1"

else

if int(format(GetValue("AREA"), "Area", "cm2", 1)) <= 2200 then (здесь уменьшил в 2 раза, чтобы соответвовало временной инструкции т.е. считалось от 0,1 м2)

round(GetValue("WEIGHT_GROSS"),0.1)

else

if GetValue("PLATE_​THICKNESS") < 12.0 then

round(GetValue("WEIGHT_GROSS"),0.1)

else

round(GetValue("WEIGHT"),0.1)

endif

endif

Villcommen
Сообщения: 28
Регистрация: 10 янв 2017, 11:14

Re: Нетто Vs Брутто

Сообщение Villcommen » 14 июл 2019, 10:59

я просто думаю, надо бы как нибудь объединить 2 условия чтобы и площадь была меньше 0,1 и толщина присутствовала во втором условии.
при таком коде они будут работать отдельно, думаю будет конфликт.

можно ли прописывать код в таком виде

if int(format(GetValue("AREA"), "Area", "cm2", 1)) <= 2200 and if GetValue("PLATE_​THICKNESS") < 12.0 then

round(GetValue("WEIGHT_GROSS"),0.1)

Montag
Сообщения: 65
Регистрация: 14 фев 2017, 09:07

Re: Нетто Vs Брутто

Сообщение Montag » 14 июл 2019, 11:07

Villcommen писал(а):
14 июл 2019, 10:56
правильно ли я изменил данный код?

if GetValue("WEIGHT_GROSS") < 0.1 then

"0.1"

else

if int(format(GetValue("AREA"), "Area", "cm2", 1)) <= 2200 then (здесь уменьшил в 2 раза, чтобы соответвовало временной инструкции т.е. считалось от 0,1 м2)

round(GetValue("WEIGHT_GROSS"),0.1)

else

if GetValue("PLATE_​THICKNESS") < 12.0 then

round(GetValue("WEIGHT_GROSS"),0.1)

else

round(GetValue("WEIGHT"),0.1)

endif

endif
надо тестить .. Вместо GetValue("AREA") лучше использовать GetValue("AREA_PLAN"), тогда не прийдется делить на 2. https://teklastructures.support.tekla.c ... /area_plan . PLATE_​THICKNESS надо протестить на пластине созданной контрплейтом и балкой. Данный параметр может вести себя по разному. И в конце еще один endif нужен)

Villcommen
Сообщения: 28
Регистрация: 10 янв 2017, 11:14

Re: Нетто Vs Брутто

Сообщение Villcommen » 14 июл 2019, 11:12

Спасибо, буду проверять, обязательно отпишусь.
вообще я как понимаю этот вопрос уже давно должен был быть решен, просто у меня нет информации по этому коду, ввиду того что на заводе уже был разработан данный шаблон, соответственно все много лет по нему работали и никогда проблем не возникало, до этого заказчика -))

Montag
Сообщения: 65
Регистрация: 14 фев 2017, 09:07

Re: Нетто Vs Брутто

Сообщение Montag » 14 июл 2019, 11:21

Вот список всех переменых которые можно получить в шаблоне
Вложения
contentattributes_global.txt
(815.22 КБ) 579 скачиваний

Villcommen
Сообщения: 28
Регистрация: 10 янв 2017, 11:14

Re: Нетто Vs Брутто

Сообщение Villcommen » 16 июл 2019, 10:16

if GetValue("WEIGHT_GROSS") < 0.1 then "0.1"
else if int(format(GetValue("AREA"), "Area", "cm2", 1)) <= 2200 then
round(GetValue("WEIGHT_GROSS"),0.1) else
if GetValue("PLATE_THICKNESS") < 12.0 then
round(GetValue("WEIGHT_GROSS"),0.1) else
round(GetValue("WEIGHT"),0.1)
endif
endif
все таки прописать 3 условия не получается, выдает 0.

видимо проблемы и иерархией

вообще получается третьим условием должно быть что если толщина пластины больше 12 но площадь покраски меньше 2200 то брать нетто.
не могу понять какой функцией объединить эти два условия

meart
Сообщения: 494
Регистрация: 04 мар 2013, 18:09

Re: Нетто Vs Брутто

Сообщение meart » 16 июл 2019, 10:25

Villcommen писал(а):
16 июл 2019, 10:16
if GetValue("WEIGHT_GROSS") < 0.1 then "0.1"
else if int(format(GetValue("AREA"), "Area", "cm2", 1)) <= 2200 then
round(GetValue("WEIGHT_GROSS"),0.1) else
if GetValue("PLATE_THICKNESS") < 12.0 then
round(GetValue("WEIGHT_GROSS"),0.1) else
round(GetValue("WEIGHT"),0.1)
endif
endif
все таки прописать 3 условия не получается, выдает 0.

видимо проблемы и иерархией

вообще получается третьим условием должно быть что если толщина пластины больше 12 но площадь покраски меньше 2200 то брать нетто.
не могу понять какой функцией объединить эти два условия
Как-то так?
«Есть только две бесконечные вещи: Вселенная и глупость. Хотя насчет Вселенной я не вполне уверен.» А. Эйнштейн

Villcommen
Сообщения: 28
Регистрация: 10 янв 2017, 11:14

Re: Нетто Vs Брутто

Сообщение Villcommen » 16 июл 2019, 10:29

извините, не понял вопрос

Аватара пользователя
vladimir_a
Сообщения: 699
Регистрация: 07 дек 2011, 21:22

Re: Нетто Vs Брутто

Сообщение vladimir_a » 16 июл 2019, 13:26

if (GetValue("AREA")<=200000 && GetValue("PROFILE.WIDTH")<=12)then
round(GetValue("WEIGHT_GROSS"),0.1)
else
для условия площадь детали менее 0,1 м2 толщина 12 и менее

Villcommen
Сообщения: 28
Регистрация: 10 янв 2017, 11:14

Re: Нетто Vs Брутто

Сообщение Villcommen » 16 июл 2019, 14:54

На данный момент код выглядит так:
if GetValue("WEIGHT_GROSS") < 0.1 then "0.1"
else if int(format(GetValue("AREA"), "Area", "cm2", 1)) <= 2200 then round(GetValue("WEIGHT_GROSS"),0.1)
else if (int(format(GetValue("AREA"), "Area", "cm2", 1)) <= 2200 & GetValue("PLATE_THICKNESS")=>12) then round(GetValue("WEIGHT"),0.1)
else round(GetValue("WEIGHT"),0.1)
endif
endif
endif

результат пока тот же т.е. не подходящий

на деталь площадью покраски менее 2200 и толщиной детали более 12 мм выдает брутто, т.е. 3-е условие не выполняет.

PROFILE.WIDTH пробовал результат тот же

meart
Сообщения: 494
Регистрация: 04 мар 2013, 18:09

Re: Нетто Vs Брутто

Сообщение meart » 16 июл 2019, 15:22

Villcommen писал(а):
16 июл 2019, 14:54
на деталь площадью покраски менее 2200 и толщиной детали более 12 мм выдает брутто, т.е. 3-е условие не выполняет.
Всё правильно. По вашей формуле так и должно быть.
попробуйте так:

Код: Выделить всё

if GetValue("WEIGHT_GROSS") < 0.1 then "0.1" else 
if (int(format(GetValue("AREA"), "Area", "cm2", 1)) <= 2200) && (GetValue("PLATE_THICKNESS") <=12) then round(GetValue("WEIGHT_GROSS"),0.1) else 
round(GetValue("WEIGHT"),0.1) 
endif 
endif 
«Есть только две бесконечные вещи: Вселенная и глупость. Хотя насчет Вселенной я не вполне уверен.» А. Эйнштейн

Villcommen
Сообщения: 28
Регистрация: 10 янв 2017, 11:14

Re: Нетто Vs Брутто

Сообщение Villcommen » 16 июл 2019, 16:19

Вроде все в вашей формуле правильно, только у меня почему то все равно выдает брутто на пластину толщиной 16 мм и площадью 1900 см2.
может у меня руки не оттуда растут -)

meart
Сообщения: 494
Регистрация: 04 мар 2013, 18:09

Re: Нетто Vs Брутто

Сообщение meart » 16 июл 2019, 16:36

Villcommen писал(а):
16 июл 2019, 16:19
Вроде все в вашей формуле правильно, только у меня почему то все равно выдает брутто на пластину толщиной 16 мм и площадью 1900 см2.
может у меня руки не оттуда растут -)
проверьте параметр GetValue("PLATE_THICKNESS").. скорее всего там нет толщины пластины.
«Есть только две бесконечные вещи: Вселенная и глупость. Хотя насчет Вселенной я не вполне уверен.» А. Эйнштейн

Villcommen
Сообщения: 28
Регистрация: 10 янв 2017, 11:14

Re: Нетто Vs Брутто

Сообщение Villcommen » 16 июл 2019, 17:03

подскажите где его можно проверить, если в расширенных параметрах, то такого я не нашел, если в свойствах детали то и там его нет.

при моделировании пластины она обозначается как PL10 и т.д..
может в это дело?

Аватара пользователя
vladimir_a
Сообщения: 699
Регистрация: 07 дек 2011, 21:22

Re: Нетто Vs Брутто

Сообщение vladimir_a » 16 июл 2019, 21:18

Villcommen писал(а):
16 июл 2019, 14:54


PROFILE.WIDTH пробовал результат тот же
в моем сообщении все ведь прописано

Montag
Сообщения: 65
Регистрация: 14 фев 2017, 09:07

Re: Нетто Vs Брутто

Сообщение Montag » 16 июл 2019, 21:54

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

Код: Выделить всё

if GetValue("WEIGHT_GROSS") < 0.1 then 
    0.1
else 
    if (GetValue("AREA_PLAN") <= 0.2) && (GetValue("WIDTH") <= 12.0) then 
        GetValue("WEIGHT_GROSS")
    else 
        GetValue("WEIGHT")
    endif 
endif 
w_other =

Код: Выделить всё

GetValue("WEIGHT")
w_str =

Код: Выделить всё

format(
if GetValue("PROFILE_TYPE") == "B" then
    GetFieldFormula("w_pl")
else
    GetFieldFormula("w_other")
endif
, "Weight", "kg", 1)
Вложения
test.zip
(990 байт) 224 скачивания

Montag
Сообщения: 65
Регистрация: 14 фев 2017, 09:07

Re: Нетто Vs Брутто

Сообщение Montag » 16 июл 2019, 22:36

PROFILE.PLATE_THICKNESS не работает по чему-то.. можно тогда использовать WIDTH

Villcommen
Сообщения: 28
Регистрация: 10 янв 2017, 11:14

Re: Нетто Vs Брутто

Сообщение Villcommen » 17 июл 2019, 09:38

vladimir_a писал(а):
16 июл 2019, 13:26
if (GetValue("AREA")<=200000 && GetValue("PROFILE.WIDTH")<=12)then
round(GetValue("WEIGHT_GROSS"),0.1)
else
для условия площадь детали менее 0,1 м2 толщина 12 и менее
в моем сообщении все ведь прописано
[/quote]
Да все заработало, единственное надо указать <12 мм, т.к. от 12 должно уже в нетто уходить. Спасибо вам большое

вот готовый код:

if GetValue("WEIGHT_GROSS") < 0.1 then "0.1"
else if (GetValue("AREA")<=200000 && GetValue("PROFILE.WIDTH")<12) then round(GetValue("WEIGHT_GROSS"),0.1)
else round(GetValue("WEIGHT"),0.1)
endif
endif

Ответить
phpbb3 styles

Вернуться в «Редактор шаблонов Tekla Structures»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость