Você está na página 1de 198

UNIVERSIDADE

FEDERAL DE SO CARLOS
CENTRO DE CINCIAS EXATAS E DE TECNOLOGIA
DEPARTAMENTO DE ENGENHARIA CIVIL

PROGRAMA PARA CLCULO E DETALHAMENTO DE ARMADURA DE


VIGAS PR-TRACIONADAS




Rodrigo Mattos Scavassin




Trabalho de Concluso de Curso
apresentado ao Departamento de
Engenharia Civil da Universidade Federal
de So Carlos como parte dos requisitos
para a concluso da graduao em
Engenharia Civil


Orientador: Roberto Chust Carvalho








So Carlos
2012


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.

Key-words: software, precast concrete, prestressed

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

10. ANEXOS ......................................................................................................................... 79


10.1 ANEXO A JANELA1 DELPHI........................................................................ 79
10.2 ANEXO B JANELA2 DELPHI ...................................................................... 126
10.3 ANEXO C JANELA3 DELPHI...................................................................... 153
10.4 ANEXO D JANELA4 DELPHI...................................................................... 160
10.5 ANEXO E JANELA5 DELPHI ...................................................................... 162
10.6 ANEXO F ROTINA LISP ................................................................................. 168
10.7 ANEXO G ARQUIVO PARA DETALHAMENTO ....................................... 196
10.8 ANEXO H ARQUIVO PARA SALVAR DADOS ........................................... 196

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

programa comercial nacional que se dedica a questo no calcula as perdas de protenso e


algumas peas (como as lajes alveolares que podem ser calculadas como vigas) apenas
verifica as situaes de ELU para uma armadura dada e indica as tenses em servio
deixando para o projetista as demais tarefas. De posse de uma ferramenta como a que se
deseja executar o projetista ou estudante poder ter subsdios para analisar o clculo das
armaduras e seu detalhamento com maior preciso. As consideraes de clculo so feitas
com os recursos existentes do conhecimento atual, permitindo que o projetista use mais seu
tempo para analisar se no seria melhor definir outra seo ou mesmo uma combinao de
armadura ativa com passiva e outras solues.

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

esforos que anulem ou limitem as tenses de trao do concreto, eliminando a abertura de


fissuras. J segundo a NBR6118:2007 define-se elementos de concreto protendido como
sendo aqueles nos quais parte das armaduras previamente alongada por equipamentos
especiais de protenso com a finalidade de, em condies de servio, impedir ou limitar a
fissurao e os deslocamentos da estrutura e propiciar o melhor aproveitamento de aos de
alta resistncia no estado limite ltimo (ELU).
A protenso comprime o concreto, o que vantajoso, pois a resistncia a
compresso do concreto chega a ser 10 vezes superior a resistncia a trao. Para que haja
a protenso, o ao utilizado deve ter uma resistncia maior que a do ao utilizado nas
estruturas de concreto armado. Assim, os aos de protenso tm at cinco vezes a
resistncia de um ao convencional. O concreto protendido tem diversas vantagens em
relao ao concreto armado:

reduz a incidncia de fissuras;

permite vencer maiores vos;

reduz o uso de materiais (concreto e ao);

reduz o uso de formas (no caso de concreto pr-moldado)

Para os aos utilizados no concreto protendido, existem trs categorias:

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;

Barras de ao de alta resistncia, com dimetro superior a 12mm;

O uso de concreto protendido no implica em toda a armadura utilizada ser ativa


(armadura que recebe tenses antes de receber as solicitaes previstas para sua

11

utilizao). Um elemento estrutural de concreto protendido pode ter uma parcela de


armadura passiva, ou seja, sem tenses prvias.
Para o concreto protendido existem trs categorias:

O sistema com armadura pr-tracionada;

O sistema com armadura ps-tracionada com aderncia;

O sistema com armadura ps-tracionada sem aderncia;

O sistema de pr-trao caracterizado por aplicar uma tenso na cordoalha de ao


antes da concretagem. Aps a cura do concreto, retira-se a ligao da armadura com o
macaco, estabelecendo a aderncia entre o ao e o concreto. Assim, admite-se que ocorre
compatibilizao de deformao entre os elementos. Este sistema caracterstico do
concreto pr-fabricado.

2.2

PERDAS DE PROTENSO
A protenso introduz na pea uma fora inicial que provoca o alongamento na

armadura ativa. O acionamento dos macacos, a liberao dos cabos e a transferncia da


fora de protenso, entre outros fatores, diminuem a fora de protenso. Assim, acontecem
as chamadas perdas de protenso. Entre os muitos fatores que provocam essas perdas,
podemos classific-los em perdas iniciais e as perdas diferidas no decorrer do tempo
durante toda a vida til da estrutura. Teoricamente, essas perdas se estabilizam com o
passar do tempo. Considerando inicialmente um cabo representante, pode-se estimar as
perdas para se fazer um pr-dimensionamento de armadura longitudinal. Com o nmero de
cabos determinado, possvel calcular as perdas iniciais e as perdas diferidas (ao longo do
tempo).

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

! =

! =

!. !
!" !. !
!!

!. !!
!" !. !
!

Em que ! o retrocesso da ancoragem, ! a largura da pista de protenso, !! o mdulo


de elasticidade longitudinal da cordoalha de protenso e ! a perda de protenso por
ancoragem. bom lembrar que o concreto pr-tracionado feito principalmente em fbricas
onde existem pistas bem extensas onde ocorre a concretagem e posteriormente a
protenso.
No ato de transferncia da protenso, ocorre o encurtamento da seo de concreto, no caso
de pr-trao a protenso de todos os cabos feita simultaneamente. O clculo desta perda
dado por:
!! =

!! !! !! . ! ! !!! . !
.
+

!" !. !
!! !!
!
!

A perda por relaxao da armadura ocorre entre o perodo do estiramento da armadura e a


cura do concreto at que possa ser feita a transferncia de protenso.
A intensidade da relaxao pura do ao (deformao constante) determinada pelo
coeficiente (t, to) definido por:

(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

Tabela 2.1 - Valores de 1000, em %

Os valores correspondentes a tempos diferentes de 1.000 horas, sempre a 200C, podem ser
determinados a partir da seguinte expresso:

(t, to) = 1000

" t ! to %
.$
'
# 41, 67 &

0,15

para (t, to) em dias

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

O concreto ao longo do tempo tende a encurtar. Como h aderncia entre a


armadura de protenso e o concreto, a armadura acompanha o movimento do concreto.
Logo, se o elemento da estrutura de concreto se encurta ao longo do tempo, o estiramento
da armadura diminui. Portanto, as perdas progressivas, ou seja, as que ocorrem ao longo do
tempo, aps o trmino da operao de protenso so devidas retrao do concreto,
fluncia do concreto e novamente relaxao do ao de protenso.
A retrao a variao de volume que o concreto sofre aps sua cura e
endurecimento. A retrao ocorre logo aps o lanamento do concreto, mas somente a
partir da atuao da fora de protenso que o fenmeno pode ser considerado. A retrao
ocorre devido a sada da gua que no reage com o cimento. Portanto as variveis que
definem a perda devida a retrao so o tempo, a temperatura, a umidade relativa do ar, a
quantidade de gua medida pelo ensaio de abatimento do concreto (slump), a rea da
seo e o permetro em contato com o ar. A retrao no depende das aes introduzidas.

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.

Figura 2.2 Curva de deformao por retrao.

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

PR-DIMENSIONAMENTO DA ARMADURA LONGITUDINAL


Quando se calcula uma pea de concreto protendido, deve-se garantir a segurana no

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

estrutura. Portanto, a adoo de resistncia mnima de concreto, cobrimento mnimo para


armadura e verificao de estados de fissurao se complementam dando condies, junto
com as boas tcnicas de detalhamento e de confeco da estrutura, para que haja garantia
de uma vida til mnima.
Para pr-dimensionar ou calcular a armadura longitudinal de flexo em peas de
concreto protendido optou-se neste trabalho usar as condies de verificao no estado
limite de fissurao ou de servio (ELS) e depois verificar as condies do estado limite
ltimo (ELU). Para se determinar a quantidade de armadura ativa em uma seo, uma vez
definida a geometria da estrutura propriamente dita, necessrio conhecer a relao entre a
fora de protenso atuante na seo com a aplicada inicialmente na extremidade da
armadura de protenso. Em outras palavras, preciso conhecer as perdas de protenso. A
maioria dos projetistas e programas atuais como o ProUni, mdulo do TQS, apenas estimam
tais perdas. Assim, qualquer que seja a condio determinante preciso desenvolver o
clculo com uma certa metodologia de modo a alcanar uma soluo adequada. Pelo
trabalho de Inforsato (2009), a condio determinante geralmente a de servio. Como
visto, h trs casos bem distintos que poderiam ser considerados: o da protenso com
aderncia posterior (armadura com bainhas metlicas e injeo de nata de cimento), sem
aderncia (cordoalhas engraxadas com bainhas de plstico) e o da pr-trao. No primeiro
e segundo caso a caracterstica principal o uso de cabos com trajetrias curvas e em geral
com trajetria acompanhando o diagrama de momentos do elemento fletido. No caso de
pr-trao, usada principalmente na pr-fabricao, a trajetria dos cabos reta,
procurando-se usar sees compostas para melhorar a eficincia dos elementos fletidos.
Assim, para o pr-dimensionamento da seo, tambm necessrio que se verifique as
tenses presentes na estrutura tanto no tempo infinito (um perodo de tempo prolongado no
qual se assume que j ocorreram todas as perdas) quanto no tempo zero (momento em que
no houveram perdas e a solicitao causada pela protenso pode exigir uma armadura
negativa).
Para a condio de tempo infinito, deve-se estimar inicialmente uma perda para que
seja conhecido o valor da protenso aplicado no elemento. Com isso deve-se utilizar a
seguinte inequao dada pelo equilbrio de tenses:
=

N!
A

M!
W

!!!

M!"
W

! . M!
W

f!"#,!"# !" !. !

Sendo:
f!"#,!"# = 0,21.

!
f!"

M!" os momentos atuantes na pea devido a cada carregamento separadamente.

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

carregamentos distribudos so mximos) ainda necessrio fazer verificaes em posies


intermedirias da viga, onde o momento de clculo menor e portanto, pode haver trao
no bordo superior. A variao de posio na viga ser chamada de x. Estas verificaes
tambm so necessrias por causa do momento de protenso que maior, pois as perdas
nas sees intermedirias so menores. Desse modo, a viga dividida em dez sees
espaadas igualmente. Como mostra a figura 2.3:

18

Figura 2.3 Viga dividida em dcimo de vo e diagrama genrico de momento

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:
-

Ms: Momento na seo S;

Vs: Cortante na seo S;

P: Ao considerada;

l: Vo total;

x: posio da seo S

p. l
p. x !" !. !
2

19

Os esforos devido a fora de protenso se encontra a seguir:


N! = !" . A ! !" !. !"
e
M! = N! . e !" !. !!
Sendo:
-

Np: Normal de protenso;

Mp: Momento de protenso;

!" : Tenso de protenso considerando as perdas na seo S;

Ac: rea da seo transversal (igual para todas as sees);

e: excentricidade da cordoalha em relao ao centro de gravidade;

Portanto, para verificar em dcimo de vo necessrio calcular as perdas de


protenso para cada seo. A seguir sero mostradas quais perdas diferem uma das outras
conforme se muda a posio da seo. A comear pelas perdas iniciais e em sequencia as
perdas diferidas ao longo do tempo.

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

A perda ao longo do tempo devido a retrao do concreto permanece igual para


todos os trechos. A perda por retrao depende da sada de gua do concreto e de seu
mdulo de elasticidade como pode ser visto na equao 2.6.
A perda por fluncia do concreto, varia em relao a x. Como visto anteriormente,
esta perda est associada aos mesmos fatores da perda por retrao acrescida dos
carregamentos impostos a viga. Novamente, A figura 2.3 ajuda a entender a variao de
momento em relao a x. Alm disso, a formulao do clculo desta perda tambm
incorpora o valor de Np que muda nos diferentes trechos porque a perda imediata se altera.
Por ltimo, tem-se a perda por relaxao que varia nas diferentes sees da viga
unicamente pelo fato de as perdas anteriores a esta se alterarem (!!" no meio do vo
diferente de !!" em uma outra seo qualquer).

2.5

COMPRIMENTO DE TRANSFERNCIA E DE REGULARIZAO


O comprimento de transferncia o comprimento necessrio para transferir, por

aderncia, a totalidade da fora de protenso cordoalha.


Considerando liberao gradual do dispositivo de protenso, o clculo do comprimento
de transferncia dado por:

l!"# = 0,5. l!" .

!"
f!"#

!" !. !"

Caso a liberao do dispositivo de protenso no seja gradual, o valor calculado


deve ser multiplicado por 1,25. Em geral, nas fabricas de concreto pr-fabricado, no se
utiliza desprotenso gradual.
Sendo l!" o comprimento de ancoragem bsico, !" a tenso na cordoalha
considerando as perdas iniciais e f!"# a tenso de escoamento do ao de protenso.
Para cordoalhas de trs e sete fios o comprimento de ancoragem bsico obtido
por:

l!" =

7. . f!"#
36. f!"#

!" !. !"

21

Sendo que para o comprimento de transferncia, o clculo de

f bpd

deve considerar a

idade do concreto na data de protenso. Para o clculo do comprimento de ancoragem deve


se considerar aos 28 dias.
f!"# = ! . ! . f!"#
Sendo:
! = 1,2 para cordoalhas de trs a sete fios;
! = 1,0 para situao de boa aderncia;
!

f!"# =

!,!" . !!!"#
!,!

eq 2.14

Juntando as equaes 2.12 e 2.13, temos a equao 2.15:

l!"# = 0,5 .

7 . . f!"#
36 . f!"#

!"
f!"#

3,5 . . !"
36 . f!"!

!" !. !"

Em uma pea pr-fabricada tambm importante saber qual a distancia a partir da


extremidade da pea pode-se considerar o esforo de protenso atuando em toda a seo.
A este comprimento d-se o nome de distncia de regularizao l!"# .

l!"# =

h! + 0,6 . l!"#

l!"# !" !. !"

Segue um desenho ilustrativo explicando o comprimento de transferncia e de


regularizao.

22

Figura 2.4 comprimento de transferncia e comprimento de regularizao

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

DIMENSIONAMENTO DA ARMADURA TRANSVERSAL


O procedimento de clculo da armadura transversal para o concreto protendido se

assemelha ao concreto armado, sendo necessrio fazer apenas algumas ressalvas. Em


primeiro lugar, deve-se considerar o efeito da normal de protenso. Tambm necessrio

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

EXPRESSES PARA CLCULO E VERIFICAES PARA DETALHAMENTO

As expresses que se encontram abaixo, foram retiradas do trabalho publicado por


CARVALHO (2007 e 2012).
Inicialmente, necessrio verificar a tenso de compresso nas belas. A cortante de
clculo deve ser inferior a resistncia das bielas.
V!" V!"#

Sendo V!"# = 0,27 . 1

!!"
!"#

. f!" . b! . d

eq 2.17

Estando a condio descrita acima verificada, parte-se para o clculo da armadura


transversal. Para este clculo, a cortante que os estribos devem resistir equivalente a
cortante de clculo menos a parcela absorvida pelo concreto.
V!" = V!" V! !" !. !"
O valor de V! dado por:
V! = 0,6 . f!"# . b! . d !" !. !"
Caso o valor de V! seja numericamente maior que V!" , a resistncia do concreto
suficiente para resistir as solicitaes. Sendo assim a armadura necessria a mnima.
A cortante resistida pela armadura dada pela equao 2.20.

V!" =

A !"
. 0,9 . d . f!"# . sen + cos !" !. !"
s

Onde:
-

s o espaamento dos estribos;

24

f!"# a tenso na armadura transversal passiva; e

um ngulo compreendido entre 45 e 90;

No caso geral, em que os estribos so verticais ( = 90), temos a equao 2.21.

V!" =

A !"
. 0,9 . d . f!"# !" !. !"
s

possvel descrever a equao anterior em termos de taxa de armadura. Para tal,


basta dividir os dois lados da equao pela rea de concreto da seo transversal. Isolando
a taxa de armadura, temos:

!" =

1,11 . !"
!" !. !!
f!"#

A armadura transversal deve garantir ductilidade runa por cisalhamento e ser


suficiente para suportar o esforo de trao resistido pelo concreto na alma, antes da
formao de fissuras de cisalhamento.
A armadura transversal mnima deve ser constituda por estribos com rea
especificada pela equao 2.23.

A !" 0,2 .

2.8

f!",!
. b . s !" !. !"
f!"# !

DETALHAMENTO

Para fazer o detalhamento, o trabalho se apoia principalmente na NBR9062:2003 a qual fala


sobre projeto e execuo de estruturas de concreto pr-moldado. Entretanto a seo
composta pode ser considerada como mista, pois parte de sua seo composta por
concreto pr-fabricado (viga retangular) e outra parte da seo por concreto moldado no
local (capa) o qual regido pela NBR6118:2007 portanto, as exigncias de cobrimento e
espaamento, mudam em torno da seo transversal.
Segundo a NBR9062:2003, para elementos em meio no agressivo, com fator gua/cimento
menor ou igual a 0,45 e fck de pelo menos 40 MPa, valida a seguinte tabela:

25

Tabela 2.2 Cobrimentos para peas pr-fabricadas segundo a NBR9062


Localizao
Tipos de Elementos Prfabricados

No interior do edifcio

Ao ar livre

1,5

1,5

Lajes, mesas das vias T, placas


de vedao no estruturais e
elementos construtivos sujeitos a
cargas at 3 kN/m
Vigas, pilares, arcos, nervuras
das vigas T e placas de vedao
estruturais
Como o trabalho tem o enfoque nas vigas pr-fabricadas, resolveu se utilizar sempre um
cobrimento de 1,5cm. Para ambientes muito agressivos, necessrio aumentar o
cobrimento em 0,5cm.
Em relao ao espaamento entre fios ou cordoalhas, a norma estabelece os seguintes
limites mnimos:
! > 2(!"!"#$% !" !"#$"%&!)
! > 1,2(!"#"$! !" !"#$% !"#$"!%&)
! > 2!"

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

Neste item mostrado como se desenvolveu o clculo da armadura longitudinal


considerando j a lgica de programao.

4.1

ROTEIRO DE CLCULO DA ARMADURA LONGITUDINAL


Na reviso bibliogrfica mostrou-se como poderia ser feito o pr-dimensionamento da

armadura. Neste item mostra-se todo o roteiro de como, no programa a armadura


calculada. O clculo das perdas iniciais e diferidas, deve seguir o procedimento de Inforsato
(2009) que est transcrito na sequencia. Aps o clculo das perdas pode-se novamente
calcular a armadura no estado limite ltimo e verificar as condies de durabilidade
(fissurao).
1) Definio da classificao do ambiente em relao a sua agressividade.
2) Com a CAA define-se qual o nvel de protenso a ser aplicado. Para o caso de
pr-trao quando se tem CAA I deve-se verificar em servio apenas a abertura
de fissuras com limite wk0,2 mm para a combinao frequente (1), este tipo
de protenso classificada como parcial. J para a CAA II a protenso
classificada como limitada, que em servio deve atender o estado de formao
de

fissuras

para

combinao

frequente

(1)

com

limite

de

f ctk .inf = 0,7 f ct ,m e o estado de descompresso cujo um ou mais ponto da


seo transversal a tenso normal nula ( 0 ) no havendo trao no
restante da seo, essa verificao feita para combinao quase permanente
(2). Finalmente tem-se a protenso completa que para a CAA III e IV que em
servio deve ser verificado o estado de formao de fissuras para a combinao
rara, em que toda a carga acidental deve ser considerada com o limite de

f ctk . inf = 0,7 f ct ,m e o estado de descompresso 0 com a combinao


frequente(1).

28

3) Os coeficientes 1 e 2 dependem da ocupao do edifcio.


