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

Масса швов в отчете ведомость отправочных марок Tekla

Ответить
Forger
Сообщения: 41
Регистрация: 08 дек 2012, 18:29
Откуда: Новокузнецк

Масса швов в отчете ведомость отправочных марок Tekla

Сообщение Forger » 23 ноя 2015, 18:39

Приветствую!
Может кто подскажет чего мне делать???
Интересует следующее - есть цель получить ведомость отправочных марок с учетом сварных швов. Т.е. есть шаблон таблицы "требуется изготовить", который откатан тысячами чертежей, и вот хочу сделать отчет в эксель, чтобы масса марок считалась аналогичным алгоритмом, чтобы можно снимать отчет и получать 100% такой же результат как в сборочных чертежах.
Прикладываю скрины самого шаблона:
Шаблон марки 2.png
Как видно выведена строка "сборка", а уже из нее выходят второстепенные строки для предварительных расчетов, итог выводится в последней строке "деталь".
Так выглядит шаблон, если не скрывать строки и второстепенны поля значений:
Шаблон марки.png
И вот пытаюс сделать аналогично в отчете:
Отчет.png
В принципе все работает, НО
почему не корректно считается полный вес сборки? Есть четкое значение суммы деталей - round(Sum("all_parts"), 0.1) и отдельно выводится нормально, есть формула швов, завязанная на заданном в свойствах проекта проценте швов - if Sum("Kolvo_det")<=1 then 0 else GetFieldFormula("all_assembly")/100*GetFieldFormula("weld") endif, вес тоже выводится правильно, ну и соответственно сумма двух значений - GetFieldFormula("all_assembly")+GetFieldFormula("mass_weld") и тут уже вес, умноженный втрое, т.к. сборок 3! :evil: :evil: :evil:
Отчет 2.png
Отчет 2.png (13.93 КБ) 6077 просмотров
Если в выделенных проблемных зонах заменить GetFieldFormula на CopyFieldFormula все становится правильным, НО непонятно... одна строка, результаты для одной сборки, а сумма для трех... Почему так? :roll: :roll: :roll:

Ну и второй вопрос - даже когда все получается, атрибут строки - "деталь", поэтому в строку дополнительно не добавить, например, площадь сборки, т.к. это атрибут строки другого содержания. Может кто подскажет как собрать в одной строке результаты расчета на основании входящих в сборки деталей и атрибуты строки "сборка"? Есть подозрение, что может дело в иерархии строк и оператора типа StepOut... Но с этим пока непонятно...

Буду признателен если кто поможет ;) . Возможно кто-то подскажет как более просто ввести учет массы швов в выборку

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

Re: Масса швов в отчете ведомость отправочных марок

Сообщение meart » 23 ноя 2015, 21:36

по первому вопросу.. скорее всего у вас стоит суммирование выделенных красным значений.. в свойствах - выключите.
по второму.. из строки деталь можно обратиться к сборке добавляя префикс "ASSEMBLY." (так сказать поднимаясь выше по иерархии). в редакторе шаблонов эти атрибуты должны быть видны.. если у вас они не видны, значит у вас не правильно настроен редактор. ;)
также можно использовать вместо второй строки "Деталь" строку "Сводка"
«Есть только две бесконечные вещи: Вселенная и глупость. Хотя насчет Вселенной я не вполне уверен.» А. Эйнштейн

Forger
Сообщения: 41
Регистрация: 08 дек 2012, 18:29
Откуда: Новокузнецк

Re: Масса швов в отчете ведомость отправочных марок Tekla

Сообщение Forger » 29 янв 2016, 13:10

Тут давно все заработало.
Следующий вопрос.
хочу сделать плавающий шифр в одном заказе на основе изменяющегося поля "заголовок 2". Прописал 13 строк, все работает только почему то DP10, DP11, DP12, DP13 берет значение предназначенное для DP1.
Что я сделал не так???

if(find(GetValue("DRAWING.TITLE2"),"DP1") != -1) then
"Sub Contractor/Vendor Doc.Ref.3300-114SSH0022-C03-00001-01-D"
else
if(find(GetValue("DRAWING.TITLE2"),"DP2") != -1 ) then
"Sub Contractor/Vendor Doc.Ref.3300-114SSH0022-C03-00002-01-D"
else
if(find(GetValue("DRAWING.TITLE2"),"DP3") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-03-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP4") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-04-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP5") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-05-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP6") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-06-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP7") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-07-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP8") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-08-01-D-"GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP9") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-09-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP10") != -1) then
"3300-FWP1B-114-CS-KMD-08040-10-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP11") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-11-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP12") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-12-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP13") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-13-01-D-"+GetValue("...")
else
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif

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

