Professional Documents
Culture Documents
FEDERAL
DE
SO
CARLOS
CENTRO DE CINCIAS EXATAS E DE TECNOLOGIA
DEPARTAMENTO DE ENGENHARIA CIVIL
DEDICATRIA
Dedico esta monografia aos meus pais e minha irm
que tanto me apoiaram. Tambm a dedico Aliana
Bblica Universitria (ABU), grupo com o qual aprendi a
ser um ser humano melhor e um cristo autntico.
AGRADECIMENTOS
Meus sinceros agradecimentos ao Professor Doutor Roberto Chust Carvalho, com o qual
muito aprendi. Sem ele no seria possvel a concluso deste trabalho.
Agradeo principalmente a Deus, o nico que merece toda honra e glria. Ele me tirou de
uma vida afundada no pecado e me deu uma vida cheia de propsito e o privilgio de ser
Seu filho.
RESUMO
Neste trabalho visou-se confeccionar um programa que calcula a armadura
longitudinal ativa e passiva a ser usada em uma viga pr-fabricada com pr-trao e
simplesmente apoiada.
Para realizar o detalhamento da armadura ao longo da viga foram usados os preceitos
de CARVALHO (2012) que foram testados e postos em prtica por BINDILATEN (2009) e
FALEIROS FILHO (2011), alm de PETRUCELLI (2009). Foi preciso desenvolver: a parte
do clculo da armadura de estribos para resistir o cisalhamento de flexo; as verificaes e o
detalhamento da armadura longitudinal ao longo da viga, principalmente no que se refere ao
isolamento da armadura junto s extremidades. Diferentemente dos poucos programas
comerciais existentes, foi realizado o clculo das perdas iniciais e ao longo do tempo para que
o detalhamento de armadura fosse o mais preciso possvel.
O clculo foi feito partindo desde o pr-dimensionamento at chegar no detalhamento
da armadura, permitindo sempre alteraes feitas pelo usurio. Assim, o usurio obtm a pea
detalhada atravs do uso de linguagem LISP do AutoCAD.
Como resultado final se obteve uma ferramenta que pode ser usada por profissionais e
alunos para projetar e detalhar vigas em concreto protendido pr-tracionadas usando mais o
tempo para a anlise da soluo sem ter a necessidade de realizar procedimentos repetitivos
de clculo e detalhamento que podem ser bastante demorados.
Todos os procedimentos estaro de acordo com a NBR6118:2007 e com a
NBR9062:2003.
Palavras-chave:
programa,
concreto
protendido,
pr-trao
ABSTRACT
ABSTRACT
This study aims to build a program that calculates the active and passive longitudinal
reinforcement to be used in a prefabricated beam with pretensioning and simply supported
beam.
To carry out the detailing along the beam were used the precepts of Carvalho (2012)
that have been tested and put into practice by Bindilaten (2009), Faleiros Filho (2011), and
Petrucelli (2009). It was necessary to develop: a calculation part of the shear stirrups to resist
the bending shear; the reinforcement checks and detailing along the beam, especially with
regard to the isolation of reinforcement along the edges. It is intended, unlike the few
programs which exist, perform the calculation of the initial losses and over time so that the
detail is as accurate as possible.
The calculation was made starting from pre-dimensioning until the reinforcement
detailing, always allowing changes made by the user. Then, the user gets the detailed beam
through the use of AutoCAD LISP language.
As a final result is obtained a tool that can be used by professionals and students to
design and detail prestressed concrete beams using more time for analysis of the solution
without the need to perform repetitive procedures of calculation and detail that can be slow.
All procedures are in accordance with the NBR6118:2007 and with the
NBR9062:2003.
SUMRIO
1.
INTRODUO ................................................................................................................... 8
1.1
JUSTIFICATIVA ........................................................................................................ 8
1.2
OBJETIVOS ................................................................................................................ 9
2.
REVISO BIBLIOGFICA ............................................................................................ 10
2.1
O CONCRETO PROTENDIDO .............................................................................. 10
2.2
PERDAS DE PROTENSO ..................................................................................... 11
2.2.1
PERDAS INICIAIS .............................................................................................. 11
2.2.2
PERDAS FINAIS ................................................................................................. 13
2.3
PR-DIMENSIONAMENTO DA ARMADURA LONGITUDINAL .................. 15
2.4
VERIFICAO EM DCIMO DE VO ............................................................... 17
2.4.1
PERDAS INICIAIS .............................................................................................. 19
2.4.2
PERDAS FINAIS ................................................................................................. 20
2.5
COMPRIMENTO DE TRANSFERNCIA E DE REGULARIZAO ............ 20
2.6
SEO COMPOSTA ............................................................................................... 22
2.7
DIMENSIONAMENTO DA ARMADURA TRANSVERSAL ............................. 22
2.7.1
EXPRESSES PARA CLCULO E VERIFICAES PARA
DETALHAMENTO ......................................................................................................... 23
2.8
DETALHAMENTO .................................................................................................. 24
3.
METODOLOGIA ............................................................................................................. 26
4.
DESENVOLVIMENTO DO ROTEIRO DO PROGRAMA ........................................... 27
4.1
ROTEIRO DE CLCULO DA ARMADURA LONGITUDINAL ...................... 27
4.2
ENTRADA DE DADOS E INFORMAES INICIAIS ....................................... 28
4.2.1
INTRODUO .................................................................................................... 28
4.2.2
DESCRIO DAS TELAS DE ENTRADA ....................................................... 29
5.
VALIDAO DO PROGRAMA ...................................................................................... 45
5.1
EXEMPLO DE APLICAO 01 ............................................................................ 45
5.2
EXEMPLO DE APLICAO 02 ............................................................................ 51
5.3
EXEMPLO DE APLICAO 03 ............................................................................ 53
5.4
EXEMPLO DE APLICAO 04 ............................................................................ 54
6.
MANUAL DO USURIO................................................................................................. 56
6.1
Incio ........................................................................................................................... 56
6.2
Utilizando o Protendido.exe .................................................................................. 56
6.3
Utilizando o arquivo Detalhamento.lsp ............................................................... 69
7.
CONCLUSO ................................................................................................................... 75
8.
REFERNCIAS ............................................................................................................... 76
9.
BIBLIOGRAFIA .............................................................................................................. 77
1.
INTRODUO
No Brasil, o concreto protendido uma das reas de estrutura que mais se expande.
As estruturas com este sistema so cada vez mais frequentes em obras de engenharia de
maneira que escolas (quase todos novo prdios da UFSCar so feitas em concreto
protendido), pontes, viadutos e passarelas (viaduto da acesso a UFSCar e passarelas
adjacentes), prdios de shopping centers, edificaes comerciais, industriais e mesmo
residenciais que necessitam de maiores vos e mesmo para vos mdios (obras
residenciais) tem laje protendida.
Na regio sudeste e principalmente no Estado de So Paulo multiplicam-se as
empresas de pr-fabricados que cada vez mais usam estruturas protendidas. Prximo a
regio de So Carlos existem fbricas de estruturas de concreto que usam a protenso junto
a cidades como Campinas , Piracicaba, So Jos do Rio Preto, Franca, Limeira, Amrico
Brasiliense, Atibaia e outras. Isto mostra que cada vez mais intensa a presena deste
sistema nas obras. Por outro lado, diferente do que o concreto armado no local, para o prfabricado existem poucos programas e, em geral, incompletos e caros. o caso do mdulo
PROUNI do TQS (2011) que na verdade s verifica as peas protendidas e no faz o clculo
das perdas de protenso. A caractersticas das peas protendidas diferentemente das
moldadas no local, permitem sempre a escolha de um conjunto de solues, at mesmo por
se ter a possibilidade de usar armadura passiva e ativa, em princpio, em propores
adotadas pelo projetista. Assim, a automao do projeto de concreto protendido no pode
ser total, ou seja, entre a entrada de dados e a soluo final com o desenho das armadura
preciso haver a interferncia decisria do projetista.
1.1
JUSTIFICATIVA
O grande desenvolvimento que o Brasil vem atravessando e que deve continuar
exige, cada vez mais que as estruturas de concreto sejam feitas em menor tempo, com
maior qualidade e sem grande consumo de materiais e mo de obra. Assim, parece claro
que a construes industrializadas com as vigas com pr-trao se tornam a soluo
interessante para estes objetivos. O clculo e detalhamento de vigas pr-fabricadas
bastante trabalhoso, pois se impem diversas verificaes em servio (a de tenses) que no
caso das vigas moldadas no local com armadura passiva, so mais simples e na maioria
das vezes no so determinantes no valor final da quantidade da armadura. O nico
1.2
OBJETIVOS
O Objetivo deste trabalho confeccionar um programa que calcule, detalhe a
armadura de uma viga protendida com pr-trao. Como objetivo secundrio introduzir o
aluno em pesquisa e permitir uma maior formao na rea de projeto de protendido.
10
2.
REVISO
BIBLIOGFICA
2.1
O CONCRETO PROTENDIDO
Segundo, Pfeil (1980), a protenso aplicada ao concreto consiste em introduzir
Fios, com dimetro, em geral, de 3mm a 8mm, fornecidos em rolos. Estes so fios
trefilados de ao carbono;
Cordoalhas que so formadas por vrios fios (em geral, 3 ou 7) ou cabos de maneira
helicoidal;
11
2.2
PERDAS DE PROTENSO
A protenso introduz na pea uma fora inicial que provoca o alongamento na
2.2.1
PERDAS INICIAIS
Como visto em Carvalho (2012), as perdas iniciais (para as estruturas com prtrao) de que ocorrem so: acomodao da ancoragem, relaxao da armadura durante a
cura do concreto e deformao imediata ou retrao do concreto (no instante da
transferncia de protenso).
A acomodao da ancoragem ocorre aps a distenso da armadura de protenso. Quando
se efetiva a ancoragem de um cabo ocorre um pequeno retrocesso no mesmo, isso provoca
uma queda de tenso. No caso da pr-trao, o estiramento do ao feito antes da
concretagem, logo todos os cabos esto submetidos a lei de Hooke. E vale a seguinte
expresso:
12
! =
! =
!. !
!" !. !
!!
!. !!
!" !. !
!
!! !! !! . ! ! !!! . !
.
+
!" !. !
!! !!
!
!
(t, to) =
pr (t, t o )
pi
eq 2.4
onde:
pr(t, to)= perda de tenso por relaxao pura (com comprimento constante) desde o
instante to do estiramento da armadura at o instante t considerado
pi= tenso da armadura de protenso no instante de seu estiramento
A relaxao de fios e cordoalhas, aps 1000h a 20C (1000) e para tenses
variando de 0,5 a 0,8 fptk, obtida em ensaios descritos na NBR 7484, no deve ultrapassar
os valores dados na NBR 7482 e na NBR 7483,respectivamente.
Para efeito de projeto, os valores de 1000 da Tabela 2.1 podem ser adotados.
13
Os valores correspondentes a tempos diferentes de 1.000 horas, sempre a 200C, podem ser
determinados a partir da seguinte expresso:
" t ! to %
.$
'
# 41, 67 &
0,15
eq 2.5
para tenses inferiores a 0,5 fptk admite-se que no haja perda de protenso por relaxao;
Para valores intermedirios dados na tabela 2.1 pode ser feita uma interpolao linear;
Para tempo infinito pode-se considerara (, t0) = 2,5 . 1000
2.2.2
PERDAS FINAIS
14
A perda dada pela produto entre a retrao ocorrida e o mdulo de elasticidade, como
segue abaixo:
!,! t, t ! = !" t, t ! . E! !" !. !
A fluncia, do mesmo modo que a retrao, tambm depende do movimento da
gua, mas associada a um carregamento aplicado. A fluncia ocorre devido a tenses
capilares no interior do concreto e aos demais fatores presentes no efeito de retrao. Um
detalhe que as aes que provocam a fluncia so permanentes, logo, as aes
acidentais no provocam deformao ao longo do tempo.
O concreto, quando submetido a solicitaes, sofre uma deformao imediata e outra
lenta. Sendo estas de mesma ordem de grandeza. Como podemos ver nas figuras 2.1 e 2.2.
Figura 2.1 Evoluo da deformao por fluncia para uma tenso constante.
15
Arajo (2010) avaliou os efeitos do tempo num painel alveolar protendido composto e
atestou que a retrao diferencial em sees compostas de concreto acarretam elevadas
mudanas na distribuio das tenses, em especial, na regio entre o concreto pr-moldado
e o moldado no local.
Lahude (2009) observou que, para uma mesma carga, ao adiar a sua aplicao no
elemento, a significncia da fluncia reduz bastante. No exemplo de uma defasagem de 60
dias significa um coeficiente de fluncia 60% menor.
Como visto em Inforsato (2009), quando o valor arbitrado da perda de protenso
muito conservador, as a armadura calculada chega a ser cerca de 20% do valor necessrio.
Isso mostra a importncia de um clculo mais preciso das perdas.
2.3
estado limite ltimo (ELU) assim como verificar as condies de utilizao (ELS). O clculo
da armadura pode ser feito no ELU e realizar as verificaes no ELS. Pode-se tambm fazer
o contrrio, iniciando o dimensionamento no ELS e fazendo as verificaes do ELU.
Diferentemente que no concreto armado no concreto protendido preciso tambm verificar
se, no ato da protenso, a pea no apresenta risco de colapso. No caso das verificaes
em servio, quando se considera a durabilidade, usual em estruturas pr-fabricadas
considerar para a cidade de So Paulo a classe de agressividade II da NBR6118:2007 e
portanto usar as verificaes pertinentes a protenso limitada.
A fissurao excessiva de uma pea em concreto protendido pode comprometer
significativamente sua durabilidade. Embora no seja a nica causa, ou condio
necessria, pode-se dizer que, quando ocorre, h grande risco de haver uma degradao
rpida do concreto superficial e da armadura. Outros fatores, como: porosidade do concreto,
cobrimento insuficiente da armadura, presena de produtos qumicos, agentes agressivos
etc., contribuem ou podem ser determinantes na durabilidade da estrutura. Examinados
esses fatores, o projetista deve evitar que a pea sofra fissurao excessiva, devida
flexo, detalhando adequadamente a armadura na seo transversal e, se for o caso,
aumentando a sua quantidade.
Assim, em relao questo de fissurao, em geral, deseja-se evitar situaes em
que a mesma possa causar uma diminuio na vida til da estrutura, principalmente
provocando a deteriorao da armadura por corroso. O uso de fator gua cimento (A/C)
adequado, cobrimentos mnimos adequados para armadura tambm fazem parte das
prescries de se evitar a corroso da armadura e portanto a diminuio da vida til da
16
N!
A
M!
W
!!!
M!"
W
! . M!
W
f!"#,!"# !" !. !
Sendo:
f!"#,!"# = 0,21.
!
f!"
17
N! a fora aplicada no sentido axial da pea devido a protenso dada por N! = !"!! . A !
M! o momento aplicado devido a protenso dado por M! = N! . e
0,7f!"
Para a condio de tempo zero, utiliza-se o valor total da tenso de protenso inicial
pois supe-se que ainda no ocorreu nenhuma perda. Portanto podemos utilizar uma
inequao parecida com a anterior, substituindo !"!! (tenso no tempo infinito) por !"!!
(tenso no tempo zero), o valor a direita da inequao por 1,2f!",! e A ! por A!! .
Inforsato (2009) afirma que possvel utilizar a inequao de tenses no tempo infinito para
dimensionar a armadura do bordo inferior e a inequao de tenses no tempo zero para
dimensionar (se houver) a armadura do bordo superior.
O trabalho de Machado (2002) por outro lado, apresentou um modelo elastoviscoplstico baseado no mtodo dos elementos finitos. Atravs deste modelo, pode-se
obter a resposta da estrutura para as cargas de curta e de longa durao. O comportamento
elstico da estrutura corresponde as cargas aplicadas instantaneamente na estrutura
enquanto o visco-plstico corresponde a sua deformao no decorrer do tempo. Para
representar este comportamento do material, pode-se utilizar o modelo de camadas
superpostas. Neste, o material dividido em um determinado nmero de camadas com
propriedades mecnicas diferentes mas sofrendo a mesma deformao total.
2.4
VERIFICAO EM DCIMO DE VO
Sendo feita a verificao no meio do vo (onde os momentos devido aos
18
Como pode ser visto, dividindo em dcimo de vo, existem cinco sees as quais o
carregamento difere. A seo S5 a que possui momento mximo e por ela que feito o
dimensionamento da armadura longitudinal. Para as outras sees deve-se verificar se no
existe problema em relao a trao no bordo superior. Em geral, na seo S1 ter
problemas com as verificaes e portanto ser necessrio diminuir o nmero de cabos (tirar
a aderncia) para esta.
Para o clculo dos esforos nas sees intermedirias, utiliza-se o seguinte
equacionamento que vem da esttica clssica.
M! =
p. l. x p. x !
!" !. !
2
2
e
V! =
Sendo:
-
P: Ao considerada;
l: Vo total;
x: posio da seo S
p. l
p. x !" !. !
2
19
2.4.1
PERDAS INICIAIS
A perda por ancoragem a mesma por toda a viga. Como pode ser visto na equao
5.2, esta perda depende apenas do retrocesso da armadura, a largura da pista de protenso
e do mdulo de elasticidade do ao.
A perda por relaxao do ao nas primeiras 24 horas tambm equivalente para todos os
trechos da viga. Como vemos na equao 2.4, esta depende basicamente da tenso
aplicada na pea.
J a perda por deformao imediata varia de seo para seo. Como visto na equao 2.3,
esta perda depende do momento causado pelo peso prprio da viga. No caso, M!" varia.
Esta variao pode ser visualizada na figura 2.3. Teoricamente, o valor da normal de
protenso Np tambm varia. Entretanto considerando que as outras perdas iniciais no
sofreram variao conforme a variao do valor de x, Np permanece constante em relao
a x para efeito de clculo desta perda.
20
2.4.2
PERDAS FINAIS
2.5
!"
f!"#
!" !. !"
l!" =
7. . f!"#
36. f!"#
!" !. !"
21
f bpd
deve considerar a
f!"# =
!,!" . !!!"#
!,!
eq 2.14
l!"# = 0,5 .
7 . . f!"#
36 . f!"#
!"
f!"#
3,5 . . !"
36 . f!"!
!" !. !"
l!"# =
h! + 0,6 . l!"#
22
2.6
SEO COMPOSTA
A seo composta est presente nas estruturas formadas por concretos pr-moldados
e os moldados in loco. geralmente composta por uma viga pr-moldada, uma laje
alveolar e uma capa. muito utilizada nos sistemas de pavimentao de edifcios e pontes.
Essa concepo estrutural apresenta a vantagem de diminuir o tempo de execuo nos
canteiros e eliminar a necessidade de escoramentos durante a concretagem. O uso do
concreto moldado no local se deve a execuo de uma capa que garante maior
solidarizao entre os elementos garantindo a estrutura maior resistncia a solicitaes. No
entanto, como os elementos tem comportamentos diferentes, os seus efeitos devem ser
considerados. Segundo Inforsato (2009) e Faleiros Junior (2010), com a aplicao da capa
de concreto, alm da formao da seo composta possvel que a laje seja calculada
como continua aps o endurecimento da capa de concreto.
O fato de os concretos terem idades distintas acarreta em valores de deformao por
fluncia e retrao diferentes para cada caso. Alexander (2006) fez um estudo terico e
experimental dos esforos que aparecem na seo com o passar do tempo verificando a
retrao diferencial gerando tenses e deslocamentos adicionais e relacionando a ordem de
grandeza de influncia desses fenmenos com a idade e espessura da capa estrutural
moldada no local.
2.7
23
considerar o efeito da cortante existente quando a trajetria dos cabos curva. Como este
trabalho visa a pr-trao, na qual a trajetria dos cabos reta, este efeito no ser
considerado. A NBR 6118:2007, considera que o clculo deve ser feito com base no modelo
de trelia nas situaes de modelo I ou II, para o trabalho apresentado, optou-se por calcular
utilizando o modelo I. Neste modelo, a inclinao da biela de 45. Este clculo feito a
favor da segurana, pois sabe-se que o ngulo de inclinao das bielas para o concreto
protendido est entre 30 e 45.
2.7.1
!!"
!"#
. f!" . b! . d
eq 2.17
V!" =
A !"
. 0,9 . d . f!"# . sen + cos !" !. !"
s
Onde:
-
24
V!" =
A !"
. 0,9 . d . f!"# !" !. !"
s
!" =
1,11 . !"
!" !. !!
f!"#
A !" 0,2 .
2.8
f!",!
. b . s !" !. !"
f!"# !
DETALHAMENTO
25
No interior do edifcio
Ao ar livre
1,5
1,5
26
3.
METODOLOGIA
O procedimento automtico de clculo foi feito em duas etapas. Em uma, o usurio
pode entrar com todos os dados necessrios e o programa verifica se a seo dada est
compatvel aos esforos e condies existentes. Na outra, com todos os dados, e com as
verificaes efetuadas, o programa gera um arquivo de texto o qual lido por uma outra
rotina, que faz os desenhos da seo transversal e todo o detalhamento da armadura
longitudinal. Tambm criada, pela rotina, uma tabela de ao.
Considerando que o programa desenvolvido ser utilizado essencialmente por
estudantes de engenharia civil, escolheu-se para a primeira etapa, que consiste em realizar
toda a entrada de dados e clculos, o ambiente de programao DELPHI pois alm de usar
a linguagem orientada ao objeto, este j possui verses visuais para o sistema WINDOWS e
LINUX e permite a programao em linguagem PASCAL que foi a linguagem aprendida
durante o primeiro semestre do curso. A segunda etapa, que consiste no detalhamento da
armadura longitudinal e de armadura transversal, foi feito atravs de uma rotina LISP que
permite que se obtenha alm do desenho da forma, toda a planta de armao ativa e
passiva. Procurou-se utilizar a ferramenta de programao AutoLISP devido a possibilidade
de se programar no AutoCAD, e tambm devido ao contato com a linguagem obtido durante
a primeira iniciao cientfica.
Assim, de uma maneira geral, o trabalho foi desenvolvido em etapas distintas de modo
a organizar as atividades e proporcionar um encadeamento lgico. Ao trmino do programa,
foram resolvidos pequenos exemplos para testar a eficincia dos mdulos do programa
finalizado. Procurou-se fazer com que os exemplos correspondam a problemas usuais de
engenharia civil. Dentro destes exemplos consta o de vigas com sees usuais
(retangulares) em prdios de galpes ou de mltiplos andares e tambm com sees
compostas (vigas retangulares com a considerao da influncia de uma laje alveolar
apoiada).
Todos os procedimentos esto de acordo com a NBR6118:2007 e com a
NBR9062:2003 principalmente aqueles relativos a verificao da durabilidade em servio
que singular, bastante diferente de outras normas como a EUROCODE (2002) e que
tornam difcil o emprego de programas estrangeiros para a finalidade de detalhamento.
27
4.
DESENVOLVIMENTO
DO
ROTEIRO
DO
PROGRAMA
4.1
fissuras
para
combinao
frequente
(1)
com
limite
de
28
4.2
4.2.1
29
4.2.2
30
31
Para prosseguir no programa usa-se a caixa (box) indicada na figura 4.2, onde se
informa o vo efetivo da viga; da seo transversal da viga: a largura, a altura, a altura til,
a distancia da armadura negativa a borda da seo mais prxima, a espessura da capa.
Ainda so necessrios informar: a altura da laje, a classe de agressividade ambiental, a
largura da pista de protenso, o fck (resistncia caracterstica de compresso do concreto) e
fcj (resistncia do concreto antes dos 28 dias) da viga, o fck da capa de concreto, o tipo de
ao, o dimetro da cordoalha, o dimetro do estribo, o tipo de brita, a tenso inicial nos
cabos e as perdas iniciais e finais.
Para facilitar a compreenso, um desenho esquemtico da seo pode ser visto a
seguir na figura 4.5:
32
Figura 4.6 Caixa para a colocao dos dados necessrios para o clculo do
coeficiente de fluncia e de retrao.
A terceira caixa da janela principal do programa feita para que o usurio informe o
permetro em contato com o ar das sees 1 e 2 sendo que estas se referem a seo
retangular e a seo composta respectivamente. Ele tambm deve informar a umidade
relativa do ar, a temperatura mdia, o valor do ensaio de abatimento do corpo de prova, o
tipo de cimento em cada seo e um tempo final.
33
34
Abaixo se encontra a janela completa com todas as clulas preenchidas e algumas das
janelas de aviso que informam o usurio sobre o pr-dimensionamento.
Figura 4.9 Primeira janela inteira preenchida.
35
Com as verificaes atendidas, o programa abre uma nova janela. Esta pode ser
vista na figura 4.11 a seguir.
Figura 4.11 Segunda janela
Esta janela tambm est dividida em caixas porm quase todas so apenas para
sada de dados. A janela mais a esquerda faz a verificao por tenses, a caixa do meio faz
a verificao por ruptura e a caixa da direita calcula o comprimento de transferncia e de
regularizao necessrio para a viga. Estas caixas podem ser vistas com mais detalhes nas
figuras 4.12, 4.13 e 4.14.
36
37
Esta outra caixa apenas para a sada de dados. x a posio da linha neutra em
relao ao bordo superior em cm. Mr o momento resistente de clculo no ELU e Md o
momento de clculo devido as foras atuantes na seo no meio do vo em KN.m. O
programa tambm informa o usurio sobre qual o domnio a viga est trabalhando e qual a
posio da linha neutra em relao a seo transversal (se ela passa pela mesa, pelo
pescoo ou pela alma).
Figura 4.14 Caixa com o clculo do comprimento de transferncia e de regularizao
Nesta caixa existe a possibilidade de entrar com alguns dados (eles ficam
previamente determinados mas podem ser alterados). necessrio que o usurio informe
como feita a liberao da protenso. Ela pode ser feita de forma gradual ou brusca. De
modo geral, considera-se que em elementos pr-fabricados a liberao no gradual. Neste
caso o comprimento de transferncia aumenta em 25% do valor para desprotenso gradual.
O valor de n1 depende da cordoalha e o valor de n2 depende da aderncia entre cordoalha e
concreto.
Na parte inferior da caixa so apresentados os valores do comprimento de
regularizao e de transferncia do bordo inferior e superior.
38
A partir desta segunda janela, abrem-se duas possibilidades para o usurio: fazer as
verificaes em dcimo de vo, ou calcular a armadura transversal. Ao optar-se pela
primeira opo surge uma nova janela que pode ser vista logo a seguir na figura 4.15.
Figura 4.15 Terceira janela
39
40
Como pode ser visto, esta tambm uma janela apenas para a sada dos dados. O
valor de Vrd2 a cortante resistida pela pelas bielas, Vsd a cortante de clculo, Vc a
cortante resistida pelo concreto, Vsw a cortante que deve ser resistida pela armadura
transversal, o espaamento a distncia entre estribos, sendo este valor um mnimo e o
dimetro do estribo. Tambm indicado quantos ramos existem no estribo e se a armadura
transversal apenas construtiva (a armadura necessria mnima) ou no.
A partir deste momento, com todas as verificaes e com todos os clculos feitos,
possvel criar o arquivo para o detalhamento da viga. Para isso, basta clicar no boto Criar
arquivo para detalhamento na segunda janela e digitar o nome do arquivo para ser salvo.
Um modelo de como o arquivo criado segue no anexo G. O arquivo pode ser alterado
utilizando simplesmente o bloco de notas tomando-se cuidado ao modificar certos valores
para valores que no sero entendidos pela rotina em LISP. Com isso, todas as janelas
podem ser fechadas e comea a rotina feita em LISP no AutoCAD.
Iniciando a rotina LISP e selecionando o arquivo criado pelo programa em DELPHI, o
usurio no precisa inserir nenhum novo dado, pois todos os dados necessrios encontramse no arquivo. O desenho ser feito com base nos dados fornecidos previamente e ser
feita a seo transversal e longitudinal da viga juntamente com o detalhamento da armadura
e dos estribos e a criao de uma tabela de ao. A seguir pode ser visto nas figuras de 4.19
at 4.27 os desenhos feitos automaticamente pela rotina.
41
42
43
44
45
5.
VALIDAO
DO
PROGRAMA
Para verificar que o programa realmente est funcionando e que pode ser utilizado
sem riscos de existirem erros de dimensionamento, ser feito no tpico a seguir um exemplo
em que o dimensionamento j conhecido.
5.1
EXEMPLO DE APLICAO 01
Ser utilizado o exemplo 01 que se encontra na dissertao de mestrado de Inforsato
46
TEMPO
AO
SEO
PERDAS
Deformao
ancoragem;
t0 = 0; t = 24 horas
Relaxao da
armadura;
Deformao
imediata.
Retrao;
Fluncia do
t0 = 1; t = dias
p+g1
concreto;
Relaxao da
armadura.
Retrao;
Fluncia do
t0 = 15; t = dias
p+g1+g2
concreto;
Relaxao da
armadura.
Retrao;
Fluncia do
t0 = 30; t = dias
p+g1+g2+g3
concreto;
Relaxao da
armadura.
Retrao;
t0 = 45; t = dias
p+g1+g2+g3+g4
Fluncia do
concreto;
47
Relaxao da
armadura.
Retrao;
Fluncia do
6
t0 = 60; t = dias
p+g1+g2+g3+g4+g5
concreto;
Relaxao da
armadura.
Retrao;
t0 = 75; t = dias
p+g1+g2+g3+g4+g5+
q
Fluncia do
concreto;
Relaxao da
armadura.
48
49
50
51
5.2
EXEMPLO DE APLICAO 02
Para este exemplo, ser utilizada a mesma viga do exemplo anterior. Desta vez sero
!! =
!"!!
!
!!!
!
Mg1 (kN.m)
S1
S2
S3
S4
S5
28,88
51,53
67,38
77
80,21
S2
S3
S4
S5
M1 (kN.m)
136,88
242,98
318,91
364,47
379,66
M2 (kN.m)
50,05
88,98
116,78
133,47
139,03
M3 (kN.m)
92,4
164,27
215,6
246,4
256,67
Com os valores de momento calculados, foi feita a tabela 8.4, na qual apresentado o valor
de cada perda, para cada seo.
Tabela 5.4 Perdas calculadas manualmente.
Perdas iniciais (KN/cm2)
S1
S2
S3
S4
S5
Deformao da ancoragem
1,2
1,2
1,2
1,2
1,2
Relaxao da armadura
2,55
2,55
2,55
2,55
2,55
10,58
10,23
9,99
9,85
9,8
52
-1,89
-1,53
-1,28
-1,13
-1,08
9,86
9,62
9,46
9,36
9,33
1,28
1,53
1,70
1,80
1,84
S2
S3
S4
S5
Retrao do concreto
5,2
5,2
5,2
5,2
5,2
Fluncia inf
21,18
17,16
14,30
12,59
12,01
Fluncia sup
-0,37
3,26
5,84
7,39
7,90
8,028
8,050
8,065
8,073
8,076
11,19
11,16
11,14
11,13
11,13
S1
S2
S3
S4
S5
27,10
23,95
21,72
20,37
19,92
28,51
26,11
24,40
23,38
23,03
12,339
15,113
17,085
18,272
18,668
9,772
11,929
13,458
14,379
14,685
S2
S3
S4
S5
Deformao da ancoragem
1,2
1,2
1,2
1,2
1,2
Relaxao da armadura
2,54
2,54
2,54
2,54
2,54
10,57
10,22
9,98
9,83
9,78
-1,88
-1,53
-1,27
-1,12
-1,07
9,85
9,61
9,44
9,34
9,31
1,28
1,52
1,70
1,80
1,84
S2
S3
S4
S5
Retrao do concreto
-5,21
-5,21
-5,21
-5,21
-5,21
Fluncia inf
21,13
17,13
14,27
12,55
11,98
Fluncia sup
-0,35
3,27
5,85
7,40
7,92
8,01
8,11
8,18
8,22
8,23
11,37
11,27
11,20
11,16
11,15
53
S1
S2
S3
S4
S5
26,96
23,88
21,69
20,37
19,93
28,40
26,05
24,37
23,36
23,03
13,02
15,19
17,13
18,29
18,68
10,24
11,98
13,49
14,39
14,69
Como visto, os valores pouco diferiram entre si, validando a rotina criada no que diz
respeito as perdas consideradas em dcimo de vo.
5.3
EXEMPLO DE APLICAO 03
Desta vez, ser utilizado o item a) do exemplo 1 que se encontra na dissertao de
Mg1 = 3540KN.m
Mq = 1910KN.m
CAA II
d = 1,45m
bw = 0,70m
!!! = 1000!"#
Ao de protenso CP190 RB
Fck = 30MPa
!! = 7467!". !
!! = 41,63 !" !
!! = 7276!". !
!! = 43,38 !" !
54
Podemos perceber que houve pequena variao nos valores de rea de ao. Isso se
deve ao fato de o programa utilizar a verificao por tenses enquanto o exemplo foi
resolvido unicamente pela verificao de ruptura.
5.4
EXEMPLO DE APLICAO 04
Como ltimo exemplo, ser utilizada trs vigas com o mesmo valor de largura e altura
55
O vo de cada viga ser respectivamente a)6m b)7m e c)8m. Com estes valores e utilizando
o programa desenvolvido, calcular a armadura ativa e passiva necessrias.
a) vo = 6m (viga 1)
Armadura ativa positiva: 8 barras 9,5mm (Ap=4,39cm2)
Armadura ativa negativa: 2 barras 9,5mm (Ap=1,098cm2)
b) vo = 7m (viga 2)
Armadura ativa positiva: 12 barras 9,5mm (Ap=6,59cm2)
Armadura ativa negativa: 3 barras 9,5mm (Ap=1,647cm2)
c) vo = 8m (viga 3)
Armadura ativa positiva: 18 barras 9,5mm (Ap=9,88cm2)
Armadura ativa negativa: 13 barras 9,5mm (Ap=7,137cm2)
Para vo de 8m, foi necessrio utilizar muita armadura. No caso, seria mais
interessante utilizar outra seo, aumentando o uso de concreto e diminuindo o uso de ao.
Em relao ao programa, percebe-se que os valores gerados foram coerentes,
validando novamente a rotina desenvolvida.
Figura 5.5 Comparao entre a armao das vigas 1, 2 e 3 (esquerda para direita)
56
6.
MANUAL
DO
USURIO
Este manual foi feito visando facilitar a utilizao do programa. Neste manual
encontra-se de modo claro e fcil todas as informaes necessrias tais como a explicao
das variveis e o uso dos botes em cada janela. Espera-se que, assim, mais alunos
possam usufruir do programa desenvolvido.
6.1
INCIO
Verifique se h em seu computador dois arquivos. Um chamado Protendido de
6.2
UTILIZANDO O PROTENDIDO.EXE
Para comear, abra o arquivo Protendido.exe. A seguinte janela ser aberta.
Figura 6.1 Janela inicial
57
58
59
Perdas iniciais: estimativa das perdas que ocorrem logo ao soltar os macacos de
protenso em %;
Perdas finais: estimativa do total das perdas no tempo infinito em %;
** O preenchimento desta clula tambm opcional. Caso a clula esteja vazia, o
programa entender que a tenso atuante a mxima que o cabo aguenta.
Para facilitar a compreenso, um desenho esquemtico das sees retangular e composta
pode ser visto a seguir:
Figura 6.4 Sees retangular e composta genricas com alguns elementos
indicados
60
61
62
63
Caso o usurio no se lembre sobre a que se refere determinada clula, ele pode
recorrer de um recurso de pista. Colocando o mouse sobre a clula, aparecer uma
informao adicional que facilitar seu entendimento. Isso vale para todas as janelas.
Seguindo os passos deste manual, aparecer para o usurio uma nova janela que
Esta janela importante, pois atravs dela que as outras verificaes sero feitas.
Nesta janela j no possui dados de entrada, seno unicamente para o clculo do
comprimento de transferncia. A seguir a janela ser explicada em partes.
64
65
66
67
Nesta janela, o usurio deve escolher qual limitao haver para a trao.
Caso a trao seja indesejada, necessrio clicar em trao nula. Fazendo isso as
clulas que esto em linha, sero preenchidas com a quantidade de cabos no isolados na
seo. Caso exista problema com o isolamento os cabos, as clulas ficaro vermelhas e
portanto ser necessrio redimensionar a viga ou permitir a trao.
Caso seja permitida a trao, o usurio deve clicar em -1,2 fct. Dessa forma, ser
permitido um limite de trao de at 1,2 fct. Entretanto, havendo trao na seo transversal,
importa que exista uma rea de ao para resistir a este esforo. Portanto aparecer um
valor de As para cada seo. Deste valor descontado a rea de armadura ativa calculada
anteriormente.
Tendo seguido estes passos, o usurio deve clicar em OK para voltar a terceira
janela e OK novamente para voltar a segunda janela.
De volta a segunda janela, o usurio deve clicar no boto Armadura transversal.
Isso abrir a janela 5.
68
Esta quinta e ltima janela tambm apenas para sada de dados. Ela apenas faz
algumas verificaes para a armadura transversal necessria.
Clicando em OK, a janela ser fechada, e o usurio se encontrar novamente na
janela 2. Caso deseje, ele deve clicar em Criar arquivo para detalhamento onde ser dada
a opo de criar um arquivo de texto em algum diretrio do computador.
Figura 6.17 Caixa para criar arquivo de detalhamento
69
6.3
70
71
Tendo feito isso, a rotina em LISP far todo o detalhamento assim como a tabela de
ao. Aps o detalhamento, aparecer uma mensagem informando o usurio que o
detalhamento foi concludo com sucesso.
Figura 6.21 Todos os desenhos gerados
72
73
74
75
7.
CONCLUSO
Com o programa desenvolvido, se espera que este seja utilizado por estudantes de
engenharia e calculistas, na medida em que caracteriza-se como uma ferramenta de fcil
utilizao e rpida obteno de dados, podendo ser utilizada no ganho de sensibilidade na
interpretao de dados por parte dos estudantes e, quanto ao calculista, ser utilizado como
uma calculadora para anlise de estruturas de concreto protendido. Os recursos visuais que
o programa oferece tambm so de grande valia para que seja possvel uma rpida
avaliao de sees inapropriadas. A rotina criada em LISP tambm colabora com o
aumento de produtividade na liberao de pranchas de desenho para o detalhamento no
AutoCAD. O que foi desenvolvido e apresentado, se tornou uma ferramenta para otimizao
de vigas protendidas bi-apoiadas.
76
8.
REFERNCIAS
CARVALHO, R. C.; FIGUEIREDO FILHO. J. R. Clculo e detalhamento de estruturas
usuais de concreto armado. Segundo a NBR 6118:2003. 3.ed. So Carlos: EDUFSCAR,
2007. 367 p.
CARVALHO R. C. Estruturas em Concreto Protendido. So Paulo: PINI, 2012. 110 p.
FALEIROS JUNIOR J. H. Procedimentos de Clculo, Verificao e Detalhamento de
Armaduras Longitudinais na Seo Transversal em Elementos Protendidos. 2010.
193p. Mestrado em Engenharia de Estruturas - Departamento de Engenharia Civil, UFSCar,
So Carlos, 2010.
GHALI A.; FAVRE R. Concrete structures: Stresses and deformations 2. Ed. London:
Chapman and Hall, 1986. 352p.
INFORSATO, T. B. Consideraes sobre o projeto, clculo e detalhamento de vigas
pr- fabricadas protendidas com aderncia inicial em pavimentos de edificaes.
2009. 261 p. Mestrado em Engenharia de Estruturas - Departamento de Engenharia Civil,
UFSCar, So Carlos, 2009.
MACHADO, M. A. S. Aplicao do Mtodo dos Elementos Finitos para a Anlise Elastoviscoplstica de Peas de Concreto Armado e Protendido, Submetidas a Estados
Planos de Tenso. 2002. 178p. Mestrado em Engenharia de Estruturas Escola de
Engenharia, UFRS, Porto Alegre, 2002.
PFEIL, W. Concreto protendido. 2. Ed. Rio de Janeiro: Livros tcnicos e cientficos editora
S.A. 1980.
VASCONCELOS, A. C. Manual prtico para a correta utilizao dos aos no concreto
protendido em obedincia as normas atualizadas. 3. Ed. Belo Horizonte: Livros tcnicos
e cientficos editoria S. A. Companhia Siderrgica Belgo-Mineira. Belo Horizonte, 1980.
77
9.
BIBLIOGRAFIA
ACKER. A. V. Manual de Sistemas Pr-Fabricado de Concreto. FIB-2002. Traduo
Marcelo de A. Ferreira (ABCP-ABCIC-2004).
ASSOCIAO BRASILEIRA DE NORMAS TCNICAS, NBR 6118. Projeto de estruturas de
concreto: Procedimento. Rio de Janeiro. 2007. 221p.
ASSOCIAO BRASILEIRA DE NORMAS TCNICAS. NBR 6349. Barras, cordoalhas e
fios de ao para armaduras de protenso: Ensaio de trao. Rio de Janeiro. 2008. 10p.
ASSOCIAO BRASILEIRA DE NORMAS TCNICAS. NBR 7482. Fios de ao para
estruturas de concreto protendido: Especificao. Rio de Janeiro. 2008. 8p.
ASSOCIAO BRASILEIRA DE NORMAS TCNICAS. NBR 7483. Cordoalhas de ao para
estruturas de concreto protendido: Especificao. Rio de Janeiro. 2008. 7p.
ASSOCIAO BRASILEIRA DE NORMAS TCNICAS. NBR 7484. Barras, cordoalhas e
fios de ao destinados a armaduras de protenso: Mtodo de ensaio de relaxao
isotrmica. Rio de Janeiro. 2009. 5p.
ASSOCIAO BRASILEIRA DE NORMAS TCNICAS. NBR 9062. Projeto e execuo de
estruturas de concreto pr-fabricado. Rio de Janeiro. 2003. 37p.
AGOSTINI, L. R. S. Concreto Protendido: Estudo das vigas isostticas. 2. ed. So Paulo:
Livraria Cincia e Tecnologia Editora Ltda, 1983.
CATOIA, B. Comportamento de vigas protendidas pr-moldadas com ligaes semirgidas. So Carlos. 2007. 149p. Dissertao (Mestrado em Construo Civil). Universidade
Federal de So Carlos. So Carlos.
CAUDURO, E. L. Protenso com cordoalhas engraxadas e plastificadas - Ps-tenso
com sistema no aderente. 38o REIBRAC -1996
CHOLFE, L.; BONILHA, L. A. S. Concreto Protendido Teoria e Prtica. 2. ed. So Paulo:
Escola de Engenharia Mackenzie. 44 p.
COLLINS M. P. Prestressed Concrete Structures. 3. ed. Englewood Cliffs: Prentice Hall,
1991. 766 p.
COLLINS M. P.; MITCHELL D. Prestressed Concrete Basicis. 1. Ed. Ottawa: CPCI, 1987.
614p.
ELLIOT K. S. Precast Concrete Structures 2. Ed. Woburn: Butterworth Heinemann, 1998.
375p.
78
79
10.
ANEXOS
80
Colar1: TMenuItem;
N3: TMenuItem;
Slecionartudo1: TMenuItem;
Ajuda1: TMenuItem;
Contedo1: TMenuItem;
N4: TMenuItem;
Sobre1: TMenuItem;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
Button2: TButton;
ComboBox2: TComboBox;
Label29: TLabel;
Edit16: TEdit;
Label31: TLabel;
Label32: TLabel;
Edit17: TEdit;
Label11: TLabel;
Label33: TLabel;
Edit18: TEdit;
Label35: TLabel;
Label34: TLabel;
Label36: TLabel;
Edit19: TEdit;
Label39: TLabel;
ComboBox3: TComboBox;
Label17: TLabel;
Label40: TLabel;
ComboBox4: TComboBox;
Label44: TLabel;
ComboBox5: TComboBox;
GroupBox1: TGroupBox;
Label50: TLabel;
Label51: TLabel;
Edit25: TEdit;
Label52: TLabel;
Label53: TLabel;
Edit26: TEdit;
Label54: TLabel;
Label55: TLabel;
Edit27: TEdit;
Label56: TLabel;
Label57: TLabel;
Edit28: TEdit;
Label58: TLabel;
ComboBox6: TComboBox;
Label60: TLabel;
Edit30: TEdit;
Label61: TLabel;
GroupBox2: TGroupBox;
Label63: TLabel;
Label65: TLabel;
Edit41: TEdit;
Label64: TLabel;
Label77: TLabel;
Label78: TLabel;
81
Edit42: TEdit;
Label79: TLabel;
GroupBox3: TGroupBox;
Label1: TLabel;
Label21: TLabel;
Label23: TLabel;
Label25: TLabel;
Label9: TLabel;
Label22: TLabel;
Label24: TLabel;
Label26: TLabel;
Label27: TLabel;
Label28: TLabel;
Label66: TLabel;
Label67: TLabel;
Label68: TLabel;
Label69: TLabel;
Label70: TLabel;
Label71: TLabel;
Label72: TLabel;
Label73: TLabel;
Label74: TLabel;
Label75: TLabel;
Label76: TLabel;
Edit1: TEdit;
Edit10: TEdit;
Edit11: TEdit;
Edit12: TEdit;
Edit13: TEdit;
Edit14: TEdit;
Edit33: TEdit;
Edit34: TEdit;
Edit35: TEdit;
Edit36: TEdit;
Edit37: TEdit;
Edit38: TEdit;
Edit39: TEdit;
Edit40: TEdit;
Label80: TLabel;
Label81: TLabel;
Label82: TLabel;
Label83: TLabel;
Label84: TLabel;
Edit43: TEdit;
Label85: TLabel;
Label86: TLabel;
Label87: TLabel;
Label88: TLabel;
Edit44: TEdit;
Label90: TLabel;
Edit45: TEdit;
Label89: TLabel;
Label91: TLabel;
Label92: TLabel;
Label93: TLabel;
82
Label94: TLabel;
Label95: TLabel;
Label96: TLabel;
Edit47: TEdit;
Edit32: TEdit;
Edit50: TEdit;
Edit49: TEdit;
Edit48: TEdit;
Edit46: TEdit;
Edit31: TEdit;
Edit51: TEdit;
Label97: TLabel;
Label98: TLabel;
ComboBox7: TComboBox;
Label59: TLabel;
Edit52: TEdit;
Label99: TLabel;
Label100: TLabel;
GroupBox6: TGroupBox;
Label19: TLabel;
Label45: TLabel;
Label46: TLabel;
Label48: TLabel;
Label47: TLabel;
Label49: TLabel;
Edit8: TEdit;
Edit23: TEdit;
Edit24: TEdit;
GroupBox4: TGroupBox;
Label41: TLabel;
Label42: TLabel;
Label43: TLabel;
Label20: TLabel;
Label18: TLabel;
Label30: TLabel;
Edit9: TEdit;
Edit15: TEdit;
GroupBox5: TGroupBox;
Label62: TLabel;
Label37: TLabel;
Label38: TLabel;
Edit20: TEdit;
Label101: TLabel;
Edit53: TEdit;
Edit54: TEdit;
Label102: TLabel;
Edit55: TEdit;
Label103: TLabel;
Edit56: TEdit;
Label104: TLabel;
Edit57: TEdit;
Label105: TLabel;
Edit58: TEdit;
Label106: TLabel;
Label107: TLabel;
83
Edit21: TEdit;
Edit29: TEdit;
Edit22: TEdit;
GroupBox7: TGroupBox;
Label108: TLabel;
Label109: TLabel;
Label110: TLabel;
Edit59: TEdit;
Edit60: TEdit;
Label111: TLabel;
procedure Button1Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure Sair1Click(Sender: TObject);
procedure Voltar1Click(Sender: TObject);
procedure Recortar1Click(Sender: TObject);
procedure Copiar1Click(Sender: TObject);
procedure Colar1Click(Sender: TObject);
procedure Slecionartudo1Click(Sender: TObject);
procedure Contedo1Click(Sender: TObject);
procedure Sobre1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Abrir1Click(Sender: TObject);
procedure Salvar1Click(Sender: TObject);
procedure SalvarComo1Click(Sender: TObject);
procedure Novo1Click(Sender: TObject);
procedure Edit5Change(Sender: TObject);
procedure Edit4Change(Sender: TObject);
procedure Edit21Change(Sender: TObject);
procedure Edit29Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FAPESP: TFAPESP;
g1, {peso prprio da viga em KN/m}
g2, {Efeito da laje alveolar em KN/m}
g3, {Efeito da capa em KN/m}
g4, {Efeito da alvenaria em KN/m}
g5, {Efeito do revestimento em KN/m}
t001, {tempo inicial de aplicao da carga 1 em KN/m}
t002, {tempo inicial de aplicao da carga 2 em KN/m}
t003, {tempo inicial de aplicao da carga 3 em KN/m}
t004, {tempo inicial de aplicao da carga 4 em KN/m}
t005, {tempo inicial de aplicao da carga 5 em KN/m}
t00q, {tempo inicial de aplicao da carga acidental em KN/m}
t003B, {tempo inicial de aplicao da carga 3 em KN/m COMPOSTA}
t004B, {tempo inicial de aplicao da carga 4 em KN/m COMPOSTA}
t005B, {tempo inicial de aplicao da carga 5 em KN/m COMPOSTA}
t00qB, {tempo inicial de aplicao da carga acidental em KN/m COMPOSTA}
qmin, {carga acidental mnima em KN/m}
qmax, {carga acidental mxima em KN/m}
84
85
86
beta0,
betaf,
beta1,
betad,
beta1infinito,
sss, {depende do tipo de cimento}
fia,
fi1c,
fi2c,
fifinfinito,
fidinfinito,
fi,
sigmapcsup,
sigmapcinf,
sigmaps,
Ui1inf, {U(infinito,1) inferior}
Ui1sup, {U(infinito,1) superior}
xinf,
xsup,
xpinf,
xpsup,
sigmaprinf,
sigmaprsup,
xc,
ninf,
nsup,
pp, {taxa de ao}
sigmapi1inf, {sigmap (infinito,1) inferior}
sigmapi1sup, {sigmap (infinito,1) superior}
sigmapinf, {perdas totais no bordo inferior}
sigmapsup, {perdas totais no bordo superior}
perdatinf, {perda em porcentagem no bordo inferior}
perdatsup, {perda em porcentagem no bordo superior}
hlaje, {altura da laje alveolar}
capa, {espessura da capa em cm}
areacomposta, {rea da seo composta}
areacomposta2, {rea da seo composta ( um pouco maior que a seao composta
acima)}
ycgcomposta, {altura do cg da seo composta}
Icomposta, {Momento de inrcia da seo composta}
yicomposta, {distncia do cg da seo composta at o ponto mais inferior da seo}
yscomposta, {distncia do cg da seo composta at o ponto mais superior da seo}
Wicomposta, {I/yicomposta}
Wscomposta, {I/yscomposta}
fi1, {coeficiente de fluncia para o carregamento 1}
fi2, {coeficiente de fluncia para o carregamento 2}
fi3A, {coeficiente de fluncia para o carregamento 3 (seo retangular)}
fi3B, {coeficiente de fluncia para o carregamento 3 (seo composta)}
fi3, {coeficiente de fluncia para o carregamento 3 (mdia)}
fi4A, {coeficiente de fluncia para o carregamento 4 (seo retangular)}
fi4B, {coeficiente de fluncia para o carregamento 4 (seo composta)}
fi4, {coeficiente de fluncia para o carregamento 4 (mdia)}
fi5A, {coeficiente de fluncia para o carregamento 5 (seo retangular)}
fi5B, {coeficiente de fluncia para o carregamento 5 (seo composta)}
fi5, {coeficiente de fluncia para o carregamento 5 (mdia)}
87
88
IF (edit1.text <> '') AND (edit2.text <> '') AND (edit3.text <> '') AND
(edit4.text <> '') AND (edit5.text <> '') AND (edit6.text <> '') AND
(edit10.text <> '') AND (edit11.text <> '') AND (edit12.text <> '') AND
(edit13.text <> '') AND (edit14.text <> '') AND (edit16.text <> '') AND
(edit17.text <> '') AND (edit18.text <> '') AND (edit19.text <> '') AND
(edit26.text <> '') AND (edit27.text <> '') AND (edit28.text <> '') AND
(edit30.text <> '') AND (edit33.text <> '') AND (edit34.text <> '') AND
(edit35.text <> '') AND (edit36.text <> '') AND (edit37.text <> '') AND
(edit38.text <> '') AND (edit39.text <> '') AND (edit40.text <> '') AND
(edit41.text <> '') AND (edit42.text <> '') AND (edit43.text <> '') AND
(edit44.text <> '') AND (edit45.text <> '') AND (edit51.text <> '') AND
(comboBox1.text <> '') AND (combobox2.text <> '') AND (combobox3.text <> '') AND
(combobox4.text <> '') AND (combobox5.text <> '') AND (combobox6.text <> '') AND
(combobox7.text <> '') THEN
begin
g1 := strtofloat(Edit1.text);
g2 := strtofloat(Edit10.text);
g3 := strtofloat(edit35.text);
g4 := strtofloat(edit36.text);
g5 := strtofloat(edit37.text);
t001 := strtofloat(edit33.text);
t002 := strtofloat(edit34.text);
t003 := strtofloat(edit38.text);
t004 := strtofloat(edit39.text);
t005 := strtofloat(edit40.text);
t00q := strtofloat(edit45.text);
qmin := strtofloat(Edit11.text);
qmax := strtofloat(Edit12.text);
vao := strtofloat(edit2.text);
L := strtofloat(edit18.text);
h := strtofloat(edit4.text);
h := h/100;
d := strtofloat(edit3.text);
d := d/100;
if edit44.text = '' then edit44.text := floattostr(100*(h-d));
dlinha := strtofloat(edit44.text);
dlinha := dlinha/100;
bw := strtofloat(edit5.Text);
bw := bw/100;
fck := strtofloat(edit6.text);
fcj := strtofloat(edit16.text);
Eci := 5600*sqrt(fcj);
Ep := strtofloat(edit17.text);
perda := strtofloat(edit19.text);
perdai := strtofloat(edit51.Text);
tpaco := combobox1.text;
CAA := combobox2.text;
Mg1 := (g1*sqr(vao))/8;
Mg2 := (g2*sqr(vao))/8;
Mg3 := (g3*sqr(vao))/8;
Mg4 := (g4*sqr(vao))/8;
Mg5 := (g5*sqr(vao))/8;
Mqmin := (qmin*sqr(vao))/8;
Mqmax := (qmax*sqr(vao))/8;
U1 := strtofloat(edit13.text);
89
U2 := strtofloat(edit14.Text);
t003B := 1;
t004B := t004-t003;
t005B := t005-t003;
t00qB := t00q-t003;
{Seo composta}
fckcp := strtofloat(edit41.text);
capa := strtofloat(edit42.text);
capa := capa/100;
hlaje := strtofloat(edit43.text);
hlaje := hlaje/100;
bf := bw + 0.2*vao;
bf := bf*(sqrt(fckcp)/sqrt(fck));
p := (bw-0.14)*(sqrt(fckcp)/sqrt(fck));
areacomposta := bw*h + p*hlaje + bf*capa;
ycgcomposta := ((bw*h*h/2) + (p*hlaje*(h+hlaje/2)) +
(bf*capa*(h+hlaje+capa/2)))/areacomposta;
Icomposta := bw*h*h*h/12 + p*hlaje*hlaje*hlaje/12 + bf*capa*capa*capa/12 +
sqr(ycgcomposta-h/2)*bw*h + sqr(ycgcomposta-(h+hlaje/2))*p*hlaje +
sqr(ycgcomposta-(h+hlaje+capa/2))*bf*capa;
yicomposta := ycgcomposta;
yscomposta := h+hlaje+capa-ycgcomposta;
Wicomposta := Icomposta/yicomposta;
Wscomposta := Icomposta/yscomposta;
ecomposta := yicomposta+d-h;
ecompostalinha := yscomposta-capa-hlaje-dlinha;
{----}
if U2>U1 then
begin
U3 := U2;
U2 := U1;
U1 := U3;
end;
ycg := h/2;
I := bw*exp(3*ln(h))/12; {x elevado a y -> exp(y*ln(x))}
W := I/ycg;
fctm:= 0.3*exp(ln(sqr(fcj))/3)*1000;
fctkinf := 0.21*exp(ln(sqr(fck))/3)*1000;
fck07 := 0.7*fck*1000;
e := d-ycg;
elinha := ycg-dlinha;
Ac := bw*h;
daco := combobox3.text;
if daco = '9,5mm' then Aaco := 0.549;
if daco = '12,7mm' then Aaco := 0.986;
if daco = '15,2mm' then Aaco := 1.399;
{valores tirados da NBR-7483}
if daco = '9,5mm' then dcor := 0.95;
if daco = '12,7mm' then dcor := 1.27;
if daco = '15,2mm' then dcor := 1.52;
tpbrita := combobox4.text;
if tpbrita = 'Brita 0' then dbrita:=0.95;
if tpbrita = 'Brita 1' then dbrita:=1.9;
90
91
92
93
94
begin
if Ap6 > Apinf then Apinf:=Ap6;
if Ap5 < Apsup then Apsup:=Ap5;
end;
if Ap7 < Ap8 then
begin
if Ap7 > Apinf then Apinf:=Ap7;
if Ap8 < Apsup then Apsup:=Ap8;
end
else
begin
if Ap8 > Apinf then Apinf:=Ap8;
if Ap7 < Apsup then Apsup:=Ap7;
end;
{Combinao de aes raras}
{Fibra inferior}
Ap9 := (1.5*fctkinf+(Mg1+Mg2+Mg3)/W+(Mg4+Mg5+Mqmax)/Wicomposta)/(sigma/Ac+sigma*e/W);
Ap10 :=
(fck07+(Mg1+Mg2+Mg3)/W+(Mg4+Mg5+Mqmax)/Wicomposta)/(sigma/Ac+sigma*e/W);
Ap11 := (1.5*fctkinf+(Mg1+Mg2+Mg3)/W+(Mg4+Mg5+Mqmin)/Wicomposta)/(sigma/Ac+sigma*e/W);
Ap12 :=
(fck07+(Mg1+Mg2+Mg3)/W+(Mg4+Mg5+Mqmin)/Wicomposta)/(sigma/Ac+sigma*e/W);
if Ap9 > Ap11 then
begin
if Apinf < Ap9 then Apinf := Ap9;
end
else
begin
if Apinf < Ap11 then Apinf := Ap11;
end;
if Ap10 < Ap12 then
begin
if Apsup > Ap10 then Apsup := Ap10;
end
else
begin
if Apsup > Ap12 then Apsup := Ap12;
end;
{Fibra superior}
Ap13 := (-1.5*fctkinf-(Mg1+Mg2+Mg3)/W-(Mg4+Mg5+Mqmax)/Wscomposta)/(sigma/Acsigma*e/W);
Ap14 := (fck07-(Mg1+Mg2+Mg3)/W-(Mg4+Mg5+Mqmax)/Wscomposta)/(sigma/Acsigma*e/W);
Ap15 := (-1.5*fctkinf-(Mg1+Mg2+Mg3)/W-(Mg4+Mg5+Mqmin)/Wscomposta)/(sigma/Acsigma*e/W);
Ap16 := (fck07-(Mg1+Mg2+Mg3)/W-(Mg4+Mg5+Mqmin)/Wscomposta)/(sigma/Acsigma*e/W);
95
96
n0:=Aplinha/Aaco;
n11:=trunc(n0);
n22:=n0-n11;
if n22>0.1 then
n0:=n11+1
else
n0:=n11;
if (edit29.text = '') or (strtofloat(edit29.text) = 0) then edit29.text:= floattostr(n0);
if (edit29.text <> '') or (strtofloat(edit29.text) <> 0) then n0:=strtofloat(edit29.text);
Aplinha:=n0*Aaco;
edit20.text:=floattostrf(Aplinha,ffFixed,18,3);
{Clculo do nmero de baras por camada}
sh := 2;
if sh < 1.2*dbrita then sh:=1.2*dbrita;
if sh < dcor then sh:= dcor;
sv := 2;
if sv < 0.5*dbrita then sv:=0.5*dbrita;
if sv < dcor then sv:= dcor;
aux := (bw*100)-2*(c+destribo)-dcor;
nb:= aux/(sh+dcor);
nb:= trunc(nb)+2;
{Clculo da armadura de pele}
if h>=0.6 then begin
Apele:=20*bw*h;
npele:=trunc(Apele/0.8)+1;
npele1:= trunc(npele/2);
if npele1<>npele/2 then npele:=npele+1;
Apele:=npele*0.8;
edit59.text:=floattostrf(Apele,ffFixed,18,2);
edit60.text:=floattostrf(npele,ffFixed,18,0);
end
else begin
Apele:=0;
npele:=0;
edit59.text:=floattostr(Apele);
edit60.text:=floattostr(npele);
end;
{clculo do d real}
nc := n/nb;
nc1:=trunc(nc)+1;
nc2:=nc-trunc(nc);
nb1:=nc2*nb;
bcg:=0;
ss:=0;
aux:=nc1;
aux2:=0;
if nc2 = 0 then begin
while aux <> 0 do
begin
if aux2=0 then bcg:=bcg+(dcor/2)*nb
97
else bcg:=bcg+(dcor/2+(aux2*dcor)+ss)*nb;
aux2:=aux2+1;
ss:=ss+sv;
aux:=aux-1;
end;
end;
if nc2 <> 0 then begin
while aux <> 1 do
begin
if aux2=0 then bcg:=bcg+(dcor/2)*nb
else bcg:=bcg+(dcor/2+(aux2*dcor)+ss)*nb;
aux2:=aux2+1;
ss:=ss+sv;
aux:=aux-1;
end;
end;
if nc2 <> 0 then begin
if aux2=0 then bcg:=bcg+(dcor/2)*nb1
else bcg:=bcg+(dcor/2+(aux2*dcor)+ss)*nb1;
end;
Acg:= bcg/n;
dreal:=c+destribo+Acg;
dreal:=h*100-dreal;
edit8.Text:=floattostrf(dreal,ffFixed,18,1);
if (100*d) > dreal then ShowMessage('Diminua a altura til!');
{Perdas de protenso iniciais}
{Deformo por ancoragem}
sigmaanc:=0.006*Ep/(L*10); {divide por 10 para transformar MPa em KN/cm2}
{Relaxao da armadura}
if (tpaco = 'CP - 175RN') or (tpaco = 'CP - 175RB') then
fy := 175;
if (tpaco = 'CP - 190RN') or (tpaco = 'CP - 190RB') then
fy := 190;
sigmapi := sigmap-sigmaanc;
R:=sigmapi/fy;
if (tpaco = 'CP - 175RN') or (tpaco = 'CP - 190RN') then
begin
if R <= 0.5 then U1000:=0;
if (R>0.5) and (R<=0.6) then U1000:=35*(R-0.5);
if (R>0.6) and (R<=0.7) then U1000:=35*(R-0.6)+3.5;
if (R>0.7) and (R<=0.8) then U1000:=50*(R-0.7)+7;
if R>0.8 then U1000:=12;
end;
if (tpaco = 'CP - 175RB') or (tpaco = 'CP - 190RB') then
begin
if R<=0.5 then U1000:=0;
if (R>0.5) and (R<=0.6) then U1000:=13*(R-0.5);
if (R>0.6) and (R<=0.7) then U1000:=12*(R-0.6)+1.3;
if (R>0.7) and (R<=0.8) then U1000:=10*(R-0.7)+2.5;
98
99
bff := bw + 0.2*vao;
pff := (bw-0.14);
areacomposta2 := (bff*capa)+(pff*hlaje);
Uar2 := bff;
if edit52.text<>'' then
Uar2 := strtofloat(edit52.text)/100;
if edit52.text='' then
edit52.text:=floattostr(uar2*100);
hfic2:=2*gama*areacomposta2/Uar2;
{1}
tffic:=strtofloat(edit30.text);
t0fic:=1*t001*(temperatura+10)/30;
tffic:=1*tffic*(temperatura+10)/30;
if (tpcimento = 'CPI') or (tpcimento = 'CPII') then begin
t0fic:=2*t001*(temperatura+10)/30;
tffic:=2*tffic*(temperatura+10)/30;
end;
if tpcimento = 'CPV-ARI' then begin
t0fic:=3*t001*(temperatura+10)/30;
tffic:=3*tffic*(temperatura+10)/30;
end;
if (tpcimento='CPI') or (tpcimento='CPII') then beta1infinito:=1.2840;
if (tpcimento='CPIII') or (tpcimento='CPIV') then beta1infinito:=1.4623;
if tpcimento='CPV-ARI' then beta1infinito:=1.2214;
if (tpcimento='CPI') or (tpcimento='CPII') then sss:=0.25;
if (tpcimento='CPIII') or (tpcimento='CPIV') then sss:=0.38;
if tpcimento='CPV-ARI' then sss:=0.2;
beta1:= exp(sss*(1-sqrt(28/t001)));
fia:=0.8*(1-(beta1/beta1infinito));
fi1c:=4.45-0.035*umi;
if slamp<=4 then fi1c:= fi1c*0.75;
if slamp>=10 then fi1c:= fi1c*1.25;
fi2c:=(42+hfic*100)/(20+hfic*100);
fifinfinito:=fi1c*fi2c;
fidinfinito:=0.4;
betad:= (tffic-t0fic+20)/(tffic-t0fic+70);
Aa:= 42*hfic*hfic*hfic-350*sqr(hfic)+588*hfic+113;
Bb:= 768*hfic*hfic*hfic-3060*sqr(hfic)+3234*hfic-23;
Cc:= -200*hfic*hfic*hfic+13*hfic*hfic+1090*hfic+183;
Dd:= 7579*hfic*hfic*hfic-31916*hfic*hfic+35343*hfic+1931;
beta0 := (t0fic*t0fic+Aa*t0fic+Bb)/(t0fic*t0fic+Cc*t0fic+Dd);
betaf := (tffic*tffic+Aa*tffic+Bb)/(tffic*tffic+Cc*tffic+Dd);
100
fi1:= fia+fifinfinito*(betaf-beta0)+fidinfinito*betad;
edit31.Text:=floattostrf(fi1,ffFixed,18,3);
{2}
tffic:=strtofloat(edit30.text);
t0fic:=1*t002*(temperatura+10)/30;
tffic:=1*tffic*(temperatura+10)/30;
if (tpcimento = 'CPI') or (tpcimento = 'CPII') then begin
t0fic:=2*t002*(temperatura+10)/30;
tffic:=2*tffic*(temperatura+10)/30;
end;
if tpcimento = 'CPV-ARI' then begin
t0fic:=3*t002*(temperatura+10)/30;
tffic:=3*tffic*(temperatura+10)/30;
end;
if (tpcimento='CPI') or (tpcimento='CPII') then beta1infinito:=1.2840;
if (tpcimento='CPIII') or (tpcimento='CPIV') then beta1infinito:=1.4623;
if tpcimento='CPV-ARI' then beta1infinito:=1.2214;
if (tpcimento='CPI') or (tpcimento='CPII') then sss:=0.25;
if (tpcimento='CPIII') or (tpcimento='CPIV') then sss:=0.38;
if tpcimento='CPV-ARI' then sss:=0.2;
beta1:= exp(sss*(1-sqrt(28/t002)));
fia:=0.8*(1-(beta1/beta1infinito));
fi1c:=4.45-0.035*umi;
if slamp<=4 then fi1c:= fi1c*0.75;
if slamp>=10 then fi1c:= fi1c*1.25;
fi2c:=(42+hfic*100)/(20+hfic*100);
fifinfinito:=fi1c*fi2c;
fidinfinito:=0.4;
betad:= (tffic-t0fic+20)/(tffic-t0fic+70);
Aa:= 42*hfic*hfic*hfic-350*sqr(hfic)+588*hfic+113;
Bb:= 768*hfic*hfic*hfic-3060*sqr(hfic)+3234*hfic-23;
Cc:= -200*hfic*hfic*hfic+13*hfic*hfic+1090*hfic+183;
Dd:= 7579*hfic*hfic*hfic-31916*hfic*hfic+35343*hfic+1931;
beta0 := (t0fic*t0fic+Aa*t0fic+Bb)/(t0fic*t0fic+Cc*t0fic+Dd);
betaf := (tffic*tffic+Aa*tffic+Bb)/(tffic*tffic+Cc*tffic+Dd);
fi2:= fia+fifinfinito*(betaf-beta0)+fidinfinito*betad;
edit46.Text:=floattostrf(fi2,ffFixed,18,3);
{3 - A}
tffic:=strtofloat(edit30.text);
t0fic:=1*t003*(temperatura+10)/30;
tffic:=1*tffic*(temperatura+10)/30;
if (tpcimento = 'CPI') or (tpcimento = 'CPII') then begin
t0fic:=2*t003*(temperatura+10)/30;
101
tffic:=2*tffic*(temperatura+10)/30;
end;
if tpcimento = 'CPV-ARI' then begin
t0fic:=3*t003*(temperatura+10)/30;
tffic:=3*tffic*(temperatura+10)/30;
end;
if (tpcimento='CPI') or (tpcimento='CPII') then beta1infinito:=1.2840;
if (tpcimento='CPIII') or (tpcimento='CPIV') then beta1infinito:=1.4623;
if tpcimento='CPV-ARI' then beta1infinito:=1.2214;
if (tpcimento='CPI') or (tpcimento='CPII') then sss:=0.25;
if (tpcimento='CPIII') or (tpcimento='CPIV') then sss:=0.38;
if tpcimento='CPV-ARI' then sss:=0.2;
beta1:= exp(sss*(1-sqrt(28/t003)));
fia:=0.8*(1-(beta1/beta1infinito));
fi1c:=4.45-0.035*umi;
if slamp<=4 then fi1c:= fi1c*0.75;
if slamp>=10 then fi1c:= fi1c*1.25;
fi2c:=(42+hfic*100)/(20+hfic*100);
fifinfinito:=fi1c*fi2c;
fidinfinito:=0.4;
betad:= (tffic-t0fic+20)/(tffic-t0fic+70);
Aa:= 42*hfic*hfic*hfic-350*sqr(hfic)+588*hfic+113;
Bb:= 768*hfic*hfic*hfic-3060*sqr(hfic)+3234*hfic-23;
Cc:= -200*hfic*hfic*hfic+13*hfic*hfic+1090*hfic+183;
Dd:= 7579*hfic*hfic*hfic-31916*hfic*hfic+35343*hfic+1931;
beta0 := (t0fic*t0fic+Aa*t0fic+Bb)/(t0fic*t0fic+Cc*t0fic+Dd);
betaf := (tffic*tffic+Aa*tffic+Bb)/(tffic*tffic+Cc*tffic+Dd);
fi3A:= fia+fifinfinito*(betaf-beta0)+fidinfinito*betad;
{3 - B}
tffic:=strtofloat(edit30.text);
t0fic:=1*t003B*(temperatura+10)/30;
tffic:=1*tffic*(temperatura+10)/30;
if (tpcimento2 = 'CPI') or (tpcimento2 = 'CPII') then begin
t0fic:=2*t003B*(temperatura+10)/30;
tffic:=2*tffic*(temperatura+10)/30;
end;
if tpcimento2 = 'CPV-ARI' then begin
t0fic:=3*t003B*(temperatura+10)/30;
tffic:=3*tffic*(temperatura+10)/30;
end;
if (tpcimento2='CPI') or (tpcimento2='CPII') then beta1infinito:=1.2840;
if (tpcimento2='CPIII') or (tpcimento2='CPIV') then beta1infinito:=1.4623;
if tpcimento2='CPV-ARI' then beta1infinito:=1.2214;
102
103
fi1c:=4.45-0.035*umi;
if slamp<=4 then fi1c:= fi1c*0.75;
if slamp>=10 then fi1c:= fi1c*1.25;
fi2c:=(42+hfic*100)/(20+hfic*100);
fifinfinito:=fi1c*fi2c;
fidinfinito:=0.4;
betad:= (tffic-t0fic+20)/(tffic-t0fic+70);
Aa:= 42*hfic*hfic*hfic-350*sqr(hfic)+588*hfic+113;
Bb:= 768*hfic*hfic*hfic-3060*sqr(hfic)+3234*hfic-23;
Cc:= -200*hfic*hfic*hfic+13*hfic*hfic+1090*hfic+183;
Dd:= 7579*hfic*hfic*hfic-31916*hfic*hfic+35343*hfic+1931;
beta0 := (t0fic*t0fic+Aa*t0fic+Bb)/(t0fic*t0fic+Cc*t0fic+Dd);
betaf := (tffic*tffic+Aa*tffic+Bb)/(tffic*tffic+Cc*tffic+Dd);
fi4A:= fia+fifinfinito*(betaf-beta0)+fidinfinito*betad;
{4 - B}
tffic:=strtofloat(edit30.text);
t0fic:=1*t004B*(temperatura+10)/30;
tffic:=1*tffic*(temperatura+10)/30;
if (tpcimento2 = 'CPI') or (tpcimento2 = 'CPII') then begin
t0fic:=2*t004B*(temperatura+10)/30;
tffic:=2*tffic*(temperatura+10)/30;
end;
if tpcimento2 = 'CPV-ARI' then begin
t0fic:=3*t004B*(temperatura+10)/30;
tffic:=3*tffic*(temperatura+10)/30;
end;
if (tpcimento2='CPI') or (tpcimento2='CPII') then beta1infinito:=1.2840;
if (tpcimento2='CPIII') or (tpcimento2='CPIV') then beta1infinito:=1.4623;
if tpcimento2='CPV-ARI' then beta1infinito:=1.2214;
if (tpcimento2='CPI') or (tpcimento2='CPII') then sss:=0.25;
if (tpcimento2='CPIII') or (tpcimento2='CPIV') then sss:=0.38;
if tpcimento2='CPV-ARI' then sss:=0.2;
beta1:= exp(sss*(1-sqrt(28/t004B)));
fia:=0.8*(1-(beta1/beta1infinito));
fi1c:=4.45-0.035*umi;
if slamp<=4 then fi1c:= fi1c*0.75;
if slamp>=10 then fi1c:= fi1c*1.25;
fi2c:=(42+hfic2*100)/(20+hfic2*100);
fifinfinito:=fi1c*fi2c;
fidinfinito:=0.4;
betad:= (tffic-t0fic+20)/(tffic-t0fic+70);
Aa:= 42*hfic2*hfic2*hfic2-350*sqr(hfic2)+588*hfic2+113;
104
Bb:= 768*hfic2*hfic2*hfic2-3060*sqr(hfic2)+3234*hfic2-23;
Cc:= -200*hfic2*hfic2*hfic2+13*hfic2*hfic2+1090*hfic2+183;
Dd:= 7579*hfic2*hfic2*hfic2-31916*hfic2*hfic2+35343*hfic2+1931;
beta0 := (t0fic*t0fic+Aa*t0fic+Bb)/(t0fic*t0fic+Cc*t0fic+Dd);
betaf := (tffic*tffic+Aa*tffic+Bb)/(tffic*tffic+Cc*tffic+Dd);
fi4B:= fia+fifinfinito*(betaf-beta0)+fidinfinito*betad;
{4}
fi4:= (fi4A*Ac+fi4B*areacomposta2)/(Ac+areacomposta2);
edit48.Text:=floattostrf(fi4,ffFixed,18,3);
{5 - A}
tffic:=strtofloat(edit30.text);
t0fic:=1*t005*(temperatura+10)/30;
tffic:=1*tffic*(temperatura+10)/30;
if (tpcimento = 'CPI') or (tpcimento = 'CPII') then begin
t0fic:=2*t005*(temperatura+10)/30;
tffic:=2*tffic*(temperatura+10)/30;
end;
if tpcimento = 'CPV-ARI' then begin
t0fic:=3*t005*(temperatura+10)/30;
tffic:=3*tffic*(temperatura+10)/30;
end;
if (tpcimento='CPI') or (tpcimento='CPII') then beta1infinito:=1.2840;
if (tpcimento='CPIII') or (tpcimento='CPIV') then beta1infinito:=1.4623;
if tpcimento='CPV-ARI' then beta1infinito:=1.2214;
if (tpcimento='CPI') or (tpcimento='CPII') then sss:=0.25;
if (tpcimento='CPIII') or (tpcimento='CPIV') then sss:=0.38;
if tpcimento='CPV-ARI' then sss:=0.2;
beta1:= exp(sss*(1-sqrt(28/t005)));
fia:=0.8*(1-(beta1/beta1infinito));
fi1c:=4.45-0.035*umi;
if slamp<=4 then fi1c:= fi1c*0.75;
if slamp>=10 then fi1c:= fi1c*1.25;
fi2c:=(42+hfic*100)/(20+hfic*100);
fifinfinito:=fi1c*fi2c;
fidinfinito:=0.4;
betad:= (tffic-t0fic+20)/(tffic-t0fic+70);
Aa:= 42*hfic*hfic*hfic-350*sqr(hfic)+588*hfic+113;
Bb:= 768*hfic*hfic*hfic-3060*sqr(hfic)+3234*hfic-23;
Cc:= -200*hfic*hfic*hfic+13*hfic*hfic+1090*hfic+183;
Dd:= 7579*hfic*hfic*hfic-31916*hfic*hfic+35343*hfic+1931;
beta0 := (t0fic*t0fic+Aa*t0fic+Bb)/(t0fic*t0fic+Cc*t0fic+Dd);
betaf := (tffic*tffic+Aa*tffic+Bb)/(tffic*tffic+Cc*tffic+Dd);
105
fi5A:= fia+fifinfinito*(betaf-beta0)+fidinfinito*betad;
{5 - B}
tffic:=strtofloat(edit30.text);
t0fic:=1*t005B*(temperatura+10)/30;
tffic:=1*tffic*(temperatura+10)/30;
if (tpcimento2 = 'CPI') or (tpcimento2 = 'CPII') then begin
t0fic:=2*t005B*(temperatura+10)/30;
tffic:=2*tffic*(temperatura+10)/30;
end;
if tpcimento2 = 'CPV-ARI' then begin
t0fic:=3*t005B*(temperatura+10)/30;
tffic:=3*tffic*(temperatura+10)/30;
end;
if (tpcimento2='CPI') or (tpcimento2='CPII') then beta1infinito:=1.2840;
if (tpcimento2='CPIII') or (tpcimento2='CPIV') then beta1infinito:=1.4623;
if tpcimento2='CPV-ARI' then beta1infinito:=1.2214;
if (tpcimento2='CPI') or (tpcimento2='CPII') then sss:=0.25;
if (tpcimento2='CPIII') or (tpcimento2='CPIV') then sss:=0.38;
if tpcimento2='CPV-ARI' then sss:=0.2;
beta1:= exp(sss*(1-sqrt(28/t005B)));
fia:=0.8*(1-(beta1/beta1infinito));
fi1c:=4.45-0.035*umi;
if slamp<=4 then fi1c:= fi1c*0.75;
if slamp>=10 then fi1c:= fi1c*1.25;
fi2c:=(42+hfic2*100)/(20+hfic2*100);
fifinfinito:=fi1c*fi2c;
fidinfinito:=0.4;
betad:= (tffic-t0fic+20)/(tffic-t0fic+70);
Aa:= 42*hfic2*hfic2*hfic2-350*sqr(hfic2)+588*hfic2+113;
Bb:= 768*hfic2*hfic2*hfic2-3060*sqr(hfic2)+3234*hfic2-23;
Cc:= -200*hfic2*hfic2*hfic2+13*hfic2*hfic2+1090*hfic2+183;
Dd:= 7579*hfic2*hfic2*hfic2-31916*hfic2*hfic2+35343*hfic2+1931;
beta0 := (t0fic*t0fic+Aa*t0fic+Bb)/(t0fic*t0fic+Cc*t0fic+Dd);
betaf := (tffic*tffic+Aa*tffic+Bb)/(tffic*tffic+Cc*tffic+Dd);
fi5B:= fia+fifinfinito*(betaf-beta0)+fidinfinito*betad;
{5}
fi5:= (fi5A*Ac+fi5B*areacomposta2)/(Ac+areacomposta2);
edit49.Text:=floattostrf(fi5,ffFixed,18,3);
{q - A: acidental}
tffic:=strtofloat(edit30.text);
t0fic:=1*t00q*(temperatura+10)/30;
tffic:=1*tffic*(temperatura+10)/30;
if (tpcimento = 'CPI') or (tpcimento = 'CPII') then begin
106
t0fic:=2*t00q*(temperatura+10)/30;
tffic:=2*tffic*(temperatura+10)/30;
end;
if tpcimento = 'CPV-ARI' then begin
t0fic:=3*t00q*(temperatura+10)/30;
tffic:=3*tffic*(temperatura+10)/30;
end;
if (tpcimento='CPI') or (tpcimento='CPII') then beta1infinito:=1.2840;
if (tpcimento='CPIII') or (tpcimento='CPIV') then beta1infinito:=1.4623;
if tpcimento='CPV-ARI' then beta1infinito:=1.2214;
if (tpcimento='CPI') or (tpcimento='CPII') then sss:=0.25;
if (tpcimento='CPIII') or (tpcimento='CPIV') then sss:=0.38;
if tpcimento='CPV-ARI' then sss:=0.2;
beta1:= exp(sss*(1-sqrt(28/t00q)));
fia:=0.8*(1-(beta1/beta1infinito));
fi1c:=4.45-0.035*umi;
if slamp<=4 then fi1c:= fi1c*0.75;
if slamp>=10 then fi1c:= fi1c*1.25;
fi2c:=(42+hfic*100)/(20+hfic*100);
fifinfinito:=fi1c*fi2c;
fidinfinito:=0.4;
betad:= (tffic-t0fic+20)/(tffic-t0fic+70);
Aa:= 42*hfic*hfic*hfic-350*sqr(hfic)+588*hfic+113;
Bb:= 768*hfic*hfic*hfic-3060*sqr(hfic)+3234*hfic-23;
Cc:= -200*hfic*hfic*hfic+13*hfic*hfic+1090*hfic+183;
Dd:= 7579*hfic*hfic*hfic-31916*hfic*hfic+35343*hfic+1931;
beta0 := (t0fic*t0fic+Aa*t0fic+Bb)/(t0fic*t0fic+Cc*t0fic+Dd);
betaf := (tffic*tffic+Aa*tffic+Bb)/(tffic*tffic+Cc*tffic+Dd);
fiqA:= fia+fifinfinito*(betaf-beta0)+fidinfinito*betad;
{q - B: acidental}
tffic:=strtofloat(edit30.text);
t0fic:=1*t00qB*(temperatura+10)/30;
tffic:=1*tffic*(temperatura+10)/30;
if (tpcimento2 = 'CPI') or (tpcimento2 = 'CPII') then begin
t0fic:=2*t00qB*(temperatura+10)/30;
tffic:=2*tffic*(temperatura+10)/30;
end;
if tpcimento2 = 'CPV-ARI' then begin
t0fic:=3*t00qB;
tffic:=3*tffic;
end;
if (tpcimento2='CPI') or (tpcimento2='CPII') then beta1infinito:=1.2840;
if (tpcimento2='CPIII') or (tpcimento2='CPIV') then beta1infinito:=1.4623;
if tpcimento2='CPV-ARI' then beta1infinito:=1.2214;
107
108
{-----}
{Perda por retrao do concreto}
sigmaps:=Ep*epsoloncs/10;
{Perda por relaxao da armadura}
Rinf:=perdainf/fy;
Rsup:=perdasup/fy;
if (tpaco = 'CP - 175RN') or (tpaco = 'CP - 190RN') then
begin
if Rinf <= 0.5 then U1000:=0;
if (Rinf>0.5) and (Rinf<=0.6) then U1000:=35*(Rinf-0.5);
if (Rinf>0.6) and (Rinf<=0.7) then U1000:=35*(Rinf-0.6)+3.5;
if (Rinf>0.7) and (Rinf<=0.8) then U1000:=50*(Rinf-0.7)+7;
if Rinf>0.8 then U1000:=12;
end;
if (tpaco = 'CP - 175RB') or (tpaco = 'CP - 190RB') then
begin
if Rinf<=0.5 then U1000:=0;
if (Rinf>0.5) and (Rinf<=0.6) then U1000:=13*(Rinf-0.5);
if (Rinf>0.6) and (Rinf<=0.7) then U1000:=12*(Rinf-0.6)+1.3;
if (Rinf>0.7) and (Rinf<=0.8) then U1000:=10*(Rinf-0.7)+2.5;
if Rinf>0.8 then U1000:=3.5;
end;
Ui1inf:= 2.5*U1000;
if (tpaco = 'CP - 175RN') or (tpaco = 'CP - 190RN') then
begin
if Rsup <= 0.5 then U1000:=0;
if (Rsup>0.5) and (Rsup<=0.6) then U1000:=35*(Rsup-0.5);
if (Rsup>0.6) and (Rsup<=0.7) then U1000:=35*(Rsup-0.6)+3.5;
if (Rsup>0.7) and (Rsup<=0.8) then U1000:=50*(Rsup-0.7)+7;
if Rsup>0.8 then U1000:=12;
end;
if (tpaco = 'CP - 175RB') or (tpaco = 'CP - 190RB') then
begin
if Rsup<=0.5 then U1000:=0;
if (Rsup>0.5) and (Rsup<=0.6) then U1000:=13*(Rsup-0.5);
if (Rsup>0.6) and (Rsup<=0.7) then U1000:=12*(Rsup-0.6)+1.3;
if (Rsup>0.7) and (Rsup<=0.8) then U1000:=10*(Rsup-0.7)+2.5;
if Rsup>0.8 then U1000:=3.5;
end;
Ui1sup:= 2.5*U1000;
xinf:=-ln(1-Ui1inf/100);
xsup:=-ln(1-Ui1sup/100);
sigmaprinf:=perdainf*xinf;
sigmaprsup:=perdasup*xsup;
{Simultaneidade das perdas}
xpinf:= xinf+1;
xpsup:= xsup+1;
xc:= 1+0.5*fi1;
109
ninf:=1+sqr(e)*Ac/I;
nsup:=1+sqr(elinha)*Ac/I;
pp:= (Aplinha+Ap)/Ac;
sigmapi1inf:= (sigmaps-sigmaprinf-sigmapcinf)/(xpinf+xc*alphaf*ninf*(pp/10000));
sigmapi1sup:= (sigmaps-sigmaprsup-sigmapcsup)/(xpsup+xc*alphaf*nsup*(pp/10000));
sigmapinf:= perdainf+sigmapi1inf;
sigmapsup:= perdasup+sigmapi1sup;
perdatinf:= (sigmap-sigmapinf)*100/sigmap;
edit23.text:=floattostrf(perdatinf,ffFixed,18,2);
perdatsup:= (sigmap-sigmapsup)*100/sigmap;
edit24.text:=floattostrf(perdatsup,ffFixed,18,2);
{-----}
{Verificaes}
Np:=sigmapinf*Ap+sigmapsup*Aplinha;
Mp:=sigmapinf*Ap*e-sigmapsup*Aplinha*elinha;
limsup:=700*fck;
liminf:=-fctkinf;
yts:=h-ycgcomposta;
Wts:=Icomposta/yts;
{Para Classe de agressividade II}
if CAA = 'II' then
begin
sig1i:=Np/Ac+(Mp-Mg1-Mg2-Mg3)/W-(Mg4+Mg5+U1*Mqmax)/Wicomposta;
sig2i:=Np/Ac+(Mp-Mg1-Mg2-Mg3)/W-(Mg4+Mg5+U1*Mqmin)/Wicomposta;
sig1s:=Np/Ac+(-Mp+Mg1+Mg2+Mg3)/W+(Mg4+Mg5+U1*Mqmax)/Wts;
sig2s:=Np/Ac+(-Mp+Mg1+Mg2+Mg3)/W+(Mg4+Mg5+U1*Mqmin)/Wts;
sig3i:=Np/Ac+(Mp-Mg1-Mg2-Mg3)/W-(Mg4+Mg5+U2*Mqmax)/Wicomposta;
sig4i:=Np/Ac+(Mp-Mg1-Mg2-Mg3)/W-(Mg4+Mg5+U2*Mqmin)/Wicomposta;
sig3s:=Np/Ac+(-Mp+Mg1+Mg2+Mg3)/W+(Mg4+Mg5+U2*Mqmax)/Wts;
sig4s:=Np/Ac+(-Mp+Mg1+Mg2+Mg3)/W+(Mg4+Mg5+U2*Mqmin)/Wts;
end;
{Para Classe de agressividade III e IV}
if (CAA = 'III') or (CAA = 'IV') then
begin
sig1i:=Np/Ac+(Mp-Mg1-Mg2-Mg3)/W-(Mg4+Mg5+Mqmax)/Wicomposta;
sig2i:=Np/Ac+(Mp-Mg1-Mg2-Mg3)/W-(Mg4+Mg5+Mqmin)/Wicomposta;
sig1s:=Np/Ac+(-Mp+Mg1+Mg2+Mg3)/W+(Mg4+Mg5+Mqmax)/Wts;
sig2s:=Np/Ac+(-Mp+Mg1+Mg2+Mg3)/W+(Mg4+Mg5+Mqmin)/Wts;
sig3i:=Np/Ac+(Mp-Mg1-Mg2-Mg3)/W-(Mg4+Mg5+U1*Mqmax)/Wicomposta;
sig4i:=Np/Ac+(Mp-Mg1-Mg2-Mg3)/W-(Mg4+Mg5+U1*Mqmin)/Wicomposta;
sig3s:=Np/Ac+(-Mp+Mg1+Mg2+Mg3)/W+(Mg4+Mg5+U1*Mqmax)/Wts;
sig4s:=Np/Ac+(-Mp+Mg1+Mg2+Mg3)/W+(Mg4+Mg5+U1*Mqmin)/Wts;
110
end;
if (sig1i>liminf) AND (sig1i<limsup) AND (sig2i>liminf) AND (sig2i<limsup) AND
(sig1s>liminf) AND (sig1s<limsup) AND (sig2s>liminf) AND (sig2s<limsup) AND
(sig3i>0) AND (sig3i<limsup) AND (sig4i>0) AND (sig4i<limsup) AND
(sig3s>0) AND (sig3s<limsup) AND (sig4s>0) AND (sig4s<limsup) THEN
showmessage('A verificao est atendida!')
ELSE
showmessage('A seo no est verificada. Aumente a altura da viga ou aumente a
quantidade de ao no bordo inferior.');
{Abrir segundo formulrio}
Application.CreateForm(TFAPESP2, FAPESP2);
FAPESP2.ShowModal;
FAPESP2.Free;
end
ELSE
ShowMessage('Existem campos em branco!');
end;
procedure TFAPESP.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9',#8,',']) then
begin
Key := #0;
MessageBeep(0);
end;
end;
procedure TFAPESP.Sair1Click(Sender: TObject);
begin
close;
end;
procedure TFAPESP.Voltar1Click(Sender: TObject);
begin
edit1.Undo;
end;
procedure TFAPESP.Recortar1Click(Sender: TObject);
begin
edit1.CutToClipboard;
end;
procedure TFAPESP.Copiar1Click(Sender: TObject);
begin
edit1.CopyToClipboard;
end;
procedure TFAPESP.Colar1Click(Sender: TObject);
111
begin
Edit1.PasteFromClipboard;
end;
procedure TFAPESP.Slecionartudo1Click(Sender: TObject);
begin
Edit1.SelectAll;
end;
procedure TFAPESP.Contedo1Click(Sender: TObject);
begin
Application.HelpCommand(HELP_FINDER, 0);
end;
procedure TFAPESP.Sobre1Click(Sender: TObject);
begin
AboutBox.ShowModal;
end;
procedure TFAPESP.Button2Click(Sender: TObject);
begin
edit1.text := '';
edit2.text := '';
edit3.text := '';
edit4.text := '';
edit5.text := '';
edit6.text := '';
edit7.text := '';
edit8.text := '';
edit9.text := '';
edit10.text := '';
edit11.text := '';
edit12.text := '';
edit13.text := '';
edit14.text := '';
edit15.text := '';
edit16.text := '';
edit17.text := '';
edit18.text := '';
edit19.text := '';
edit20.text := '';
edit21.text := '';
edit22.text := '';
edit23.text := '';
edit24.text := '';
edit25.text := '';
edit26.text := '';
edit27.text := '';
edit28.text := '';
edit29.text := '';
edit30.text := '';
edit31.text := '';
edit32.text := '';
edit33.text := '';
edit34.text := '';
112
edit35.text := '';
edit36.text := '';
edit37.text := '';
edit38.text := '';
edit39.text := '';
edit40.text := '';
edit41.text := '';
edit42.text := '';
edit43.text := '';
edit44.text := '';
edit45.text := '';
edit46.text := '';
edit47.text := '';
edit48.text := '';
edit49.text := '';
edit50.text := '';
edit51.text := '';
edit52.text := '';
edit53.text := '';
edit54.text := '';
edit55.text := '';
edit56.text := '';
edit57.text := '';
edit58.text := '';
combobox1.Text := '';
combobox2.Text := '';
combobox3.Text := '';
combobox4.Text := '';
combobox5.Text := '';
combobox6.Text := '';
combobox7.Text := '';
end;
procedure TFAPESP.Abrir1Click(Sender: TObject);
begin
openDialog := TOpenDialog.Create(self);
openDialog.InitialDir := GetCurrentDir;
openDialog.Options := [ofFileMustExist];
openDialog.Filter := 'Delphi project files|*.txt';
if openDialog.Execute
then
Begin
AssignFile(arq, openDialog.FileName);
Reset(arq);
Readln(arq, linha);
if linha = '
Arquivo para leitura do programa' then
begin
Readln(arq, linha);
Readln(arq, linha);
Readln(arq, linha);
Readln(arq, linha);
Readln(arq, linha);
113
//g1
//t0
//gama1
//g2
//t0
//gama2
//g3
//t0
//gama3
//g4
//t0
//gama4
//g5
//t0
//gama5
//qmin
//qmax
//t0
//gamaq
114
edit58.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 39, 5); //coeficiente frequente
edit13.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 46, 5); //coeficiente quase permanente
edit14.text:= pl;
Readln(arq, linha);
Readln(arq, linha);
Readln(arq, linha);
Readln(arq, linha);
Readln(arq, linha);
pl:=copy(linha, 12, 5); //vo
edit2.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 30, 5); //largura da seo, bw
edit5.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 28, 5); //alura da seo, h
edit4.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 24, 5); //altura til, d
edit3.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 63, 5); //dlinha
edit44.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 14, 5); //capa
edit42.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 24, 5); //altura da laje
edit43.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 61, 5); //CAA
combobox2.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 41, 5); //Largura da pista
edit18.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 26, 5); //fck
edit6.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 26, 5); //fcj
edit16.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 22, 5); //fck capa
edit41.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 43, 7); //E
edit17.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 66, 10); //Tipo de ao
combobox1.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 51, 6); //Diametro da cordoalha
115
combobox3.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 45, 5); //diametro do estribo
combobox5.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 56, 7); //tipo de brita
combobox4.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 45, 10); //sigma pi
edit7.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 33, 6); //perda inicial
edit51.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 32, 6); //perda final
edit19.text:= pl;
Readln(arq, linha);
Readln(arq, linha);
Readln(arq, linha);
Readln(arq, linha);
Readln(arq, linha);
pl:=copy(linha, 57, 4); //Uar1
edit25.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 57, 4); //Uar2
edit52.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 31, 4); //Umidade
edit26.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 27, 4); //Temperatura
edit27.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 27, 4); //slamp
edit28.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 65, 7); //tipo de cimento 1
combobox6.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 65, 7); //tipo de cimento 2
combobox7.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 35, 6); //tempo final
edit30.text:= pl;
Readln(arq, linha);
Readln(arq, linha);
Readln(arq, linha);
Readln(arq, linha);
Readln(arq, linha);
pl:=copy(linha, 6, 6); //fi1
edit31.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 6, 6); //fi2
edit46.text:= pl;
Readln(arq, linha);
116
117
118
Writeln(arq,edit11.text);
Write(arq,'carga acidental mxima em KN/m, qmax =>');
Writeln(arq,edit12.text);
Write(arq,'t0 em dias =>');
Writeln(arq,edit45.text);
Write(arq,'gama q =>');
Writeln(arq,edit58.text);
Write(arq,'Coeficiente de combinao frequente =>');
Writeln(arq,edit13.text);
Write(arq,'Coeficiente de combinao quase permanente =>');
Writeln(arq,edit14.text);
{Caractersticas gerais da viga}
Writeln(arq,'');
Writeln(arq,'');
Writeln(arq,'*Caractersticas gerais da viga');
Writeln(arq,'');
Write(arq,'vo em m =>');
Writeln(arq,edit2.text);
Write(arq,'largura da seo em cm, bw =>');
Writeln(arq,edit5.text);
Write(arq,'altura da seo em cm, h =>');
Writeln(arq,edit4.text);
Write(arq,'altura til em cm, d =>');
Writeln(arq,edit3.text);
Write(arq,'menor distncia entre o cg da armadura e a face externa, d'+Chr(39)+' =>');
Writeln(arq,edit44.text);
Write(arq,'capa em cm =>');
Writeln(arq,edit42.text);
Write(arq,'altura da laje em cm =>');
Writeln(arq,edit43.text);
Write(arq,'Classe de Agressividade Ambiental (I, II, III ou IV), CAA =>');
Writeln(arq,combobox2.text);
Write(arq,'Largura da pista de protenso em m, L =>');
Writeln(arq,edit18.text);
Write(arq,'fck do concreto em MPa =>');
Writeln(arq,edit6.text);
Write(arq,'fcj do concreto em MPa =>');
Writeln(arq,edit16.text);
Write(arq,'fck da capa em MPa =>');
Writeln(arq,edit41.text);
Write(arq,'Mdulo de elasticidade do ao em MPa, E =>');
Writeln(arq,edit17.text);
Write(arq,'Tipo de ao (CP - 175RN, CP - 175RB, CP - 190RN ou CP - 190RB) =>');
Writeln(arq,combobox1.text);
Write(arq,'Dimetro da cordoalha (9,5mm, 12,7mm ou 15,2mm) =>');
Writeln(arq,combobox3.text);
Write(arq,'Dimetro do estribo (1/4", 5/16" ou 3/8") =>');
Writeln(arq,combobox5.text);
Write(arq,'Tipo de brita (Brita 0, Brita 1, Brita 2 ou Brita 3) =>');
Writeln(arq,combobox4.text);
Write(arq,'tenso inicial no ao em KN/cm2, sigma pi =>');
Writeln(arq,edit7.text);
Write(arq,'Perdas inicias estimadas em % =>');
119
Writeln(arq,edit51.text);
Write(arq,'Perdas finais estimadas em % =>');
Writeln(arq,edit19.text);
{Valores para o clculo do coeficiente de fluncia}
Writeln(arq,'');
Writeln(arq,'');
Writeln(arq,'*Valores para o clculo do coeficiente de fluncia');
Writeln(arq,'');
Write(arq,'Permetro em contato com o ar da seo 1 em cm, Uar 1 =>');
Writeln(arq,edit25.text);
Write(arq,'Permetro em contato com o ar da seo 2 em cm, Uar 2 =>');
Writeln(arq,edit52.text);
Write(arq,'Umidade relativa do ar em % =>');
Writeln(arq,edit26.text);
Write(arq,'Temperatura mdia em C =>');
Writeln(arq,edit27.text);
Write(arq,'Slamp do concreto em cm =>');
Writeln(arq,edit28.text);
Write(arq,'Tipo de cimento da seo 1 (CPI, CPII, CPIII, CPIV ou CPV-ARI =>');
Writeln(arq,combobox6.text);
Write(arq,'Tipo de cimento da seo 2 (CPI, CPII, CPIII, CPIV ou CPV-ARI =>');
Writeln(arq,combobox7.text);
Write(arq,'tempo final considerado em dias =>');
Writeln(arq,edit30.text);
{Coeficientes de fluncia e deformao}
Writeln(arq,'');
Writeln(arq,'');
Writeln(arq,'*Coeficientes de fluncia e deformao');
Writeln(arq,'');
Write(arq,'1 =>');
Writeln(arq,edit31.text);
Write(arq,'2 =>');
Writeln(arq,edit46.text);
Write(arq,'3 =>');
Writeln(arq,edit47.text);
Write(arq,'4 =>');
Writeln(arq,edit48.text);
Write(arq,'5 =>');
Writeln(arq,edit49.text);
Write(arq,'acidental =>');
Writeln(arq,edit50.text);
Write(arq,'Deformao do concreto =>');
Writeln(arq,edit32.text);
{Dados de sada}
Writeln(arq,'');
Writeln(arq,'');
Writeln(arq,'*Dados de sada');
Writeln(arq,'');
Write(arq,'Armadura positiva mnima em cm2 =>');
120
Writeln(arq,edit9.text);
Write(arq,'Armadura positiva mxima em cm2 =>');
Writeln(arq,edit15.text);
Write(arq,'Armadura positiva em cm2 =>');
Writeln(arq,edit22.text);
Write(arq,'Nmero de cordoalhas =>');
Writeln(arq,edit21.text);
Write(arq,'Armadura negativa em cm2 =>');
Writeln(arq,edit20.text);
Write(arq,'Nmero de cordoalhas =>');
Writeln(arq,edit29.text);
Write(arq,'mxima altura til possvel em cm =>');
Writeln(arq,edit8.text);
Write(arq,'Perda no bordo inferior em % =>');
Writeln(arq,edit23.text);
Write(arq,'Perda no bordo superior em % =>');
Writeln(arq,edit24.text);
CloseFile(arq);
end
else ShowMessage('O arquivo no foi salvo!');
end;
procedure TFAPESP.SalvarComo1Click(Sender: TObject);
begin
saveDialog := TSaveDialog.Create(self);
saveDialog.Title := 'Salvar arquivo';
saveDialog.InitialDir := GetCurrentDir;
saveDialog.Filter := 'Text file|*.txt|';
saveDialog.DefaultExt := 'txt';
saveDialog.FilterIndex := 1;
if saveDialog.Execute
then
Begin
{Criando arquivo de texto}
AssignFile (arq, saveDialog.FileName);
Rewrite (arq);
Writeln(arq,'
Arquivo para leitura do programa');
Writeln(arq,'=================================================');
{Carregamentos}
Writeln(arq,'');
Writeln(arq,'*Carregamentos');
Writeln(arq,'');
Write(arq,'carga permanente em KN/m, g1 =>');
Writeln(arq,edit1.text);
Write(arq,'t0 em dias =>');
Writeln(arq,edit33.text);
Write(arq,'gama 1 =>');
Writeln(arq,edit53.text);
Write(arq,'carga devido laje em KN/m, g2 =>');
Writeln(arq,edit10.text);
121
122
123
Writeln(arq,'');
Write(arq,'1 =>');
Writeln(arq,edit31.text);
Write(arq,'2 =>');
Writeln(arq,edit46.text);
Write(arq,'3 =>');
Writeln(arq,edit47.text);
Write(arq,'4 =>');
Writeln(arq,edit48.text);
Write(arq,'5 =>');
Writeln(arq,edit49.text);
Write(arq,'acidental =>');
Writeln(arq,edit50.text);
Write(arq,'Deformao do concreto =>');
Writeln(arq,edit32.text);
{Dados de sada}
Writeln(arq,'');
Writeln(arq,'');
Writeln(arq,'*Dados de sada');
Writeln(arq,'');
Write(arq,'Armadura positiva mnima em cm2 =>');
Writeln(arq,edit9.text);
Write(arq,'Armadura positiva mxima em cm2 =>');
Writeln(arq,edit15.text);
Write(arq,'Armadura positiva em cm2 =>');
Writeln(arq,edit22.text);
Write(arq,'Nmero de cordoalhas =>');
Writeln(arq,edit21.text);
Write(arq,'Armadura negativa em cm2 =>');
Writeln(arq,edit20.text);
Write(arq,'Nmero de cordoalhas =>');
Writeln(arq,edit29.text);
Write(arq,'mxima altura til possvel em cm =>');
Writeln(arq,edit8.text);
Write(arq,'Perda no bordo inferior em % =>');
Writeln(arq,edit23.text);
Write(arq,'Perda no bordo superior em % =>');
Writeln(arq,edit24.text);
CloseFile(arq);
end
else ShowMessage('O arquivo no foi salvo!');
end;
procedure TFAPESP.Novo1Click(Sender: TObject);
begin
edit1.text := '';
edit2.text := '';
edit3.text := '';
edit4.text := '';
edit5.text := '';
124
edit6.text := '';
edit7.text := '';
edit8.text := '';
edit9.text := '';
edit10.text := '';
edit11.text := '';
edit12.text := '';
edit13.text := '';
edit14.text := '';
edit15.text := '';
edit16.text := '';
edit17.text := '';
edit18.text := '';
edit19.text := '';
edit20.text := '';
edit21.text := '';
edit22.text := '';
edit23.text := '';
edit24.text := '';
edit25.text := '';
edit26.text := '';
edit27.text := '';
edit28.text := '';
edit29.text := '';
edit30.text := '';
edit31.text := '';
edit32.text := '';
edit33.text := '';
edit34.text := '';
edit35.text := '';
edit36.text := '';
edit37.text := '';
edit38.text := '';
edit39.text := '';
edit40.text := '';
edit41.text := '';
edit42.text := '';
edit43.text := '';
edit44.text := '';
edit45.text := '';
edit46.text := '';
edit47.text := '';
edit48.text := '';
edit49.text := '';
edit50.text := '';
edit51.text := '';
edit52.text := '';
edit53.text := '';
edit54.text := '';
edit55.text := '';
edit56.text := '';
edit57.text := '';
edit58.text := '';
edit59.text := '';
edit60.text := '';
125
combobox1.Text := '';
combobox2.Text := '';
combobox3.Text := '';
combobox4.Text := '';
combobox5.Text := '';
combobox6.Text := '';
combobox7.Text := '';
end;
procedure TFAPESP.Edit5Change(Sender: TObject);
begin
{Clculo do peso prprio automticamente}
if (edit5.text<>'') and (edit4.text<>'') then begin
bw:=strtofloat(edit5.text);
h:=strtofloat(edit4.text);
g1:=25*bw*h/10000;
edit1.text:=floattostr(g1);
end;
end;
procedure TFAPESP.Edit4Change(Sender: TObject);
begin
{Clculo do peso prprio automticamente}
if (edit4.text<>'') and (edit5.text<>'') then begin
bw:=strtofloat(edit5.text);
h:=strtofloat(edit4.text);
g1:=25*bw*h/10000;
edit1.text:=floattostr(g1);
end;
end;
procedure TFAPESP.Edit21Change(Sender: TObject);
begin
{Clculo da rea de ao automaticamente}
if (edit21.text<>'') and (combobox3.text<>'') then begin
daco := combobox3.text;
if daco = '9,5mm' then Aaco := 0.549;
if daco = '12,7mm' then Aaco := 0.986;
{valores tirados da NBR-7483}
if daco = '15,2mm' then Aaco := 1.399;
n:=strtofloat(edit21.text);
Ap:= Aaco* n;
edit22.text:= floattostr(Ap);
end;
end;
procedure TFAPESP.Edit29Change(Sender: TObject);
begin
{Clculo da rea de ao automaticamente}
if (edit29.text<>'') and (combobox3.text<>'') then begin
daco := combobox3.text;
if daco = '9,5mm' then Aaco := 0.549;
if daco = '12,7mm' then Aaco := 0.986;
{valores tirados da NBR-7483}
126
127
Label17: TLabel;
Label18: TLabel;
Edit14: TEdit;
Label19: TLabel;
Label20: TLabel;
Label21: TLabel;
Edit15: TEdit;
Label22: TLabel;
Edit16: TEdit;
Edit17: TEdit;
GroupBox4: TGroupBox;
Button2: TButton;
Button3: TButton;
Edit18: TEdit;
Edit19: TEdit;
Edit20: TEdit;
Edit21: TEdit;
Label23: TLabel;
Label24: TLabel;
Label25: TLabel;
Label26: TLabel;
Label27: TLabel;
Label28: TLabel;
Label29: TLabel;
Label30: TLabel;
GroupBox3: TGroupBox;
ComboBox1: TComboBox;
Edit22: TEdit;
Edit23: TEdit;
Label31: TLabel;
Label32: TLabel;
Button4: TButton;
Button5: TButton;
Label111: TLabel;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FAPESP2: TFAPESP2;
b3on,{se o valor for 1 indica que o boto 3 do form 2 foi ativado}
b4on,{se o valor for 1 indica que o boto 4 do form 2 foi ativado}
s1i,s1s,s2i,s2s,s3i,s3s,s4i,s4s, {tenses para a verificao por fissuras}
lsup, {limite superior}
linf, {limite inferior}
Ap, {rea de ao no bordo inferior}
fckcp, {fck da capa de concreto}
128
epsolonp,
epsolon,
sigmapd,
Ep, {mdulo de elasticidade do ao}
dte, {altura til da seo T}
bf, {largura da mesa da viga "T"}
bw, {largura da alma da viga "T"}
capa, {espessura da capa de concreto}
x, {posio da LN}
x2, {mximo valor para que a seo esteja no domnio 2}
Mg1, {Momento causado pelo carregamento g1}
Mg2, {Momento causado pelo carregamento g2}
Mg3, {Momento causado pelo carregamento g3}
Mg4, {Momento causado pelo carregamento g4}
Mg5, {Momento causado pelo carregamento g5}
Mqmin, {Momento causado pelo carregamento acidental mnimo}
Mqmax, {Momento causado pelo carregamento acidental mximo}
fs1, {fator de segurana do carregamento 1}
fs2, {fator de segurana do carregamento 2}
fs3, {fator de segurana do carregamento 3}
fs4, {fator de segurana do carregamento 4}
fs5, {fator de segurana do carregamento 5}
fsq, {fator de segurana do carregamento acidental}
Mr, {Momento resistido}
Ma, {Momento atuante}
Mg1sx, {Momento do carregamento 1, seo x}
Mg1s1, {Momento do carregamento 1, seo 1}
Mg1s2, {Momento do carregamento 1, seo 2}
Mg1s3, {Momento do carregamento 1, seo 3}
Mg1s4, {Momento do carregamento 1, seo 4}
Mg2sx, {Momento do carregamento 2, seo x}
Mg2s1, {Momento do carregamento 2, seo 1}
Mg2s2, {Momento do carregamento 2, seo 2}
Mg2s3, {Momento do carregamento 2, seo 3}
Mg2s4, {Momento do carregamento 2, seo 4}
Mg3sx, {Momento do carregamento 3, seo x}
Mg3s1, {Momento do carregamento 3, seo 1}
Mg3s2, {Momento do carregamento 3, seo 2}
Mg3s3, {Momento do carregamento 3, seo 3}
Mg3s4, {Momento do carregamento 3, seo 4}
Mg4sx, {Momento do carregamento 4, seo x}
Mg4s1, {Momento do carregamento 4, seo 1}
Mg4s2, {Momento do carregamento 4, seo 2}
Mg4s3, {Momento do carregamento 4, seo 3}
Mg4s4, {Momento do carregamento 4, seo 4}
Mg5sx, {Momento do carregamento 5, seo x}
Mg5s1, {Momento do carregamento 5, seo 1}
Mg5s2, {Momento do carregamento 5, seo 2}
Mg5s3, {Momento do carregamento 5, seo 3}
Mg5s4, {Momento do carregamento 5, seo 4}
Mqminsx, {Momento do carregamento acidental minimo, seo x}
Mqmins1, {Momento do carregamento acidental minimo, seo 1}
Mqmins2, {Momento do carregamento acidental minimo, seo 2}
Mqmins3, {Momento do carregamento acidental minimo, seo 3}
Mqmins4, {Momento do carregamento acidental minimo, seo 4}
129
130
Psup,
M0,
Msdx,
Vc,
Vsw,
Asw,
xx1, {dcimo de vo}
xx2, {2x dcimo de vo}
xx3, {3x dcimo de vo}
xx4, {4x dcimo de vo}
vao, {vo da viga}
g1, g2, g3, g4, g5, qmin, qmax,
sigmacginfs1, {perda por deformao imediata no concreto}
sigmacgsups1,
sigmacginfs2,
sigmacgsups2,
sigmacginfs3,
sigmacgsups3,
sigmacginfs4,
sigmacgsups4,
perdainfs1, {total das perdas iniciais}
perdasups1,
perdainfs2,
perdasups2,
perdainfs3,
perdasups3,
perdainfs4,
perdasups4,
Nps1,
Mps1,
Nps2,
Mps2,
Nps3,
Mps3,
Nps4,
Mps4,
sigmapcinfs1,
sigmapcsups1,
sigmapcinfs2,
sigmapcsups2,
sigmapcinfs3,
sigmapcsups3,
sigmapcinfs4,
sigmapcsups4,
xinfs1,
xsups1,
xinfs2,
xsups2,
xinfs3,
xsups3,
xinfs4,
xsups4,
sigmaprinfs1,
sigmaprsups1,
sigmaprinfs2,
131
sigmaprsups2,
sigmaprinfs3,
sigmaprsups3,
sigmaprinfs4,
sigmaprsups4,
sigmapi1infs1,
sigmapi1sups1,
sigmapi1infs2,
sigmapi1sups2,
sigmapi1infs3,
sigmapi1sups3,
sigmapi1infs4,
sigmapi1sups4,
sigmapinfs1,
sigmapsups1,
sigmapinfs2,
sigmapsups2,
sigmapinfs3,
sigmapsups3,
sigmapinfs4,
sigmapsups4,
sig1is1,
sig1ss1,
sig1is2,
sig1ss2,
sig1is3,
sig1ss3,
sig1is4,
sig1ss4,
sig2is1,
sig2ss1,
sig2is2,
sig2ss2,
sig2is3,
sig2ss3,
sig2is4,
sig2ss4,
sig3is1,
sig3ss1,
sig3is2,
sig3ss2,
sig3is3,
sig3ss3,
sig3is4,
sig3ss4,
sig4is1,
sig4ss1,
sig4is2,
sig4ss2,
sig4is3,
sig4ss3,
sig4is4,
sig4ss4,
sigma1i, {tenso considerando as perdas iniciais}
sigma1s,
132
sigma2i,
sigma2s,
sigma3i,
sigma3s,
sigma4i,
sigma4s,
sigma5i,
sigma5s,
smax, {espaamento maximo}
lbpti,
lbpts,
sigxi,
sigxs,
lzinf, {limite inferior no tempo zero}
lzsup, {limite superior no tempo zero}
fbpd,
nn1, {valor de n (ta) 1}
nn2, {valor de n (ta) 2}
lbptinf, {comprimento de transferncia no bordo inferior}
lbptsup, {comprimento de transferncia no bordo superior}
lpinf, {Distncia de regularizao inferior}
lpsup {Distncia de regularizao superior}: real;
liberacao, cb1 : string;
f: TextFile;
implementation
uses Formulario, Formulario3, Formulario4, Formulario5;
{$R *.dfm}
procedure TFAPESP2.Button1Click(Sender: TObject);
begin
{Verificao a ruptura}
{Fazendo suposio de domnio 2 e LN na mesa}
Ap:= formulario.Ap;
bf:= formulario.bff;
bw:= formulario.bw;
fckcp:= formulario.fckcp;
sigmapinf:= formulario.sigmapinf;
Ep:= formulario.Ep;
epsolonp:= sigmapinf/Ep;
epsolon:= (0.01+epsolonp)*1000;
capa:= formulario.capa*100;
dte:=formulario.d*100+formulario.hlaje*100+capa;
x2:= 3.5*dte/13.5;
fs1:=formulario.fs1;
fs2:=formulario.fs2;
fs3:=formulario.fs3;
fs4:=formulario.fs4;
fs5:=formulario.fs5;
fsq:=formulario.fsq;
133
Mg1:=formulario.Mg1;
Mg2:=formulario.Mg2;
Mg3:=formulario.Mg3;
Mg4:=formulario.Mg4;
Mg5:=formulario.Mg5;
Mqmin:=formulario.Mqmin;
Mqmax:=formulario.Mqmax;
Ma:= Mg1*fs1+Mg2*fs2+Mg3*fs3+Mg4*fs4+Mg5*fs5+Mqmax*fsq;
edit15.text:=floattostrf(Ma,ffFixed,18,2);
g1:=formulario.g1;
g2:=formulario.g2;
g3:=formulario.g3;
g4:=formulario.g4;
g5:=formulario.g5;
qmin:=formulario.qmin;
qmax:=formulario.qmax;
vao:=formulario.vao;
{Clculo de sigma pd}
{Valores retirados da tabela 5.1 da dissertao de Inforsato(2009)}
if (tpaco = 'CP - 190RB') or (tpaco = 'CP - 190RN')
then begin
if epsolon<5.25 then sigmapd:=102.5;
if (epsolon>5.25) and (epsolon<6.794) then
sigmapd:=(epsolonp-5.25)*((131.4-102.5)/(6.794-5.25))+102.5;
if (epsolon>6.794) and (epsolon<7.438) then
sigmapd:=(epsolonp-6.794)*((141.1-131.4)/(7.438-6.794))+131.4;
if (epsolon>7.438) and (epsolon<8.167) then
sigmapd:=(epsolonp-7.438)*((145.9-141.1)/(8.167-7.438))+141.1;
if (epsolon>8.167) and (epsolon<9) then
sigmapd:=(epsolonp-8.167)*((148.2-145.9)/(9-8.167))+145.9;
if (epsolon>9) and (epsolon<9.962) then
sigmapd:=(epsolonp-9)*((148.6-148.2)/(9.962-9))+148.2;
if (epsolon>9.962) and (epsolon<10) then
sigmapd:=(epsolonp-9.962)*((148.6-148.6)/(10-9.962))+148.6;
if (epsolon>10) and (epsolon<12.5) then
sigmapd:=(epsolonp-10)*((149.6-148.6)/(12.5-10))+148.6;
if (epsolon>12.5) and (epsolon<15) then
sigmapd:=(epsolonp-12.5)*((150.7-149.6)/(15-12.5))+149.6;
if (epsolon>15) and (epsolon<17.5) then
sigmapd:=(epsolonp-15)*((151.7-150.7)/(17.5-15))+150.7;
if (epsolon>17.5) and (epsolon<20) then
sigmapd:=(epsolonp-17.5)*((152.7-151.7)/(20-17.5))+151.7;
if (epsolon>20) and (epsolon<22.5) then
sigmapd:=(epsolonp-20)*((153.8-152.7)/(22.5-20))+152.7;
if (epsolon>22.5) and (epsolon<25) then
sigmapd:=(epsolonp-22.5)*((154.8-153.8)/(25-22.5))+153.8;
if (epsolon>25) and (epsolon<27.5) then
sigmapd:=(epsolonp-25)*((155.9-154.8)/(27.5-25))+154.8;
if (epsolon>27.5) and (epsolon<30) then
sigmapd:=(epsolonp-27.5)*((156.9-155.9)/(30-27.5))+155.9;
if (epsolon>30) and (epsolon<32.5) then
sigmapd:=(epsolonp-30)*((157.9-156.9)/(32.5-30))+156.9;
if (epsolon>32.5) and (epsolon<35) then
sigmapd:=(epsolonp-32.5)*((159-157.9)/(35-32.5))+157.9;
134
135
136
edit11.text:=floattostrf(linf,ffFixed,18,2);
edit12.text:=floattostrf(lsup,ffFixed,18,2);
if formulario.CAA = 'II' then
begin
label1.caption := 'Combinao Quase Permanente';
label9.caption := 'Combinao Frequente';
end;
if (formulario.CAA = 'III') or (formulario.CAA = 'IV') then
begin
label1.caption := 'Combinao Frequente';
label9.caption := 'Combinao Rara';
end;
end;
procedure TFAPESP2.Button2Click(Sender: TObject);
begin
{Clculo do comprimento de regularizao}
nn1:=strtofloat(edit22.text);
nn2:=strtofloat(edit23.text);
fbpd:=nn1*nn2*(0.21*exp(ln(sqr(fcj))/3)/1.4)/10; {Considerando n1=1 e n2=1.2}
lbptinf:=3.5*dcor*perdainf/(36*fbpd);
lbptsup:=3.5*dcor*perdasup/(36*fbpd);
liberacao:=combobox1.text;
if liberacao='Liberao no gradual' then {Considerando caso de liberao no gradual}
begin
lbptinf:=1.25*lbptinf;
lbptsup:=1.25*lbptsup;
end;
lpinf:=sqrt(sqr(h*100)+sqr(0.6*lbptinf));
if lpinf<=lbptinf then lpinf:=lbptinf;
lpsup:=sqrt(sqr(h*100)+sqr(0.6*lbptsup));
if lpsup<=lbptsup then lpsup:=lbptsup;
edit18.text:=floattostrf(lbptsup,ffFixed,18,2);
edit19.text:=floattostrf(lbptinf,ffFixed,18,2);
edit20.text:=floattostrf(lpsup,ffFixed,18,2);
edit21.text:=floattostrf(lpinf,ffFixed,18,2);
end;
procedure TFAPESP2.Button3Click(Sender: TObject);
begin
b3on:=1;
Ap:= formulario.Ap;
bf:= formulario.bff;
bw:= formulario.bw;
fckcp:= formulario.fckcp;
sigmapinf:= formulario.sigmapinf;
137
Ep:= formulario.Ep;
epsolonp:= sigmapinf/Ep;
epsolon:= (0.01+epsolonp)*1000;
capa:= formulario.capa*100;
dte:=formulario.d*100+formulario.hlaje*100+capa;
x2:= 3.5*dte/13.5;
fs1:=formulario.fs1;
fs2:=formulario.fs2;
fs3:=formulario.fs3;
fs4:=formulario.fs4;
fs5:=formulario.fs5;
fsq:=formulario.fsq;
Mg1:=formulario.Mg1;
Mg2:=formulario.Mg2;
Mg3:=formulario.Mg3;
Mg4:=formulario.Mg4;
Mg5:=formulario.Mg5;
Mqmin:=formulario.Mqmin;
Mqmax:=formulario.Mqmax;
Ma:= Mg1*fs1+Mg2*fs2+Mg3*fs3+Mg4*fs4+Mg5*fs5+Mqmax*fsq;
g1:=formulario.g1;
g2:=formulario.g2;
g3:=formulario.g3;
g4:=formulario.g4;
g5:=formulario.g5;
qmin:=formulario.qmin;
qmax:=formulario.qmax;
vao:=formulario.vao;
{Verificao em dcimo de vo}
xx1:= vao/10;
xx2:= 2*vao/10;
xx3:= 3*vao/10;
xx4:= 4*vao/10;
{Momento em dcimo de vo}
Mg1s1:=(g1*vao*xx1/2)-(g1*sqr(xx1)/2);
Mg1s2:=(g1*vao*xx2/2)-(g1*sqr(xx2)/2);
Mg1s3:=(g1*vao*xx3/2)-(g1*sqr(xx3)/2);
Mg1s4:=(g1*vao*xx4/2)-(g1*sqr(xx4)/2);
Mg2s1:=(g2*vao*xx1/2)-(g2*sqr(xx1)/2);
Mg2s2:=(g2*vao*xx2/2)-(g2*sqr(xx2)/2);
Mg2s3:=(g2*vao*xx3/2)-(g2*sqr(xx3)/2);
Mg2s4:=(g2*vao*xx4/2)-(g2*sqr(xx4)/2);
Mg3s1:=(g3*vao*xx1/2)-(g3*sqr(xx1)/2);
Mg3s2:=(g3*vao*xx2/2)-(g3*sqr(xx2)/2);
Mg3s3:=(g3*vao*xx3/2)-(g3*sqr(xx3)/2);
Mg3s4:=(g3*vao*xx4/2)-(g3*sqr(xx4)/2);
Mg4s1:=(g4*vao*xx1/2)-(g4*sqr(xx1)/2);
Mg4s2:=(g4*vao*xx2/2)-(g4*sqr(xx2)/2);
Mg4s3:=(g4*vao*xx3/2)-(g4*sqr(xx3)/2);
Mg4s4:=(g4*vao*xx4/2)-(g4*sqr(xx4)/2);
138
Mg5s1:=(g5*vao*xx1/2)-(g5*sqr(xx1)/2);
Mg5s2:=(g5*vao*xx2/2)-(g5*sqr(xx2)/2);
Mg5s3:=(g5*vao*xx3/2)-(g5*sqr(xx3)/2);
Mg5s4:=(g5*vao*xx4/2)-(g5*sqr(xx4)/2);
Mqmins1:=(qmin*vao*xx1/2)-(qmin*sqr(xx1)/2);
Mqmins2:=(qmin*vao*xx2/2)-(qmin*sqr(xx2)/2);
Mqmins3:=(qmin*vao*xx3/2)-(qmin*sqr(xx3)/2);
Mqmins4:=(qmin*vao*xx4/2)-(qmin*sqr(xx4)/2);
Mqmaxs1:=(qmax*vao*xx1/2)-(qmax*sqr(xx1)/2);
Mqmaxs2:=(qmax*vao*xx2/2)-(qmax*sqr(xx2)/2);
Mqmaxs3:=(qmax*vao*xx3/2)-(qmax*sqr(xx3)/2);
Mqmaxs4:=(qmax*vao*xx4/2)-(qmax*sqr(xx4)/2);
{Clculo das perdas em dcimo de vo}
{Perdas iniciais}
{Deformao da ancoragem}
sigmaanc:=formulario.sigmaanc;
{Relaxao da armadura}
sigmapr:=formulario.sigmapr;
{Perda por deformao imediata no concreto}
sigmap:= formulario.sigmap;
sigmapii:= sigmap-(sigmaanc+sigmapr);
sigmainf:=sigmapii;
sigmasup:=sigmapii;
Np:=Ap*sigmainf+Aplinha*sigmasup;
Mp:=Ap*sigmainf*e - Aplinha*sigmasup*elinha;
sigmacginfs1:=((Np/Ac)+(Mp-Mg1s1)*e/I)*(Ep/Eci)/10000;
sigmacgsups1:=((Np/Ac)+(-Mp+Mg1s1)*elinha/I)*(Ep/Eci)/10000;
sigmacginfs2:=((Np/Ac)+(Mp-Mg1s2)*e/I)*(Ep/Eci)/10000;
sigmacgsups2:=((Np/Ac)+(-Mp+Mg1s2)*elinha/I)*(Ep/Eci)/10000;
sigmacginfs3:=((Np/Ac)+(Mp-Mg1s3)*e/I)*(Ep/Eci)/10000;
sigmacgsups3:=((Np/Ac)+(-Mp+Mg1s3)*elinha/I)*(Ep/Eci)/10000;
sigmacginfs4:=((Np/Ac)+(Mp-Mg1s4)*e/I)*(Ep/Eci)/10000;
sigmacgsups4:=((Np/Ac)+(-Mp+Mg1s4)*elinha/I)*(Ep/Eci)/10000;
{Total das perdas iniciais}
perdainfs1:= sigmap-(sigmaanc+sigmapr+sigmacginfs1);
perdasups1:= sigmap-(sigmaanc+sigmapr+sigmacgsups1);
perdainfs2:= sigmap-(sigmaanc+sigmapr+sigmacginfs2);
perdasups2:= sigmap-(sigmaanc+sigmapr+sigmacgsups2);
perdainfs3:= sigmap-(sigmaanc+sigmapr+sigmacginfs3);
perdasups3:= sigmap-(sigmaanc+sigmapr+sigmacgsups3);
perdainfs4:= sigmap-(sigmaanc+sigmapr+sigmacginfs4);
perdasups4:= sigmap-(sigmaanc+sigmapr+sigmacgsups4);
{Perdas diferidas}
{Perda por retrao do concreto}
sigmaps:= formulario.sigmaps;
{Perda por fluncia}
139
fi1:=formulario.fi1;
fi2:=formulario.fi2;
fi3:=formulario.fi3;
fi4:=formulario.fi4;
fi5:=formulario.fi5;
fiq:=formulario.fiq;
Nps1:=Ap*perdainfs1+Aplinha*perdasups1;
Mps1:=Ap*perdainfs1*e - Aplinha*perdasups1*elinha;
Nps2:=Ap*perdainfs2+Aplinha*perdasups2;
Mps2:=Ap*perdainfs2*e - Aplinha*perdasups2*elinha;
Nps3:=Ap*perdainfs3+Aplinha*perdasups3;
Mps3:=Ap*perdainfs3*e - Aplinha*perdasups3*elinha;
Nps4:=Ap*perdainfs4+Aplinha*perdasups4;
Mps4:=Ap*perdainfs4*e - Aplinha*perdasups4*elinha;
alphaf:= Ep/(5600*sqrt(fck));
{Seo 1}
Aa:=(Nps1/Ac+(Mps1-Mg1s1)*e/I)*fi1;
Bb:=((Mg2s1*e*fi2)+(Mg3s1*e*fi3))/I;
Cc:=((Mg4s1*ecomposta*fi4)+(Mg5s1*ecomposta*fi5))/Icomposta;
Dd:=U2*Mqmaxs1*ecomposta*fiq/Icomposta;
sigmapcinfs1:=(alphaf*(Aa-Bb-Cc-Dd))/10000;
Aa:=(Nps1/Ac+(-Mps1+Mg1s1)*elinha/I)*fi1;
Bb:=((Mg2s1*elinha*fi2)+(Mg3s1*elinha*fi3))/I;
Cc:=((Mg4s1*ecompostalinha*fi4)+(Mg5s1*ecompostalinha*fi5))/Icomposta;
Dd:=U2*Mqmaxs1*ecompostalinha*fiq/Icomposta;
sigmapcsups1:=abs((alphaf*(Aa+Bb+Cc+Dd))/10000);
{Seo 2}
Aa:=(Nps2/Ac+(Mps2-Mg1s2)*e/I)*fi1;
Bb:=((Mg2s2*e*fi2)+(Mg3s2*e*fi3))/I;
Cc:=((Mg4s2*ecomposta*fi4)+(Mg5s2*ecomposta*fi5))/Icomposta;
Dd:=U2*Mqmaxs2*ecomposta*fiq/Icomposta;
sigmapcinfs2:=(alphaf*(Aa-Bb-Cc-Dd))/10000;
Aa:=(Nps2/Ac+(-Mps2+Mg1s2)*elinha/I)*fi1;
Bb:=((Mg2s2*elinha*fi2)+(Mg3s2*elinha*fi3))/I;
Cc:=((Mg4s2*ecompostalinha*fi4)+(Mg5s2*ecompostalinha*fi5))/Icomposta;
Dd:=U2*Mqmaxs2*ecompostalinha*fiq/Icomposta;
sigmapcsups2:=abs((alphaf*(Aa+Bb+Cc+Dd))/10000);
{Seo 3}
Aa:=(Nps3/Ac+(Mps3-Mg1s3)*e/I)*fi1;
Bb:=((Mg2s3*e*fi2)+(Mg3s3*e*fi3))/I;
Cc:=((Mg4s3*ecomposta*fi4)+(Mg5s3*ecomposta*fi5))/Icomposta;
Dd:=U2*Mqmaxs3*ecomposta*fiq/Icomposta;
sigmapcinfs3:=(alphaf*(Aa-Bb-Cc-Dd))/10000;
Aa:=(Nps3/Ac+(-Mps3+Mg1s3)*elinha/I)*fi1;
Bb:=((Mg2s3*elinha*fi2)+(Mg3s3*elinha*fi3))/I;
Cc:=((Mg4s3*ecompostalinha*fi4)+(Mg5s3*ecompostalinha*fi5))/Icomposta;
Dd:=U2*Mqmaxs3*ecompostalinha*fiq/Icomposta;
140
sigmapcsups3:=abs((alphaf*(Aa+Bb+Cc+Dd))/10000);
{Seo 4}
Aa:=(Nps4/Ac+(Mps4-Mg1s4)*e/I)*fi1;
Bb:=((Mg2s4*e*fi2)+(Mg3s4*e*fi3))/I;
Cc:=((Mg4s4*ecomposta*fi4)+(Mg5s4*ecomposta*fi5))/Icomposta;
Dd:=U2*Mqmaxs4*ecomposta*fiq/Icomposta;
sigmapcinfs4:=(alphaf*(Aa-Bb-Cc-Dd))/10000;
Aa:=(Nps4/Ac+(-Mps4+Mg1s4)*elinha/I)*fi1;
Bb:=((Mg2s4*elinha*fi2)+(Mg3s4*elinha*fi3))/I;
Cc:=((Mg4s4*ecompostalinha*fi4)+(Mg5s4*ecompostalinha*fi5))/Icomposta;
Dd:=U2*Mqmaxs4*ecompostalinha*fiq/Icomposta;
sigmapcsups4:=abs((alphaf*(Aa+Bb+Cc+Dd))/10000);
{Perda por relaxao da armadura}
{Seo 1}
Rinf:=perdainfs1/fy;
Rsup:=perdasups1/fy;
if (tpaco = 'CP - 175RN') or (tpaco = 'CP - 190RN') then
begin
if Rinf <= 0.5 then U1000:=0;
if (Rinf>0.5) and (Rinf<=0.6) then U1000:=35*(Rinf-0.5);
if (Rinf>0.6) and (Rinf<=0.7) then U1000:=35*(Rinf-0.6)+3.5;
if (Rinf>0.7) and (Rinf<=0.8) then U1000:=50*(Rinf-0.7)+7;
if Rinf>0.8 then U1000:=12;
end;
if (tpaco = 'CP - 175RB') or (tpaco = 'CP - 190RB') then
begin
if Rinf<=0.5 then U1000:=0;
if (Rinf>0.5) and (Rinf<=0.6) then U1000:=13*(Rinf-0.5);
if (Rinf>0.6) and (Rinf<=0.7) then U1000:=12*(Rinf-0.6)+1.3;
if (Rinf>0.7) and (Rinf<=0.8) then U1000:=10*(Rinf-0.7)+2.5;
if Rinf>0.8 then U1000:=3.5;
end;
Ui1inf:= 2.5*U1000;
if (tpaco = 'CP - 175RN') or (tpaco = 'CP - 190RN') then
begin
if Rsup <= 0.5 then U1000:=0;
if (Rsup>0.5) and (Rsup<=0.6) then U1000:=35*(Rsup-0.5);
if (Rsup>0.6) and (Rsup<=0.7) then U1000:=35*(Rsup-0.6)+3.5;
if (Rsup>0.7) and (Rsup<=0.8) then U1000:=50*(Rsup-0.7)+7;
if Rsup>0.8 then U1000:=12;
end;
if (tpaco = 'CP - 175RB') or (tpaco = 'CP - 190RB') then
begin
if Rsup<=0.5 then U1000:=0;
if (Rsup>0.5) and (Rsup<=0.6) then U1000:=13*(Rsup-0.5);
if (Rsup>0.6) and (Rsup<=0.7) then U1000:=12*(Rsup-0.6)+1.3;
if (Rsup>0.7) and (Rsup<=0.8) then U1000:=10*(Rsup-0.7)+2.5;
if Rsup>0.8 then U1000:=3.5;
end;
Ui1sup:= 2.5*U1000;
141
xinfs1:=-ln(1-Ui1inf/100);
xsups1:=-ln(1-Ui1sup/100);
sigmaprinfs1:=perdainfs1*xinfs1;
sigmaprsups1:=perdasups1*xsups1;
{Seo 2}
Rinf:=perdainfs2/fy;
Rsup:=perdasups2/fy;
if (tpaco = 'CP - 175RN') or (tpaco = 'CP - 190RN') then
begin
if Rinf <= 0.5 then U1000:=0;
if (Rinf>0.5) and (Rinf<=0.6) then U1000:=35*(Rinf-0.5);
if (Rinf>0.6) and (Rinf<=0.7) then U1000:=35*(Rinf-0.6)+3.5;
if (Rinf>0.7) and (Rinf<=0.8) then U1000:=50*(Rinf-0.7)+7;
if Rinf>0.8 then U1000:=12;
end;
if (tpaco = 'CP - 175RB') or (tpaco = 'CP - 190RB') then
begin
if Rinf<=0.5 then U1000:=0;
if (Rinf>0.5) and (Rinf<=0.6) then U1000:=13*(Rinf-0.5);
if (Rinf>0.6) and (Rinf<=0.7) then U1000:=12*(Rinf-0.6)+1.3;
if (Rinf>0.7) and (Rinf<=0.8) then U1000:=10*(Rinf-0.7)+2.5;
if Rinf>0.8 then U1000:=3.5;
end;
Ui1inf:= 2.5*U1000;
if (tpaco = 'CP - 175RN') or (tpaco = 'CP - 190RN') then
begin
if Rsup <= 0.5 then U1000:=0;
if (Rsup>0.5) and (Rsup<=0.6) then U1000:=35*(Rsup-0.5);
if (Rsup>0.6) and (Rsup<=0.7) then U1000:=35*(Rsup-0.6)+3.5;
if (Rsup>0.7) and (Rsup<=0.8) then U1000:=50*(Rsup-0.7)+7;
if Rsup>0.8 then U1000:=12;
end;
if (tpaco = 'CP - 175RB') or (tpaco = 'CP - 190RB') then
begin
if Rsup<=0.5 then U1000:=0;
if (Rsup>0.5) and (Rsup<=0.6) then U1000:=13*(Rsup-0.5);
if (Rsup>0.6) and (Rsup<=0.7) then U1000:=12*(Rsup-0.6)+1.3;
if (Rsup>0.7) and (Rsup<=0.8) then U1000:=10*(Rsup-0.7)+2.5;
if Rsup>0.8 then U1000:=3.5;
end;
Ui1sup:= 2.5*U1000;
xinfs2:=-ln(1-Ui1inf/100);
xsups2:=-ln(1-Ui1sup/100);
sigmaprinfs2:=perdainfs2*xinfs2;
sigmaprsups2:=perdasups2*xsups2;
{Seo 3}
Rinf:=perdainfs3/fy;
142
Rsup:=perdasups3/fy;
if (tpaco = 'CP - 175RN') or (tpaco = 'CP - 190RN') then
begin
if Rinf <= 0.5 then U1000:=0;
if (Rinf>0.5) and (Rinf<=0.6) then U1000:=35*(Rinf-0.5);
if (Rinf>0.6) and (Rinf<=0.7) then U1000:=35*(Rinf-0.6)+3.5;
if (Rinf>0.7) and (Rinf<=0.8) then U1000:=50*(Rinf-0.7)+7;
if Rinf>0.8 then U1000:=12;
end;
if (tpaco = 'CP - 175RB') or (tpaco = 'CP - 190RB') then
begin
if Rinf<=0.5 then U1000:=0;
if (Rinf>0.5) and (Rinf<=0.6) then U1000:=13*(Rinf-0.5);
if (Rinf>0.6) and (Rinf<=0.7) then U1000:=12*(Rinf-0.6)+1.3;
if (Rinf>0.7) and (Rinf<=0.8) then U1000:=10*(Rinf-0.7)+2.5;
if Rinf>0.8 then U1000:=3.5;
end;
Ui1inf:= 2.5*U1000;
if (tpaco = 'CP - 175RN') or (tpaco = 'CP - 190RN') then
begin
if Rsup <= 0.5 then U1000:=0;
if (Rsup>0.5) and (Rsup<=0.6) then U1000:=35*(Rsup-0.5);
if (Rsup>0.6) and (Rsup<=0.7) then U1000:=35*(Rsup-0.6)+3.5;
if (Rsup>0.7) and (Rsup<=0.8) then U1000:=50*(Rsup-0.7)+7;
if Rsup>0.8 then U1000:=12;
end;
if (tpaco = 'CP - 175RB') or (tpaco = 'CP - 190RB') then
begin
if Rsup<=0.5 then U1000:=0;
if (Rsup>0.5) and (Rsup<=0.6) then U1000:=13*(Rsup-0.5);
if (Rsup>0.6) and (Rsup<=0.7) then U1000:=12*(Rsup-0.6)+1.3;
if (Rsup>0.7) and (Rsup<=0.8) then U1000:=10*(Rsup-0.7)+2.5;
if Rsup>0.8 then U1000:=3.5;
end;
Ui1sup:= 2.5*U1000;
xinfs3:=-ln(1-Ui1inf/100);
xsups3:=-ln(1-Ui1sup/100);
sigmaprinfs3:=perdainfs3*xinfs3;
sigmaprsups3:=perdasups3*xsups3;
{Seo 4}
Rinf:=perdainfs4/fy;
Rsup:=perdasups4/fy;
if (tpaco = 'CP - 175RN') or (tpaco = 'CP - 190RN') then
begin
if Rinf <= 0.5 then U1000:=0;
if (Rinf>0.5) and (Rinf<=0.6) then U1000:=35*(Rinf-0.5);
if (Rinf>0.6) and (Rinf<=0.7) then U1000:=35*(Rinf-0.6)+3.5;
if (Rinf>0.7) and (Rinf<=0.8) then U1000:=50*(Rinf-0.7)+7;
if Rinf>0.8 then U1000:=12;
143
end;
if (tpaco = 'CP - 175RB') or (tpaco = 'CP - 190RB') then
begin
if Rinf<=0.5 then U1000:=0;
if (Rinf>0.5) and (Rinf<=0.6) then U1000:=13*(Rinf-0.5);
if (Rinf>0.6) and (Rinf<=0.7) then U1000:=12*(Rinf-0.6)+1.3;
if (Rinf>0.7) and (Rinf<=0.8) then U1000:=10*(Rinf-0.7)+2.5;
if Rinf>0.8 then U1000:=3.5;
end;
Ui1inf:= 2.5*U1000;
if (tpaco = 'CP - 175RN') or (tpaco = 'CP - 190RN') then
begin
if Rsup <= 0.5 then U1000:=0;
if (Rsup>0.5) and (Rsup<=0.6) then U1000:=35*(Rsup-0.5);
if (Rsup>0.6) and (Rsup<=0.7) then U1000:=35*(Rsup-0.6)+3.5;
if (Rsup>0.7) and (Rsup<=0.8) then U1000:=50*(Rsup-0.7)+7;
if Rsup>0.8 then U1000:=12;
end;
if (tpaco = 'CP - 175RB') or (tpaco = 'CP - 190RB') then
begin
if Rsup<=0.5 then U1000:=0;
if (Rsup>0.5) and (Rsup<=0.6) then U1000:=13*(Rsup-0.5);
if (Rsup>0.6) and (Rsup<=0.7) then U1000:=12*(Rsup-0.6)+1.3;
if (Rsup>0.7) and (Rsup<=0.8) then U1000:=10*(Rsup-0.7)+2.5;
if Rsup>0.8 then U1000:=3.5;
end;
Ui1sup:= 2.5*U1000;
xinfs4:=-ln(1-Ui1inf/100);
xsups4:=-ln(1-Ui1sup/100);
sigmaprinfs4:=perdainfs4*xinfs4;
sigmaprsups4:=perdasups4*xsups4;
{Simultaneidade das perdas}
{Seo 1}
xpinf:= xinfs1+1;
xpsup:= xsups1+1;
xc:= 1+0.5*fi1;
ninf:=1+sqr(e)*Ac/I;
nsup:=1+sqr(elinha)*Ac/I;
pp:= (Aplinha+Ap)/Ac;
sigmapi1infs1:= (sigmaps-sigmaprinfs1-sigmapcinfs1)/(xpinf+xc*alphaf*ninf*(pp/10000));
sigmapi1sups1:= (sigmaps-sigmaprsups1sigmapcsups1)/(xpsup+xc*alphaf*nsup*(pp/10000));
sigmapinfs1:= perdainfs1+sigmapi1infs1;
sigmapsups1:= perdasups1+sigmapi1sups1;
{Seo 2}
xpinf:= xinfs2+1;
xpsup:= xsups2+1;
xc:= 1+0.5*fi1;
144
ninf:=1+sqr(e)*Ac/I;
nsup:=1+sqr(elinha)*Ac/I;
pp:= (Aplinha+Ap)/Ac;
sigmapi1infs2:= (sigmaps-sigmaprinfs2-sigmapcinfs2)/(xpinf+xc*alphaf*ninf*(pp/10000));
sigmapi1sups2:= (sigmaps-sigmaprsups2sigmapcsups2)/(xpsup+xc*alphaf*nsup*(pp/10000));
sigmapinfs2:= perdainfs2+sigmapi1infs2;
sigmapsups2:= perdasups2+sigmapi1sups2;
{Seo 3}
xpinf:= xinfs3+1;
xpsup:= xsups3+1;
xc:= 1+0.5*fi1;
ninf:=1+sqr(e)*Ac/I;
nsup:=1+sqr(elinha)*Ac/I;
pp:= (Aplinha+Ap)/Ac;
sigmapi1infs3:= (sigmaps-sigmaprinfs3-sigmapcinfs3)/(xpinf+xc*alphaf*ninf*(pp/10000));
sigmapi1sups3:= (sigmaps-sigmaprsups3sigmapcsups3)/(xpsup+xc*alphaf*nsup*(pp/10000));
sigmapinfs3:= perdainfs3+sigmapi1infs3;
sigmapsups3:= perdasups3+sigmapi1sups3;
{Seo 4}
xpinf:= xinfs4+1;
xpsup:= xsups4+1;
xc:= 1+0.5*fi1;
ninf:=1+sqr(e)*Ac/I;
nsup:=1+sqr(elinha)*Ac/I;
pp:= (Aplinha+Ap)/Ac;
sigmapi1infs4:= (sigmaps-sigmaprinfs4-sigmapcinfs4)/(xpinf+xc*alphaf*ninf*(pp/10000));
sigmapi1sups4:= (sigmaps-sigmaprsups4sigmapcsups4)/(xpsup+xc*alphaf*nsup*(pp/10000));
sigmapinfs4:= perdainfs4+sigmapi1infs4;
sigmapsups4:= perdasups4+sigmapi1sups4;
{Verificaes}
{Seo 1}
Np:=sigmapinfs1*Ap+sigmapsups1*Aplinha;
Mp:=sigmapinfs1*Ap*e-sigmapsups1*Aplinha*elinha;
limsup:=700*fck;
liminf:=-fctkinf;
yts:=h-ycgcomposta;
Wts:=Icomposta/yts;
{Para Classe de agressividade II}
if CAA = 'II' then
begin
sig1is1:=Np/Ac+(Mp-Mg1s1-Mg2s1-Mg3s1)/W-(Mg4s1+Mg5s1+U1*Mqmaxs1)/Wicomposta;
sig2is1:=Np/Ac+(Mp-Mg1s1-Mg2s1-Mg3s1)/W-(Mg4s1+Mg5s1+U1*Mqmins1)/Wicomposta;
145
sig1ss1:=Np/Ac+(-Mp+Mg1s1+Mg2s1+Mg3s1)/W+(Mg4s1+Mg5s1+U1*Mqmaxs1)/Wts;
sig2ss1:=Np/Ac+(-Mp+Mg1s1+Mg2s1+Mg3s1)/W+(Mg4s1+Mg5s1+U1*Mqmins1)/Wts;
sig3is1:=Np/Ac+(Mp-Mg1s1-Mg2s1-Mg3s1)/W-(Mg4s1+Mg5s1+U2*Mqmaxs1)/Wicomposta;
sig4is1:=Np/Ac+(Mp-Mg1s1-Mg2s1-Mg3s1)/W-(Mg4s1+Mg5s1+U2*Mqmins1)/Wicomposta;
sig3ss1:=Np/Ac+(-Mp+Mg1s1+Mg2s1+Mg3s1)/W+(Mg4s1+Mg5s1+U2*Mqmaxs1)/Wts;
sig4ss1:=Np/Ac+(-Mp+Mg1s1+Mg2s1+Mg3s1)/W+(Mg4s1+Mg5s1+U2*Mqmins1)/Wts;
end;
{Para Classe de agressividade III e IV}
if (CAA = 'III') or (CAA = 'IV') then
begin
sig1is1:=Np/Ac+(Mp-Mg1s1-Mg2s1-Mg3s1)/W-(Mg4s1+Mg5s1+Mqmaxs1)/Wicomposta;
sig2is1:=Np/Ac+(Mp-Mg1s1-Mg2s1-Mg3s1)/W-(Mg4s1+Mg5s1+Mqmins1)/Wicomposta;
sig1ss1:=Np/Ac+(-Mp+Mg1s1+Mg2s1+Mg3s1)/W+(Mg4s1+Mg5s1+Mqmaxs1)/Wts;
sig2ss1:=Np/Ac+(-Mp+Mg1s1+Mg2s1+Mg3s1)/W+(Mg4s1+Mg5s1+Mqmins1)/Wts;
sig3is1:=Np/Ac+(Mp-Mg1s1-Mg2s1-Mg3s1)/W-(Mg4s1+Mg5s1+U1*Mqmaxs1)/Wicomposta;
sig4is1:=Np/Ac+(Mp-Mg1s1-Mg2s1-Mg3s1)/W-(Mg4s1+Mg5s1+U1*Mqmins1)/Wicomposta;
sig3ss1:=Np/Ac+(-Mp+Mg1s1+Mg2s1+Mg3s1)/W+(Mg4s1+Mg5s1+U1*Mqmaxs1)/Wts;
sig4ss1:=Np/Ac+(-Mp+Mg1s1+Mg2s1+Mg3s1)/W+(Mg4s1+Mg5s1+U1*Mqmins1)/Wts;
end;
{Seo 2}
Np:=sigmapinfs2*Ap+sigmapsups2*Aplinha;
Mp:=sigmapinfs2*Ap*e-sigmapsups2*Aplinha*elinha;
limsup:=700*fck;
liminf:=-fctkinf;
yts:=h-ycgcomposta;
Wts:=Icomposta/yts;
{Para Classe de agressividade II}
if CAA = 'II' then
begin
sig1is2:=Np/Ac+(Mp-Mg1s2-Mg2s2-Mg3s2)/W-(Mg4s2+Mg5s2+U1*Mqmaxs2)/Wicomposta;
sig2is2:=Np/Ac+(Mp-Mg1s2-Mg2s2-Mg3s2)/W-(Mg4s2+Mg5s2+U1*Mqmins2)/Wicomposta;
sig1ss2:=Np/Ac+(-Mp+Mg1s2+Mg2s2+Mg3s2)/W+(Mg4s2+Mg5s2+U1*Mqmaxs2)/Wts;
sig2ss2:=Np/Ac+(-Mp+Mg1s2+Mg2s2+Mg3s2)/W+(Mg4s2+Mg5s2+U1*Mqmins2)/Wts;
sig3is2:=Np/Ac+(Mp-Mg1s2-Mg2s2-Mg3s2)/W-(Mg4s2+Mg5s2+U2*Mqmaxs2)/Wicomposta;
sig4is2:=Np/Ac+(Mp-Mg1s2-Mg2s2-Mg3s2)/W-(Mg4s2+Mg5s2+U2*Mqmins2)/Wicomposta;
sig3ss2:=Np/Ac+(-Mp+Mg1s2+Mg2s2+Mg3s2)/W+(Mg4s2+Mg5s2+U2*Mqmaxs2)/Wts;
sig4ss2:=Np/Ac+(-Mp+Mg1s2+Mg2s2+Mg3s2)/W+(Mg4s2+Mg5s2+U2*Mqmins2)/Wts;
end;
{Para Classe de agressividade III e IV}
if (CAA = 'III') or (CAA = 'IV') then
begin
sig1is2:=Np/Ac+(Mp-Mg1s2-Mg2s2-Mg3s2)/W-(Mg4s2+Mg5s2+Mqmaxs2)/Wicomposta;
146
sig2is2:=Np/Ac+(Mp-Mg1s2-Mg2s2-Mg3s2)/W-(Mg4s2+Mg5s2+Mqmins2)/Wicomposta;
sig1ss2:=Np/Ac+(-Mp+Mg1s2+Mg2s2+Mg3s2)/W+(Mg4s2+Mg5s2+Mqmaxs2)/Wts;
sig2ss2:=Np/Ac+(-Mp+Mg1s2+Mg2s2+Mg3s2)/W+(Mg4s2+Mg5s2+Mqmins2)/Wts;
sig3is2:=Np/Ac+(Mp-Mg1s2-Mg2s2-Mg3s2)/W-(Mg4s2+Mg5s2+U1*Mqmaxs2)/Wicomposta;
sig4is2:=Np/Ac+(Mp-Mg1s2-Mg2s2-Mg3s2)/W-(Mg4s2+Mg5s2+U1*Mqmins2)/Wicomposta;
sig3ss2:=Np/Ac+(-Mp+Mg1s2+Mg2s2+Mg3s2)/W+(Mg4s2+Mg5s2+U1*Mqmaxs2)/Wts;
sig4ss2:=Np/Ac+(-Mp+Mg1s2+Mg2s2+Mg3s2)/W+(Mg4s2+Mg5s2+U1*Mqmins2)/Wts;
end;
{Seo 3}
Np:=sigmapinfs3*Ap+sigmapsups3*Aplinha;
Mp:=sigmapinfs3*Ap*e-sigmapsups3*Aplinha*elinha;
limsup:=700*fck;
liminf:=-fctkinf;
yts:=h-ycgcomposta;
Wts:=Icomposta/yts;
{Para Classe de agressividade II}
if CAA = 'II' then
begin
sig1is3:=Np/Ac+(Mp-Mg1s3-Mg2s3-Mg3s3)/W-(Mg4s3+Mg5s3+U1*Mqmaxs3)/Wicomposta;
sig2is3:=Np/Ac+(Mp-Mg1s3-Mg2s3-Mg3s3)/W-(Mg4s3+Mg5s3+U1*Mqmins3)/Wicomposta;
sig1ss3:=Np/Ac+(-Mp+Mg1s3+Mg2s3+Mg3s3)/W+(Mg4s3+Mg5s3+U1*Mqmaxs3)/Wts;
sig2ss3:=Np/Ac+(-Mp+Mg1s3+Mg2s3+Mg3s3)/W+(Mg4s3+Mg5s3+U1*Mqmins3)/Wts;
sig3is3:=Np/Ac+(Mp-Mg1s3-Mg2s3-Mg3s3)/W-(Mg4s3+Mg5s3+U2*Mqmaxs3)/Wicomposta;
sig4is3:=Np/Ac+(Mp-Mg1s3-Mg2s3-Mg3s3)/W-(Mg4s3+Mg5s3+U2*Mqmins3)/Wicomposta;
sig3ss3:=Np/Ac+(-Mp+Mg1s3+Mg2s3+Mg3s3)/W+(Mg4s3+Mg5s3+U2*Mqmaxs3)/Wts;
sig4ss3:=Np/Ac+(-Mp+Mg1s3+Mg2s3+Mg3s3)/W+(Mg4s3+Mg5s3+U2*Mqmins3)/Wts;
end;
{Para Classe de agressividade III e IV}
if (CAA = 'III') or (CAA = 'IV') then
begin
sig1is3:=Np/Ac+(Mp-Mg1s3-Mg2s3-Mg3s3)/W-(Mg4s3+Mg5s3+Mqmaxs3)/Wicomposta;
sig2is3:=Np/Ac+(Mp-Mg1s3-Mg2s3-Mg3s3)/W-(Mg4s3+Mg5s3+Mqmins3)/Wicomposta;
sig1ss3:=Np/Ac+(-Mp+Mg1s3+Mg2s3+Mg3s3)/W+(Mg4s3+Mg5s3+Mqmaxs3)/Wts;
sig2ss3:=Np/Ac+(-Mp+Mg1s3+Mg2s3+Mg3s3)/W+(Mg4s3+Mg5s3+Mqmins3)/Wts;
sig3is3:=Np/Ac+(Mp-Mg1s3-Mg2s3-Mg3s3)/W-(Mg4s3+Mg5s3+U1*Mqmaxs3)/Wicomposta;
sig4is3:=Np/Ac+(Mp-Mg1s3-Mg2s3-Mg3s3)/W-(Mg4s3+Mg5s3+U1*Mqmins3)/Wicomposta;
sig3ss3:=Np/Ac+(-Mp+Mg1s3+Mg2s3+Mg3s3)/W+(Mg4s3+Mg5s3+U1*Mqmaxs3)/Wts;
sig4ss3:=Np/Ac+(-Mp+Mg1s3+Mg2s3+Mg3s3)/W+(Mg4s3+Mg5s3+U1*Mqmins3)/Wts;
end;
{Seo 4}
Np:=sigmapinfs4*Ap+sigmapsups4*Aplinha;
Mp:=sigmapinfs4*Ap*e-sigmapsups4*Aplinha*elinha;
147
limsup:=700*fck;
liminf:=-fctkinf;
yts:=h-ycgcomposta;
Wts:=Icomposta/yts;
{Para Classe de agressividade II}
if CAA = 'II' then
begin
sig1is4:=Np/Ac+(Mp-Mg1s4-Mg2s4-Mg3s4)/W-(Mg4s4+Mg5s4+U1*Mqmaxs4)/Wicomposta;
sig2is4:=Np/Ac+(Mp-Mg1s4-Mg2s4-Mg3s4)/W-(Mg4s4+Mg5s4+U1*Mqmins4)/Wicomposta;
sig1ss4:=Np/Ac+(-Mp+Mg1s4+Mg2s4+Mg3s4)/W+(Mg4s4+Mg5s4+U1*Mqmaxs4)/Wts;
sig2ss4:=Np/Ac+(-Mp+Mg1s4+Mg2s4+Mg3s4)/W+(Mg4s4+Mg5s4+U1*Mqmins4)/Wts;
sig3is4:=Np/Ac+(Mp-Mg1s4-Mg2s4-Mg3s4)/W-(Mg4s4+Mg5s4+U2*Mqmaxs4)/Wicomposta;
sig4is4:=Np/Ac+(Mp-Mg1s4-Mg2s4-Mg3s4)/W-(Mg4s4+Mg5s4+U2*Mqmins4)/Wicomposta;
sig3ss4:=Np/Ac+(-Mp+Mg1s4+Mg2s4+Mg3s4)/W+(Mg4s4+Mg5s4+U2*Mqmaxs4)/Wts;
sig4ss4:=Np/Ac+(-Mp+Mg1s4+Mg2s4+Mg3s4)/W+(Mg4s4+Mg5s4+U2*Mqmins4)/Wts;
end;
{Para Classe de agressividade III e IV}
if (CAA = 'III') or (CAA = 'IV') then
begin
sig1is4:=Np/Ac+(Mp-Mg1s4-Mg2s4-Mg3s4)/W-(Mg4s4+Mg5s4+Mqmaxs4)/Wicomposta;
sig2is4:=Np/Ac+(Mp-Mg1s4-Mg2s4-Mg3s4)/W-(Mg4s4+Mg5s4+Mqmins4)/Wicomposta;
sig1ss4:=Np/Ac+(-Mp+Mg1s4+Mg2s4+Mg3s4)/W+(Mg4s4+Mg5s4+Mqmaxs4)/Wts;
sig2ss4:=Np/Ac+(-Mp+Mg1s4+Mg2s4+Mg3s4)/W+(Mg4s4+Mg5s4+Mqmins4)/Wts;
sig3is4:=Np/Ac+(Mp-Mg1s4-Mg2s4-Mg3s4)/W-(Mg4s4+Mg5s4+U1*Mqmaxs4)/Wicomposta;
sig4is4:=Np/Ac+(Mp-Mg1s4-Mg2s4-Mg3s4)/W-(Mg4s4+Mg5s4+U1*Mqmins4)/Wicomposta;
sig3ss4:=Np/Ac+(-Mp+Mg1s4+Mg2s4+Mg3s4)/W+(Mg4s4+Mg5s4+U1*Mqmaxs4)/Wts;
sig4ss4:=Np/Ac+(-Mp+Mg1s4+Mg2s4+Mg3s4)/W+(Mg4s4+Mg5s4+U1*Mqmins4)/Wts;
end;
{Calculando as perdas no tempo zero}
Nps1:=Ap*perdainfs1+Aplinha*perdasups1;
Mps1:=Ap*perdainfs1*e-Aplinha*perdasups1*elinha;
Nps2:=Ap*perdainfs2+Aplinha*perdasups2;
Mps2:=Ap*perdainfs2*e-Aplinha*perdasups2*elinha;
Nps3:=Ap*perdainfs3+Aplinha*perdasups3;
Mps3:=Ap*perdainfs3*e-Aplinha*perdasups3*elinha;
Nps4:=Ap*perdainfs4+Aplinha*perdasups4;
Mps4:=Ap*perdainfs4*e-Aplinha*perdasups4*elinha;
Nps5:=Ap*perdainf+Aplinha*perdasup;
Mps5:=Ap*perdainf*e-Aplinha*perdasup*elinha;
sigma1i:=Nps1/Ac + Mps1/W - Mg1s1/W;
sigma1s:=Nps1/Ac - Mps1/W + Mg1s1/W;
sigma2i:=Nps2/Ac + Mps2/W - Mg1s2/W;
sigma2s:=Nps2/Ac - Mps2/W + Mg1s2/W;
sigma3i:=Nps3/Ac + Mps3/W - Mg1s3/W;
sigma3s:=Nps3/Ac - Mps3/W + Mg1s3/W;
148
149
xx3:= 3*vao/10;
xx4:= 4*vao/10;
{Momento em dcimo de vo}
Mg1sx:=(g1*vao*0.45/2)-(g1*sqr(0.45)/2);
Mg1s1:=(g1*vao*xx1/2)-(g1*sqr(xx1)/2);
Mg1s2:=(g1*vao*xx2/2)-(g1*sqr(xx2)/2);
Mg1s3:=(g1*vao*xx3/2)-(g1*sqr(xx3)/2);
Mg1s4:=(g1*vao*xx4/2)-(g1*sqr(xx4)/2);
Mg2sx:=(g2*vao*0.45/2)-(g2*sqr(0.45)/2);
Mg2s1:=(g2*vao*xx1/2)-(g2*sqr(xx1)/2);
Mg2s2:=(g2*vao*xx2/2)-(g2*sqr(xx2)/2);
Mg2s3:=(g2*vao*xx3/2)-(g2*sqr(xx3)/2);
Mg2s4:=(g2*vao*xx4/2)-(g2*sqr(xx4)/2);
Mg3sx:=(g3*vao*0.45/2)-(g3*sqr(0.45)/2);
Mg3s1:=(g3*vao*xx1/2)-(g3*sqr(xx1)/2);
Mg3s2:=(g3*vao*xx2/2)-(g3*sqr(xx2)/2);
Mg3s3:=(g3*vao*xx3/2)-(g3*sqr(xx3)/2);
Mg3s4:=(g3*vao*xx4/2)-(g3*sqr(xx4)/2);
Mg4sx:=(g4*vao*0.45/2)-(g4*sqr(0.45)/2);
Mg4s1:=(g4*vao*xx1/2)-(g4*sqr(xx1)/2);
Mg4s2:=(g4*vao*xx2/2)-(g4*sqr(xx2)/2);
Mg4s3:=(g4*vao*xx3/2)-(g4*sqr(xx3)/2);
Mg4s4:=(g4*vao*xx4/2)-(g4*sqr(xx4)/2);
Mg5sx:=(g5*vao*0.45/2)-(g5*sqr(0.45)/2);
Mg5s1:=(g5*vao*xx1/2)-(g5*sqr(xx1)/2);
Mg5s2:=(g5*vao*xx2/2)-(g5*sqr(xx2)/2);
Mg5s3:=(g5*vao*xx3/2)-(g5*sqr(xx3)/2);
Mg5s4:=(g5*vao*xx4/2)-(g5*sqr(xx4)/2);
Mqminsx:=(qmin*vao*0.45/2)-(qmin*sqr(0.45)/2);
Mqmins1:=(qmin*vao*xx1/2)-(qmin*sqr(xx1)/2);
Mqmins2:=(qmin*vao*xx2/2)-(qmin*sqr(xx2)/2);
Mqmins3:=(qmin*vao*xx3/2)-(qmin*sqr(xx3)/2);
Mqmins4:=(qmin*vao*xx4/2)-(qmin*sqr(xx4)/2);
Mqmaxsx:=(qmax*vao*0.45/2)-(qmax*sqr(0.45)/2);
Mqmaxs1:=(qmax*vao*xx1/2)-(qmax*sqr(xx1)/2);
Mqmaxs2:=(qmax*vao*xx2/2)-(qmax*sqr(xx2)/2);
Mqmaxs3:=(qmax*vao*xx3/2)-(qmax*sqr(xx3)/2);
Mqmaxs4:=(qmax*vao*xx4/2)-(qmax*sqr(xx4)/2);
{Cortante em dcimo de vo}
Vg1sx:=(g1*vao/2)-g1*0.45;
Vg1s0:=(g1*vao/2);
Vg1s1:=(g1*vao/2)-g1*xx1;
Vg1s2:=(g1*vao/2)-g1*xx2;
Vg1s3:=(g1*vao/2)-g1*xx3;
Vg1s4:=(g1*vao/2)-g1*xx4;
150
Vg2sx:=(g2*vao/2)-g2*0.45;
Vg2s0:=(g2*vao/2);
Vg2s1:=(g2*vao/2)-g2*xx1;
Vg2s2:=(g2*vao/2)-g2*xx2;
Vg2s3:=(g2*vao/2)-g2*xx3;
Vg2s4:=(g2*vao/2)-g2*xx4;
Vg3sx:=(g3*vao/2)-g3*0.45;
Vg3s0:=(g3*vao/2);
Vg3s1:=(g3*vao/2)-g3*xx1;
Vg3s2:=(g3*vao/2)-g3*xx2;
Vg3s3:=(g3*vao/2)-g3*xx3;
Vg3s4:=(g3*vao/2)-g3*xx4;
Vg4sx:=(g4*vao/2)-g4*0.45;
Vg4s0:=(g4*vao/2);
Vg4s1:=(g4*vao/2)-g4*xx1;
Vg4s2:=(g4*vao/2)-g4*xx2;
Vg4s3:=(g4*vao/2)-g4*xx3;
Vg4s4:=(g4*vao/2)-g4*xx4;
Vg5sx:=(g5*vao/2)-g5*0.45;
Vg5s0:=(g5*vao/2);
Vg5s1:=(g5*vao/2)-g5*xx1;
Vg5s2:=(g5*vao/2)-g5*xx2;
Vg5s3:=(g5*vao/2)-g5*xx3;
Vg5s4:=(g5*vao/2)-g5*xx4;
Vqminsx:=(qmin*vao/2)-qmin*0.45;
Vqmins0:=(qmin*vao/2);
Vqmins1:=(qmin*vao/2)-qmin*xx1;
Vqmins2:=(qmin*vao/2)-qmin*xx2;
Vqmins3:=(qmin*vao/2)-qmin*xx3;
Vqmins4:=(qmin*vao/2)-qmin*xx4;
Vqmaxsx:=(qmax*vao/2)-qmax*0.45;
Vqmaxs0:=(qmax*vao/2);
Vqmaxs1:=(qmax*vao/2)-qmax*xx1;
Vqmaxs2:=(qmax*vao/2)-qmax*xx2;
Vqmaxs3:=(qmax*vao/2)-qmax*xx3;
Vqmaxs4:=(qmax*vao/2)-qmax*xx4;
Vsdx:= fs1*Vg1sx+fs2*Vg2sx+fs3*Vg3sx+fs4*Vg4sx+fs5*Vg5sx+fsq*Vqmaxsx;
Vsd0:= fs1*Vg1s0+fs2*Vg2s0+fs3*Vg3s0+fs4*Vg4s0+fs5*Vg5s0+fsq*Vqmaxs0;
alfav2:= 1-(fck/250);
Vrd2:=
0.54*alfav2*(fck*1000/1.4)*bw*d*sin(DegToRad(30))*sin(DegToRad(30))*(cot(DegToRad(90)
)+cot(DegToRad(30)));
fctd:=fctkinf/1.4;
Vc0:=0.6*fctd*bw*d;
pinf:=formulario.sigmapinf;
psup:=formulario.sigmapsup;
lbpti:=strtofloat(edit19.text);
lbpts:=strtofloat(edit18.text);
sigxi:=45*pinf/lbpti;
151
sigxs:=45*psup/lbpti;
Np:=Ap*sigxi+Aplinha*sigxs;
Mp:=Ap*sigxi*e-Aplinha*sigxs*elinha;
M0:=0.9*Np*W/Ac+0.9*Mp;
Msdx:= fs1*Mg1sx+fs2*Mg2sx+fs3*Mg3sx+fs4*Mg4sx+fs5*Mg5sx+fsq*Mqmaxsx;
if Msdx<M0 then Vc:=2*Vc0;
if Msdx>=M0 then Vc:=Vc0*(1+M0/Msdx);
Vsw:=Vsdx-Vc;
if Vsw<0 then
begin
Asw:=0.2*(fctm/500000)*bw*10000*sin(DegToRad(90));
espacamento:= 4*32/Asw;
if Vsdx/Vrd2 <= 0.67 then smax:=min(60*d,30)
else smax:=min(30*d,20);
if espacamento>smax then espacamento:=smax;
end
else
begin
Asw:=Vsw*100*1.15/(0.9*d*100*50);
if Asw<0.2*(fctm/500000)*bw*10000*sin(DegToRad(90)) then
Asw:=0.2*(fctm/500000)*bw*10000*sin(DegToRad(90));
espacamento:= 4*32/Asw;
if Vsdx/Vrd2 <= 0.67 then smax:=min(60*d,30)
else smax:=min(30*d,20);
if espacamento>smax then espacamento:=smax;
end;
{Abrir formulario 4}
Application.CreateForm(TFAPESP4, FAPESP4);
FAPESP4.ShowModal;
FAPESP4.Free;
end
else Showmessage('Calcule o valor do comprimento de transferncia!');
end;
procedure TFAPESP2.Button5Click(Sender: TObject);
begin
if (b3on=1) and (b4on=1) and (formulario3.b5on=1) and (formulario5.b6on=1) then
begin
saveDialog := TSaveDialog.Create(self);
saveDialog.Title := 'Criar arquivo para detalhamento';
saveDialog.InitialDir := GetCurrentDir;
saveDialog.Filter := 'Arquivo de texto|*.txt|';
saveDialog.DefaultExt := 'txt';
saveDialog.FilterIndex := 1;
if saveDialog.Execute
then
152
Begin
{Criando arquivo de texto}
AssignFile (f, saveDialog.FileName);
Rewrite (f);
Writeln(f,'
Arquivo para detalhamento');
Writeln(f,'===============================================');
Writeln(f,'');
Write(f,'Tipo de ao=>');
Writeln(f,StringReplace(formulario.tpaco, ',', '.', [rfReplaceAll]));
Write(f,'largura da alma, bw=>');
Writeln(f,StringReplace(floattostrf(formulario.bw*100,ffFixed,18,1), ',', '.', [rfReplaceAll]));
Write(f,'altura, h=>');
Writeln(f,StringReplace(floattostrf(formulario.h*100,ffFixed,18,1), ',', '.', [rfReplaceAll]));
Write(f,'cobrimento, c=>');
Writeln(f,StringReplace(floattostr(formulario.c), ',', '.', [rfReplaceAll]));
Write(f,'Dimetro do estribo=>');
Writeln(f,StringReplace(floattostrf(formulario.destribo,ffFixed,18,2), ',', '.', [rfReplaceAll]));
Write(f,'Dimetro da cordoalha=>');
Writeln(f,StringReplace(floattostrf(formulario.dcor,ffFixed,18,2), ',', '.', [rfReplaceAll]));
Write(f,'Dimetro do mximo agregado=>');
Writeln(f,StringReplace(floattostrf(formulario.dbrita,ffFixed,18,1), ',', '.', [rfReplaceAll]));
Write(f,'Dimetro do porta estribo=>');
Writeln(f,StringReplace(floattostrf(formulario.destribo,ffFixed,18,2), ',', '.', [rfReplaceAll]));
Write(f,'Nmero de cordoalhas de armadura positiva=>');
Writeln(f,StringReplace(floattostrf(formulario.n,ffFixed,18,0), ',', '.', [rfReplaceAll]));
Write(f,'Nmero de cordoalhas de armadura negativa=>');
Writeln(f,StringReplace(floattostrf(formulario.n0,ffFixed,18,0), ',', '.', [rfReplaceAll]));
Write(f,'Armadura passiva=>');
Writeln(f,StringReplace(floattostrf(formulario5.As1,ffFixed,18,2), ',', '.', [rfReplaceAll]));
Write(f,'Dimetro da armadura de pele=>');
Writeln(f,1);
Write(f,'Nmero de barras=>');
Writeln(f,StringReplace(floattostrf(formulario.npele,ffFixed,18,0), ',', '.', [rfReplaceAll]));
Write(f,'Posio da LN, x=>');
Writeln(f,StringReplace(floattostrf(x,ffFixed,18,1), ',', '.', [rfReplaceAll]));
Write(f,'altura til, d=>');
Writeln(f,StringReplace(floattostrf(formulario.d*100,ffFixed,18,1), ',', '.', [rfReplaceAll]));
Write(f,'capa=>');
Writeln(f,StringReplace(floattostrf(formulario.capa*100,ffFixed,18,1), ',', '.', [rfReplaceAll]));
Write(f,'altura da laje=>');
Writeln(f,StringReplace(floattostrf(formulario.hlaje*100,ffFixed,18,1), ',', '.', [rfReplaceAll]));
Write(f,'largura da mesa, bf=>');
Writeln(f,StringReplace(floattostrf(formulario.bff*100,ffFixed,18,1), ',', '.', [rfReplaceAll]));
Write(f,'vo=>');
Writeln(f,StringReplace(floattostrf(formulario.vao*100,ffFixed,18,1), ',', '.', [rfReplaceAll]));
Write(f,'espaamento vertical=>');
Writeln(f,StringReplace(floattostrf(formulario.sv,ffFixed,18,2), ',', '.', [rfReplaceAll]));
Write(f,'espaamento horizontal=>');
Writeln(f,StringReplace(floattostrf(formulario.sh,ffFixed,18,2), ',', '.', [rfReplaceAll]));
Write(f,'Cabos no isolados na seo 1=>');
Writeln(f, formulario5.nn1);
Write(f,'Cabos no isolados na seo 2=>');
Writeln(f, formulario5.nn2);
Write(f,'Cabos no isolados na seo 3=>');
Writeln(f, formulario5.nn3);
153
154
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Edit10: TEdit;
Edit11: TEdit;
Edit12: TEdit;
GroupBox2: TGroupBox;
Edit45: TEdit;
Edit46: TEdit;
Label22: TLabel;
Label23: TLabel;
Edit47: TEdit;
Edit48: TEdit;
Edit49: TEdit;
Edit50: TEdit;
Edit51: TEdit;
Edit52: TEdit;
Edit53: TEdit;
Edit54: TEdit;
GroupBox3: TGroupBox;
Label24: TLabel;
Label25: TLabel;
Edit55: TEdit;
Edit56: TEdit;
Edit57: TEdit;
Edit58: TEdit;
Edit59: TEdit;
Edit60: TEdit;
Edit61: TEdit;
Edit62: TEdit;
Edit63: TEdit;
Edit64: TEdit;
Label26: TLabel;
Edit65: TEdit;
Edit66: TEdit;
Label27: TLabel;
Label28: TLabel;
Label29: TLabel;
Label30: TLabel;
Label31: TLabel;
Label32: TLabel;
Edit13: TEdit;
Edit14: TEdit;
155
Edit21: TEdit;
Edit22: TEdit;
Edit29: TEdit;
Edit30: TEdit;
Edit37: TEdit;
Edit38: TEdit;
Edit15: TEdit;
Edit16: TEdit;
Edit17: TEdit;
Edit18: TEdit;
Edit19: TEdit;
Edit20: TEdit;
Edit28: TEdit;
Edit27: TEdit;
Edit35: TEdit;
Edit36: TEdit;
Edit44: TEdit;
Edit43: TEdit;
Edit42: TEdit;
Edit41: TEdit;
Edit33: TEdit;
Edit34: TEdit;
Edit26: TEdit;
Edit25: TEdit;
Edit24: TEdit;
Edit23: TEdit;
Edit31: TEdit;
Edit32: TEdit;
Edit39: TEdit;
Edit40: TEdit;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
Label20: TLabel;
Label21: TLabel;
Label33: TLabel;
Button1: TButton;
Button2: TButton;
Label111: TLabel;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FAPESP3: TFAPESP3;
b5on, {se o valor for 1 indica que o boto 1 do form 3 foi ativado}
perda1i, {Perda de protenso em dcimo de vo}
perda1s,
perda2i,
156
perda2s,
perda3i,
perda3s,
perda4i,
perda4s,
perda5i,
perda5s,
Nps5, {Normal no meio do vo (seo 5)}
Mps5 {Momento no meio do vo (seo 5)}: real;
implementation
uses Formulario, Formulario2, Formulario4, Formulario5;
{$R *.dfm}
procedure TFAPESP3.FormCreate(Sender: TObject);
begin
{Nome dos ttulos}
if formulario.CAA = 'II' then
begin
label1.caption := 'Combinao Quase Permanente';
label9.caption := 'Combinao Frequente';
end;
if (formulario.CAA = 'III') or (formulario.CAA = 'IV') then
begin
label1.caption := 'Combinao Frequente';
label9.caption := 'Combinao Rara';
end;
linf:=formulario2.linf;
lsup:=formulario2.lsup;
sig1is1:=formulario2.sig1is1;
sig1ss1:=formulario2.sig1ss1;
sig1is2:=formulario2.sig1is2;
sig1ss2:=formulario2.sig1ss2;
sig1is3:=formulario2.sig1is3;
sig1ss3:=formulario2.sig1ss3;
sig1is4:=formulario2.sig1is4;
sig1ss4:=formulario2.sig1ss4;
edit7.Text:=floattostrf(sig1is1,ffFixed,18,2);
edit17.Text:=floattostrf(sig1is2,ffFixed,18,2);
edit25.Text:=floattostrf(sig1is3,ffFixed,18,2);
edit33.Text:=floattostrf(sig1is4,ffFixed,18,2);
edit9.Text:=floattostrf(sig1ss1,ffFixed,18,2);
edit19.Text:=floattostrf(sig1ss2,ffFixed,18,2);
edit27.Text:=floattostrf(sig1ss3,ffFixed,18,2);
edit35.Text:=floattostrf(sig1ss4,ffFixed,18,2);
if (sig1is1<linf) or (sig1is1>lsup) then edit7.Color:=clred;
if (sig1is2<linf) or (sig1is2>lsup) then edit17.Color:=clred;
157
158
159
160
edit61.text:=floattostrf(perda4s,ffFixed,18,2);
edit62.text:=floattostrf(perda4i,ffFixed,18,2);
edit63.text:=floattostrf(perda5s,ffFixed,18,2);
edit64.text:=floattostrf(perda5i,ffFixed,18,2);
end;
procedure TFAPESP3.Button1Click(Sender: TObject);
begin
b5on:=1;
{Abrir formulario 5}
Application.CreateForm(TFAPESP5, FAPESP5);
FAPESP5.ShowModal;
FAPESP5.Free;
end;
procedure TFAPESP3.Button2Click(Sender: TObject);
begin
if formulario5.b6on=1 then close
else showmessage('Faa as verificaes do isolamento de cabos!');
end;
end.
161
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Edit9: TEdit;
Button1: TButton;
Label111: TLabel;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FAPESP4: TFAPESP4;
est: Real;
implementation
uses Formulario, Formulario2, Formulario3, Formulario5;
{$R *.dfm}
procedure TFAPESP4.FormCreate(Sender: TObject);
begin
Vrd2:= formulario2.Vrd2;
Vsdx:= formulario2.Vsdx;
Vc:=formulario2.Vc;
Vsw:=formulario2.Vsw;
Asw:=formulario2.Asw;
est:=6.3;
espacamento:=formulario2.espacamento;
edit1.text:= floattostrf(Vrd2,ffFixed,18,2);
edit2.text:= floattostrf(Vsdx,ffFixed,18,2);
edit3.text:=floattostrf(Vc,ffFixed,18,2);
edit4.text:=floattostrf(Vsw,ffFixed,18,2);
edit5.text:=floattostrf(Asw,ffFixed,18,2);
edit6.text:=floattostrf(espacamento,ffFixed,18,2);
edit8.text:=floattostrf(est,ffFixed,18,2);
edit9.text:= '4 ramos';
if Vsw<0 then
edit7.text:='A armadura transversal apenas construtiva.'
else
edit7.text:='A armadura transversal no apenas construtiva.';
if Vrd2<Vsd0 then edit1.color:= clred;
end;
procedure TFAPESP4.Button1Click(Sender: TObject);
begin
162
close;
end;
end.
163
var
FAPESP5: TFAPESP5;
b6on, {se o valor for 1 indica que o boto 1 do form 5 foi ativado}
xs1, {posio da LN na seo 1}
xs2, {posio da LN na seo 2}
xs3, {posio da LN na seo 3}
xs4, {posio da LN na seo 4}
xs5, {posio da LN na seo 5}
ft1, {fora de trao na seo 1}
ft2, {fora de trao na seo 2}
ft3, {fora de trao na seo 3}
ft4, {fora de trao na seo 4}
ft5, {fora de trao na seo 5}
As1, {rea de ao na seo 1}
As2, {rea de ao na seo 2}
As3, {rea de ao na seo 3}
As4, {rea de ao na seo 4}
As5, {rea de ao na seo 5}
sigma1, {tenso na fibra superior para o clculo do isolamento de cabos S1}
sigma2, {tenso na fibra superior para o clculo do isolamento de cabos S2}
sigma3, {tenso na fibra superior para o clculo do isolamento de cabos S3}
sigma4, {tenso na fibra superior para o clculo do isolamento de cabos S4}
sigma5, {tenso na fibra superior para o clculo do isolamento de cabos S5}
nn, {nmero de cabos descontando os isolados}
Apn, {rea de ao descontando os cabos isolados}
rb {valor do Radio button, se rb=1 o limite 0; se rb=2 o limite lzinf} :real;
nn1, nn2, nn3, nn4, nn5 {quantidade de cabos no isolados em string} : string;
implementation
uses Formulario, Formulario2, Formulario4;
{$R *.dfm}
procedure TFAPESP5.RadioButton1Click(Sender: TObject);
begin
rb:=1;
{zerando os valores de tenso limitada}
edit6.Text:='';
edit7.Text:='';
edit8.Text:='';
edit9.Text:='';
edit10.Text:='';
edit11.Text:='';
edit12.Text:='';
edit13.Text:='';
edit14.Text:='';
edit15.Text:='';
{Valores de tenso no tempo zero}
sigma1:=formulario2.sigma1s;
sigma2:=formulario2.sigma2s;
164
sigma3:=formulario2.sigma3s;
sigma4:=formulario2.sigma4s;
sigma5:=formulario2.sigma5s;
perdasups1:=formulario2.perdasups1;
perdasups2:=formulario2.perdasups2;
perdasups3:=formulario2.perdasups3;
perdasups4:=formulario2.perdasups4;
n:=formulario.n;
elinha:=formulario.elinha;
Aaco:=formulario.Aaco;
Ac:=formulario.Ac;
W:=formulario.W;
lzinf:=formulario2.lzinf;
{Seo 1}
if sigma1>=0 then begin edit1.text:=floattostr(n); nn1:=edit1.text; end
else begin
nn:=n;
while sigma1<0 do begin
nn:=nn-1;
Apn:= nn*Aaco;
Nps1:=Apn*perdasups1;
Mps1:=Apn*perdasups1*elinha;
sigma1:=Nps1/Ac - Mps1/W + Mg1s1/W;
end;
edit1.text:=floattostr(nn);
nn1:=edit1.text;
end;
{Seo 2}
if sigma2>=0 then begin edit2.text:=floattostr(n); nn2:=edit2.text; end
else begin
nn:=n;
while sigma2<0 do begin
nn:=nn-1;
Apn:= nn*Aaco;
Nps2:=Apn*perdasups2;
Mps2:=Apn*perdasups2*elinha;
sigma2:=Nps2/Ac - Mps2/W + Mg1s2/W;
end;
edit2.text:=floattostr(nn);
nn2:=edit2.text;
end;
{Seo 3}
if sigma3>=0 then begin edit3.text:=floattostr(n); nn3:=edit3.text; end
else begin
nn:=n;
while sigma3<0 do begin
nn:=nn-1;
Apn:= nn*Aaco;
Nps3:=Apn*perdasups3;
Mps3:=Apn*perdasups3*elinha;
sigma3:=Nps3/Ac - Mps3/W + Mg1s3/W;
end;
165
edit3.text:=floattostr(nn);
nn3:=edit3.text;
end;
{Seo 4}
if sigma4>=0 then begin edit4.text:=floattostr(n); nn4:=edit4.text; end
else begin
nn:=n;
while sigma4<0 do begin
nn:=nn-1;
Apn:= nn*Aaco;
Nps4:=Apn*perdasups4;
Mps4:=Apn*perdasups4*elinha;
sigma4:=Nps4/Ac - Mps4/W + Mg1s4/W;
end;
edit4.text:=floattostr(nn);
nn4:=edit4.text;
end;
{seo 5}
if sigma5>=0 then begin edit5.text:=floattostr(n); nn5:=edit5.text; end
else begin
edit5.text:= 'X';
edit1.Color:=clred;
edit2.Color:=clred;
edit3.Color:=clred;
edit4.Color:=clred;
edit5.Color:=clred;
end;
end;
procedure TFAPESP5.RadioButton2Click(Sender: TObject);
begin
rb:=2;
{zerando os valores de tenso zero}
edit1.Text:='';
edit2.Text:='';
edit3.Text:='';
edit4.Text:='';
edit5.Text:='';
edit1.Color:=clWindow;
edit2.Color:=clWindow;
edit3.Color:=clWindow;
edit4.Color:=clWindow;
edit5.Color:=clWindow;
{Valores de tenso no tempo zero}
sigma1:=formulario2.sigma1s;
sigma2:=formulario2.sigma2s;
sigma3:=formulario2.sigma3s;
sigma4:=formulario2.sigma4s;
sigma5:=formulario2.sigma5s;
sigma1i:=formulario2.sigma1i;
166
sigma2i:=formulario2.sigma2i;
sigma3i:=formulario2.sigma3i;
sigma4i:=formulario2.sigma4i;
sigma5i:=formulario2.sigma5i;
h:=formulario.h;
bw:=formulario.bw;
xs1:=abs(sigma1)*h/(abs(sigma1)+sigma1i);
xs2:=abs(sigma2)*h/(abs(sigma2)+sigma2i);
xs3:=abs(sigma3)*h/(abs(sigma3)+sigma3i);
xs4:=abs(sigma4)*h/(abs(sigma4)+sigma4i);
xs5:=abs(sigma5)*h/(abs(sigma5)+sigma5i);
ft1:=abs(sigma1)*bw*xs1/2;
ft2:=abs(sigma2)*bw*xs2/2;
ft3:=abs(sigma3)*bw*xs3/2;
ft4:=abs(sigma4)*bw*xs4/2;
ft5:=abs(sigma5)*bw*xs5/2;
As1:=ft1/25;
As2:=ft2/25;
As3:=ft3/25;
As4:=ft4/25;
As5:=ft5/25;
perdasups1:=formulario2.perdasups1;
perdasups2:=formulario2.perdasups2;
perdasups3:=formulario2.perdasups3;
perdasups4:=formulario2.perdasups4;
n:=formulario.n;
elinha:=formulario.elinha;
Aaco:=formulario.Aaco;
Ac:=formulario.Ac;
W:=formulario.W;
lzinf:=formulario2.lzinf;
{Seo 1}
if sigma1>=lzinf then begin edit6.text:=floattostr(n); nn1:=edit6.text; end
else begin
nn:=n;
while sigma1<lzinf do begin
nn:=nn-1;
Apn:= nn*Aaco;
Nps1:=Apn*perdasups1;
Mps1:=Apn*perdasups1*elinha;
sigma1:=Nps1/Ac - Mps1/W + Mg1s1/W;
end;
edit6.text:=floattostr(nn);
nn1:=edit6.text;
end;
edit11.text:=floattostrf(As1,ffFixed,18,2);
{Seo 2}
if sigma2>=lzinf then begin edit7.text:=floattostr(n); nn2:=edit7.text; end
167
else begin
nn:=n;
while sigma2<lzinf do begin
nn:=nn-1;
Apn:= nn*Aaco;
Nps2:=Apn*perdasups2;
Mps2:=Apn*perdasups2*elinha;
sigma2:=Nps2/Ac - Mps2/W + Mg1s2/W;
end;
edit7.text:=floattostr(nn);
nn2:=edit7.text;
end;
edit12.text:=floattostrf(As2,ffFixed,18,2);
{Seo 3}
if sigma3>=lzinf then begin edit8.text:=floattostr(n); nn3:=edit8.text; end
else begin
nn:=n;
while sigma3<lzinf do begin
nn:=nn-1;
Apn:= nn*Aaco;
Nps3:=Apn*perdasups3;
Mps3:=Apn*perdasups3*elinha;
sigma3:=Nps3/Ac - Mps3/W + Mg1s3/W;
end;
edit8.text:=floattostr(nn);
nn3:=edit8.text;
end;
edit13.text:=floattostrf(As3,ffFixed,18,2);
{Seo 4}
if sigma4>=lzinf then begin edit9.text:=floattostr(n); nn4:=edit9.text; end
else begin
nn:=n;
while sigma4<lzinf do begin
nn:=nn-1;
Apn:= nn*Aaco;
Nps4:=Apn*perdasups4;
Mps4:=Apn*perdasups4*elinha;
sigma4:=Nps4/Ac - Mps4/W + Mg1s4/W;
end;
edit9.text:=floattostr(nn);
nn4:=edit9.text;
end;
edit14.text:=floattostrf(As4,ffFixed,18,2);
{seo 5}
edit10.text:= floattostr(n);
nn5:=edit10.text;
edit15.text:=floattostrf(As5,ffFixed,18,2);
end;
procedure TFAPESP5.Button1Click(Sender: TObject);
begin
168
169
170
171
172
173
(setq mlinha2 m)
(setq mlinhan mn)
(setq mlinha2n mn)
(setq b1 (+ 2 d1 (* 0.04 d1)))
(setq b2 (+ d1 (* 0.04 d1) d1 (* 0.04 d1)))
(setq b3 (+ (* 1.2 d2) d1 (* 0.04 d1)))
(setq b4 (+ (* 0.5 d1) d1 (* 0.04 d1)))
(setq ah (max b1 b2 b3))
(setq av (max b1 b2 b4))
(setq a (- b (* 2 (+ c fi (/ (+ d1 (* 0.04 d1)) 2)))))
(setq alinha (- b (* 2 (+ c fi (/ d1 2)))))
(setq n (fix (/ a ah)))
(setq nlinha n)
(setq nlinha2 n)
(setq nlinha3 n)
(setq a3linha a3)
(setq a3linha2 a3)
(setq a3linha3 a3)
(setq a3linha4 a3)
(setq a3linha5 a3)
;Desenho das barras
(command ".layer" "S" "Barras" "")
(setq pe (* (/ (sqrt 2) 2) (- (+ (/ d1 2) fi (* (sqrt 2) (+ c fi1))) fi1)))
(setq pe1 (* (/ (sqrt 2) 2) (- (+ (/ d3 2) fi (* (sqrt 2) (+ c fi1))) fi1)))
(setq pe2 (- b pe))
(setq pe3 (- h (* (/ (sqrt 2) 2) (- (+ (/ d3 2) fi (* (sqrt 2) (+ c fi1))) fi1))))
(setq pe4 (- b (* (/ (sqrt 2) 2) (- (+ (/ d3 2) fi (* (sqrt 2) (+ c fi1))) fi1))))
(command ".circle" (list pe1 pe1) (/ d3 2))
(command ".circle" (list pe4 pe1) (/ d3 2))
(command ".circle" (list pe1 pe3) (/ d3 2))
(command ".circle" (list pe4 pe3) (/ d3 2))
(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))
(command ".circle" (list pe1 pe1) (/ d3 2))
(command ".circle" (list pe4 pe1) (/ d3 2))
(command ".circle" (list pe1 pe3) (/ d3 2))
(command ".circle" (list pe4 pe3) (/ d3 2))
(command ".circle" (list (+ pe1 7) pe1) (/ d3 2))
(command ".circle" (list (- pe4 7) pe1) (/ d3 2))
(command ".circle" (list (+ pe1 7) (+ pe3 hlaje capa)) (/ d3 2))
(command ".circle" (list (- pe4 7) (+ pe3 hlaje capa)) (/ d3 2))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(setq mg 2)
(setq ahlinha (/ alinha n))
(setq ahli ahlinha)
(setq ahli2 ahlinha)
(setq ncam1 (/ m (+ n 1))) ; numero de camadas para o caso onde todas as camadas
possuam a mesma quantidade de barras
(setq ncam2 (+ 1 (fix (/ m (+ n 1))))) ; numero de barras para nmero de camadas
assimtricas
(setq ahu (/ alinha (- m 1)))
(setq ahu2 ahu)
174
175
176
177
178
179
180
)
)
(if (< mn (+ n 1))
(while (> (- mlinhan 2) 0)
(command ".circle" (list (+ a3 (/ d1 2) ahu2n) (- h (+ a3 (/ d1 2)))) (/ d1 2))
(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))
(command ".circle" (list (+ a3 (/ d1 2) ahu2n) (- h (+ a3 (/ d1 2)))) (/ d1 2))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(setq ahu2n (+ ahu2n ahun))
(setq mlinhan (- mlinhan 1))))
)
(if (> (rem mn (+ n 1)) 0)
(if (= (+ 1 (fix (/ mn (+ n 1)))) 2)
(while (> (- mlinhan (+ n 1)) 0)
(while (> (+ nlinha 1) 2)
(command ".circle" (list (+ a3 (/ d1 2) ahli) (- h (+ a3 (/ d1 2)))) (/ d1 2))
(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))
(command ".circle" (list (+ a3 (/ d1 2) ahli) (- h (+ a3 (/ d1 2)))) (/ d1 2))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(setq ahli (+ ahli ahlinha))
(setq nlinha (- nlinha 1)))
(if (= (rem sinn 2) 0)
(progn
(command ".circle" (list (- b (+ a3linha (/ d1 2))) (- h (+ a3 (/ d1 2) av))) (/ d1 2))
(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))
(command ".circle" (list (- b (+ a3linha (/ d1 2))) (- h (+ a3 (/ d1 2) av))) (/ d1 2))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(setq a3linha (+ a3linha ahlinha)))
(progn
(command ".circle" (list (+ a3linha2 (/ d1 2)) (- h (+ a3 (/ d1 2) av))) (/ d1 2))
(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))
(command ".circle" (list (+ a3linha2 (/ d1 2)) (- h (+ a3 (/ d1 2) av))) (/ d1 2))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(setq a3linha2 (+ a3linha2 ahlinha))))
(setq mlinhan (- mlinhan 1))
(setq sinn (- sinn 1)))
(if (= (+ 1 (fix (/ mn (+ n 1)))) 3)
(while (> (- mlinhan (* (+ n 1) (- ncam2n 1)))0)
(while (> (+ nlinha 1) 0)
(while (> (+ nlinha2 1) 2)
(command ".circle" (list (+ a3 (/ d1 2) ahli) (- h (+ a3 (/ d1 2)))) (/ d1 2))
(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))
(command ".circle" (list (+ a3 (/ d1 2) ahli) (- h (+ a3 (/ d1 2)))) (/ d1 2))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(setq ahli (+ ahli ahlinha))
(setq nlinha2 (- nlinha2 1)))
(command ".circle" (list (+ a3linha (/ d1 2)) (- h (+ a3 (/ d1 2) av))) (/ d1 2))
(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))
(command ".circle" (list (+ a3linha (/ d1 2)) (- h (+ a3 (/ d1 2) av))) (/ d1 2))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(setq a3linha (+ a3linha ahlinha))
(setq nlinha (- nlinha 1)))
(if (= (rem sinn 2) 0)
(progn
181
182
)
)
)
(command ".linetype" "s" "bylayer" "")
(command ".layer" "S" "Eixos" "")
; subrotina do desenho do estribo ao lado da secao transversal
(setq lreto (- (+ (* 2 (- h (* 2 c))) (* 2 (- b (* 2 c)))) (* 8 (+ fi (/ fi1 2)))))
(setq lcurva (/ (* pi (+ fi1 fi)) 4))
(setq lgreto (+ (* 10 fi) (/ (* pi (+ fi1 fi)) 4)))
(setq lestr (+ lreto (* 3 lcurva) (* 2 lgreto)))
(setq lretob (- (+ (* 2 (- (+ h hlaje capa) (* 2 c))) (* 2 (- (- b 14) (* 2 c)))) (* 8 (+ fi (/ fi1 2)))))
(setq lestrb (+ lretob (* 3 lcurva) (* 2 lgreto)))
(command ".ucs" "M" (list (+ b 15) 0))
(command ".layer" "S" "Estribo" "")
(setq ce1 (+ c fi1))
(setq ce2 (- b ce1))
(setq a1 (- b c))
(setq ce3 (- h ce1))
(setq a2 (- h c))
(setq a3 (+ c fi))
(setq a4 (- a1 fi))
(setq a5 (- a2 fi))
(setq p1 (list ce1 c))
(setq p2 (list ce2 c))
(setq p3 (list a1 ce1))
(setq p4 (list a1 ce3))
(setq p5 (list ce2 a2))
(setq p6 (list ce1 a2))
(setq p7 (list c ce3))
(setq p8 (list c ce1))
(setq pc1 (list ce2 (+ c fi1)))
(setq pc2 (list (- a1 fi1) ce3))
(setq pc3 (list ce1 (- a2 fi1)))
(setq pc4 (list (+ c fi1) ce1))
(command "pline" p1 p2 "arc" "CE" pc1 p3 "L" p4 "arc" "CE" pc2 p5 "L" p6 "arc" "CE" pc3 p7
"L" p8 "arc" "CE" pc4 p1 "")
(setq objeto (entlast))
(command "offset" fi objeto (list (/ b 2) (/ h 2)) "")
(command ".ucs" "M" (list (+ b 5) (+ (* 3 (+ hlaje capa))h)))
(setq p1 (list (+ ce1 7) (- c (+ (* 3 (+ hlaje capa))h))))
(setq p2 (list (- ce2 7) (- c (+ (* 3 (+ hlaje capa))h))))
(setq p3 (list (- a1 7) (- ce1 (+ (* 3 (+ hlaje capa))h))))
(setq p4 (list (- a1 7) (+ hlaje capa (- ce3 (+ (* 3 (+ hlaje capa))h)))))
(setq p5 (list (- ce2 7) (+ hlaje capa (- a2 (+ (* 3 (+ hlaje capa))h)))))
(setq p6 (list (+ ce1 7) (+ hlaje capa (- a2 (+ (* 3 (+ hlaje capa))h)))))
(setq p7 (list (+ c 7) (+ hlaje capa (- ce3 (+ (* 3 (+ hlaje capa))h)))))
(setq p8 (list (+ c 7) (- ce1 (+ (* 3 (+ hlaje capa))h))))
(setq pc1 (list (- ce2 7) (+ (- c (+ (* 3 (+ hlaje capa))h)) fi1)))
(setq pc2 (list (- (- a1 fi1) 7) (+ hlaje capa (- ce3 (+ (* 3 (+ hlaje capa))h)))))
183
184
185
186
(progn
(command ".linetype" "s" "dashedx2" "")
(command ".line" (list (+ a3 (/ d1 2)) (+ h 3)) (list (+ a3 (/ d1 2)) (- h (+ a3 (/ d1 2) 2)))
"")
(setq lin2 (entlast))
(command ".array" lin2 "" "R" "1" (+ n 1) ahlinha)
(command ".linetype" "s" "bylayer" ""))
)
)
)
(command ".layer" "S" "Texto" "")
(and (= (rem mn (+ n 1)) 0) ; verificando cada caso para definir o nmero de camadas
(setq ncamn ncam1n))
(and (> (rem mn (+ n 1)) 0) (>= mn (+ n 1))
(setq ncamn ncam2n))
(and (> (rem mn (+ n 1)) 0) (< mn (+ n 1))
(setq ncamn ncam1n))
; cotando direto com texto a armadura negativa
(setq a3linha4 a3)
(setq nlinha3 n)
(if (>= mn (+ nlinha3 1))
(progn
(setq ahlinhai (rtos ahlinha 2 1))
(setq avi (rtos av 2 1))
(setq userfont "arial.ttf")
(setvar "textstyle" (cdr (assoc 2 (tblnext "style" t))))
(command "._Style" "" userfont 1 1 0 "N" "N")
(while (> nlinha3 0)
(command ".text" (list (+ a3linha4 (/ d1 2) (- (/ ahlinha 2) 1.1)) (+ h 1)) 0 ahlinhai)
(setq a3linha4 (+ a3linha4 ahlinha))
(setq nlinha3 (- nlinha3 1))
)
(while (> ncamn 1)
(command ".text" (list -1 (- h (+ a3linha5 (/ d1 2) (+ (/ av 2) 1.1)))) 90 avi)
(setq a3linha5 (+ a3linha5 av))
(setq ncamn (- ncamn 1))
)
)
(progn
(setq ahu3i (rtos ahun 2 1))
(setq userfont "arial.ttf")
(setvar "textstyle" (cdr (assoc 2 (tblnext "style" t))))
(command "._Style" "" userfont 1 1 0 "N" "N")
(while (> (- mlinha2n 1) 0)
(command ".text" (list (+ a3linha4 (/ d1 2) (- (/ ahun 2) 1.1)) (+ h 1)) 0 ahu3i)
(setq a3linha4 (+ a3linha4 ahun))
(setq mlinha2n (- mlinha2n 1))
)
)
)
(if (> h 60) ; caso onde h armadura de pele
(progn
187
188
189
(command ".text" "s" "standard" "BC" (list (/ vao 2) -100) "0" text)
(setq text (strcat (rtos mmm) " N1 " "%%c" (rtos(* d1 10)) "-" (rtos vao)))
(command ".text" "s" "standard" "BC" (list (/ vao 2) -150) "0" text)
(setq text (strcat "4 N5 " "%%c" (rtos(* fi 10)) "-" (rtos vao)))
(command ".text" "s" "standard" "BC" (list (/ vao 2) (+ 150 h)) "0" text)
(if (not (= mnm 0))
(progn
(setq text (strcat (rtos mnm) " N4 " "%%c" (rtos(* d1 10)) "-" (rtos vao)))
(command ".text" "s" "standard" "BC" (list (/ vao 2) (+ 200 h)) "0" text)
)
)
(command ".layer" "S" "Cabos" "")
(command ".text" "s" "standard" "BC" (list (/ vao 20) (+ h 5)) "0" nn1)
(command ".text" "s" "standard" "BC" (list (- (* (/ vao 10) 2) (/ vao 20)) (+ h 5)) "0" nn2)
(command ".text" "s" "standard" "BC" (list (- (* (/ vao 10) 3) (/ vao 20)) (+ h 5)) "0" nn3)
(command ".text" "s" "standard" "BC" (list (- (* (/ vao 10) 4) (/ vao 20)) (+ h 5)) "0" nn4)
(command ".text" "s" "standard" "BC" (list (- (* (/ vao 10) 5) (/ vao 20)) (+ h 5)) "0" nn5)
(command ".ucs" "M" (list -230 0))
; Criao da tabela de ao
(command ".layer" "S" "Tabela" "")
(command ".ucs" "M" (list (+ 325 vao) 0))
(setq p1 (list 0 0))
(setq p2 (list 105 0))
(setq p3 (list 195 0))
(setq p4 (list 263 0))
(setq p5 (list 346 0))
(setq p6 (list 426 0))
; Calculando os pesos
(setq paco 0.0078)
(setq peso1 (* mmm (/ (* d1 d1 pi) 4) vao paco))
(setq peso2 (* 4 (/ (* d3 d3 pi) 4) vao paco))
(if (> h 60)
(setq peso3 (* (* 2 nap) (/ (* dap dap pi) 4) vao paco))
(setq peso3 0)
)
(if (not (= mnm 0))
(setq peso4 (* mmm (/ (* d1 d1 pi) 4) vao paco))
(setq peso4 0)
)
(setq peso5 (* 4 (/ (* d3 d3 pi) 4) vao paco))
(setq peso6 (* nest1 (/ (* fi fi pi) 4) lestr paco))
(setq peso7 (* nest1 (/ (* fi fi pi) 4) lestrb paco))
(setq pesot (+ peso1 peso2 peso3 peso4 peso5 peso6 peso7))
(setq userfont "arial.ttf")
(setvar "textstyle" (cdr (assoc 2 (tblnext "style" t))))
(command "._Style" "" userfont 7.2 1 0 "N" "N")
(command ".text" "s" "standard" "MC" p1 "0" "Barra / Cordoalha")
(command ".text" "s" "standard" "MC" p2 "0" "Funo")
(command ".text" "s" "standard" "MC" p3 "0" "Quantidade")
(command ".text" "s" "standard" "MC" p4 "0" "Dimetro (mm)")
(command ".text" "s" "standard" "MC" p5 "0" "Comprimento (cm)")
190
191
192
193
194
195
196
(setvar "OSMODE" V)
(setvar "CMDECHO" 1)
(princ)
)
197
198
*Dados de sada
Armadura positiva mnima em cm2 =>8,09
Armadura positiva mxima em cm2 =>15,60
Armadura positiva em cm2 =>9,86
Nmero de cordoalhas =>10
Armadura negativa em cm2 =>1,972
Nmero de cordoalhas =>2
mxima altura til possvel em cm =>84,3
Perda no bordo inferior em % =>23,03
Perda no bordo superior em % =>14,69