4) Detalham-se os carregamentos atuantes no elemento e as suas datas
respectivas de carregamento.
5) Estima-se uma perda de protenso e determina-se a armadura no tempo infinito
atravs da verificao da fissurao para a borda inferior.
6) Verifica-se em vazio com a armadura encontrada se a tenso na fibra superior
esta dentro do limite. Caso o limite seja ultrapassado possvel a colocao de
cordoalhas na fibra superior, limitando a tenso de trao na mesma.
7) Com esta armadura encontrada atravs da estimativa inicial, detalha-se os
cabos na seo e calcula-se as perdas diferidas considerando as datas dos
carregamentos determinadas no item 4.
8) Com a tenso final correta no cabo de protenso (tenso calculada
considerando as perdas) verifica-se novamente a condio de fissurao no
tempo infinito.
9) Com a armadura definida para o tempo infinito, verifica-se a pea em vazio
(verificao de ruptura simplificada) e a necessidade de isolamento de cabos na
borda inferior.
10) Verifica-se se a armadura dimensionada em servio suficiente para atender a
condio do ELU. Caso no seja pode-se completar com armadura frouxa.
11) Verifica-se a deformao excessiva com o clculo estimado das flechas

4.2
4.2.1

ENTRADA DE DADOS E INFORMAES INICIAIS


INTRODUO

Como o programa deve ser utilizado para a resoluo de vigas pr-fabricadas o


modelo de clculo empregado o de uma viga apoiada em dois apoios, sem momento na
extremidade.
Considera-se que a seo transversal da pea varia conforme o tempo passa pois a
seo que inicialmente retangular, com o endurecimento do concreto da capa, adquire um
formato diferente (formato T) que deve ser considerado para o clculo das propriedades
geomtricas. Portanto, os carregamentos devidos ao peso prprio da viga, e da laje e o
peso devido a capa, exercem sua influncia enquanto a seo ainda deve ser considerada
retangular. J o efeito de revestimento e de alvenaria devem ser considerados apenas na
seo composta.
Um desenho genrico das sees composta e retangular pode ser visto na figura 4.1

29

Figura 4.1 Seo retangular ( esquerda) e seo composta ( direita)

4.2.2

DESCRIO DAS TELAS DE ENTRADA

Segundo o que foi apresentado anteriormente, foi desenvolvido o programa o qual


calcula as perdas de protenso e faz o dimensionamento tanto no tempo infinito quanto no
tempo zero. Lembrar que embora a verificao no tempo zero seja feita por anlise de
tenses no concreto, trata-se de uma verificao no estado limite ltimo. Caso exista a
necessidade de se modificar a seo ou a quantidade de ao inicialmente estimada,
apresentado um alerta na tela do programa. Na sequncia so apresentados detalhes da
janela mostrando como o programa est sendo desenvolvido e como feita a entrada e
sada dos dados. Em anexo se encontra toda a listagem do programa desenvolvido. Ao
modificar os valores de bw ou h , calculado um novo valor para g1 automaticamente
considerando o peso especfico do concreto armado de 25KN/m3. Como muitos dos valores
a serem inseridos podem no ser de fcil entendimento ao usurio, utilizou-se a funo
hint do DELPHI. Ao colocar o mouse sobre uma clula, aparecero informaes
adicionais explicando de forma mais clara qual valor deve ser inserido pelo usurio. Para
ajudar o usurio, foi criado no canto superior esquerdo da janela o boto arquivo. Nele
possvel salvar os dados inseridos a abr-los em outro momento.

30

Figura 4.2 Primeira janela inteira preenchida.

Figura 4.3 Caixa para insero dos carregamentos

Na primeira parte de entrada de dados (mostrada no detalhe de janela da figura 4.1)


Com esta primeira janela possvel inserir os valores dos carregamentos permanentes g1
(g1 -peso prprio da viga), g2 (g2 - peso prprio da laje), g3 (g3 - peso da capa), g4 (g4 - peso
do revestimento) e g5 (g5 - peso da alvenaria). Tambm se faz necessrio informar os
carregamentos acidentais mximos e mnimos e seus coeficientes de combinao. Alm de
todos esses dados, tambm exigido que o usurio informe o tempo em que esse
carregamento comea a atuar no elemento estrutural.

31

Figura 4.4 Caixa geral para colocao dos valores diversos

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.5 Seo retangular genrica com alguns elementos indicados

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

Figura 4.7 Caixa de sada dos coeficientes de fluncia e retrao

Como dados de sada, tem-se a caixa 4 em que so mostrados os coeficientes de


fluncia para cada carregamento e a retrao que ocorre na seo.
Figura 4.8 Caixa para a sada dos dados

A caixa 5 mostrada na figura 4.8 corresponde a sada de dados do dimensionamento


da rea de ao tanto no bordo inferior como no superior, a altura til mxima possvel,
devido as condies dadas, e as perdas de protenso em cada borda.

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.

Figura 4.10 Janelas de aviso.

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

Figura 4.12 Caixa com a verificao por tenses

Nesta caixa so apresentados os valores de momento mximo e mnimo para o


bordo superior e inferior e para a combinao quase permanente e frequente. A direita
encontra-se os valores dos limites mximos e mnimos. importante ressaltar que o
momento calculado para a seo no meio do vo.
Figura 4.13 Caixa com a verificao por ruptura

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

Como possvel observar, esta janela mostra as perdas de protenso, as tenses


devido ao momento no tempo infinito e seus respectivos limites e as tenses devido ao
momento no tempo zero. Estes valores foram calculados a cada dcimo de vo, estando S5
o meio do vo.
A direita v um boto chamado isolar cabos. Caso este seja pressionado, uma nova
janela se abrir como se v na figura 4.16 e 4.17.

39

Figura 4.16 Quarta janela sem possibilidade de trao.

Figura 4.17 Quarta janela com possibilidade de trao.

Nesta janela possvel escolher se existe a possibilidade de que a viga no tenha


trao ou se ela deve respeitar o limite de 1,2fct. Lembrando que difcil que uma seo
passe pelo critrio de trao nula. Como visto na figura 4.16, caso haja trao, os valores
ficam vermelhos indicando que que essa no uma possibilidade. Para o critrio que admite
trao, calcula-se quantos cabos precisam ser isolados em cada seo e a rea de ao
passiva necessria para conter a trao existente no bordo superior, no tempo zero. Esta
rea pode ser descontada do valor de armadura ativa calculada anteriormente pelo
programa.
Voltando a segunda janela, o usurio deve optar por calcular a armadura transversal.
Clicando no boto correspondente a quinta janela aparece, como visto na figura 4.18.

40

Figura 4.18 Quinta janela

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

Figura 4.19 Desenho da seo transversal.

Figura 4.20 Desenho do detalhamento da armadura longitudinal.

42

Figura 4.21 Desenho da tabela de ao.

Figura 4.22 Desenho da tabela do concreto

43

Figura 4.23 Todos os desenhos gerados

Figura 4.24 Planta de armao

Figura 4.25 Planta de formas

44

Figura 4.26 Detalhe para formas da seo transversal

Figura 4.27 Detalhe do chumbador em planta

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

(2009) na pgina 88.


Dados:
CAA II
Armadura ativa cordoalha de (Ap = 0,987 cm2) CP 190RB;
Armadura frouxa CA-50;
Mdulo de elasticidade do ao: 200.000MPa
Concreto pr-moldado,
fcjk: 25MPa,
fck: 40MPa;
Concreto moldado no local (capa), fck: 30MPa;
Carregamentos:
g1 peso prprio 6,75 kN/m;
g2 laje alveolar: 16,20 kN/m;
g3 capa: 9,00 kN/m
g4 alvenaria: 5,94 kN/m
g5 revestimento: 5,76 kN/m;
qmximo acidental: 21,60 kN/m;
qmnimo 0 kN/m;
vo: 9,75m;
largura da viga: 30cm;
altura da viga: 90cm;
altura til: 83,9cm;
altura da laje: 15cm;
espessura da capa: 5cm;
tenso inicial nos cabos: 145,30kN/cm2;

46

perda de protenso final estimada: 20%;


perda de protenso inicial estimada: 2,5%;
umidade relativa do ar: 70%;
temperatura mdia: 20C;
ensaio de abatimento de corpo de prova: 9cm;
Tipo de cimento da viga: CP-ARI;
Tipo de cimento da capa: CPII;
O intervalo de aplicao das cargas se encontra na tabela 5.1:
Tabela 5.1 tempo de aplicao das cargas.
FASE

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.

Como resultado esperado, se obtm:


1=3,304;
2=2,225;
3=2,559;
4=2,033;
5=1,825;
q=1,691;
Coeficiente de retrao: 2,6 x 10-4;
rea de ao de protenso mnimo: 7,93cm2;
Perda na borda inferior: 22,98%;
Perda na borda superior: 14,85%;
Como resultados obtidos pelo programa se obteve:
1=3,304;
2=2,225;
3=2,559;
4=2,033;
5=1,825;
q=1,690;
Coeficiente de retrao: 2,6 x 10-4;
rea de ao de protenso mnimo: 8,09cm2;
Perda na borda inferior: 23,03%;
Perda na borda superior: 16,69%;

48

Como visto, no houve diferenas entre os valores esperados para os coeficientes


de fluncia nem de retrao e houveram pequenas diferenas entre os valores obtidos e os
valores esperados para as perdas de protenso e rea de ao. Estas diferenas podem ser
consideradas como perdas devidas ao arredondamento.
Seguem os desenhos gerados pelo programa:
Figura 5.1 - Desenho da seo transversal retangular e estribos

49

Figura 5.2 Desenho da seo transversal composta

Figura 5.3 - Desenho de forma da seo transversal composta

50

51

5.2

EXEMPLO DE APLICAO 02
Para este exemplo, ser utilizada a mesma viga do exemplo anterior. Desta vez sero

calculadas as perdas e as tenses atuantes por dcimo de vo. Como no existem


exemplos deste clculo na bibliografia estudada, o clculo ser feito manualmente e ento
comparado com os resultados obtidos da rotina desenvolvida.
Para realizar os clculos no tempo zero, necessrio calcular o momento atuante
devido unicamente ao peso prprio da viga. Portanto, utiliza-se a seguinte equao:

!! =

!"!!
!

!!!
!

!. !. ! , com a variao de s entre 1 e 5 e o carregamento de p = g1 = 6,75

kN/m obtiveram-se os resultados apresentados na tabela 8.2.


Tabela 5.2 momento aplicado em cada seo devido ao peso prprio.

Mg1 (kN.m)

S1

S2

S3

S4

S5

28,88

51,53

67,38

77

80,21

Para os clculos no tempo infinito, utiliza-se a mesma equao 8.2.1. Os carregamentos


sero agrupados em p1, p2 e p3 sendo que p1 = g1 + g2 + g3 = 31,95 kN/m, p2 = g4 + g5 =
11,70 kN/m e p3 = qmax = 21,60 kN/m. Obtiveram-se os resultados apresentados na tabela
8.3.
Tabela 5.3 Momentos aplicados em cada seo.
S1

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

Deformao imediata no concreto inf

10,58

10,23

9,99

9,85

9,8

52

Deformao imediata no concreto sup

-1,89

-1,53

-1,28

-1,13

-1,08

Total das perdas iniciais inf (%)

9,86

9,62

9,46

9,36

9,33

Total das perdas iniciais sup (%)

1,28

1,53

1,70

1,80

1,84

Perdas ao longo do tempo (KN/cm2)


S1

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

Relaxao da armadura inf

8,028

8,050

8,065

8,073

8,076

Relaxao da armadura sup

11,19

11,16

11,14

11,13

11,13

S1

S2

S3

S4

S5

Simultaneidade das perdas inf

27,10

23,95

21,72

20,37

19,92

Total das perdas (%)

28,51

26,11

24,40

23,38

23,03

Simultaneidade das perdas sup

12,339

15,113

17,085

18,272

18,668

Total das perdas (%)

9,772

11,929

13,458

14,379

14,685

Comparamos estes valores com os calculados utilizando o programa. Como vemos na


tabela 8.5.
Tabela 5.5 Perdas calculadas pela rotina desenvolvida.
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,54

2,54

2,54

2,54

2,54

Deformao imediata no concreto inf

10,57

10,22

9,98

9,83

9,78

Deformao imediata no concreto sup

-1,88

-1,53

-1,27

-1,12

-1,07

Total das perdas iniciais inf (%)

9,85

9,61

9,44

9,34

9,31

Total das perdas iniciais sup (%)

1,28

1,52

1,70

1,80

1,84

Perdas ao longo do tempo (KN/cm2)


S1

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

Relaxao da armadura inf

8,01

8,11

8,18

8,22

8,23

Relaxao da armadura sup

11,37

11,27

11,20

11,16

11,15

53

S1

S2

S3

S4

S5

Simultaneidade das perdas inf

26,96

23,88

21,69

20,37

19,93

Total das perdas (%)

28,40

26,05

24,37

23,36

23,03

Simultaneidade das perdas sup

13,02

15,19

17,13

18,29

18,68

Total das perdas (%)

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

mestrado de Faleiros Jnior (2010) na pgina 97. Ser determinada a armadura de


protenso no ELU e no tempo infinito da seo transversal de uma ponte
Dados:
-

Mg1 = 3540KN.m

Mq = 1910KN.m

CAA II

d = 1,45m

bw = 0,70m

!!! = 1000!"#

Ao de protenso CP190 RB

Fck = 30MPa

Relao gua/cimento a/c < 0,55

Os resultados de Faleiros foram:


-

!! = 7467!". !

!! = 41,63 !" !

Os resultados obtidos pelo programa foram:


-

!! = 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

e submetida as mesmas aes porm com vos crescentes. Seguem as caractersticas:


CAA II
Armadura ativa cordoalha de 9,5mm CP 175RB;
Armadura frouxa CA-50;
Mdulo de elasticidade do ao: 210.000MPa
Concreto pr-moldado,
fcjk: 25MPa,
fck: 40MPa;
Concreto moldado no local (capa), fck: 30MPa;
Carregamentos:
g1 peso prprio 3,50 kN/m;
g2 laje alveolar: 16,00 kN/m;
g3 capa: 8,00 kN/m
g4 alvenaria: 5,00 kN/m
g5 revestimento: 3,00 kN/m;
qmximo acidental: 10,00 kN/m;
qmnimo 0 kN/m;
largura da viga: 20cm;
altura da viga: 70cm;
altura til: 63,9cm;
altura da laje: 15cm;
espessura da capa: 5cm;
perda de protenso final estimada: 20%;
perda de protenso inicial estimada: 2,5%;
umidade relativa do ar: 70%;
temperatura mdia: 20C;
ensaio de abatimento de corpo de prova: 9cm;
Tipo de cimento da viga: CP-ARI;
Tipo de cimento da capa: CPII;

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

extenso *.exe e outro chamado Detalhamento de extenso *.lsp. O primeiro arquivo o


responsvel por fazer todos os clculos e verificaes do programa enquanto o segundo
responsvel por fazer o desenho da seo transversal e da armadura longitudinal. Tenha
em mente que o segundo arquivo uma rotina em LISP que deve ser usada juntamente
com o AutoCAD. Portanto, verifique se existe alguma verso do programa instalada em seu
computador.

6.2

UTILIZANDO O PROTENDIDO.EXE
Para comear, abra o arquivo Protendido.exe. A seguinte janela ser aberta.
Figura 6.1 Janela inicial

57

Essa a janela inicial do programa a qual ser chamada de janela 1. No canto


superior direito possvel visualizar um indicador escrito Janela 1/5. nessa janela onde
praticamente todos os dados sero inseridos. Caso a viga no passe pelas verificaes nas
etapas seguintes, ser necessrio sempre voltar a esta janela.
Entrada de dados:
Figura 6.2 Carregamentos

g1: carga permanente em KN/m;*


g2: carga devido laje em KN/m;
g3: carga devido capa em KN/m;
g4: carga devido ao revestimento em KN/m;
g5: carga devido alvenaria em KN/m;
qmin: carga acidental mnima em KN/m;
qmx: carga acidental mxima em KN/m;
* Esta clula automaticamente preenchida ao dar os valores de altura e largura da
seo. Portanto o preenchimento desta clula opcional.

Os valores de t0 ao lado de cada valor se refere ao tempo decorrido em que esta


carga foi aplicada na viga em dias.

Os valores de ! se referem ao fator de majorao das respectivas cargas.


! : Coeficiente de combinao frequente;
! : Coeficiente de combinao quase permanente;

58

Figura 6.3 Caractersticas gerais da viga

vo: vo efetivo da viga em m;