Re: Масса швов в отчете ведомость отправочных марок Tekla

Сообщение meart » 29 янв 2016, 15:34

Forger писал(а):Тут давно все заработало.
Следующий вопрос.
хочу сделать плавающий шифр в одном заказе на основе изменяющегося поля "заголовок 2". Прописал 13 строк, все работает только почему то DP10, DP11, DP12, DP13 берет значение предназначенное для DP1.
Что я сделал не так???

if(find(GetValue("DRAWING.TITLE2"),"DP1") != -1) then
"Sub Contractor/Vendor Doc.Ref.3300-114SSH0022-C03-00001-01-D"
else
if(find(GetValue("DRAWING.TITLE2"),"DP2") != -1 ) then
"Sub Contractor/Vendor Doc.Ref.3300-114SSH0022-C03-00002-01-D"
else
if(find(GetValue("DRAWING.TITLE2"),"DP3") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-03-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP4") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-04-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP5") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-05-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP6") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-06-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP7") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-07-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP8") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-08-01-D-"GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP9") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-09-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP10") != -1) then
"3300-FWP1B-114-CS-KMD-08040-10-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP11") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-11-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP12") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-12-01-D-"+GetValue("...")
else
if(find(GetValue("DRAWING.TITLE2"),"DP13") != -1 ) then
"3300-FWP1B-114-CS-KMD-08040-13-01-D-"+GetValue("...")
else
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
поменяйте очередность условий .. D13, D12, D11 и т.д.
«Есть только две бесконечные вещи: Вселенная и глупость. Хотя насчет Вселенной я не вполне уверен.» А. Эйнштейн

Forger
Сообщения: 41
Регистрация: 08 дек 2012, 18:29
Откуда: Новокузнецк

Re: Масса швов в отчете ведомость отправочных марок Tekla

Сообщение Forger » 30 янв 2016, 09:37

Не работает.
Все равно для всех значений DP1,DP11, DP12, DP13 выводится одно и тоже... Как прописано для DP1

Аватара пользователя
Danila_ZLT
Сообщения: 603
Регистрация: 02 окт 2012, 12:14
Откуда: Златоуст
Контактная информация:

Re: Масса швов в отчете ведомость отправочных марок Tekla

Сообщение Danila_ZLT » 30 янв 2016, 13:47

Сначала DP13,DP12,DP11,DP10 потом все остальное DP1.. и тд...
Так понятно?
Автоматизируем хаос... Недорого...

Forger
Сообщения: 41
Регистрация: 08 дек 2012, 18:29
Откуда: Новокузнецк

Re: Масса швов в отчете ведомость отправочных марок Tekla

Сообщение Forger » 01 фев 2016, 05:16

Danila_ZLT писал(а):Сначала DP13,DP12,DP11,DP10 потом все остальное DP1.. и тд...
Так понятно?
Благодарю! Сделал именно так и все заработало.
Но все равно не понял, если честно, как работает эта функция... смещение. Чего она и куда смещает... Делал так, по аналогии с существующими шаблонами

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

Re: Масса швов в отчете ведомость отправочных марок Tekla

Сообщение meart » 01 фев 2016, 08:17

Forger писал(а):
Danila_ZLT писал(а):Сначала DP13,DP12,DP11,DP10 потом все остальное DP1.. и тд...
Так понятно?
Благодарю! Сделал именно так и все заработало.
Но все равно не понял, если честно, как работает эта функция... смещение. Чего она и куда смещает... Делал так, по аналогии с существующими шаблонами
Функция "find(a, b)" определяет смещение от начала строки "b" в строке "a". Если строки "b" в строке "a" нет, то функция возвращает -1.
в вашем случае find(GetValue("DRAWING.TITLE2"),"DP1") находило в строке "DP11" строку "DP1" раньше, чем дело доходило до поиска строки "DP11". :? как-то так
«Есть только две бесконечные вещи: Вселенная и глупость. Хотя насчет Вселенной я не вполне уверен.» А. Эйнштейн

Ответить
phpbb3 styles

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

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

Сейчас этот форум просматривают: Google [Bot] и 1 гость