bw: largura da seo transversal da viga em cm;
h: altura da viga (seo retangular) em cm;
d: altura til da viga (seo retangular) em cm;
d: menor distncia entre o CG da armadura e a face externa em cm;
capa: espessura da capa de concreto moldada no local em cm;
altura da laje: altura da laje pr-moldada que se apoia sobre a viga em cm;
CAA: Classe de Agressividade Ambiental. Varia de I a IV sendo I menos agressivo e
IV mais agressivo;
L: largura da pista de protenso em m. Geralmente assume um valor de 100m. *No
confundir com o vo da viga;
fck: resistncia caracterstica do concreto (seo pr-fabricada) em MPa;
fcj: resistncia do concreto em 7 dias em MPa;
fck da capa: resistncia caracterstica do concreto da capa(concreto moldado no
local) em MPa;
Ep: Mdulo de elasticidade do ao de protenso em MPa;
Tipo de ao: Varia entre CP 190RB, CP 190RN, CP 175RB e CP 175RN;
Dimetro da cordoalha: Varia entre ... ;
Dimetro do estribo: Varia entre ... ;
Brita: Tipo de brita, varia entre Brita 0, Brita 1, Brita 2 e Brita 3
Sigma pi (!!" ): tenso inicial dos cabos (desprezando as perdas) em KN/cm2;**

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

Figura 6.5 Coeficiente de fluncia e retrao

Uar seo 1: Permetro em contato com o ar da seo 1 (seo retangular) em cm;***


Uar seo 2: Permetro em contato com o ar da seo 2 (pescoo + capa) em cm;***
Umidade: umidade relativa do ar em %
Temperatura: temperatura mdia em C
Slump: valor obtido pelo ensaio de abatimento de corpo de prova em cm;
Tipo de cimento da Seo 1: varia entre CPI, CPII, CPIII, CPIV e CPV-ARI;
Tipo de cimento da Seo 2: varia entre CPI, CPII, CPIII, CPIV e CPV-ARI;
Tempo final: Tempo final de utilizao em dias. Pode-se considerar um tempo muito
grande (infinito);
*** O preenchimento destes valores tambm opcional.
Os outros dados so de sada.
Figura 6.6 Dados de sada (coeficientes)

61

: Coeficiente de fluncia para cada carregamento;


!: Deformao do concreto;
Figura 6.7 Dados de sada (rea de ao e perdas de protenso)

Ap: Armadura ativa positiva.


Ap: Armadura ativa negativa.
d mximo: maior valor que a altura til pode ter
Perda no bordo inferior: Total das perdas finais calculadas no meio do vo no bordo
inferior;
Perda no bordo superior: Total das perdas finais calculadas no meio do vo no bordo
superior;
importante ressaltar que possvel modificar o nmero de barras calculado.
Portanto, apesar de ser um dado de sada, tambm funciona como dado de entrada.
Tendo feita a explicao de todas as variveis da janela 1, ainda necessrio explicar
certos pontos do programa.
-

No canto superior esquerdo, encontra-se na barra, o boto arquivo. Nele


encontram-se algumas funes como pode ser visto a seguir:

62

Figura 6.8 Contedo do programa

O boto Novo limpa todas as clulas.

O boto Abrir... d a possibilidade de recuperar dados salvos anteriormente.

Os botes Salvar e Salvar Como... d a possibilidade de salvar os dados


inseridos no programa.

O boto Sair (ou Ctrl+Q) encerra a janela.

No boto Ajuda encontra-se uma janela onde mostrada a verso do programa.


Figura 6.9 Contedo do programa

63

O boto Limpar apaga todas as clulas.

Aps o preenchimento de todas as clulas, se faz necessrio clicar no boto


Calcular para que a nova janela com as verificaes aparea.

Se alguma clula no estiver preenchida (com exceo das clulas mencionadas


anteriormente) o programa acusar que existem campos em branco e no realizar
clculo algum.

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

ser chamada de janela 2.


Figura 6.10 Segunda janela

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

Figura 6.11 Verificao por tenses

Na figura acima pode-se perceber que so apresentados os valores das tenses


devidas ao momento aplicado no meio do vo. interessante destacar que, se alguma
tenso estiver fora dos limites estabelecidos, a clula fica vermelha, alertando o usurio.
Figura 6.12 Verificao por ruptura

65

Nesta figura, so informados os valores da posio da linha neutra, momento


resistente, momento de clculo, o domnio em que a seo trabalha e a referncia da linha
neutra (se est na mesa ou na alma da viga).
Figura 6.13 Comprimento de transferncia e regularizao

As clulas com valores de entrada, j esto preenchidas com valores default.


Existe a possibilidade de alterar estes valores mas no se recomenda pois eles so bem
usuais para estruturas pr-fabricadas.
O usurio perceber que existem trs botes que esto no meio da janela. Os dois
primeiros abrem novas janelas enquanto o terceiro cria o arquivo necessrio para o
detalhamento. Caso o terceiro boto seja acionado antes que os outros sejam, o programa
acusar que faltam verificaes a serem feitas e portanto no criar nenhum arquivo.
Clicando no boto Verificar ao longo do comprimento aparecer a janela 3. Como
pode ser visto a seguir.

66

Figura 6.14 Terceira janela

Esta janela apresenta apenas dados de sada. Portanto unicamente para


verificao. Na parte superior so vistas as perdas totais que ocorrem no bordo superior e
inferior a cada dcimo de vo. Na parte central da janela aparecem as tenses em tempo
infinito devido ao momento total aplicado para combinaes quase permanente e frequente,
ou frequente e rara, dependendo da CAA. Na parte inferior da janela apresentam-se as
tenses para tempo zero em dcimo de vo.
Do mesmo modo como na janela 2, caso algum valor de tenso esteja fora dos
limites estipulados, a respectiva clula ficar vermelha.
Em seguida, o usurio deve clicar no boto Isolar cabos. Fazendo isso aparecer a
janela 4.

67

Figura 6.15 Quarta janela

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

Figura 6.16 Quinta janela

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

Tendo seguido todos os passos corretamente, o programa informar o usurio que o


arquivo foi salvo com sucesso. A partir deste ponto, o usurio pode fechar as janelas que
estiverem abertas. Ainda possvel manipular o arquivo de texto gerado utilizando o bloco
de notas. Fazendo isso o usurio deve tomar cuidado para no corromper o arquivo.
A partir deste ponto, se faz necessrio ter o AutoCAD instalado no computador.

6.3

UTILIZANDO O ARQUIVO DETALHAMENTO.LSP


Para carregar esta rotina, deixe o AutoCAD aberto. Clique em Tools e em seguida

em Load Aplication. Tambm possvel utilizar o atalho digitando appload no prompt de


comando.
Figura 6.18 Carregando a rotina LISP

A seguinte janela ser aberta:

70

Figura 6.19 Selecionando arquivo para carregar a rotina

Procure o arquivo Detalhamento.lsp e clique em Load. Tendo feito isso feche a


janela e digite Detalhamento no prompt de comando. Aparecer uma janela onde o usurio
deve escolher o arquivo de texto gerado pelo programa Protendido.exe.
Figura 6.20 Selecionado arquivo para detalhamento

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

A seguir, mostram-se imagens ampliadas da seo transversal, da viga em elevao


e planta juntamente com a armadura longitudinal e a tabela de ao.

72

Figura 6.22 Detalhamento da seo transversal retangular

Figura 6.23 Espaamento das barras longitudinais

73

Figura 6.24 Detalhamento da seo transversal composta

Figura 6.25 Planta de armao

Figura 6.26 Planta de forma

74

Figura 6.27 Tabela de ao gerada

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

HANAI, J. B. Fundamentos do Concreto Protendido. So Carlos: EESC: Departamento de


Engenharia de Estruturas, 2005. 116 p. Apostila.
LEONHARDT, F. Prestressed concrete. 2. Ed. Berlim: W. Ernst & Son, 1964.
LIN, T. Y.; BURNS, N. H. Design of prestressed concrete strutures, 3. ed. New York:
John Wiley, 1981. 646 p.
MASON, J. Concreto armado e protendido. 2. Ed. Rio de Janeiro: Livros tcnicos e
cientficos editora S.A., 1976.
NAWY E. G. Prestressed Concrete. A Fundamental Approach 2. Ed. New Jersey: Prentice
Hall, 1996. 789p.
RUSCH, H. Hormign armado y hormign pretensado. 2. Ed. Barcelona: Continental,
1975.
SILVA, I. MARTINS. Anlise da redistribuio de esforos em vigas de concreto
protendido com sees composta. So Paulo, 2003. 144p. Dissertao (Mestre em
engenharia). Escola Politcnica da Universidade de So Paulo. So Paulo.

79

10.

ANEXOS

10.1 ANEXO A JANELA1 DELPHI


unit Formulario;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Menus, Math;
type
TFAPESP = class(TForm)
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
ComboBox1: TComboBox;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label10: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Button1: TButton;
MainMenu1: TMainMenu;
Arquivo1: TMenuItem;
Novo1: TMenuItem;
Abrir1: TMenuItem;
Salvar1: TMenuItem;
SalvarComo1: TMenuItem;
N1: TMenuItem;
Sair1: TMenuItem;
Editar1: TMenuItem;
Voltar1: TMenuItem;
N2: TMenuItem;
Recortar1: TMenuItem;
Copiar1: TMenuItem;

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

U1, {coeficiente de combinao 1}


U2, {Coeficiente de combinao 2}
U3, {Varivel auxiliar}
U10, {U(1,0), 1 dia}
U1000, {Coeficiente interpolado na tabela da NBR}
vao, {Vo em m}
L, {largura da pista de protenso em m}
Mg1, {Momento calculado para peso prprio em KN.m}
Mg2, {Momento calculado para efeito da laje alveolar em KN.m}
Mg3, {Momento calculado para efeito da capa em KN.m}
Mg4, {Momento calculado para efeito da alvenaria em KN.m}
Mg5, {Momento calculado para efeito do revestimento em KN.m}
Mqmin, {Momento calculado para carga acidental mnima em KN.m}
Mqmax, {Momento calculado para carga acidental mxima em KN.m}
h, {altura total em cm}
d, {altura til em cm}
dlinha, {altura til negativa em cm}
bw, {largura efetiva em cm}
bf, {Largura da mesa em cm}
p, {valor geomtrico de estreitamento da alma}
fck, {fck do concreto em MPa}
fckcp, {fck da capa em MPa}
fcj, {fcj do concreto em MPa}
sigma, {sigma para tempo infinito em KN/cm2}
sigmap, {sigma no tempo inicial em KN/cm2}
sigmazero, {sigma no incio, sigmap*0,975}
sigmapi, {tenso no tempo inicial menos a perda por ancoragem, sigmap-sigmaanc}
sigmapii, {tenso no tempo inicial menos a perda por ancoragem e por deformao na
armadura}
sigmaanc, {perda por deformao de ancoragem}
sigmapr, {perda por relaxao da armadura}
sigmainf, {perda de protenso no bordo inferior}
sigmasup, {perda de protenso no bordo superior}
sigmapoginf, {perda por deformao imediata no concreto no bordo inferior}
sigmapogsup, {perda por deformao imediata no concreto no bordo superior}
sigmacginf, {total das perdas iniciais no bordo inferior}
sigmacgsup, {total das perdas iniciais no bordo superior}
perda, {perda de protenso arbitrada para tempo infinito em porcentagem}
perdai, {perda de protenso arbitrada para o tempo zero em porcentagem}
ycg, {altura do centro de gravidade}
I, {Momento de inrcia da seo inicial}
W, {I/ycg}
fctkinf,
fck07, {fck*0.7}
fctm,
e,{excentricidade}
elinha, {excentricidade negativa}
Ac, {rea de concreto da seo transversal}
Ap, {rea de ao positivo}
Ap1,Ap2,Ap3,Ap4,Ap5,Ap6,Ap7,Ap8,Ap9,Ap10,Ap11,Ap12,Ap13,Ap14,Ap15,Ap16,
{reas calculadas para definir limites inferior e superior}
Apinf, {Mximo limite inferior}
Apsup, {Mnimo limite superior}
Aplinha, {rea de ao negativa}
Apele, {rea de ao da armadura de pele}

85

npele, {Nmero de barras da armadura de pele}


npele1,
R, {razo entre sigmapi e tenso do ao}
Rinf, {razo entre sigmapi inferior e tenso do ao}
Rsup, {razo entre sigmapi superior e tenso do ao}
fy, {tenso resistida no ao em MPa}
ftk, {tenso de escoamento do ao}
Aaco, {rea de ao da cordoalha}
Np, {Normal de protenso}
Mp, {Momento de protenso}
Ep, {Mdulo de elasticidade do ao}
Eci, {mdulo de elasticidade do concreto}
alpha, {razo entre o mdulo de elasticidade do ao e do concreto fcj}
alphaf, {razo entre o mdulo de elasticidade do ao e do concreto fck}
dbrita, {diametro mximo da brita}
n, {nmero de barras necessrias}
n0, {nmero de barras negativas necessrias}
nz, {idem}
n1, {valor truncado de n}
n11,
n2, {n-n1}
n22,
sh, {espaamento horizontal}
sv, {espaamento vertical}
ss, {espaamento*}
destribo, {diametro do estribo}
dcor, {diametro da cordoalha}
nb, {nmero de barras por camada}
nb1, {nmero de barras na ltima camada}
nc, {nmero de camadas quebrado}
nc1, {nmero de camadas}
nc2, {nc-nctruncado}
c, {cobrimento}
bcg, {barras de ao multiplicadas pela sua posio}
Acg, {posio das barras de ao}
dreal, {d real}
perdainf, {total das perdas inferiores iniciais}
perdasup, {total das perdas superiores iniciais}
umi, {umidade relativa do ar}
Uar, {permetro em contato com o ar da seo retangular}
Uar2, {permetro em contato com o ar da seo composta}
temperatura, {temperatura mdia}
slamp, {valor do slump em cm}
tempo0, {tempo inicial considerado}
tempof, {tempo final considerado}
epsolon1s, {E1s}
epsolon2s, {E2s}
epsoloninfinito, {Ecsoo}
epsoloncs, {Ecs}
gama,
hfic, {espessura fictcia da seo retangular}
hfic2, {espessura fictcia da seo composta}
Aa,Bb,Cc,Dd,Ee, {coeficientes}
t0fic,
tffic,

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

fiqA, {coeficiente de fluncia para o carregamento acidental (seo retangular)}


fiqB, {coeficiente de fluncia para o carregamento acidental (seo composta)}
fiq, {coeficiente de fluncia para o carregamento acidental (mdia)}
ecomposta, {excentricidade da seo composta}
ecompostalinha, {excentricidade da seo composta negativa}
bff, {bw + abas}
pff, {bw - uns 7cm}
limsup, {limite superior para verificao}
liminf, {limite inferior para verificao}
sig1i, {valor 1 no bordo inferior}
sig2i, {valor 2 no bordo inferior}
sig1s, {valor 1 no bordo superior}
sig2s, {valor 2 no bordo superior}
sig3i, {valor 3 no bordo inferior}
sig4i, {valor 4 no bordo inferior}
sig3s, {valor 3 no bordo superior}
sig4s, {valor 4 no bordo superior}
yts, {usa na verificao}
Wts, {usa na verificao}
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}
aux, {varivel auxiliar}
aux2, {varivel auxiliar 2}
aux3 {varivel auxiliar 3} : real;
linha, {linha de arquivo de texto}
pl, {pedao da linha de arquivo de texto}
tpaco, {tipo de ao}
daco, {diametro de ao}
dest, {diametro do estribo}
tpbrita, {tipo de brita}
tpcimento, {tipo de cimento utilizado para a seo 1}
tpcimento2, {tipo de cimento utilizado para a seo 2}
CAA {classe de agressividade ambiental} : string;
openDialog : TOpenDialog;
saveDialog : TSaveDialog;
arq: TextFile;
implementation
uses About, Formulario2, Formulario3, Formulario4, Formulario5 ;
{$R *.dfm}
procedure TFAPESP.Button1Click(Sender: TObject);
begin
WITH sender AS TObject DO

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

if tpbrita = 'Brita 2' then dbrita:=2.5;


if tpbrita = 'Brita 3' then dbrita:=3.8;
c:=1.5;
dest := combobox5.text;
if dest = '1/4"' then destribo:=0.63;
if dest = '5/16"' then destribo:=0.8;
if dest = '3/8"' then destribo:=1.0;
if edit25.text <> '' then
Uar:=strtofloat(edit25.text)
else begin
Uar:= (bw + 2*h)*100;
edit25.text:=floattostr(Uar);
end;
umi:=strtofloat(edit26.text);
temperatura:=strtofloat(edit27.text);
slamp:=strtofloat(edit28.text);
tempo0:=1;
tempof:=strtofloat(edit30.text);
tpcimento:=combobox6.text;
tpcimento2:=combobox7.text;
fs1:= strtofloat(edit53.text);
fs2:= strtofloat(edit54.text);
fs3:= strtofloat(edit55.text);
fs4:= strtofloat(edit56.text);
fs5:= strtofloat(edit57.text);
fsq:= strtofloat(edit58.text);
{Clculo de sigmap e sigma}
if (tpaco = 'CP - 175RN') or (tpaco = 'CP - 175RB') then
begin
fy := 1750;
ftk := 1490;
end;
if (tpaco = 'CP - 190RN') or (tpaco = 'CP - 190RB') then
begin
fy := 1900;
ftk := 1710;
end;
if (tpaco = 'CP - 175RN') or (tpaco = 'CP - 190RN') then
aux3 := 0;
if (tpaco = 'CP - 175RB') or (tpaco = 'CP - 190RB') then
aux3 := 1;
if (edit7.text = '') AND (aux3 = 0) then
begin
if (0.77*fy) <= (0.9*ftk) then sigmap := 0.077*fy;
if (0.77*fy) > (0.9*ftk) then sigmap := 0.09*ftk;
sigma := sigmap*(1-(perda/100));
edit7.text := floattostr(sigmap);
end;

91

if (edit7.text = '') AND (aux3 = 1) then


begin
if (0.77*fy) <= (0.85*ftk) then sigmap := 0.077*fy;
if (0.77*fy) > (0.85*ftk) then sigmap := 0.085*ftk;
sigma := sigmap*(1-(perda/100));
edit7.text := floattostr(sigmap);
end;
if edit7.text <> '' then
begin
sigmap := strtofloat(edit7.Text);
sigma := sigmap*(1-(perda/100));
end;
If CAA = 'I' then
ShowMessage('Alerta!');
{Para CAA II}
If CAA = 'II' then
begin
{Combinao de aes quase permanentes}
{Fibra inferior}
Ap1 := ((Mg1+Mg2+Mg3)/W+(Mg4+Mg5+U2*Mqmax)/Wicomposta)/(sigma/Ac+sigma*e/W);
Ap2 :=
(fck07+(Mg1+Mg2+Mg3)/W+(Mg4+Mg5+U2*Mqmax)/Wicomposta)/(sigma/Ac+sigma*e/W);
Ap3 := ((Mg1+Mg2+Mg3)/W+(Mg4+Mg5+U2*Mqmin)/Wicomposta)/(sigma/Ac+sigma*e/W);
Ap4 :=
(fck07+(Mg1+Mg2+Mg3)/W+(Mg4+Mg5+U2*Mqmin)/Wicomposta)/(sigma/Ac+sigma*e/W);
if Ap1>Ap3 then
Apinf := Ap1 else
Apinf := Ap3;
if Ap2<Ap4 then
Apsup := Ap2 else
Apsup := Ap4;
{Fibra superior}
Ap5 := ((Mg1+Mg2+Mg3)*(-1)/W-(Mg4+Mg5+Mqmax)/Wscomposta)/(sigma/Ac-sigma*e/W);
Ap6 := (fck07-(Mg1+Mg2+Mg3)/W-(Mg4+Mg5+Mqmax)/Wscomposta)/(sigma/Acsigma*e/W);
Ap7 := ((Mg1+Mg2+Mg3)*(-1)/W-(Mg4+Mg5+U2*Mqmin)/Wscomposta)/(sigma/Acsigma*e/W);
Ap8 := (fck07-(Mg1+Mg2+Mg3)/W-(Mg4+Mg5+U2*Mqmin)/Wscomposta)/(sigma/Acsigma*e/W);
if Ap5 < Ap6 then
begin
if Ap5 > Apinf then Apinf:=Ap5;
if Ap6 < Apsup then Apsup:=Ap6;
end
else
begin
if Ap6 > Apinf then Apinf:=Ap6;
if Ap5 < Apsup then Apsup:=Ap5;
end;

92

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 frequentes}
{Fibra inferior}
Ap9 := (1.5*fctkinf+(Mg1+Mg2+Mg3)/W+(Mg4+Mg5+U1*Mqmax)/Wicomposta)/(sigma/Ac+sigma*e/
W);
Ap10 :=
(fck07+(Mg1+Mg2+Mg3)/W+(Mg4+Mg5+U1*Mqmax)/Wicomposta)/(sigma/Ac+sigma*e/W);
Ap11 := (1.5*fctkinf+(Mg1+Mg2+Mg3)/W+(Mg4+Mg5+U1*Mqmin)/Wicomposta)/(sigma/Ac+sigma*e/W
);
Ap12 :=
(fck07+(Mg1+Mg2+Mg3)/W+(Mg4+Mg5+U1*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+U1*Mqmax)/Wscomposta)/(sigma/Acsigma*e/W);
Ap14 := (fck07-(Mg1+Mg2+Mg3)/W-(Mg4+Mg5+U1*Mqmax)/Wscomposta)/(sigma/Acsigma*e/W);
Ap15 := (-1.5*fctkinf-(Mg1+Mg2+Mg3)/W-(Mg4+Mg5+U1*Mqmin)/Wscomposta)/(sigma/Acsigma*e/W);
Ap16 := (fck07-(Mg1+Mg2+Mg3)/W-(Mg4+Mg5+U1*Mqmin)/Wscomposta)/(sigma/Acsigma*e/W);
if Ap13 < Ap14 then
begin
if Ap13 > Apinf then Apinf:=Ap13;

93

if Ap14 < Apsup then Apsup:=Ap14;


end
else
begin
if Ap14 > Apinf then Apinf:=Ap14;
if Ap13 < Apsup then Apsup:=Ap13;
end;
if Ap15 < Ap16 then
begin
if Ap15 > Apinf then Apinf:=Ap15;
if Ap16 < Apsup then Apsup:=Ap16;
end
else
begin
if Ap16 > Apinf then Apinf:=Ap16;
if Ap15 < Apsup then Apsup:=Ap15;
end;
end;
{Para CAA III e IV}
If (CAA = 'III') or (CAA = 'IV') then
begin
{Combinao de aes frequentes}
{Fibra inferior}
Ap1 := ((Mg1+Mg2+Mg3)/W+(Mg4+Mg5+U1*Mqmax)/Wicomposta)/(sigma/Ac+sigma*e/W);
Ap2 :=
(fck07+(Mg1+Mg2+Mg3)/W+(Mg4+Mg5+U1*Mqmax)/Wicomposta)/(sigma/Ac+sigma*e/W);
Ap3 := ((Mg1+Mg2+Mg3)/W+(Mg4+Mg5+U1*Mqmin)/Wicomposta)/(sigma/Ac+sigma*e/W);
Ap4 :=
(fck07+(Mg1+Mg2+Mg3)/W+(Mg4+Mg5+U1*Mqmin)/Wicomposta)/(sigma/Ac+sigma*e/W);
if Ap1>Ap3 then
Apinf := Ap1 else
Apinf := Ap3;
if Ap2<Ap4 then
Apsup := Ap2 else
Apsup := Ap4;
{Fibra superior}
Ap5 := ((Mg1+Mg2+Mg3)*(-1)/W-(Mg4+Mg5+U1*Mqmax)/Wscomposta)/(sigma/Acsigma*e/W);
Ap6 := (fck07-(Mg1+Mg2+Mg3)/W-(Mg4+Mg5+U1*Mqmax)/Wscomposta)/(sigma/Acsigma*e/W);
Ap7 := ((Mg1+Mg2+Mg3)*(-1)/W-(Mg4+Mg5+U1*Mqmin)/Wscomposta)/(sigma/Acsigma*e/W);
Ap8 := (fck07-(Mg1+Mg2+Mg3)/W-(Mg4+Mg5+U1*Mqmin)/Wscomposta)/(sigma/Acsigma*e/W);
if Ap5 < Ap6 then
begin
if Ap5 > Apinf then Apinf:=Ap5;
if Ap6 < Apsup then Apsup:=Ap6;
end
else

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

if Ap13 < Ap14 then


begin
if Ap13 > Apinf then Apinf:=Ap13;
if Ap14 < Apsup then Apsup:=Ap14;
end
else
begin
if Ap14 > Apinf then Apinf:=Ap14;
if Ap13 < Apsup then Apsup:=Ap13;
end;
if Ap15 < Ap16 then
begin
if Ap15 > Apinf then Apinf:=Ap15;
if Ap16 < Apsup then Apsup:=Ap16;
end
else
begin
if Ap16 > Apinf then Apinf:=Ap16;
if Ap15 < Apsup then Apsup:=Ap15;
end;
end;
if apsup < apinf THEN
ShowMessage('Erro! Aumente a Seo.')
ELSE
begin
edit9.text := floattostrf(Apinf,ffFixed,18,2);
edit15.text := floattostrf(Apsup,ffFixed,18,2);
end;
{Clculo do nmero de cabos no tempo infinito}
Ap:=Apinf;
n:=Ap/Aaco;
n11:=trunc(n);
n22:=n-n11;
if n22 > 0.1 then
n:=n11+1
else
n:=n11;
if (edit21.text = '') or (strtofloat(edit21.text) = 0) then edit21.text:= floattostr(n);
if (edit21.text <> '') or (strtofloat(edit21.text) <> 0) then n:=strtofloat(edit21.text);
Ap:=n*Aaco;
edit22.text:=floattostrf(Ap,ffFixed,18,2);
{rea de ao no tempo zero}
sigmazero := sigmap*(100-perdai)/100;
Aplinha := ((-1.2*fctm)-(sigmazero*Ap/Ac)+(sigmazero*Ap*e/W)(Mg1/W))/(sigmazero/Ac+sigmazero*elinha/W);
if Aplinha < 0 then Aplinha := 0;
{Clculo do nmero de cabos no tempo zero}

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

if R>0.8 then U1000:=3.5;


end;
U10:=U1000*(exp(0.15*ln(1/41.67))); {x elevado a y -> exp(y*ln(x))}
sigmapr:=U10*sigmapi/100;
{Perda por deformao imediata no concreto}
sigmapii:= sigmap-(sigmaanc+sigmapr);
sigmainf:=sigmapii;
sigmasup:=sigmapii;
Np:=Ap*sigmainf+Aplinha*sigmasup;
Mp:=Ap*sigmainf*e - Aplinha*sigmasup*elinha;
alpha:= Ep/Eci;
sigmapoginf:=((Np/Ac)+(Mp-Mg1)*e/I)/10000;
sigmapogsup:=((Np/Ac)+(-Mp+Mg1)*elinha/I)/10000;
sigmacginf:=sigmapoginf*alpha;
sigmacgsup:=sigmapogsup*alpha;
{Total das perdas iniciais}
perdainf:= sigmap-(sigmaanc+sigmapr+sigmacginf);
perdasup:= sigmap-(sigmaanc+sigmapr+sigmacgsup);
{Clculo das perdas diferidas}
{Clculo da retrao do concreto} {Seo retangular e composta}
epsolon1s:=(-6.16-(umi/484)+(sqr(umi)/1590))/10000;
if slamp<=4 then epsolon1s:=epsolon1s*0.75;
if slamp>=10 then epsolon1s:=epsolon1s*1.25;
gama:=1+exp(-7.8+0.1*umi);
hfic:=2*gama*Ac*100/Uar; {hfic em m}
epsolon2s:=(33+2*hfic*100)/(20.8+3*hfic*100);
epsoloninfinito:=epsolon1s*epsolon2s;
Aa := 40;
Bb := 116*(hfic*hfic*hfic)-282*sqr(hfic)+220*hfic-4.8;
Cc := 2.5*(hfic*hfic*hfic)-8.8*hfic+40.7;
Dd := -75*(hfic*hfic*hfic)+585*sqr(hfic)+496*hfic-6.8;
Ee := -169*(hfic*hfic*hfic*hfic)+88*(hfic*hfic*hfic)+584*sqr(hfic)-39*hfic+0.8;
t0fic:=1*(temperatura+10)*tempo0/30;
tffic:=1*(temperatura+10)*tempof/30;
beta0:= ((t0fic/100)*(t0fic/100)*(t0fic/100)+Aa*(t0fic/100)*(t0fic/100)+
Bb*(t0fic/100))/((t0fic/100)*(t0fic/100)*(t0fic/100)+
Cc*(t0fic/100)*(t0fic/100)+Dd*(t0fic/100)+Ee);
betaf:= ((tffic/100)*(tffic/100)*(tffic/100)+Aa*(tffic/100)*(tffic/100)+
Bb*(tffic/100))/((tffic/100)*(tffic/100)*(tffic/100)+
Cc*(tffic/100)*(tffic/100)+Dd*(tffic/100)+Ee);
epsoloncs:= epsoloninfinito*(betaf-beta0);
edit32.text:=floattostr(epsoloncs);
{-----}
{Clculo do coeficiente de fluncia} {Seo composta}

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

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/t003B)));
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);
fi3B:= fia+fifinfinito*(betaf-beta0)+fidinfinito*betad;
{3}
fi3:= (fi3A*Ac+fi3B*areacomposta2)/(Ac+areacomposta2);
edit47.Text:=floattostrf(fi3,ffFixed,18,3);
{4 - A}
tffic:=strtofloat(edit30.text);
t0fic:=1*t004*(temperatura+10)/30;
tffic:=1*tffic*(temperatura+10)/30;
if (tpcimento = 'CPI') or (tpcimento = 'CPII') then begin
t0fic:=2*t004*(temperatura+10)/30;
tffic:=2*tffic*(temperatura+10)/30;
end;
if tpcimento = 'CPV-ARI' then begin
t0fic:=3*t004*(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/t004)));
fia:=0.8*(1-(beta1/beta1infinito));

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

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/t00qB)));
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);
fiqB:= fia+fifinfinito*(betaf-beta0)+fidinfinito*betad;
{q : acidental}
fiq:= (fiqA*Ac+fiqB*areacomposta2)/(Ac+areacomposta2);
edit50.Text:=floattostrf(fiq,ffFixed,18,3);
{Clculo da perda por fluencia} {Seo Composta}
Np:=Ap*perdainf+Aplinha*perdasup;
Mp:=Ap*perdainf*e - Aplinha*perdasup*elinha;
alphaf:= Ep/(5600*sqrt(fck));
Aa:=(Np/Ac+(Mp-Mg1)*e/I)*fi1;
Bb:=((Mg2*e*fi2)+(Mg3*e*fi3))/I;
Cc:=((Mg4*ecomposta*fi4)+(Mg5*ecomposta*fi5))/Icomposta;
Dd:=U2*Mqmax*ecomposta*fiq/Icomposta;
sigmapcinf:=(alphaf*(Aa-Bb-Cc-Dd))/10000;
Aa:=(Np/Ac+(-Mp+Mg1)*elinha/I)*fi1;
Bb:=((Mg2*elinha*fi2)+(Mg3*elinha*fi3))/I;
Cc:=((Mg4*ecompostalinha*fi4)+(Mg5*ecompostalinha*fi5))/Icomposta;
Dd:=U2*Mqmax*ecompostalinha*fiq/Icomposta;
sigmapcsup:=abs((alphaf*(Aa+Bb+Cc+Dd))/10000);
{-----}
{Clculo da retrao do concreto} {Seo composta}
{*O clculo da retrao do concreto na seo composta ser considerado o mesmo
da seo retangular.}

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

pl:=copy(linha, 32, 6);


edit1.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 14, 3);
edit33.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 10, 4);
edit53.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 35, 6);
edit10.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 14, 3);
edit34.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 10, 4);
edit54.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 35, 6);
edit35.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 14, 3);
edit38.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 10, 4);
edit55.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 44, 6);
edit36.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 14, 3);
edit39.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 10, 4);
edit56.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 40, 6);
edit37.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 14, 3);
edit40.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 10, 4);
edit57.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 40, 6);
edit11.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 40, 6);
edit12.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 14, 3);
edit45.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 10, 4);

//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

pl:=copy(linha, 6, 6); //fi3


edit47.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 6, 6); //fi4
edit48.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 6, 6); //fi5
edit49.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 14, 6); //fiq
edit50.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 26, 21); //deformao
edit32.text:= pl;
Readln(arq, linha);
Readln(arq, linha);
Readln(arq, linha);
Readln(arq, linha);
Readln(arq, linha);
pl:=copy(linha, 35, 6); //armadura positiva minima
edit9.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 35, 6); //armadura positiva maxima
edit15.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 28, 6); //armadura positiva
edit22.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 24, 3); //nmero de cordoalhas
edit21.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 28, 6); //armadura negativa
edit20.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 24, 3); //numero de cordoalhas
edit29.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 37, 6); //maxima altura util possivel
edit8.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 32, 6); //perda no bordo inferior
edit23.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 32, 6); //perda no bordo superior
edit24.text:= pl;
end
else showmessage('Arquivo invlido!');
CloseFile (arq);
end
else ShowMessage('A abertura do arquivo foi cancelada!');
end;

117

procedure TFAPESP.Salvar1Click(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);
Write(arq,'t0 em dias =>');
Writeln(arq,edit34.text);
Write(arq,'gama 2 =>');
Writeln(arq,edit54.text);
Write(arq,'carga devido capa em KN/m, g3 =>');
Writeln(arq,edit35.text);
Write(arq,'t0 em dias =>');
Writeln(arq,edit38.text);
Write(arq,'gama 3 =>');
Writeln(arq,edit55.text);
Write(arq,'carga devido ao revestimento em KN/m, g4 =>');
Writeln(arq,edit36.text);
Write(arq,'t0 em dias =>');
Writeln(arq,edit39.text);
Write(arq,'gama 4 =>');
Writeln(arq,edit56.text);
Write(arq,'carga devido alvenaria em KN/m, g5 =>');
Writeln(arq,edit37.text);
Write(arq,'t0 em dias =>');
Writeln(arq,edit40.text);
Write(arq,'gama 5 =>');
Writeln(arq,edit57.text);
Write(arq,'carga acidental mnima em KN/m, qmin =>');

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

Write(arq,'t0 em dias =>');


Writeln(arq,edit34.text);
Write(arq,'gama 2 =>');
Writeln(arq,edit54.text);
Write(arq,'carga devido capa em KN/m, g3 =>');
Writeln(arq,edit35.text);
Write(arq,'t0 em dias =>');
Writeln(arq,edit38.text);
Write(arq,'gama 3 =>');
Writeln(arq,edit55.text);
Write(arq,'carga devido ao revestimento em KN/m, g4 =>');
Writeln(arq,edit36.text);
Write(arq,'t0 em dias =>');
Writeln(arq,edit39.text);
Write(arq,'gama 4 =>');
Writeln(arq,edit56.text);
Write(arq,'carga devido alvenaria em KN/m, g5 =>');
Writeln(arq,edit37.text);
Write(arq,'t0 em dias =>');
Writeln(arq,edit40.text);
Write(arq,'gama 5 =>');
Writeln(arq,edit57.text);
Write(arq,'carga acidental mnima em KN/m, qmin =>');
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);

122

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,'fck 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 % =>');
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');

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

if daco = '15,2mm' then Aaco := 1.399;


n0:=strtofloat(edit29.text);
Aplinha:= Aaco* n0;
edit20.text:= floattostr(Aplinha);
end;
end;
end.

10.2 ANEXO B JANELA2 DELPHI


unit Formulario2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Math;
type
TFAPESP2 = class(TForm)
GroupBox1: TGroupBox;
Edit1: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edit2: TEdit;
Label5: TLabel;
Edit3: TEdit;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Edit8: TEdit;
Label13: TLabel;
Edit9: TEdit;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Edit10: TEdit;
Edit11: TEdit;
Edit12: TEdit;
GroupBox2: TGroupBox;
Button1: TButton;
Edit13: TEdit;

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

Mqmaxsx, {Momento do carregamento acidental maximo, seo x}


Mqmaxs1, {Momento do carregamento acidental maximo, seo 1}
Mqmaxs2, {Momento do carregamento acidental maximo, seo 2}
Mqmaxs3, {Momento do carregamento acidental maximo, seo 3}
Mqmaxs4, {Momento do carregamento acidental maximo, seo 4}
Vg1sx, {Cortante do carregamento 1, seo x}
Vg1s0, {Cortante do carregamento 1, seo 0}
Vg1s1, {Cortante do carregamento 1, seo 1}
Vg1s2, {Cortante do carregamento 1, seo 2}
Vg1s3, {Cortante do carregamento 1, seo 3}
Vg1s4, {Cortante do carregamento 1, seo 4}
Vg2sx, {Cortante do carregamento 2, seo x}
Vg2s0, {Cortante do carregamento 2, seo 0}
Vg2s1, {Cortante do carregamento 2, seo 1}
Vg2s2, {Cortante do carregamento 2, seo 2}
Vg2s3, {Cortante do carregamento 2, seo 3}
Vg2s4, {Cortante do carregamento 2, seo 4}
Vg3sx, {Cortante do carregamento 3, seo x}
Vg3s0, {Cortante do carregamento 3, seo 0}
Vg3s1, {Cortante do carregamento 3, seo 1}
Vg3s2, {Cortante do carregamento 3, seo 2}
Vg3s3, {Cortante do carregamento 3, seo 3}
Vg3s4, {Cortante do carregamento 3, seo 4}
Vg4sx, {Cortante do carregamento 4, seo x}
Vg4s0, {Cortante do carregamento 4, seo 0}
Vg4s1, {Cortante do carregamento 4, seo 1}
Vg4s2, {Cortante do carregamento 4, seo 2}
Vg4s3, {Cortante do carregamento 4, seo 3}
Vg4s4, {Cortante do carregamento 4, seo 4}
Vg5sx, {Cortante do carregamento 5, seo x}
Vg5s0, {Cortante do carregamento 5, seo 0}
Vg5s1, {Cortante do carregamento 5, seo 1}
Vg5s2, {Cortante do carregamento 5, seo 2}
Vg5s3, {Cortante do carregamento 5, seo 3}
Vg5s4, {Cortante do carregamento 5, seo 4}
Vqminsx, {Cortante do carregamento acidental minimo, seo x}
Vqmins0, {Cortante do carregamento acidental minimo, seo 0}
Vqmins1, {Cortante do carregamento acidental minimo, seo 1}
Vqmins2, {Cortante do carregamento acidental minimo, seo 2}
Vqmins3, {Cortante do carregamento acidental minimo, seo 3}
Vqmins4, {Cortante do carregamento acidental minimo, seo 4}
Vqmaxsx, {Cortante do carregamento acidental maximo, seo x}
Vqmaxs0, {Cortante do carregamento acidental maximo, seo 0}
Vqmaxs1, {Cortante do carregamento acidental maximo, seo 1}
Vqmaxs2, {Cortante do carregamento acidental maximo, seo 2}
Vqmaxs3, {Cortante do carregamento acidental maximo, seo 3}
Vqmaxs4, {Cortante do carregamento acidental maximo, seo 4}
Vsd0, {Cortante de clculo para a seo 0}
Vsdx, {Cortante de clculo para a seo 0}
espacamento,
alfav2,
Vrd2, {Cortante resistente}
Vc0,
fctd,
Pinf,

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

if (epsolon>35) and (epsolon<37.5) then


sigmapd:=(epsolonp-35)*((160-159)/(37.5-35))+159;
if (epsolon>37.5) and (epsolon<40) then
sigmapd:=(epsolonp-37.5)*((161.1-160)/(40-37.5))+160;
if epsolon>40 then sigmapd:=160.1;
end;
if (tpaco = 'CP - 175RB') or (tpaco = 'CP - 175RN')
then begin
if epsolon<5.25 then sigmapd:=102.5;
if (epsolon>5.25) and (epsolon<6.794) then
sigmapd:=(epsolonp-5.25)*((126.4-102.5)/(6.794-5.25))+102.5;
if (epsolon>6.794) and (epsolon<7.438) then
sigmapd:=(epsolonp-6.794)*((131.6-126.4)/(7.438-6.794))+126.4;
if (epsolon>7.438) and (epsolon<8.167) then
sigmapd:=(epsolonp-7.438)*((134.4-131.6)/(8.167-7.438))+131.6;
if (epsolon>8.167) and (epsolon<9) then
sigmapd:=(epsolonp-8.167)*((136.5-134.4)/(9-8.167))+134.4;
if (epsolon>9) and (epsolon<9.962) then
sigmapd:=(epsolonp-9)*((136.8-136.5)/(9.962-9))+136.5;
if (epsolon>9.962) and (epsolon<10) then
sigmapd:=(epsolonp-9.962)*((136.8-136.8)/(10-9.962))+136.8;
if (epsolon>10) and (epsolon<12.5) then
sigmapd:=(epsolonp-10)*((137.8-136.8)/(12.5-10))+136.8;
if (epsolon>12.5) and (epsolon<15) then
sigmapd:=(epsolonp-12.5)*((138.8-137.8)/(15-12.5))+137.8;
if (epsolon>15) and (epsolon<17.5) then
sigmapd:=(epsolonp-15)*((139.7-138.8)/(17.5-15))+138.8;
if (epsolon>17.5) and (epsolon<20) then
sigmapd:=(epsolonp-17.5)*((140.7-139.7)/(20-17.5))+139.7;
if (epsolon>20) and (epsolon<22.5) then
sigmapd:=(epsolonp-20)*((141.6-140.7)/(22.5-20))+140.7;
if (epsolon>22.5) and (epsolon<25) then
sigmapd:=(epsolonp-22.5)*((142.6-141.6)/(25-22.5))+141.6;
if (epsolon>25) and (epsolon<27.5) then
sigmapd:=(epsolonp-25)*((143.6-142.6)/(27.5-25))+142.6;
if (epsolon>27.5) and (epsolon<30) then
sigmapd:=(epsolonp-27.5)*((144.5-143.6)/(30-27.5))+143.6;
if (epsolon>30) and (epsolon<32.5) then
sigmapd:=(epsolonp-30)*((145.5-144.5)/(32.5-30))+144.5;
if (epsolon>32.5) and (epsolon<35) then
sigmapd:=(epsolonp-32.5)*((146.4-145.5)/(35-32.5))+145.5;
if (epsolon>35) and (epsolon<37.5) then
sigmapd:=(epsolonp-35)*((147.4-146.4)/(37.5-35))+146.4;
if (epsolon>37.5) and (epsolon<40) then
sigmapd:=(epsolonp-37.5)*((148.4-147.4)/(40-37.5))+147.4;
if epsolon>40 then sigmapd:=148.4;
end;
x:= Ap*sigmapd*140/(0.68*bf*fckcp*1000);
edit13.text:=floattostrf(x,ffFixed,18,2);
if (x<capa) and (x<x2) then
Mr:=0.85*fckcp*bf*8*x*(dte-0.4*x)/140;

135

if (x>capa) and (x<x2) then


Mr:=(0.85*fckcp*(bf-bw)*8*x*(dte-0.4*x)/140)+(0.85*fckcp*bw*8*x*(dte-0.4*x)/140);
edit14.text:=floattostrf(Mr,ffFixed,18,2);
if Mr<Ma then
begin
edit14.color:=clred;
Showmessage('A seo no foi verificada pelo ELU.');
end;
if x<x2 then
edit16.text:= 'Domnio 2';
if x<capa then
edit17.Text:= 'LN na mesa';
if x>capa then
edit17.Text:= 'LN na alma';
end;
procedure TFAPESP2.FormCreate(Sender: TObject);
begin
{Apresentando os valores da verificao da fissurao}
s1i:= formulario.sig1i;
s1s:= formulario.sig1s;
s2i:= formulario.sig2i;
s2s:= formulario.sig2s;
s3i:= formulario.sig3i;
s3s:= formulario.sig3s;
s4i:= formulario.sig4i;
s4s:= formulario.sig4s;
lsup:=formulario.limsup;
linf:=formulario.liminf;
edit1.text:=floattostrf(s3i,ffFixed,18,2);
if (s3i<0) or (s3i>lsup) then edit1.Color:=clred;
edit2.text:=floattostrf(s4i,ffFixed,18,2);
if (s4i<0) or (s4i>lsup) then edit2.Color:=clred;
edit3.text:=floattostrf(s3s,ffFixed,18,2);
if (s3s<0) or (s3s>lsup) then edit3.Color:=clred;
edit4.text:=floattostrf(s4s,ffFixed,18,2);
if (s4s<0) or (s4s>lsup) then edit4.Color:=clred;
edit7.text:=floattostrf(s1i,ffFixed,18,2);
if (s1i<linf) or (s1i>lsup) then edit7.Color:=clred;
edit8.text:=floattostrf(s2i,ffFixed,18,2);
if (s2i<linf) or (s2i>lsup) then edit8.Color:=clred;
edit9.text:=floattostrf(s1s,ffFixed,18,2);
if (s1s<linf) or (s1s>lsup) then edit9.Color:=clred;
edit10.text:=floattostrf(s2s,ffFixed,18,2);
if (s2s<linf) or (s2s>lsup) then edit10.Color:=clred;
edit5.text:='0';
edit6.text:=floattostrf(lsup,ffFixed,18,2);

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

sigma4i:=Nps4/Ac + Mps4/W - Mg1s4/W;


sigma4s:=Nps4/Ac - Mps4/W + Mg1s4/W;
sigma5i:=Nps5/Ac + Mps5/W - Mg1/W;
sigma5s:=Nps5/Ac - Mps5/W + Mg1/W;
{Limites no tempo zero}
lzinf:=-1.2*0.3*1000*(exp((2/3)*ln(fcj))); {x elevado a y -> exp(y*ln(x))}
lzsup:=700*fcj;
{Porcentagem de perda}
perda1i:=(sigmap-sigmapinfs1)*100/sigmap;
perda1s:=(sigmap-sigmapsups1)*100/sigmap;
perda2i:=(sigmap-sigmapinfs2)*100/sigmap;
perda2s:=(sigmap-sigmapsups2)*100/sigmap;
perda3i:=(sigmap-sigmapinfs3)*100/sigmap;
perda3s:=(sigmap-sigmapsups3)*100/sigmap;
perda4i:=(sigmap-sigmapinfs4)*100/sigmap;
perda4s:=(sigmap-sigmapsups4)*100/sigmap;
perda5i:=perdatinf;
perda5s:=perdatsup;
{Abrir terceiro formulrio}
Application.CreateForm(TFAPESP3, FAPESP3);
FAPESP3.ShowModal;
FAPESP3.Free;
end;
procedure TFAPESP2.Button4Click(Sender: TObject);
begin
if (edit18.text <> '') AND (edit19.text <> '') AND (edit20.text <> '') AND (edit21.text <> '')
Then
Begin
b4on:=1;
Ap:=formulario.Ap;
fs1:=formulario.fs1;
fs2:=formulario.fs2;
fs3:=formulario.fs3;
fs4:=formulario.fs4;
fs5:=formulario.fs5;
fsq:=formulario.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;
fck:=formulario.fck;
bw:=formulario.bw;
d:=formulario.d;
fctm:= 0.3*exp(ln(sqr(fck))/3)*1000;
xx1:= vao/10;
xx2:= 2*vao/10;

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

Write(f,'Cabos no isolados na seo 4=>');


Writeln(f, formulario5.nn4);
Write(f,'Cabos no isolados na seo 5=>');
Writeln(f, formulario5.nn5);
Write(f,'Espaamento=>');
Writeln(f,StringReplace(floattostrf(espacamento,ffFixed,18,0), ',', '.', [rfReplaceAll]));
Write(f,'fck=>');
Writeln(f,StringReplace(floattostrf(formulario.fck,ffFixed,18,0), ',', '.', [rfReplaceAll]));
Write(f,'fcj=>');
Writeln(f,StringReplace(floattostrf(formulario.fcj,ffFixed,18,0), ',', '.', [rfReplaceAll]));
Write(f,'Tenso inicial de protenso=>');
Writeln(f,StringReplace(floattostrf(formulario.sigmap,ffFixed,18,2), ',', '.', [rfReplaceAll]));
Closefile(f);
ShowMessage('O arquivo foi criado com sucesso!');
end
else ShowMessage('O arquivo no foi criado!');
end
else
if (b3on<>1) then
Showmessage(' necessrio fazer as verificaes em dcimo de vo!');
if (formulario5.b6on<>1) then
Showmessage(' necessrio fazer as verificaes do isolamento de cabos!');
if (b4on<>1) then
Showmessage(' necessrio fazer as verificaes da armadura transversal!');
end;
end.

10.3 ANEXO C JANELA3 DELPHI


unit Formulario3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Math;
type
TFAPESP3 = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;

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

if (sig1is3<linf) or (sig1is3>lsup) then edit25.Color:=clred;


if (sig1is4<linf) or (sig1is4>lsup) then edit33.Color:=clred;
if (sig1ss1<linf) or (sig1ss1>lsup) then edit9.Color:=clred;
if (sig1ss2<linf) or (sig1ss2>lsup) then edit19.Color:=clred;
if (sig1ss3<linf) or (sig1ss3>lsup) then edit27.Color:=clred;
if (sig1ss4<linf) or (sig1ss4>lsup) then edit35.Color:=clred;
sig2is1:=formulario2.sig2is1;
sig2ss1:=formulario2.sig2ss1;
sig2is2:=formulario2.sig2is2;
sig2ss2:=formulario2.sig2ss2;
sig2is3:=formulario2.sig2is3;
sig2ss3:=formulario2.sig2ss3;
sig2is4:=formulario2.sig2is4;
sig2ss4:=formulario2.sig2ss4;
edit8.Text:=floattostrf(sig2is1,ffFixed,18,2);
edit18.Text:=floattostrf(sig2is2,ffFixed,18,2);
edit26.Text:=floattostrf(sig2is3,ffFixed,18,2);
edit34.Text:=floattostrf(sig2is4,ffFixed,18,2);
edit10.Text:=floattostrf(sig2ss1,ffFixed,18,2);
edit20.Text:=floattostrf(sig2ss2,ffFixed,18,2);
edit28.Text:=floattostrf(sig2ss3,ffFixed,18,2);
edit36.Text:=floattostrf(sig2ss4,ffFixed,18,2);
if (sig2is1<linf) or (sig2is1>lsup) then edit8.Color:=clred;
if (sig2is2<linf) or (sig2is2>lsup) then edit18.Color:=clred;
if (sig2is3<linf) or (sig2is3>lsup) then edit26.Color:=clred;
if (sig2is4<linf) or (sig2is4>lsup) then edit34.Color:=clred;
if (sig2ss1<linf) or (sig2ss1>lsup) then edit10.Color:=clred;
if (sig2ss2<linf) or (sig2ss2>lsup) then edit20.Color:=clred;
if (sig2ss3<linf) or (sig2ss3>lsup) then edit28.Color:=clred;
if (sig2ss4<linf) or (sig2ss4>lsup) then edit36.Color:=clred;
sig3is1:=formulario2.sig3is1;
sig3ss1:=formulario2.sig3ss1;
sig3is2:=formulario2.sig3is2;
sig3ss2:=formulario2.sig3ss2;
sig3is3:=formulario2.sig3is3;
sig3ss3:=formulario2.sig3ss3;
sig3is4:=formulario2.sig3is4;
sig3ss4:=formulario2.sig3ss4;
edit1.Text:=floattostrf(sig3is1,ffFixed,18,2);
edit13.Text:=floattostrf(sig3is2,ffFixed,18,2);
edit21.Text:=floattostrf(sig3is3,ffFixed,18,2);
edit29.Text:=floattostrf(sig3is4,ffFixed,18,2);
edit3.Text:=floattostrf(sig3ss1,ffFixed,18,2);
edit15.Text:=floattostrf(sig3ss2,ffFixed,18,2);
edit23.Text:=floattostrf(sig3ss3,ffFixed,18,2);
edit31.Text:=floattostrf(sig3ss4,ffFixed,18,2);
if (sig3is1<0) or (sig3is1>lsup) then edit1.Color:=clred;
if (sig3is2<0) or (sig3is2>lsup) then edit13.Color:=clred;
if (sig3is3<0) or (sig3is3>lsup) then edit21.Color:=clred;

158

if (sig3is4<0) or (sig3is4>lsup) then edit29.Color:=clred;


if (sig3ss1<0) or (sig3ss1>lsup) then edit3.Color:=clred;
if (sig3ss2<0) or (sig3ss2>lsup) then edit15.Color:=clred;
if (sig3ss3<0) or (sig3ss3>lsup) then edit23.Color:=clred;
if (sig3ss4<0) or (sig3ss4>lsup) then edit31.Color:=clred;
sig4is1:=formulario2.sig4is1;
sig4ss1:=formulario2.sig4ss1;
sig4is2:=formulario2.sig4is2;
sig4ss2:=formulario2.sig4ss2;
sig4is3:=formulario2.sig4is3;
sig4ss3:=formulario2.sig4ss3;
sig4is4:=formulario2.sig4is4;
sig4ss4:=formulario2.sig4ss4;
edit2.Text:=floattostrf(sig4is1,ffFixed,18,2);
edit14.Text:=floattostrf(sig4is2,ffFixed,18,2);
edit22.Text:=floattostrf(sig4is3,ffFixed,18,2);
edit30.Text:=floattostrf(sig4is4,ffFixed,18,2);
edit4.Text:=floattostrf(sig4ss1,ffFixed,18,2);
edit16.Text:=floattostrf(sig4ss2,ffFixed,18,2);
edit24.Text:=floattostrf(sig4ss3,ffFixed,18,2);
edit32.Text:=floattostrf(sig4ss4,ffFixed,18,2);
if (sig4is1<0) or (sig4is1>lsup) then edit2.Color:=clred;
if (sig4is2<0) or (sig4is2>lsup) then edit14.Color:=clred;
if (sig4is3<0) or (sig4is3>lsup) then edit22.Color:=clred;
if (sig4is4<0) or (sig4is4>lsup) then edit30.Color:=clred;
if (sig4ss1<0) or (sig4ss1>lsup) then edit4.Color:=clred;
if (sig4ss2<0) or (sig4ss2>lsup) then edit16.Color:=clred;
if (sig4ss3<0) or (sig4ss3>lsup) then edit24.Color:=clred;
if (sig4ss4<0) or (sig4ss4>lsup) then edit32.Color:=clred;
edit5.text:='0';
edit6.text:=floattostrf(lsup,ffFixed,18,2);
edit11.text:=floattostrf(linf,ffFixed,18,2);
edit12.text:=floattostrf(lsup,ffFixed,18,2);
s1i:=formulario.sig1i;
s1s:=formulario.sig1s;
s2i:=formulario.sig2i;
s2s:=formulario.sig2s;
s3i:=formulario.sig3i;
s3s:=formulario.sig3s;
s4i:=formulario.sig4i;
s4s:=formulario.sig4s;
edit37.text:=floattostrf(s3i,ffFixed,18,2);
edit38.text:=floattostrf(s4i,ffFixed,18,2);
edit39.text:=floattostrf(s3s,ffFixed,18,2);
edit40.text:=floattostrf(s4s,ffFixed,18,2);
edit41.text:=floattostrf(s1i,ffFixed,18,2);
edit42.text:=floattostrf(s2i,ffFixed,18,2);
edit43.text:=floattostrf(s1s,ffFixed,18,2);
edit44.text:=floattostrf(s2s,ffFixed,18,2);

159

if (s3i<0) or (sig4is1>lsup) then edit37.Color:=clred;


if (s4i<0) or (sig4is2>lsup) then edit38.Color:=clred;
if (s3s<0) or (sig4is3>lsup) then edit39.Color:=clred;
if (s4s<0) or (sig4is4>lsup) then edit40.Color:=clred;
if (s1i<linf) or (sig4ss1>lsup) then edit41.Color:=clred;
if (s2i<linf) or (sig4ss2>lsup) then edit42.Color:=clred;
if (s1s<linf) or (sig4ss3>lsup) then edit43.Color:=clred;
if (s2s<linf) or (sig4ss4>lsup) then edit44.Color:=clred;
{Valores no tempo zero}
sigma1s:=formulario2.sigma1s;
sigma1i:=formulario2.sigma1i;
sigma2s:=formulario2.sigma2s;
sigma2i:=formulario2.sigma2i;
sigma3s:=formulario2.sigma3s;
sigma3i:=formulario2.sigma3i;
sigma4s:=formulario2.sigma4s;
sigma4i:=formulario2.sigma4i;
sigma5s:=formulario2.sigma5s;
sigma5i:=formulario2.sigma5i;
edit45.text:=floattostrf(sigma1s,ffFixed,18,2);
edit46.text:=floattostrf(sigma1i,ffFixed,18,2);
edit47.text:=floattostrf(sigma2s,ffFixed,18,2);
edit48.text:=floattostrf(sigma2i,ffFixed,18,2);
edit49.text:=floattostrf(sigma3s,ffFixed,18,2);
edit50.text:=floattostrf(sigma3i,ffFixed,18,2);
edit51.text:=floattostrf(sigma4s,ffFixed,18,2);
edit52.text:=floattostrf(sigma4i,ffFixed,18,2);
edit53.text:=floattostrf(sigma5s,ffFixed,18,2);
edit54.text:=floattostrf(sigma5i,ffFixed,18,2);
if (sigma1s<lzinf) or (sigma1s>lzsup) then edit45.Color:=clred;
if (sigma1i<lzinf) or (sigma1i>lzsup) then edit46.Color:=clred;
if (sigma2s<lzinf) or (sigma2s>lzsup) then edit47.Color:=clred;
if (sigma2i<lzinf) or (sigma2i>lzsup) then edit48.Color:=clred;
if (sigma3s<lzinf) or (sigma3s>lzsup) then edit49.Color:=clred;
if (sigma3i<lzinf) or (sigma3i>lzsup) then edit50.Color:=clred;
if (sigma4s<lzinf) or (sigma4s>lzsup) then edit51.Color:=clred;
if (sigma4i<lzinf) or (sigma4i>lzsup) then edit52.Color:=clred;
if (sigma5s<lzinf) or (sigma5s>lzsup) then edit53.Color:=clred;
if (sigma5i<lzinf) or (sigma5i>lzsup) then edit54.Color:=clred;
{Limites}
edit65.text:=floattostrf(lzinf,ffFixed,18,2);
edit66.text:=floattostrf(lzsup,ffFixed,18,2);
{Porcentagem das perdas}
edit55.text:=floattostrf(perda1s,ffFixed,18,2);
edit56.text:=floattostrf(perda1i,ffFixed,18,2);
edit57.text:=floattostrf(perda2s,ffFixed,18,2);
edit58.text:=floattostrf(perda2i,ffFixed,18,2);
edit59.text:=floattostrf(perda3s,ffFixed,18,2);
edit60.text:=floattostrf(perda3i,ffFixed,18,2);

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.

10.4 ANEXO D JANELA4 DELPHI


unit Formulario4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Math, StdCtrls;
type
TFAPESP4 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label50: TLabel;
Label1: TLabel;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Edit7: TEdit;
Label63: TLabel;
Edit8: TEdit;
Label6: TLabel;
Label7: TLabel;

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.

10.5 ANEXO E JANELA5 DELPHI


unit Formulario5;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TFAPESP5 = class(TForm)
Label21: TLabel;
Label20: TLabel;
Label19: TLabel;
Label18: TLabel;
Label17: TLabel;
GroupBox1: TGroupBox;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit1: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Edit10: TEdit;
Label1: TLabel;
Button1: TButton;
Edit11: TEdit;
Edit12: TEdit;
Edit13: TEdit;
Edit14: TEdit;
Edit15: TEdit;
Label2: TLabel;
Label3: TLabel;
Label111: TLabel;
procedure RadioButton1Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
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;

{Norma estabelece que a tenso no cabo seja de 25 KN/cm2}

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

if (rb=1) or (rb=2) then begin


b6on:=1;
close;
end
else
Showmessage('Escolha um limite!');
end;
end.

10.6 ANEXO F ROTINA LISP


(princ "\nDigite Detalhamento")
(defun c:detalhamento ( )
(setvar "CMDECHO" 0)
(setq V (getvar "OSMODE"))
(setvar "OSMODE" 0)
(setq oldtstyle (getvar "textstyle"))
;MDULO TRANSVERSAL Mtransv
(setq arquivo (getfiled "Selecione o arquivo para detalhamento" "c:/" "txt" 2))
(setq arq (open arquivo "r"))
(setq linha (read-line arq))
(setq linha (read-line arq))
(setq linha (read-line arq))
(setq linha (read-line arq))
(setq aco (substr linha 19 3))
(setq aco (atof aco))
(setq tpaco (substr linha 14 10))
(setq linha (read-line arq))
(setq b (substr linha 22 5))
(setq b (atof b))
(setq linha (read-line arq))
(setq h (substr linha 12 5))
(setq h (atof h))
(setq linha (read-line arq))
(setq c (substr linha 16 4))
(setq c (atof c))
(setq linha (read-line arq))
(setq fi1 (substr linha 22 5))
(setq fi (atof fi1))
(setq linha (read-line arq))
(setq d11 (substr linha 24 5))
(setq d1 (atof d11))
(setq linha (read-line arq))
(setq d21 (substr linha 30 4))
(setq d2 (atof d21))
(setq linha (read-line arq))
(setq d31 (substr linha 28 5))
(setq d3 (atof d31))
(setq linha (read-line arq))

169

(setq m (substr linha 44 3))


(setq m (atof m))
(setq mmm m)
(setq m (+ m 2))
(setq linha (read-line arq))
(setq mn (substr linha 44 3))
(setq mn (atof mn))
(setq mnm mn)
(setq mn (+ mn 2))
(setq linha (read-line arq))
(setq mp (substr linha 19 4))
(setq mp (atof mp))
(setq linha (read-line arq))
(setq dap (substr linha 31 4))
(setq dap (atof dap))
(setq linha (read-line arq))
(setq nap (substr linha 19 3))
(setq nap (atof nap))
(setq nap1 (fix (/ nap 2)))
(if (= (/ nap 2) nap1)
(setq nap nap1)
(setq nap (+ nap1 1))
)
(setq linha (read-line arq))
(setq ln (substr linha 19 4))
(setq ln (atof ln))
(setq linha (read-line arq))
(setq d (substr linha 17 5))
(setq d (atof d))
(setq linha (read-line arq))
(setq capa (substr linha 7 5))
(setq capa (atof capa))
(setq linha (read-line arq))
(setq hlaje (substr linha 17 5))
(setq hlaje (atof hlaje))
(setq linha (read-line arq))
(setq bf (substr linha 22 6))
(setq bf (atof bf))
(setq linha (read-line arq))
(setq vao (substr linha 6 6))
(setq vao (atof vao))
(setq linha (read-line arq))
(setq sv (substr linha 23 5))
(setq sv (atof sv))
(setq linha (read-line arq))
(setq sh (substr linha 25 5))
(setq sh (atof sh))
(setq linha (read-line arq))
(setq nn1 (substr linha 32 2))
(setq linha (read-line arq))
(setq nn2 (substr linha 32 2))
(setq linha (read-line arq))
(setq nn3 (substr linha 32 2))
(setq linha (read-line arq))
(setq nn4 (substr linha 32 2))

170

(setq linha (read-line arq))


(setq nn5 (substr linha 32 2))
(setq linha (read-line arq))
(setq espac (substr linha 14 3))
(setq espac (atof espac))
(setq linha (read-line arq))
(setq fck (substr linha 6 3))
(setq fck (atof fck))
(setq linha (read-line arq))
(setq fcj (substr linha 6 3))
(setq fcj (atof fcj))
(setq linha (read-line arq))
(setq tensao (substr linha 30 7))
(setq tensao (atof tensao))
(close arq)
(command ".layer" "N" "Viga" "C" "3" "Viga" "")
(command ".layer" "N" "Estribo" "C" "2" "Estribo" "")
(command ".layer" "N" "Texto" "C" "6" "Texto" "")
(command ".layer" "N" "Eixos" "C" "1" "Eixos" "")
(command ".layer" "N" "Barras" "C" "3" "Barras" "")
(command ".layer" "N" "Armadura" "C" "20" "Armadura" "")
(command ".layer" "N" "Cabos" "C" "1" "Cabos" "")
(command ".layer" "N" "Tabela" "C" "1" "Tabela" "")
(command ".layer" "N" "Quadro" "C" "164" "Quadro" "")
(command ".layer" "S" "Viga" "")
(command ".rectangle" (list 0 0) (list b h) "")
(setq retangulo (entlast))
(command "chamfer" "D" 1 1)
(command "chamfer" "P" retangulo)
(command ".ucs" "M" (list 0 800))
(command ".rectangle" (list 0 0) (list b h) "")
(setq retangulo (entlast))
(command "chamfer" "D" 1 1)
(command "chamfer" "P" retangulo)
(command ".ucs" "M" (list 0 -800))
(command ".osnap" "off")
(command ".layer" "S" "Texto" "")
(setq userfont "arial.ttf")
(setvar "textstyle" (cdr (assoc 2 (tblnext "style" t))))
(command "._Style" "" userfont 5 1 0 "N" "N")
(command ".text" "s" "standard" "TC" (list (/ b 2) -5) "0" "Seo transversal retangular")
(command ".ucs" "M" (list 0 800))
(command ".text" "s" "standard" "TC" (list (/ b 2) -5) "0" "Seo transversal retangular")
(command ".ucs" "M" (list 0 -800))
(command ".layer" "S" "Viga" "")
; Criando seo composta
(setq p1a (list 1 (- 0 (* 3 (+ hlaje capa)))))
(setq p1b (list 0 (- -1 (* 3 (+ hlaje capa)))))
(setq p2a (list 0 (- 1 (+ h (* 3 (+ hlaje capa))))))
(setq p2b (list 1 (- 0 (+ h (* 3 (+ hlaje capa))))))
(setq p3a (list (- b 1) (- 0 (+ (* 3 (+ hlaje capa)) h))))
(setq p3b (list b (- 1 (+ (* 3 (+ hlaje capa)) h))))

171

(setq p4a (list b (- -1 (* 3 (+ hlaje capa)))))


(setq p4b (list (- b 1) (- 0 (* 3 (+ hlaje capa)))))
(setq p5 (list (- b 7) (- 0 (* 3 (+ hlaje capa)))))
(setq p6 (list (- b 7) (+ (- 0 (* 3 (+ hlaje capa))) hlaje)))
(setq p7 (list (+ (- b 7) (/ bf 2) 7 (- 0 (/ b 2))) (+ (- 0 (* 3 (+ hlaje capa))) hlaje)))
(setq p8 (list (+ (- b 7) (/ bf 2) 7 (- 0 (/ b 2))) (+ (- 0 (* 3 (+ hlaje capa))) hlaje capa)))
(setq p9 (list (- (+ (- b 7) (/ bf 2) 7 (- 0 (/ b 2))) bf) (+ (- 0 (* 3 (+ hlaje capa))) hlaje capa)))
(setq p10 (list (- (+ (- b 7) (/ bf 2) 7 (- 0 (/ b 2))) bf) (+ (- 0 (* 3 (+ hlaje capa))) hlaje)))
(setq p11 (list 7 (+ (- 0 (* 3 (+ hlaje capa))) hlaje)))
(setq p12 (list 7 (- 0 (* 3 (+ hlaje capa)))))
(command ".pline" p1a P1b p2a P2b p3a P3b p4a P4b p5 p6 p7 p8 p9 p10 p11 p12 "close")
(command ".ucs" "M" (list 0 800))
(command ".pline" p1a P1b p2a P2b p3a P3b p4a P4b "close")
(command ".pline" p5 p6 p7 p8 p9 p10 p11 p12 "close")
(setq ent (entlast))
(command "._hatch" "_P" "ANSI37" 1 "0.0" "_S" ent "")
(command ".rectangle" (list -45 (- (- 0 (+ h (* 3 (+ hlaje capa)))) 40)) (list -35 (- (- 0 (+ h (* 3
(+ hlaje capa)))) 30)) "")
(setq ent (entlast))
(command "._hatch" "_P" "ANSI37" 1 "0.0" "_S" ent "")
(command ".ucs" "M" (list 0 -800))
(command ".layer" "S" "Texto" "")
(command ".text" "s" "standard" "TC" (list (/ b 2) (- 0 (+ (* 3 (+ hlaje capa))h) 5)) "0" "Seo
transversal composta")
(command ".ucs" "M" (list 0 800))
(command ".text" "s" "standard" "TC" (list (/ b 2) (- 0 (+ (* 3 (+ hlaje capa))h) 5)) "0" "Seo
transversal composta")
(command ".text" "s" "standard" "ML" (list -25 (- 0 (+ h (* 3 (+ hlaje capa))) 35)) "0"
"Concreto moldado no local")
(command ".ucs" "M" (list 0 -800))
(if (<= fi 1)
(setq fi1l (* 3 fi))
)
(if (and (< 1 fi) (< fi 2))
(setq fi1l (* 5 fi))
)
(if (>= fi 2)
(setq fi1l (* 8 fi))
)
(setq fi1 (/ fi1l 2))
(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))
(command ".layer" "S" "Estribo" "")
(setq p1 (list ce1 c))
(setq p2 (list ce2 c))
(setq p3 (list a1 ce1))

172

(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)) "")
; Estribos para seo composta
(setq p1 (list ce1 (- c (+ (* 3 (+ hlaje capa))h))))
(setq p2 (list ce2 (- c (+ (* 3 (+ hlaje capa))h))))
(setq p3 (list a1 (- ce1 (+ (* 3 (+ hlaje capa))h))))
(setq p4 (list a1 (- ce3 (+ (* 3 (+ hlaje capa))h))))
(setq p5 (list ce2 (- a2 (+ (* 3 (+ hlaje capa))h))))
(setq p6 (list ce1 (- a2 (+ (* 3 (+ hlaje capa))h))))
(setq p7 (list c (- ce3 (+ (* 3 (+ hlaje capa))h))))
(setq p8 (list c (- ce1 (+ (* 3 (+ hlaje capa))h))))
(setq pc1 (list ce2 (+ (- c (+ (* 3 (+ hlaje capa))h)) fi1)))
(setq pc2 (list (- a1 fi1) (- ce3 (+ (* 3 (+ hlaje capa))h))))
(setq pc3 (list ce1 (- (- a2 (+ (* 3 (+ hlaje capa))h)) fi1)))
(setq pc4 (list (+ c fi1) (- ce1 (+ (* 3 (+ hlaje capa))h))))
(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) (- 0 (* 3 (+ hlaje capa)) (/ h 2))) "")
(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)))))
(setq pc3 (list (+ ce1 7) (+ hlaje capa (- (- a2 (+ (* 3 (+ hlaje capa))h)) fi1))))
(setq pc4 (list (+ (+ c fi1) 7) (- ce1 (+ (* 3 (+ hlaje capa))h))))
(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) (- 0 (* 3 (+ hlaje capa)) (/ h 2))) "")
(setq mlinha m)

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

(setq ahu3 ahu)


(setq si (- m (* (- ncam2 1) (+ n 1)))) ; (- ncam2 1) o numero de camadas simtricas. si
o nmero de barras da ltima camada
(if (= (rem m (+ n 1)) 0) ; caso com todas as camadas com o mximo de barras possvel
(if (= (/ m (+ n 1)) 1) ; s 1 camada com barras
(while (> mlinha 2)
(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))
(command ".circle" (list (+ a3 (/ d1 2) ahli) (+ a3 (/ d1 2))) (/ d1 2))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(command ".circle" (list (+ a3 (/ d1 2) ahli) (+ a3 (/ d1 2))) (/ d1 2))
(setq ahli (+ ahli ahlinha))
(setq mlinha (- mlinha 1)))
(if (= (/ m (+ n 1)) 2)
(while (> mlinha (- m (+ n 1))) ; caso com 2 camadas completas
(while (> (+ nlinha 1) 2)
(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))
(command ".circle" (list (+ a3 (/ d1 2) ahli) (+ a3 (/ d1 2))) (/ d1 2))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(command ".circle" (list (+ a3 (/ d1 2) ahli) (+ a3 (/ d1 2))) (/ d1 2))
(setq ahli (+ ahli ahlinha))
(setq nlinha (- nlinha 1)))
(command ".circle" (list (+ a3linha (/ d1 2)) (+ a3 (/ d1 2) av)) (/ d1 2))
(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))
(command ".circle" (list (+ a3linha (/ d1 2)) (+ a3 (/ d1 2) av)) (/ d1 2))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(setq a3linha (+ a3linha ahlinha))
(setq mlinha (- mlinha 1)))
(if (= (/ m (+ n 1)) 3) ; caso com 3 camadas completas
(while (> mlinha (- m (+ n 1)))
(while (> (+ nlinha 1) 0)
(while (> (+ nlinha2 1) 2)
(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))
(command ".circle" (list (+ a3 (/ d1 2) ahli) (+ a3 (/ d1 2))) (/ d1 2))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(command ".circle" (list (+ a3 (/ d1 2) ahli) (+ a3 (/ d1 2))) (/ d1 2))
(setq ahli (+ ahli ahlinha))
(setq nlinha2 (- nlinha2 1)))
(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))
(command ".circle" (list (+ a3linha (/ d1 2)) (+ a3 (/ d1 2) av)) (/ d1 2))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(command ".circle" (list (+ a3linha (/ d1 2)) (+ a3 (/ d1 2) av)) (/ d1 2))
(setq a3linha (+ a3linha ahlinha))
(setq nlinha (- nlinha 1)))
(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))
(command ".circle" (list (+ a3linha2 (/ d1 2)) (+ a3 (/ d1 2) (* (- ncam1 1) av))) (/
d1 2))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(command ".circle" (list (+ a3linha2 (/ d1 2)) (+ a3 (/ d1 2) (* (- ncam1 1) av)))
(/ d1 2))
(setq a3linha2 (+ a3linha2 ahlinha))
(setq mlinha (- mlinha 1)))
(if (> (/ m (+ n 1)) 3) ; caso para 4 ou mais camadas completas
(while (> mlinha (- m (+ n 1)))
(while (> mg 1)
(while (> (+ nlinha2 1) 2)

175

(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))


(command ".circle" (list (+ a3 (/ d1 2) ahli) (+ a3 (/ d1 2))) (/ d1 2))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(command ".circle" (list (+ a3 (/ d1 2) ahli) (+ a3 (/ d1 2))) (/ d1 2))
(setq ahli (+ ahli ahlinha))
(setq nlinha2 (- nlinha2 1)))
(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))
(command ".circle" (list (+ a3 (/ d1 2)) (+ a3 (/ d1 2) av)) (/ d1 2))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(command ".circle" (list (+ a3 (/ d1 2)) (+ a3 (/ d1 2) av)) (/ d1 2))
(setq circ (entlast))
(command ".array" circ "" "R" (- ncam1 2) (+ n 1) av ahlinha)
(setq mg (- mg 1)))
(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))
(command ".circle" (list (+ a3linha2 (/ d1 2)) (+ a3 (/ d1 2) (* (- ncam1 1) av))) (/
d1 2))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(command ".circle" (list (+ a3linha2 (/ d1 2)) (+ a3 (/ d1 2) (* (- ncam1 1) av)))
(/ d1 2))
(setq a3linha2 (+ a3linha2 ahlinha))
(setq mlinha (- mlinha 1))))
)
)
)
(if (< m (+ n 1)) ; caso onde s h uma camada e esta no est totalmente preenchida
(while (> (- mlinha 2) 0)
(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))
(command ".circle" (list (+ a3 (/ d1 2) ahu2) (+ a3 (/ d1 2))) (/ d1 2))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(command ".circle" (list (+ a3 (/ d1 2) ahu2) (+ a3 (/ d1 2))) (/ d1 2))
(setq ahu2 (+ ahu2 ahu)) ; ahu o espaamento para este caso. diferente para
deixar o arranjo simtrico
(setq mlinha (- mlinha 1))))
)
(if (> (rem m (+ n 1)) 0) ; caso de armadura com a ltima camada diferente das demais
(if (= (+ 1 (fix (/ m (+ n 1)))) 2) ; caso para duas camadas, sendo a ultima assimtrica
(while (> (- mlinha (+ n 1)) 0)
(while (> (+ nlinha 1) 2)
(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))
(command ".circle" (list (+ a3 (/ d1 2) ahli) (+ a3 (/ d1 2))) (/ d1 2))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(command ".circle" (list (+ a3 (/ d1 2) ahli) (+ a3 (/ d1 2))) (/ d1 2))
(setq ahli (+ ahli ahlinha))
(setq nlinha (- nlinha 1)))
(if (= (rem si 2) 0) ; essa subrotina serve para intercalar as barras na ltima
camada, para deixar simtrico
(progn
(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))
(command ".circle" (list (- b (+ a3linha (/ d1 2))) (+ a3 (/ d1 2) av)) (/ d1 2))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(command ".circle" (list (- b (+ a3linha (/ d1 2))) (+ a3 (/ d1 2) av)) (/ d1 2))
(setq a3linha (+ a3linha ahlinha)))
(progn
(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))

176

(command ".circle" (list (+ a3linha2 (/ d1 2)) (+ a3 (/ d1 2) av)) (/ d1 2))


(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(command ".circle" (list (+ a3linha2 (/ d1 2)) (+ a3 (/ d1 2) av)) (/ d1 2))
(setq a3linha2 (+ a3linha2 ahlinha))))
(setq mlinha (- mlinha 1))
(setq si (- si 1)))
(if (= (+ 1 (fix (/ m (+ n 1)))) 3) ; caso para 3 camadas com a ltima assimetrica
(while (> (- mlinha (* (+ n 1) (- ncam2 1)))0)
(while (> (+ nlinha 1) 0)
(while (> (+ nlinha2 1) 2)
(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))
(command ".circle" (list (+ a3 (/ d1 2) ahli) (+ a3 (/ d1 2))) (/ d1 2))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(command ".circle" (list (+ a3 (/ d1 2) ahli) (+ a3 (/ d1 2))) (/ d1 2))
(setq ahli (+ ahli ahlinha))
(setq nlinha2 (- nlinha2 1)))
(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))
(command ".circle" (list (+ a3linha (/ d1 2)) (+ a3 (/ d1 2) av)) (/ d1 2))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(command ".circle" (list (+ a3linha (/ d1 2)) (+ a3 (/ d1 2) av)) (/ d1 2))
(setq a3linha (+ a3linha ahlinha))
(setq nlinha (- nlinha 1)))
(if (= (rem si 2) 0)
(progn
(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))
(command ".circle" (list (- b (+ a3linha3 (/ d1 2))) (+ a3 (/ d1 2) (* (- ncam2 1)
av))) (/ d1 2))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(command ".circle" (list (- b (+ a3linha3 (/ d1 2))) (+ a3 (/ d1 2) (* (- ncam2 1)
av))) (/ d1 2))
(setq a3linha3 (+ a3linha3 ahlinha)))
(progn
(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))
(command ".circle" (list (+ a3linha2 (/ d1 2)) (+ a3 (/ d1 2) (* (- ncam2 1) av)))
(/ d1 2))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(command ".circle" (list (+ a3linha2 (/ d1 2)) (+ a3 (/ d1 2) (* (- ncam2 1) av)))
(/ d1 2))
(setq a3linha2 (+ a3linha2 ahlinha))))
(setq mlinha (- mlinha 1))
(setq si (- si 1)))
(if (> (+ 1 (fix (/ m (+ n 1)))) 3) ; caso para 4 ou mais camadas, sendo a ltima
assimetrica
(while (> (- mlinha (* (+ n 1) (- ncam2 1)))0)
(while (> mg 1)
(while (> (+ nlinha2 1) 2)
(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))
(command ".circle" (list (+ a3 (/ d1 2) ahli) (+ a3 (/ d1 2))) (/ d1 2))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(command ".circle" (list (+ a3 (/ d1 2) ahli) (+ a3 (/ d1 2))) (/ d1 2))
(setq ahli (+ ahli ahlinha))
(setq nlinha2 (- nlinha2 1)))
(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))
(command ".circle" (list (+ a3 (/ d1 2)) (+ a3 (/ d1 2) av)) (/ d1 2))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))

177

(command ".circle" (list (+ a3 (/ d1 2)) (+ a3 (/ d1 2) av)) (/ d1 2))


(setq circ (entlast))
(command ".array" circ "" "R" (- ncam2 2) (+ n 1) av ahlinha)
(setq mg (- mg 1)))
(if (= (rem si 2) 0)
(progn
(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))
(command ".circle" (list (- b (+ a3linha3 (/ d1 2))) (+ a3 (/ d1 2) (* (- ncam2
1) av))) (/ d1 2))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(command ".circle" (list (- b (+ a3linha3 (/ d1 2))) (+ a3 (/ d1 2) (* (- ncam2
1) av))) (/ d1 2))
(setq a3linha3 (+ a3linha3 ahlinha)))
(progn
(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))
(command ".circle" (list (+ a3linha2 (/ d1 2)) (+ a3 (/ d1 2) (* (- ncam2 1)
av))) (/ d1 2))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(command ".circle" (list (+ a3linha2 (/ d1 2)) (+ a3 (/ d1 2) (* (- ncam2 1)
av))) (/ d1 2))
(setq a3linha2 (+ a3linha2 ahlinha))))
(setq mlinha (- mlinha 1))
(setq si (- si 1))))
)
)
)
(if (> h 60)
(progn
(setq t3 (* 15 dap))
(setq ta (min (/ d 3) 20 t3))
; armadura de pele para armadura positiva
(if (= (rem m (+ n 1)) 0)
(progn
(setq en (- (- h (+ ln (/ dap 2))) (+ a3 (/ d1 2) (* (- ncam1 1) av))))
(setq tb (/ en nap))
(setq tlinha (min ta tb))
(command ".layer" "S" "Barras" "")
(command ".circle" (list (+ a3 (/ dap 2)) (+ c fi (* 2 d1) sv)) (/ dap 2))
(setq circpele (entlast))
(command ".array" circpele "" "R" nap "2" tlinha (- b (* 2 (+ a3 (/ dap 2))))) ; array
para as barraas da armadura
(command ".linetype" "s" "dashedx2" "")
(command ".layer" "S" "Eixos" "")
(command ".line" (list -5 (+ c fi (* 3 d1) (* 2 sv))) (list (+ b 5) (+ c fi (* 2 d1) sv)) "")
(setq lin (entlast))
(command ".array" lin "" "R" nap "1" tlinha) ; array para os eixos
(command ".linetype" "s" "bylayer" "")
)
(progn ; tem que ter essa rotina para saber o nmero de camadas da armadura
longitudinal (se ncam1 ou ncam2) e ajustar a armadura de pele nesse espaco
(setq en (- (- h (+ ln (/ dap 2))) (+ a3 (/ d1 2) (* (- ncam2 1) av))))
(setq tb (/ en nap))
(setq tlinha (min ta tb))
(command ".layer" "S" "Barras" "")

178

(command ".circle" (list (+ a3 (/ dap 2)) (+ c fi (* 3 d1) (* 2 sv))) (/ dap 2))


(setq circpele (entlast))
(command ".array" circpele "" "R" nap "2" tlinha (- b (* 2 (+ a3 (/ dap 2)))))
(command ".linetype" "s" "dashedx2" "")
(command ".layer" "S" "Eixos" "")
(command ".line" (list -5 (+ c fi (* 3 d1) (* 2 sv))) (list (+ b 5) (+ c fi (* 3 d1) (* 2
sv))) "")
(setq lin (entlast))
(command ".array" lin "" "R" nap "1" tlinha)
(command ".linetype" "s" "bylayer" "")
)
)
)
)
; subrotina para armadura negativa
(command ".layer" "S" "Barras" "")
(if (not (= mn 0))
(progn
(setq pe (* (/ (sqrt 2) 2) (- (+ (/ d3 2) fi (* (sqrt 2) (+ c fi1))) fi1)))
(setq pe1 (* (/ (sqrt 2) 2) (- (+ (/ d1 2) fi (* (sqrt 2) (+ c fi1))) fi1)))
(setq pe2 (- b pe))
(setq pe3 (- h (* (/ (sqrt 2) 2) (- (+ (/ d1 2) fi (* (sqrt 2) (+ c fi1))) fi1))))
(setq pe4 (- b (* (/ (sqrt 2) 2) (- (+ (/ d1 2) fi (* (sqrt 2) (+ c fi1))) fi1))))
(command ".circle" (list pe pe) (/ d3 2))
(command ".circle" (list pe2 pe) (/ d3 2))
(setq mg 2)
(setq ahlinha (/ alinha n))
(setq ahli ahlinha)
(setq ahli2 ahlinha)
(setq ncam1n (/ mn (+ n 1)))
(setq ncam2n (+ 1 (fix (/ mn (+ n 1)))))
(setq ahun (/ alinha (- mn 1)))
(setq ahu2n ahun)
(setq ahu3n ahun)
(setq sinn (- mn (* (- ncam2n 1) (+ n 1))))
(if (= (rem mn (+ n 1)) 0)
(if (= (/ mn (+ n 1)) 1)
(while (> mlinhan 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 mlinhan (- mlinha 1)))
(if (= (/ mn (+ n 1)) 2)
(while (> mlinhan (- mn (+ n 1)))
(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)))
(command ".circle" (list (+ a3linha (/ d1 2)) (- h (+ a3 (/ d1 2) av))) (/ d1 2))

179

(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 mlinhan (- mlinhan 1)))
(if (= (/ mn (+ n 1)) 3)
(while (> mlinhan (- mn (+ n 1)))
(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)))
(command ".circle" (list (+ a3linha2 (/ d1 2)) (- h (+ a3 (/ d1 2) (* (- ncam1 1)
av)))) (/ d1 2))
(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))
(command ".circle" (list (+ a3linha2 (/ d1 2)) (- h (+ a3 (/ d1 2) (* (- ncam1 1)
av)))) (/ d1 2))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(setq a3linha2 (+ a3linha2 ahlinha))
(setq mlinhan (- mlinhan 1)))
(if (> (/ mn (+ n 1)) 3)
(while (> mlinhan (- mn (+ n 1)))
(while (> mg 1)
(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 (+ a3 (/ d1 2)) (- h (+ a3 (/ d1 2) av))) (/ d1 2))
(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))
(command ".circle" (list (+ a3 (/ d1 2)) (- h (+ a3 (/ d1 2) av))) (/ d1 2))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(setq circ (entlast))
(command ".array" circ "" "R" (- ncam1 2) (+ n 1) (* -1 av) ahlinha)
(setq mg (- mg 1)))
(command ".circle" (list (+ a3linha2 (/ d1 2)) (- h (+ a3 (/ d1 2) (* (- ncam1 1)
av)))) (/ d1 2))
(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))
(command ".circle" (list (+ a3linha2 (/ d1 2)) (- h (+ a3 (/ d1 2) (* (- ncam1 1)
av)))) (/ d1 2))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(setq a3linha2 (+ a3linha2 ahlinha))
(setq mlinhan (- mlinhan 1))))
)

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

(command ".circle" (list (- b (+ a3linha3 (/ d1 2))) (- h (+ a3 (/ d1 2) (* (ncam2n 1) av)))) (/ d1 2))


(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))
(command ".circle" (list (- b (+ a3linha3 (/ d1 2))) (- h (+ a3 (/ d1 2) (* (ncam2n 1) av)))) (/ d1 2))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(setq a3linha3 (+ a3linha3 ahlinha)))
(progn
(command ".circle" (list (+ a3linha2 (/ d1 2)) (- h (+ a3 (/ d1 2) (* (- ncam2n 1)
av)))) (/ d1 2))
(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))
(command ".circle" (list (+ a3linha2 (/ d1 2)) (- h (+ a3 (/ d1 2) (* (- ncam2n 1)
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 (> mg 1)
(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 (+ a3 (/ d1 2)) (- h (+ a3 (/ d1 2) av))) (/ d1 2))
(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))
(command ".circle" (list (+ a3 (/ d1 2)) (- h (+ a3 (/ d1 2) av))) (/ d1 2))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(setq circ (entlast))
(command ".array" circ "" "R" (- ncam2n 2) (+ n 1) (* -1 av) ahlinha)
(setq mg (- mg 1)))
(if (= (rem sinn 2) 0)
(progn
(command ".circle" (list (- b (+ a3linha3 (/ d1 2))) (- h (+ a3 (/ d1 2) (* (ncam2n 1) av)))) (/ d1 2))
(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))
(command ".circle" (list (- b (+ a3linha3 (/ d1 2))) (- h (+ a3 (/ d1 2) (* (ncam2n 1) av)))) (/ d1 2))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(setq a3linha3 (+ a3linha3 ahlinha)))
(progn
(command ".circle" (list (+ a3linha2 (/ d1 2)) (- h (+ a3 (/ d1 2) (* (- ncam2n
1) av)))) (/ d1 2))
(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))
(command ".circle" (list (+ a3linha2 (/ d1 2)) (- h (+ a3 (/ d1 2) (* (- ncam2n
1) av)))) (/ d1 2))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(setq a3linha2 (+ a3linha2 ahlinha))))
(setq mlinhan (- mlinhan 1))
(setq sinn (- sinn 1))))
)
)

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

(setq pc3 (list (+ ce1 7) (+ hlaje capa (- (- a2 (+ (* 3 (+ hlaje capa))h)) fi1))))


(setq pc4 (list (+ (+ c fi1) 7) (- ce1 (+ (* 3 (+ hlaje capa))h))))
(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) (- 0 (* 3 (+ hlaje capa)) (/ h 2))) "")
(command ".ucs" "M" (list (- 0 (+ b 5)) (- 0 (+ (* 3 (+ hlaje capa))h))))
; fim da subrotina do desenho do estribo
(setq nest (+ 1 (fix (/ vao espac))))
(setq nest1 nest)
(setq nest (rtos nest))
(command ".layer" "S" "Texto" "")
(setq filinha (* 10 fi))
(setq lestri (rtos lestr 2 0))
(setq filinhai (rtos filinha 2 1))
(setq text (strcat nest " N6 " "%%c" filinhai "-" lestri))
(setq userfont "arial.ttf")
(setvar "textstyle" (cdr (assoc 2 (tblnext "style" t))))
(command "._Style" "" userfont 1.25 1 0 "N" "N")
(command ".text" "s" "standard" "BC" (list (/ b 2) (+ 1 (- h c))) 0 text)
(setq lretov (fix (- h (* 2 c) (+ fi1 fi))))
(setq lretoh (fix (- b (* 2 c) (+ fi1 fi))))
(setq lretovi (itoa lretov))
(setq lretohi (itoa lretoh))
(command ".text" "s" "standard" "BL" (list -2 (/ h 2)) 0 lretovi)
(command ".text" "s" "standard" "BC" (list (/ b 2) -0.5) 0 lretohi)
(command ".ucs" "M" (list (+ b 5) 0))
(setq filinha (* 10 fi))
(setq lestrbi (rtos lestrb 2 0))
(setq filinhai (rtos filinha 2 1))
(setq text (strcat nest " N7 " "%%c" filinhai "-" lestrbi))
(command ".text" "s" "standard" "BC" (list (/ b 2) (+ (+ 1 (- h c)) hlaje capa)) "0" text)
(setq lretov (fix (- (+ h hlaje capa) (* 2 c) (+ fi1 fi))))
(setq lretoh (fix (- b (* 2 c) (+ fi1 fi) 14)))
(setq lretovi (itoa lretov))
(setq lretohi (itoa lretoh))
(command ".text" "s" "standard" "BL" (list 5 (/ (+ h capa hlaje) 2)) 0 lretovi)
(command ".text" "s" "standard" "BC" (list (/ b 2) -0.5) 0 lretohi)
(command ".ucs" "M" (list (- 0 (+ b 5)) 0))
(command ".ucs" "M" (list (* -1 (+ b 15)) 0))
(command ".layer" "S" "Eixos" "")
;inicio da subrotina para cotar a secao transversal.
;Nesta parte, o programa traa os eixos de cada camada da armadura
(and (= (rem m (+ n 1)) 0) (> (/ m (+ n 1)) 1)
(progn
(command ".linetype" "s" "dashedx2" "")
(command ".line" (list -5 (+ a3 (/ d1 2))) (list (+ b 5) (+ a3 (/ d1 2))) "")
(setq lin2 (entlast))

184

(command ".array" lin2 "" "R" ncam1 "1" av)


(command ".line" (list (+ a3 (/ d1 2)) -3) (list (+ a3 (/ d1 2)) (+ a3 (/ d1 2) (* av (- ncam1
1)) 2)) "")
(setq lin3 (entlast))
(command ".array" lin3 "" "R" "1" (+ n 1) ahlinha)
(command ".linetype" "s" "bylayer" "")))
(and (> (rem m (+ n 1)) 0) (< m (+ n 1))
(progn
(command ".linetype" "s" "dashedx2" "")
(command ".line" (list (+ a3 (/ d1 2)) -3) (list (+ a3 (/ d1 2)) (+ a3 (/ d1 2) 2)) "")
(setq lin2 (entlast))
(command ".array" lin2 "" "R" "1" m ahu)
(command ".linetype" "s" "bylayer" "")))
(and (> (rem m (+ n 1)) 0) (>= m (+ n 1))
(progn
(command ".linetype" "s" "dashedx2" "")
(command ".line" (list -5 (+ a3 (/ d1 2))) (list (+ b 5) (+ a3 (/ d1 2))) "")
(setq lin2 (entlast))
(command ".array" lin2 "" "R" ncam2 "1" av)
(command ".line" (list (+ a3 (/ d1 2)) -3) (list (+ a3 (/ d1 2)) (+ a3 (/ d1 2) (* av (ncam2 1)) 2)) "")
(setq lin3 (entlast))
(command ".array" lin3 "" "R" "1" (+ n 1) ahlinha)
(command ".linetype" "s" "bylayer" "")
))
(if (= (/ m (+ n 1)) 1)
(progn
(command ".linetype" "s" "dashedx2" "")
(command ".line" (list (+ a3 (/ d1 2)) -3) (list (+ a3 (/ d1 2)) (+ 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 m (+ n 1)) 0) ; verificando cada caso para definir o nmero de camadas
(setq ncam ncam1))
(and (> (rem m (+ n 1)) 0) (>= m (+ n 1))
(setq ncam ncam2))
(and (> (rem m (+ n 1)) 0) (< m (+ n 1))
(setq ncam ncam1))
; cotando direto com texto para armadura positiva
(if (>= m (+ nlinha3 1))
(progn
(setq userfont "arial.ttf")
(setvar "textstyle" (cdr (assoc 2 (tblnext "style" t))))
(command "._Style" "" userfont 1 1 0 "N" "N")
(setq ahlinhai (rtos ahlinha 2 1)) ; caso de haver uma camada completa ou mais
(neste caso o espacamento seria o ahlinha - se houvesse menos, seria outra var)
(setq avi (rtos av 2 1))
(while (> nlinha3 0)
(command ".text" (list (+ a3linha4 (/ d1 2) (- (/ ahlinha 2) 1.1)) -3) 0 ahlinhai)
(setq a3linha4 (+ a3linha4 ahlinha))
(setq nlinha3 (- nlinha3 1))
)
(while (> ncam 1) ; cotando o espaamento vertical

185

(command ".text" (list -1 (+ a3linha5 (/ d1 2) (- (/ av 2) 1.1))) 90 avi)


(setq a3linha5 (+ a3linha5 av))
(setq ncam (- ncam 1))
)
)
(progn
(setq userfont "arial.ttf")
(setvar "textstyle" (cdr (assoc 2 (tblnext "style" t))))
(command "._Style" "" userfont 1 1 0 "N" "N")
(setq ahu3i (rtos ahu 2 1)) ; caso oposto ao da linha 548 (o espacamento horizontal
passa a ser o ahu)
(while (> (- mlinha2 1) 0)
(command ".text" (list (+ a3linha4 (/ d1 2) (- (/ ahu 2) 1.1)) -3) 0 ahu3i)
(setq a3linha4 (+ a3linha4 ahu))
(setq mlinha2 (- mlinha2 1))
)
)
)
(command ".layer" "S" "Eixos" "")
(if (not (= mn 0)) ; inicio da subrotina para cotar a secao transversal. Nesta parte, o
programa traa os eixos de cada camada da armadura
(progn
(and (= (rem mn (+ n 1)) 0) (> (/ mn (+ n 1)) 1)
(progn
(command ".linetype" "s" "dashedx2" "")
(command ".line" (list -5 (- h (+ a3 (/ d1 2)))) (list (+ b 5) (- h (+ a3 (/ d1 2)))) "")
(setq lin2 (entlast))
(command ".array" lin2 "" "R" ncam1n "1" (* -1 av))
(command ".line" (list (+ a3 (/ d1 2)) (+ h 3)) (list (+ a3 (/ d1 2)) (- h (+ a3 (/ d1 2) (* av
(- ncam1n 1)) 2))) "")
(setq lin3 (entlast))
(command ".array" lin3 "" "R" "1" (+ n 1) ahlinha)
(command ".linetype" "s" "bylayer" "")))
(and (> (rem mn (+ n 1)) 0) (< mn (+ n 1))
(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" (fix mn) ahun)
(command ".linetype" "s" "bylayer" "")))
(and (> (rem mn (+ n 1)) 0) (>= mn (+ n 1))
(progn
(command ".linetype" "s" "dashedx2" "")
(command ".line" (list -5 (- h (+ a3 (/ d1 2)))) (list (+ b 5) (- h (+ a3 (/ d1 2)))) "")
(setq lin2 (entlast))
(command ".array" lin2 "" "R" ncam2n "1" (* -1 av))
(command ".line" (list (+ a3 (/ d1 2)) (+ h 3)) (list (+ a3 (/ d1 2)) (- h (+ a3 (/ d1 2) (*
av (- ncam2n 1)) 2))) "")
(setq lin3 (entlast))
(command ".array" lin3 "" "R" "1" (+ n 1) ahlinha)
(command ".linetype" "s" "bylayer" "")
))
(if (= (/ mn (+ n 1)) 1)

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

(setq tlinhai (rtos tlinha 2 1))


(setq nap1 nap)
(setq ln1 0)
(setq userfont "arial.ttf")
(setvar "textstyle" (cdr (assoc 2 (tblnext "style" t))))
(command "._Style" "" userfont 1 1 0 "N" "N")
(while (> nap1 1)
(command ".text" (list -1 (+ c fi d1 (* 2 sv) (+ ln1 (/ dap 2) (/ tlinha 2) 1.1))) 90
tlinhai)
(setq ln1 (+ ln1 tlinha))
(setq nap1 (- nap1 1))
)
)
)
;MDULO LONGITUDINAL Mlong
(command ".ucs" "M" (list 230 0))
(command ".layer" "S" "Viga" "")
(command ".rectangle" (list 0 0) (list vao h) "")
(command ".rectangle" (list 8 0) (list 16 h) "")
(command ".rectangle" (list (- vao 16) 0) (list (- vao 8) h) "")
(command ".ucs" "M" (list 0 800))
(command ".rectangle" (list 0 0) (list vao h) "")
(command ".rectangle" (list 8 0) (list 16 h) "")
(command ".rectangle" (list (- vao 16) 0) (list (- vao 8) h) "")
(command ".rectangle" (list 0 -200) (list vao (- 0 200 b)) "")
(command ".rectangle" (list 8 (+ (- 0 200 (/ b 2))2.5)) (list 16 (- 0 200 (/ b 2) 2.5)) "")
(command ".line" (list 12 (+ (- 5 200 (/ b 2))2.5)) (list 12 (- 0 200 5 (/ b 2) 2.5)) "")
(command ".line" (list 3 (- 0 200 (/ b 2))) (list 21 (- 0 200 (/ b 2))) "")
(command ".rectangle" (list (- vao 16) (+ (- 0 200 (/ b 2))2.5)) (list (- vao 8) (- 0 200 (/ b 2)
2.5)) "")
(command ".line" (list (- vao 12) (+ (- 5 200 (/ b 2))2.5)) (list (- vao 12) (- 0 200 5 (/ b 2) 2.5))
"")
(command ".line" (list (- vao 3) (- 0 200 (/ b 2))) (list (- vao 21) (- 0 200 (/ b 2))) "")
(command ".layer" "S" "Texto" "")
(setq userfont "arial.ttf")
(setvar "textstyle" (cdr (assoc 2 (tblnext "style" t))))
(command "._Style" "" userfont 5 1 0 "N" "N")
(command ".line" (list -5.5 -200) (list -5.5 (- 0 200 b)) "")
(command ".line" (list -2 -200) (list -9 -200) "")
(command ".line" (list -2 (- 0 200 b)) (list -9 (- 0 200 b)) "")
(command ".line" (list -2 (- 0 200 (/ b 2))) (list -9 (- 0 200 (/ b 2))) "")
(command ".line" (list 0 (- 5.5 200)) (list 12 (- 5.5 200)) "")
(command ".line" (list 0 (- 9 200)) (list 0 (- 2 200)) "")
(command ".line" (list 12 (- 9 200)) (list 12 (- 2 200)) "")
(command ".text" "s" "standard" "BC" (list 6 -192) 0 "12cm")
(command ".text" "s" "standard" "MR" (list -8 (- 0 200 (/ b 4))) 0 (strcat (rtos (/ b 2)) "cm"))
(command ".text" "s" "standard" "MR" (list -8 (- 0 200 (/ (* b 3) 4))) 0 (strcat (rtos (/ b 2))
"cm"))
(command ".layer" "S" "Eixos" "")
(command ".linetype" "s" "dashedx2" "")
(command ".line" (list 0 0) (list 0 -200) "")
(command ".line" (list vao 0) (list vao -200) "")

188

(command ".ucs" "M" (list 0 -800))


(command ".linetype" "s" "bylayer" "")
(command ".layer" "S" "Texto" "")
(setq userfont "arial.ttf")
(setvar "textstyle" (cdr (assoc 2 (tblnext "style" t))))
(command "._Style" "" userfont 22 1 0 "N" "N")
(command ".ucs" "M" (list 0 800))
(command ".text" "s" "standard" "TL" (list 30 -10) 0 "Elevao")
(command ".text" "s" "standard" "TL" (list 30 (- 0 210 b)) 0 "Planta")
(command ".ucs" "M" (list 0 -800))
(command ".linetype" "s" "dashedx2" "")
(command ".line" (list 0 h) (list 0 (+ h 50)) "")
(command ".line" (list (/ vao 10) h) (list (/ vao 10) (+ h 50)) "")
(command ".line" (list (/ vao 5) h) (list (/ vao 5) (+ h 50)) "")
(command ".line" (list (* 3 (/ vao 10)) h) (list (* 3 (/ vao 10)) (+ h 50)) "")
(command ".line" (list (* 4 (/ vao 10)) h) (list (* 4 (/ vao 10)) (+ h 50)) "")
(command ".line" (list (/ vao 2) h) (list (/ vao 2) (+ h 50)) "")
(command ".linetype" "s" "bylayer" "")
(command ".ucs" "M" (list 0 -50))
(setq userfont "arial.ttf")
(setvar "textstyle" (cdr (assoc 2 (tblnext "style" t))))
(command "._Style" "" userfont 18 1 0 "N" "N")
(command ".text" "s" "standard" "BC" (list 0 (+ h 100)) 0 "S0")
(command ".text" "s" "standard" "BC" (list (/ vao 10) (+ h 100)) 0 "S1")
(command ".text" "s" "standard" "BC" (list (/ vao 5) (+ h 100)) 0 "S2")
(command ".text" "s" "standard" "BC" (list (* 3 (/ vao 10)) (+ h 100)) 0 "S3")
(command ".text" "s" "standard" "BC" (list (* 4 (/ vao 10)) (+ h 100)) 0 "S4")
(command ".text" "s" "standard" "BC" (list (/ vao 2) (+ h 100)) 0 "S5")
(setq p1 (list (- (/ vao 2) 10) (+ h 145)))
(setq p2 (list (+ (/ vao 2) 10) (+ h 165)))
(command ".pline" p1 p2 "w" 10 0 (polar p2 (- 0 (/ pi 4)) 15) "")
(setq p1 (list (+ (/ vao 2) 10) (+ h 145)))
(setq p2 (list (- (/ vao 2) 10) (+ h 165)))
(command ".pline" p1 p2 "w" 10 0 (polar p2 (* 5 (/ pi 4)) 15) "")
(command ".ucs" "M" (list 0 50))
(command ".layer" "S" "Armadura" "")
(if (> h 60)
(command ".line" (list 0 -50) (list vao -50) "")
)
(command ".line" (list 0 -100) (list vao -100) "")
(command ".line" (list 0 -150) (list vao -150) "")
(command ".line" (list 0 (+ 150 h)) (list vao (+ 150 h)) "")
(if (not (= mnm 0))
(command ".line" (list 0 (+ 200 h)) (list vao (+ 200 h)) "")
)
(if (> h 60)
(setq text (strcat (rtos nap) " N3 " "%%c" (rtos (* dap 10) 2 1) "-" (rtos vao)))
)
(setq userfont "arial.ttf")
(setvar "textstyle" (cdr (assoc 2 (tblnext "style" t))))
(command "._Style" "" userfont 11 1 0 "N" "N")
(command ".text" "s" "standard" "BC" (list (/ vao 2) -50) "0" text)
(setq text (strcat "4 N2 " "%%c" (rtos (* fi 10)) "-" (rtos vao)))

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

(command ".text" "s" "standard" "MC" p6 "0" "Peso (Kg)")


(setq p1 (list 0 -30))
(setq p2 (list 105 -30))
(setq p3 (list 195 -30))
(setq p4 (list 261 -30))
(setq p5 (list 346 -30))
(setq p6 (list 426 -30))
(setq userfont "arial.ttf")
(setvar "textstyle" (cdr (assoc 2 (tblnext "style" t))))
(command "._Style" "" userfont 6.6 1 0 "N" "N")
(command ".text" "s" "standard" "BC" p1 "0" "N1")
(command ".text" "s" "standard" "BC" p2 "0" "Armadura ativa positiva")
(command ".text" "s" "standard" "BC" p3 "0" (rtos mmm))
(command ".text" "s" "standard" "BC" p4 "0" (rtos(* d1 10)))
(command ".text" "s" "standard" "BC" p5 "0" (rtos vao))
(command ".text" "s" "standard" "BC" p6 "0" (rtos peso1 2 2))
(setq p1 (list 0 -54))
(setq p2 (list 105 -54))
(setq p3 (list 195 -54))
(setq p4 (list 261 -54))
(setq p5 (list 346 -54))
(setq p6 (list 426 -54))
(command ".text" "s" "standard" "BC" p1 "0" "N2")
(command ".text" "s" "standard" "BC" p2 "0" "Porta estribo inferior")
(command ".text" "s" "standard" "BC" p3 "0" "4")
(command ".text" "s" "standard" "BC" p4 "0" (rtos (* d3 10)))
(command ".text" "s" "standard" "BC" p5 "0" (rtos vao))
(command ".text" "s" "standard" "BC" p6 "0" (rtos peso2 2 2))
(setq p1 (list 0 -78))
(setq p2 (list 105 -78))
(setq p3 (list 195 -78))
(setq p4 (list 261 -78))
(setq p5 (list 346 -78))
(setq p6 (list 426 -78))
(if (> h 60)
(progn
(command ".text" "s" "standard" "BC" p1 "0" "N3")
(command ".text" "s" "standard" "BC" p2 "0" "Armadura de pele")
(command ".text" "s" "standard" "BC" p3 "0" (rtos (* nap 2)))
(command ".text" "s" "standard" "BC" p4 "0" (rtos (* dap 10) 2 1))
(command ".text" "s" "standard" "BC" p5 "0" (rtos vao))
(command ".text" "s" "standard" "BC" p6 "0" (rtos peso3 2 2))
)
(progn
(command ".text" "s" "standard" "BC" p1 "0" "N3")
(command ".text" "s" "standard" "BC" p2 "0" "Armadura de pele")
(command ".text" "s" "standard" "BC" p3 "0" "-")
(command ".text" "s" "standard" "BC" p4 "0" "-")

191

(command ".text" "s" "standard" "BC" p5 "0" "-")


(command ".text" "s" "standard" "BC" p6 "0" "-")
)
)
(setq p1 (list 0 -102))
(setq p2 (list 105 -102))
(setq p3 (list 195 -102))
(setq p4 (list 261 -102))
(setq p5 (list 346 -102))
(setq p6 (list 426 -102))
(if (not (= mnm 0))
(progn
(command ".text" "s" "standard" "BC" p1 "0" "N4")
(command ".text" "s" "standard" "BC" p2 "0" "Armadura ativa negativa")
(command ".text" "s" "standard" "BC" p3 "0" (rtos mmm))
(command ".text" "s" "standard" "BC" p4 "0" (rtos(* d1 10)))
(command ".text" "s" "standard" "BC" p5 "0" (rtos vao))
(command ".text" "s" "standard" "BC" p6 "0" (rtos peso4 2 2))
)
(progn
(command ".text" "s" "standard" "BC" p1 "0" "N4")
(command ".text" "s" "standard" "BC" p2 "0" "Armadura ativa negativa")
(command ".text" "s" "standard" "BC" p3 "0" "-")
(command ".text" "s" "standard" "BC" p4 "0" "-")
(command ".text" "s" "standard" "BC" p5 "0" "-")
(command ".text" "s" "standard" "BC" p6 "0" "-")
)
)
(setq p1 (list 0 -126))
(setq p2 (list 105 -126))
(setq p3 (list 195 -126))
(setq p4 (list 261 -126))
(setq p5 (list 346 -126))
(setq p6 (list 426 -126))
(command ".text" "s" "standard" "BC" p1 "0" "N5")
(command ".text" "s" "standard" "BC" p2 "0" "Porta estribo superior")
(command ".text" "s" "standard" "BC" p3 "0" "4")
(command ".text" "s" "standard" "BC" p4 "0" (rtos (* d3 10)))
(command ".text" "s" "standard" "BC" p5 "0" (rtos vao))
(command ".text" "s" "standard" "BC" p6 "0" (rtos peso5 2 2))
(setq p1 (list 0 -150))
(setq p2 (list 105 -150))
(setq p3 (list 195 -150))
(setq p4 (list 261 -150))
(setq p5 (list 346 -150))
(setq p6 (list 426 -150))
(command ".text" "s" "standard" "BC" p1 "0" "N6")
(command ".text" "s" "standard" "BC" p2 "0" "Estribo")
(command ".text" "s" "standard" "BC" p3 "0" nest)

192

(command ".text" "s" "standard" "BC" p4 "0" (rtos (* fi 10)))


(command ".text" "s" "standard" "BC" p5 "0" lestri)
(command ".text" "s" "standard" "BC" p6 "0" (rtos peso6 2 2))
(setq p1 (list 0 -174))
(setq p2 (list 105 -174))
(setq p3 (list 195 -174))
(setq p4 (list 261 -174))
(setq p5 (list 346 -174))
(setq p6 (list 426 -174))
(command ".text" "s" "standard" "BC" p1 "0" "N7")
(command ".text" "s" "standard" "BC" p2 "0" "Estribo")
(command ".text" "s" "standard" "BC" p3 "0" nest)
(command ".text" "s" "standard" "BC" p4 "0" (rtos (* fi 10)))
(command ".text" "s" "standard" "BC" p5 "0" lestrbi)
(command ".text" "s" "standard" "BC" p6 "0" (rtos peso7 2 2))
(setq p5 (list 345 -198))
(setq p6 (list 426 -198))
(command ".text" "s" "standard" "BC" p5 "0" "Peso total (Kg)")
(command ".text" "s" "standard" "BC" p6 "0" (rtos pesot 2 2))
(setq p1 (list -42 15))
(setq p2 (list 459 15))
(setq p3 (list 459 -204))
(setq p4 (list 303 -204))
(setq p5 (list 303 -180))
(setq p6 (list -42 -180))
(setq p7 (list 303 15))
(setq p8 (list 459 -180))
(command "pline" p1 p2 p3 p4 p5 p6 "close" "")
(command ".line" p5 p7 "")
(command ".line" p5 p8 "")
(setq p1 (list 45 15))
(setq p2 (list 45 -180))
(setq p3 (list 165 15))
(setq p4 (list 165 -180))
(setq p5 (list 225 15))
(setq p6 (list 225 -180))
(setq p7 (list 390 15))
(setq p8 (list 390 -204))
(command ".line" p1 p2 "")
(command ".line" p3 p4 "")
(command ".line" p5 p6 "")
(command ".line" p7 p8 "")
(setq p1 (list -42 -12))
(setq p2 (list 459 -12))
(setq p3 (list -42 -36))
(setq p4 (list 459 -36))

193

(setq p5 (list -42 -60))


(setq p6 (list 459 -60))
(setq p7 (list -42 -84))
(setq p8 (list 459 -84))
(setq p9 (list -42 -108))
(setq p10 (list 459 -108))
(setq p11 (list -42 -132))
(setq p12 (list 459 -132))
(setq p13 (list -42 -156))
(setq p14 (list 459 -156))
(command ".line" p1 p2 "")
(command ".line" p3 p4 "")
(command ".line" p5 p6 "")
(command ".line" p7 p8 "")
(command ".line" p9 p10 "")
(command ".line" p11 p12 "")
(command ".line" p13 p14 "")
(command ".ucs" "M" (list 230 250))
(setq p1 (list 0 0))
(setq p2 (list 175 0))
(setq p3 (list 0 -25))
(setq p4 (list 175 -25))
(setq p5 (list 0 -50))
(setq p6 (list 175 -50))
(setq p7 (list 0 -75))
(setq p8 (list 175 -75))
(setq p9 (list 0 -100))
(setq p10 (list 175 -100))
(setq userfont "arial.ttf")
(setvar "textstyle" (cdr (assoc 2 (tblnext "style" t))))
(command "._Style" "" userfont 9 1 0 "N" "N")
(command ".text" "s" "standard" "MC" p1 "0" "fck (MPa)")
(command ".text" "s" "standard" "MC" p2 "0" (rtos fck))
(command ".text" "s" "standard" "MC" p3 "0" "fcj (MPa)")
(command ".text" "s" "standard" "MC" p4 "0" (rtos fcj))
(command ".text" "s" "standard" "MC" p5 "0" "cobrimento (cm)")
(command ".text" "s" "standard" "MC" p6 "0" (rtos c))
(command ".text" "s" "standard" "MC" p7 "0" "Tipo de ao")
(command ".text" "s" "standard" "MC" p8 "0" tpaco)
(command ".text" "s" "standard" "MC" p9 "0" "Tenso inicial de protenso (MPa)")
(command ".text" "s" "standard" "MC" p10 "0" (rtos (* tensao 10)))
(command ".ucs" "M" (list 0 500))
(command ".text" "s" "standard" "MC" p1 "0" "fck (MPa)")
(command ".text" "s" "standard" "MC" p2 "0" (rtos fck))
(command ".text" "s" "standard" "MC" p3 "0" "fcj (MPa)")
(command ".text" "s" "standard" "MC" p4 "0" (rtos fcj))
(command ".text" "s" "standard" "MC" p5 "0" "cobrimento (cm)")
(command ".text" "s" "standard" "MC" p6 "0" (rtos c))
(command ".ucs" "M" (list 0 -500))

194

(setq p1 (list -120 12.5))


(setq p2 (list 230 12.5))
(setq p3 (list -120 -12.5))
(setq p4 (list 230 -12.5))
(setq p5 (list -120 -37.5))
(setq p6 (list 230 -37.5))
(setq p7 (list -120 -62.5))
(setq p8 (list 230 -62.5))
(setq p9 (list -120 -87.5))
(setq p10 (list 230 -87.5))
(setq p11 (list -120 -112.5))
(setq p12 (list 230 -112.5))
(command ".line" p1 p2 "")
(command ".line" p3 p4 "")
(command ".line" p5 p6 "")
(command ".line" p7 p8 "")
(command ".line" p9 p10 "")
(command ".line" p11 p12 "")
(command ".ucs" "M" (list 0 500))
(command ".line" p1 p2 "")
(command ".line" p3 p4 "")
(command ".line" p5 p6 "")
(command ".line" p7 p8 "")
(command ".ucs" "M" (list 0 -500))
(command ".ucs" "M" (list (- 0 230 325 vao) -250))
(command ".layer" "S" "Quadro" "")
(command ".rectangle" (list (- 0 (/ bf 2)) -280) (list (+ 700 (/ b 2) (/ bf 2) vao) (+ h 250)) "")
(command ".ucs" "M" (list 0 700))
(command ".rectangle" (list (- 0 (/ bf 2)) -280) (list (+ 700 (/ b 2) (/ bf 2) vao) (+ h 250)) "")
(command ".ucs" "M" (list 0 -700))
(setq userfont "arial.ttf")
(setvar "textstyle" (cdr (assoc 2 (tblnext "style" t))))
(command "._Style" "" userfont 30 1 0 "N" "N")
(command ".text" "s" "standard" "BL" (list (- 60 (/ bf 2)) 270) "0" "Armao")
(command ".text" "s" "standard" "BL" (list (- 60 (/ bf 2)) 970) "0" "Formas")
(setq userfont "arial.ttf")
(setvar "textstyle" (cdr (assoc 2 (tblnext "style" t))))
(command "._Style" "" userfont 5 1 0 "N" "N")
(command ".ucs" "M" (list 0 800))
(command ".layer" "S" "Texto" "")
(command ".line" (list (+ b 5.5) 0) (list (+ b 5.5) h) "")
(command ".line" (list (+ b 2) 0) (list (+ b 9) 0) "")
(command ".line" (list (+ b 2) h) (list (+ b 9) h) "")
(command ".text" "s" "standard" "ML" (list (+ b 8) (/ h 2)) "0" (strcat (rtos h) "cm"))
(command ".line" (list 0 (+ h 5.5)) (list b (+ h 5.5)) "")

195

(command ".line" (list 0 (+ h 2)) (list 0 (+ h 9)) "")


(command ".line" (list b (+ h 2)) (list b (+ h 9)) "")
(command ".text" "s" "standard" "BC" (list (/ b 2) (+ h 8)) "0" (strcat (rtos b) "cm"))
(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))
(command ".line" (list (+ b (/ bf 2)) 0) (list (+ b (/ bf 2)) (+ h hlaje capa)) "")
(command ".line" (list (- (+ b (/ bf 2)) 3.5) 0) (list (+ (+ b (/ bf 2)) 3.5) 0) "")
(command ".line" (list (- (+ b (/ bf 2)) 3.5) h) (list (+ (+ b (/ bf 2)) 3.5) h) "")
(command ".line" (list (- (+ b (/ bf 2)) 3.5) (+ h hlaje)) (list (+ (+ b (/ bf 2)) 3.5) (+ h hlaje)) "")
(command ".line" (list (- (+ b (/ bf 2)) 3.5) (+ h hlaje capa)) (list (+ (+ b (/ bf 2)) 3.5) (+ h hlaje
capa)) "")
(command ".text" "s" "standard" "ML" (list (+ b (/ bf 2) 5) (/ h 2)) "0" (strcat (rtos h) "cm"))
(command ".text" "s" "standard" "ML" (list (+ b (/ bf 2) 5) (+ h (/ hlaje 2))) "0" (strcat (rtos
hlaje) "cm"))
(command ".text" "s" "standard" "ML" (list (+ b (/ bf 2) 5) (+ h hlaje (/ capa 2))) "0" (strcat
(rtos capa) "cm"))
(command ".line" (list (- (/ b 2) (/ bf 2)) (+ h hlaje capa 5.5)) (list (+ (/ b 2) (/ bf 2)) (+ h hlaje
capa 5.5)) "")
(command ".line" (list (- (/ b 2) (/ bf 2)) (+ h hlaje capa 2)) (list (- (/ b 2) (/ bf 2)) (+ h hlaje
capa 9)) "")
(command ".line" (list (+ (/ b 2) (/ bf 2)) (+ h hlaje capa 2)) (list (+ (/ b 2) (/ bf 2)) (+ h hlaje
capa 9)) "")
(command ".text" "s" "standard" "BC" (list (/ b 2) (+ h hlaje capa 8)) "0" (strcat (rtos bf)
"cm"))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(command ".ucs" "M" (list 230 0))
(setq userfont "arial.ttf")
(setvar "textstyle" (cdr (assoc 2 (tblnext "style" t))))
(command "._Style" "" userfont 15 1 0 "N" "N")
(command ".line" (list 0 (+ h 5.5)) (list vao (+ h 5.5)) "")
(command ".line" (list 0 (+ h 2)) (list 0 (+ h 9)) "")
(command ".line" (list vao (+ h 2)) (list vao (+ h 9)) "")
(command ".text" "s" "standard" "BC" (list (/ vao 2) (+ h 8)) "0" (strcat (rtos vao) "cm"))
(command ".line" (list (+ vao 5.5) 0) (list (+ vao 5.5) h) "")
(command ".line" (list (+ vao 2) 0) (list (+ vao 9) 0) "")
(command ".line" (list (+ vao 2) h) (list (+ vao 9) h) "")
(command ".text" "s" "standard" "ML" (list (+ vao 11) (/ h 2)) "0" (strcat (rtos h) "cm"))
(command ".ucs" "M" (list 0 (- 0 200 b)))
(command ".line" (list (+ vao 5.5) 0) (list (+ vao 5.5) b) "")
(command ".line" (list (+ vao 2) 0) (list (+ vao 9) 0) "")
(command ".line" (list (+ vao 2) b) (list (+ vao 9) b) "")
(command ".text" "s" "standard" "ML" (list (+ vao 11) (/ b 2)) "0" (strcat (rtos b) "cm"))
(command ".ucs" "M" (list -230 (+ 200 b)))
(command ".ucs" "M" (list 0 -800))
(setvar "textstyle" oldtstyle)
(command ".zoom" "e")
(alert "O detalhamento foi concludo com sucesso")

196

(setvar "OSMODE" V)
(setvar "CMDECHO" 1)
(princ)
)

10.7 ANEXO G ARQUIVO PARA DETALHAMENTO


Arquivo para detalhamento
===============================================
Tipo de ao=>CP - 190RB
largura da alma, bw=>30.0
altura, h=>90.0
cobrimento, c=>3.5
Dimetro do estribo=>0.63
Dimetro da cordoalha=>1.27
Dimetro do mximo agregado=>1.9
Dimetro do porta estribo=>0.63
Nmero de cordoalhas de armadura positiva=>10
Nmero de cordoalhas de armadura negativa=>0
Armadura passiva=>2.86
Dimetro da armadura de pele=>1
Nmero de barras=>8
Posio da LN, x=>4.3
altura til, d=>83.9
capa=>5.0
altura da laje=>15.0
largura da mesa, bf=>225.0
vo=>975.0

10.8 ANEXO H ARQUIVO PARA SALVAR DADOS


Arquivo para leitura do programa
=================================================
*Carregamentos
carga permanente em KN/m, g1 =>6,75
t0 em dias =>1
gama 1 =>1,3
carga devido laje em KN/m, g2 =>16,20
t0 em dias =>15
gama 2 =>1,3
carga devido capa em KN/m, g3 =>9,0
t0 em dias =>30
gama 3 =>1,4
carga devido ao revestimento em KN/m, g4 =>5,94
t0 em dias =>45
gama 4 =>1,4
carga devido alvenaria em KN/m, g5 =>5,76
t0 em dias =>60
gama 5 =>1,4

197

carga acidental mnima em KN/m, qmin =>0,00


carga acidental mxima em KN/m, qmax =>21,60
t0 em dias =>75
gama q =>1,4
Coeficiente de combinao frequente =>0,6
Coeficiente de combinao quase permanente =>0,4
*Caractersticas gerais da viga
vo em m =>9,75
largura da seo em cm, bw =>30
altura da seo em cm, h =>90
altura til em cm, d =>83,9
menor distncia entre o cg da armadura e a face externa, d' =>5
capa em cm =>5
altura da laje em cm =>15
Classe de Agressividade Ambiental (I, II, III ou IV), CAA =>II
Largura da pista de protenso em m, L =>100
fck do concreto em MPa =>40
fcj do concreto em MPa =>25
fck da capa em MPa =>30
Mdulo de elasticidade do ao em MPa, E =>200000
Tipo de ao (CP - 175RN, CP - 175RB, CP - 190RN ou CP - 190RB) =>CP - 190RB
Dimetro da cordoalha (9,5mm, 12,7mm ou 15,2mm) =>12,7mm
Dimetro do estribo (1/4", 5/16" ou 3/8") =>1/4"
Tipo de brita (Brita 0, Brita 1, Brita 2 ou Brita 3) =>Brita 1
tenso inicial no ao em KN/cm2, sigma pi =>145,30
Perdas inicias estimadas em % =>2,5
Perdas finais estimadas em % =>20
*Valores para o clculo do coeficiente de fluncia
Permetro em contato com o ar da seo 1 em cm, Uar 1 =>210
Permetro em contato com o ar da seo 2 em cm, Uar 2 =>225
Umidade relativa do ar em % =>70
Temperatura mdia em C =>20
Slump do concreto em cm =>9
Tipo de cimento da seo 1 (CPI, CPII, CPIII, CPIV ou CPV-ARI =>CPV-ARI
Tipo de cimento da seo 2 (CPI, CPII, CPIII, CPIV ou CPV-ARI =>CPII
tempo final considerado em dias =>10000
*Coeficientes de fluncia e deformao
1 =>3,304
2 =>2,225
3 =>2,559
4 =>2,033
5 =>1,825
acidental =>1,690
Deformao do concreto =>-0,000260344195434771

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