Você está na página 1de 198

UNIVERSIDADE

 FEDERAL  DE  SÃO  CARLOS  


CENTRO DE CIÊNCIAS EXATAS E DE TECNOLOGIA
DEPARTAMENTO DE ENGENHARIA CIVIL

PROGRAMA  PARA  CÁLCULO  E  DETALHAMENTO  DE  ARMADURA  DE  


VIGAS  PRÉ-­‐TRACIONADAS  
 
 
 
 
Rodrigo  Mattos  Scavassin  
 
 
 
 
Trabalho   de   Conclusão   de   Curso  
apresentado   ao   Departamento   de  
Engenharia   Civil   da   Universidade   Federal  
de   São   Carlos   como   parte   dos   requisitos  
para   a   conclusão   da   graduação   em  
Engenharia  Civil  
 
 
Orientador:  Roberto  Chust  Carvalho  
 
 
 
 
 
 
 
 
São  Carlos  
2012  
   
 
DEDICATÓRIA  
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Dedico esta monografia aos meus pais e à minha irmã
que tanto me apoiaram. Também a dedico à Aliança
Bíblica Universitária (ABU), grupo com o qual aprendi a
ser um ser humano melhor e um cristão autêntico.
AGRADECIMENTOS  
 
 

Meus sinceros agradecimentos ao Professor Doutor Roberto Chust Carvalho, com o qual
muito aprendi. Sem ele não seria possível a conclusão deste trabalho.
Agradeço principalmente a Deus, o único que merece toda honra e glória. Ele me tirou de
uma vida afundada no pecado e me deu uma vida cheia de propósito e o privilégio 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é-tração 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 prática por BINDILATEN (2009) e
FALEIROS FILHO (2011), além de PETRUCELLI (2009). Foi preciso desenvolver: a parte
do cálculo da armadura de estribos para resistir o cisalhamento de flexão; as verificações 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 cálculo das perdas iniciais e ao longo do tempo para que
o detalhamento de armadura fosse o mais preciso possível.
O cálculo foi feito partindo desde o pré-dimensionamento até chegar no detalhamento
da armadura, permitindo sempre alterações feitas pelo usuário. Assim, o usuário obtém a peça
detalhada através 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 análise da solução sem ter a necessidade de realizar procedimentos repetitivos
de cálculo e detalhamento que podem ser bastante demorados.
Todos os procedimentos estarão de acordo com a NBR6118:2007 e com a
NBR9062:2003.
 
 
 
 
 
 
 
 
 
 
 
Palavras-­‐chave:  programa,  concreto  protendido,  pré-­‐tração  
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  


SUMÁRIO

1.   INTRODUÇÃO ................................................................................................................... 8  
1.1   JUSTIFICATIVA ........................................................................................................ 8  
1.2   OBJETIVOS ................................................................................................................ 9  
2.   REVISÃO BIBLIOGÁFICA ............................................................................................ 10  
2.1   O CONCRETO PROTENDIDO .............................................................................. 10  
2.2   PERDAS DE PROTENSÃO ..................................................................................... 11  
2.2.1   PERDAS INICIAIS .............................................................................................. 11  
2.2.2   PERDAS FINAIS ................................................................................................. 13  
2.3   PRÉ-DIMENSIONAMENTO DA ARMADURA LONGITUDINAL .................. 15  
2.4   VERIFICAÇÃO EM DÉCIMO DE VÃO ............................................................... 17  
2.4.1   PERDAS INICIAIS .............................................................................................. 19  
2.4.2   PERDAS FINAIS ................................................................................................. 20  
2.5   COMPRIMENTO DE TRANSFERÊNCIA E DE REGULARIZAÇÃO ............ 20  
2.6   SEÇÃO COMPOSTA ............................................................................................... 22  
2.7   DIMENSIONAMENTO DA ARMADURA TRANSVERSAL ............................. 22  
2.7.1   EXPRESSÕES PARA CÁLCULO E VERIFICAÇÕES PARA
DETALHAMENTO ......................................................................................................... 23  
2.8   DETALHAMENTO .................................................................................................. 24  
3.   METODOLOGIA ............................................................................................................. 26  
4.   DESENVOLVIMENTO DO ROTEIRO DO PROGRAMA ........................................... 27  
4.1   ROTEIRO DE CÁLCULO DA ARMADURA LONGITUDINAL ...................... 27  
4.2   ENTRADA DE DADOS E INFORMAÇÕES INICIAIS ....................................... 28  
4.2.1   INTRODUÇÃO .................................................................................................... 28  
4.2.2   DESCRIÇÃO DAS TELAS DE ENTRADA ....................................................... 29  
5.   VALIDAÇÃO DO PROGRAMA ...................................................................................... 45  
5.1   EXEMPLO DE APLICAÇÃO 01 ............................................................................ 45  
5.2   EXEMPLO DE APLICAÇÃO 02 ............................................................................ 51  
5.3   EXEMPLO DE APLICAÇÃO 03 ............................................................................ 53  
5.4   EXEMPLO DE APLICAÇÃO 04 ............................................................................ 54  
6.   MANUAL DO USUÁRIO................................................................................................. 56  
6.1   Início ........................................................................................................................... 56  
6.2   Utilizando o “Protendido.exe” .................................................................................. 56  
6.3   Utilizando o arquivo “Detalhamento.lsp” ............................................................... 69  
7.   CONCLUSÃO ................................................................................................................... 75  
8.   REFERÊNCIAS ............................................................................................................... 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  
8

1.   INTRODUÇÃO  
No Brasil, o concreto protendido é uma das áreas de estrutura que mais se expande.
As estruturas com este sistema são cada vez mais frequentes em obras de engenharia de
maneira que escolas (quase todos novo prédios da UFSCar são feitas em concreto
protendido), pontes, viadutos e passarelas (viaduto da acesso a UFSCar e passarelas
adjacentes), prédios de shopping centers, edificações comerciais, industriais e mesmo
residenciais que necessitam de maiores vãos e mesmo para vãos médios (obras
residenciais) tem laje protendida.

Na região sudeste e principalmente no Estado de São Paulo multiplicam-se as


empresas de pré-fabricados que cada vez mais usam estruturas protendidas. Próximo a
região de São Carlos existem fábricas de estruturas de concreto que usam a protensão junto
a cidades como Campinas , Piracicaba, São José do Rio Preto, Franca, Limeira, Américo
Brasiliense, Atibaia e outras. Isto mostra que cada vez é mais intensa a presença deste
sistema nas obras. Por outro lado, diferente do que o concreto armado no local, para o pré-
fabricado existem poucos programas e, em geral, incompletos e caros. É o caso do módulo
PROUNI do TQS (2011) que na verdade só verifica as peças protendidas e não faz o cálculo
das perdas de protensão. A características das peças protendidas diferentemente das
moldadas no local, permitem sempre a escolha de um conjunto de soluções, até mesmo por
se ter a possibilidade de usar armadura passiva e ativa, em princípio, em proporções
adotadas pelo projetista. Assim, a automação do projeto de concreto protendido não pode
ser total, ou seja, entre a entrada de dados e a solução final com o desenho das armadura é
preciso haver a interferência decisória 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 mão de obra. Assim, parece claro
que a construções industrializadas com as vigas com pré-tração se tornam a solução
interessante para estes objetivos. O cálculo e detalhamento de vigas pré-fabricadas é
bastante trabalhoso, pois se impõem diversas verificações em serviço (a de tensões) que no
caso das vigas moldadas no local com armadura passiva, são mais simples e na maioria
das vezes não são determinantes no valor final da quantidade da armadura. O único
9

programa comercial nacional que se dedica a questão não calcula as perdas de protensão e
algumas peças (como as lajes alveolares que podem ser calculadas como vigas) apenas
verifica as situações de ELU para uma armadura dada e indica as tensões em serviço
deixando para o projetista as demais tarefas. De posse de uma ferramenta como a que se
deseja executar o projetista ou estudante poderá ter subsídios para analisar o cálculo das
armaduras e seu detalhamento com maior precisão. As considerações de cálculo são feitas
com os recursos existentes do conhecimento atual, permitindo que o projetista use mais seu
tempo para analisar se não seria melhor definir outra seção ou mesmo uma combinação de
armadura ativa com passiva e outras soluções.

1.2 OBJETIVOS

O Objetivo deste trabalho é confeccionar um programa que calcule, detalhe a


armadura de uma viga protendida com pré-tração. Como objetivo secundário introduzir o
aluno em pesquisa e permitir uma maior formação na área de projeto de protendido.
10

2.   REVISÃO  BIBLIOGÁFICA  
2.1 O CONCRETO PROTENDIDO

Segundo, Pfeil (1980), a protensão aplicada ao concreto consiste em introduzir


esforços que anulem ou limitem as tensões de tração 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 protensão com a finalidade de, em condições de serviço, impedir ou limitar a
fissuração e os deslocamentos da estrutura e propiciar o melhor aproveitamento de aços de
alta resistência no estado limite último (ELU).
A protensão comprime o concreto, o que é vantajoso, pois a resistência a
compressão do concreto chega a ser 10 vezes superior a resistência a tração. Para que haja
a protensão, o aço utilizado deve ter uma resistência maior que a do aço utilizado nas
estruturas de concreto armado. Assim, os aços de protensão têm até cinco vezes a
resistência de um aço convencional. O concreto protendido tem diversas vantagens em
relação ao concreto armado:

• reduz a incidência de fissuras;


• permite vencer maiores vãos;
• reduz o uso de materiais (concreto e aço);
• reduz o uso de formas (no caso de concreto pré-moldado)

Para os aços utilizados no concreto protendido, existem três categorias:

• Fios, com diâmetro, em geral, de 3mm a 8mm, fornecidos em rolos. Estes são fios
trefilados de aço carbono;
• Cordoalhas que são formadas por vários fios (em geral, 3 ou 7) ou cabos de maneira
helicoidal;
• Barras de aço de alta resistência, com diâmetro superior a 12mm;

O uso de concreto protendido não implica em toda a armadura utilizada ser ativa
(armadura que recebe tensões antes de receber as solicitações previstas para sua
11

utilização). Um elemento estrutural de concreto protendido pode ter uma parcela de


armadura passiva, ou seja, sem tensões prévias.

Para o concreto protendido existem três categorias:


• O sistema com armadura pré-tracionada;
• O sistema com armadura pós-tracionada com aderência;
• O sistema com armadura pós-tracionada sem aderência;

O sistema de pré-tração é caracterizado por aplicar uma tensão na cordoalha de aço


antes da concretagem. Após a cura do concreto, retira-se a ligação da armadura com o
macaco, estabelecendo a aderência entre o aço e o concreto. Assim, admite-se que ocorre
compatibilização de deformação entre os elementos. Este sistema é característico do
concreto pré-fabricado.

2.2 PERDAS DE PROTENSÃO

A protensão introduz na peça uma força inicial que provoca o alongamento na


armadura ativa. O acionamento dos macacos, a liberação dos cabos e a transferência da
força de protensão, entre outros fatores, diminuem a força de protensão. Assim, acontecem
as chamadas perdas de protensão. 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 número de
cabos determinado, é possível 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 pré-
tração) de que ocorrem são: acomodação da ancoragem, relaxação da armadura durante a
cura do concreto e deformação imediata ou retração do concreto (no instante da
transferência de protensão).
A acomodação da ancoragem ocorre após a distensão da armadura de protensão. Quando
se efetiva a ancoragem de um cabo ocorre um pequeno retrocesso no mesmo, isso provoca
uma queda de tensão. No caso da pré-tração, o estiramento do aço é feito antes da
concretagem, logo todos os cabos estão submetidos a lei de Hooke. E vale a seguinte
expressão:
12

∆!. !
∆! =  !"    !. !
!!

∆!. !!
∆! =    !"    !. !
!

Em que ∆! é o retrocesso da ancoragem, ! é a largura da pista de protensão, !! é o módulo


de elasticidade longitudinal da cordoalha de protensão e ∆! é a perda de protensão por
ancoragem. É bom lembrar que o concreto pré-tracionado é feito principalmente em fábricas
onde existem pistas bem extensas onde ocorre a concretagem e posteriormente a
protensão.
No ato de transferência da protensão, ocorre o encurtamento da seção de concreto, no caso
de pré-tração a protensão de todos os cabos é feita simultaneamente. O cálculo desta perda
é dado por:
!! !! !! . ! ! !!! . !
∆!! = . + −  !"    !. !
!! !! ! !

A perda por relaxação da armadura ocorre entre o período do estiramento da armadura e a


cura do concreto até que possa ser feita a transferência de protensão.
A intensidade da relaxação pura do aço (deformação constante) é determinada pelo
coeficiente ψ(t, to) definido por:

Δσ pr (t, t o )
  ψ(t,  to)  =        eq    2.4          
σ pi

onde:

Δσpr(t, to)= perda de tensão por relaxação pura (com comprimento constante) desde o
instante to do estiramento da armadura até o instante t considerado
σpi= tensão da armadura de protensão no instante de seu estiramento
A relaxação de fios e cordoalhas, após 1000h a 20°C (Ψ1000) e para tensões
variando de 0,5 a 0,8 fptk, obtida em ensaios descritos na NBR 7484, não 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 expressão:

0,15
" t ! to %
ψ(t, to) = ψ1000 .$ ' para (t, to) em dias eq 2.5
# 41, 67 &
para tensões inferiores a 0,5 fptk admite-se que não haja perda de protensão por relaxação;
Para valores intermediários dados na tabela 2.1 pode ser feita uma interpolação 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á aderência entre a


armadura de protensão 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, após o término da operação de protensão são devidas à retração do concreto,
fluência do concreto e novamente à relaxação do aço de protensão.
A retração é a variação de volume que o concreto sofre após sua cura e
endurecimento. A retração ocorre logo após o lançamento do concreto, mas somente a
partir da atuação da força de protensão é que o fenômeno pode ser considerado. A retração
ocorre devido a saída da água que não reage com o cimento. Portanto as variáveis que
definem a perda devida a retração são o tempo, a temperatura, a umidade relativa do ar, a
quantidade de água medida pelo ensaio de abatimento do concreto (slump), a área da
seção e o perímetro em contato com o ar. A retração não depende das ações introduzidas.
14

A perda é dada pela produto entre a retração ocorrida e o módulo de elasticidade, como
segue abaixo:

∆σ!,! t, t ! = ε!" t, t ! . E!    !"    !. !

A fluência, do mesmo modo que a retração, também depende do movimento da


água, mas associada a um carregamento aplicado. A fluência ocorre devido a tensões
capilares no interior do concreto e aos demais fatores presentes no efeito de retração. Um
detalhe é que as ações que provocam a fluência são permanentes, logo, as ações
acidentais não provocam deformação ao longo do tempo.
O concreto, quando submetido a solicitações, sofre uma deformação imediata e outra
lenta. Sendo estas de mesma ordem de grandeza. Como podemos ver nas figuras 2.1 e 2.2.

Figura 2.1 – Evolução da deformação por fluência para uma tensão constante.

Figura 2.2 – Curva de deformação por retração.


15

Araújo (2010) avaliou os efeitos do tempo num painel alveolar protendido composto e
atestou que a retração diferencial em seções compostas de concreto acarretam elevadas
mudanças na distribuição das tensões, em especial, na região entre o concreto pré-moldado
e o moldado no local.
Lahude (2009) observou que, para uma mesma carga, ao adiar a sua aplicação no
elemento, a significância da fluência reduz bastante. No exemplo de uma defasagem de 60
dias significa um coeficiente de fluência 60% menor.
Como visto em Inforsato (2009), quando o valor arbitrado da perda de protensão é
muito conservador, as a armadura calculada chega a ser cerca de 20% do valor necessário.
Isso mostra a importância de um cálculo mais preciso das perdas.

2.3 PRÉ-DIMENSIONAMENTO DA ARMADURA LONGITUDINAL

Quando se calcula uma peça de concreto protendido, deve-se garantir a segurança no


estado limite último (ELU) assim como verificar as condições de utilização (ELS). O cálculo
da armadura pode ser feito no ELU e realizar as verificações no ELS. Pode-se também fazer
o contrário, iniciando o dimensionamento no ELS e fazendo as verificações do ELU.
Diferentemente que no concreto armado no concreto protendido é preciso também verificar
se, no ato da protensão, a peça não apresenta risco de colapso. No caso das verificações
em serviço, quando se considera a durabilidade, é usual em estruturas pré-fabricadas
considerar para a cidade de São Paulo a classe de agressividade II da NBR6118:2007 e
portanto usar as verificações pertinentes a protensão limitada.

A fissuração excessiva de uma peça em concreto protendido pode comprometer


significativamente sua durabilidade. Embora não seja a única causa, ou condição
necessária, pode-se dizer que, quando ocorre, há grande risco de haver uma degradação
rápida do concreto superficial e da armadura. Outros fatores, como: porosidade do concreto,
cobrimento insuficiente da armadura, presença de produtos químicos, agentes agressivos
etc., contribuem ou podem ser determinantes na durabilidade da estrutura. Examinados
esses fatores, o projetista deve evitar que a peça sofra fissuração excessiva, devida à
flexão, detalhando adequadamente a armadura na seção transversal e, se for o caso,
aumentando a sua quantidade.
Assim, em relação à questão de fissuração, em geral, deseja-se evitar situações em
que a mesma possa causar uma diminuição na vida útil da estrutura, principalmente
provocando a deterioração da armadura por corrosão. O uso de fator água cimento (A/C)
adequado, cobrimentos mínimos adequados para armadura também fazem parte das
prescrições de se evitar a corrosão da armadura e portanto a diminuição da vida útil da
16

estrutura. Portanto, a adoção de resistência mínima de concreto, cobrimento mínimo para


armadura e verificação de estados de fissuração se complementam dando condições, junto
com as boas técnicas de detalhamento e de confecção da estrutura, para que haja garantia
de uma vida útil mínima.

Para pré-dimensionar ou calcular a armadura longitudinal de flexão em peças de


concreto protendido optou-se neste trabalho usar as condições de verificação no estado
limite de fissuração ou de serviço (ELS) e depois verificar as condições do estado limite
último (ELU). Para se determinar a quantidade de armadura ativa em uma seção, uma vez
definida a geometria da estrutura propriamente dita, é necessário conhecer a relação entre a
força de protensão atuante na seção com a aplicada inicialmente na extremidade da
armadura de protensão. Em outras palavras, é preciso conhecer as perdas de protensão. A
maioria dos projetistas e programas atuais como o ProUni, módulo do TQS, apenas estimam
tais perdas. Assim, qualquer que seja a condição determinante é preciso desenvolver o
cálculo com uma certa metodologia de modo a alcançar uma solução adequada. Pelo
trabalho de Inforsato (2009), a condição determinante geralmente é a de serviço. Como
visto, há três casos bem distintos que poderiam ser considerados: o da protensão com
aderência posterior (armadura com bainhas metálicas e injeção de nata de cimento), sem
aderência (cordoalhas engraxadas com bainhas de plástico) e o da pré-tração. No primeiro
e segundo caso a característica principal é o uso de cabos com trajetórias curvas e em geral
com trajetória acompanhando o diagrama de momentos do elemento fletido. No caso de
pré-tração, usada principalmente na pré-fabricação, a trajetória dos cabos é reta,
procurando-se usar seções compostas para melhorar a eficiência dos elementos fletidos.
Assim, para o pré-dimensionamento da seção, também é necessário que se verifique as
tensões presentes na estrutura tanto no tempo infinito (um período de tempo prolongado no
qual se assume que já ocorreram todas as perdas) quanto no tempo zero (momento em que
não houveram perdas e a solicitação causada pela protensão pode exigir uma armadura
negativa).
Para a condição de tempo infinito, deve-se estimar inicialmente uma perda para que
seja conhecido o valor da protensão aplicado no elemento. Com isso deve-se utilizar a
seguinte inequação dada pelo equilíbrio de tensões:
!
N! M! M!" ψ! . M!
σ= + − − ≥ f!"#,!"#        !"    !. !
A W W W
!!!

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

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


17

N! a força aplicada no sentido axial da peça devido a protensão dada por N! = σ!"!! . A !
M! o momento aplicado devido a protensão dado por M! = N! . e

σ ≤ 0,7f!"

Para a condição de tempo zero, utiliza-se o valor total da tensão de protensão inicial
pois supõe-se que ainda não ocorreu nenhuma perda. Portanto podemos utilizar uma
inequação parecida com a anterior, substituindo σ!"!! (tensão no tempo infinito) por σ!"!!
(tensão no tempo zero), o valor a direita da inequação por −1,2f!",! e A ! por A!! .
Inforsato (2009) afirma que é possível utilizar a inequação de tensões no tempo infinito para
dimensionar a armadura do bordo inferior e a inequação de tensões no tempo zero para
dimensionar (se houver) a armadura do bordo superior.

O trabalho de Machado (2002) por outro lado, apresentou um modelo elasto-


viscoplástico baseado no método dos elementos finitos. Através deste modelo, pode-se
obter a resposta da estrutura para as cargas de curta e de longa duração. O comportamento
elástico da estrutura corresponde as cargas aplicadas instantaneamente na estrutura
enquanto o visco-plástico corresponde a sua deformação 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 número de camadas com
propriedades mecânicas diferentes mas sofrendo a mesma deformação total.

2.4 VERIFICAÇÃO EM DÉCIMO DE VÃO

Sendo feita a verificação no meio do vão (onde os momentos devido aos


carregamentos distribuídos são máximos) ainda é necessário fazer verificações em posições
intermediárias da viga, onde o momento de cálculo é menor e portanto, pode haver tração
no bordo superior. A variação de posição na viga será chamada de “x”. Estas verificações
também são necessárias por causa do momento de protensão que é maior, pois as perdas
nas seções intermediárias são menores. Desse modo, é a viga é dividida em dez seções
espaçadas igualmente. Como mostra a figura 2.3:
18

Figura 2.3 – Viga dividida em décimo de vão e diagrama genérico de momento

Como pode ser visto, dividindo em décimo de vão, existem cinco seções as quais o
carregamento difere. A seção S5 é a que possui momento máximo e é por ela que é feito o
dimensionamento da armadura longitudinal. Para as outras seções deve-se verificar se não
existe problema em relação a tração no bordo superior. Em geral, na seção S1 terá
problemas com as verificações e portanto será necessário diminuir o número de cabos (tirar
a aderência) para esta.
Para o cálculo dos esforços nas seções intermediárias, utiliza-se o seguinte
equacionamento que vem da estática clássica.
p. l. x p. x !
M! = −              !"    !. !
2 2
e
p. l
V! = − p. x                    !"    !. !
2

Sendo:
- Ms: Momento na seção S;
- Vs: Cortante na seção S;
- P: Ação considerada;
- l: Vão total;
- x: posição da seção S
19

Os esforços devido a força de protensão se encontra a seguir:


N! = σ!" . A !                    !"    !. !"
e
M! = N! . e                          !"    !. !!

Sendo:
- Np: Normal de protensão;
- Mp: Momento de protensão;
- σ!" : Tensão de protensão considerando as perdas na seção S;
- Ac: Área da seção transversal (igual para todas as seções);
- e: excentricidade da cordoalha em relação ao centro de gravidade;

Portanto, para verificar em décimo de vão é necessário calcular as perdas de


protensão para cada seção. A seguir serão mostradas quais perdas diferem uma das outras
conforme se muda a posição da seção. A começar 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 equação
5.2, esta perda depende apenas do retrocesso da armadura, a largura da pista de protensão
e do módulo de elasticidade do aço.
A perda por relaxação do aço nas primeiras 24 horas também é equivalente para todos os
trechos da viga. Como vemos na equação 2.4, esta depende basicamente da tensão
aplicada na peça.
Já a perda por deformação imediata varia de seção para seção. Como visto na equação 2.3,
esta perda depende do momento causado pelo peso próprio da viga. No caso, M!" varia.
Esta variação pode ser visualizada na figura 2.3. Teoricamente, o valor da normal de
protensão Np também varia. Entretanto considerando que as outras perdas iniciais não
sofreram variação conforme a variação do valor de “x”, Np permanece constante em relação
a “x” para efeito de cálculo desta perda.
20

2.4.2 PERDAS FINAIS


A perda ao longo do tempo devido a retração do concreto permanece igual para
todos os trechos. A perda por retração depende da saída de água do concreto e de seu
módulo de elasticidade como pode ser visto na equação 2.6.
A perda por fluência do concreto, varia em relação a “x”. Como é visto anteriormente,
esta perda está associada aos mesmos fatores da perda por retração acrescida dos
carregamentos impostos a viga. Novamente, A figura 2.3 ajuda a entender a variação de
momento em relação a “x”. Além disso, a formulação do cálculo desta perda também
incorpora o valor de Np que muda nos diferentes trechos porque a perda imediata se altera.
Por último, tem-se a perda por relaxação que varia nas diferentes seções da viga
unicamente pelo fato de as perdas anteriores a esta se alterarem (!!" no meio do vão é
diferente de !!" em uma outra seção qualquer).

2.5 COMPRIMENTO DE TRANSFERÊNCIA E DE REGULARIZAÇÃO

O comprimento de transferência é o comprimento necessário para transferir, por


aderência, a totalidade da força de protensão à cordoalha.
Considerando liberação gradual do dispositivo de protensão, o cálculo do comprimento
de transferência é dado por:

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

Caso a liberação do dispositivo de protensão não seja gradual, o valor calculado


deve ser multiplicado por 1,25. Em geral, nas fabricas de concreto pré-fabricado, não se
utiliza desprotensão gradual.
Sendo l!" o comprimento de ancoragem básico, σ!" a tensão na cordoalha
considerando as perdas iniciais e f!"# a tensão de escoamento do aço de protensão.
Para cordoalhas de três e sete fios o comprimento de ancoragem básico é obtido
por:

7. ∅. f!"#
l!" =            !"    !. !"
36. f!"#
21

f bpd
Sendo que para o comprimento de transferência, o cálculo de deve considerar a
idade do concreto na data de protensão. Para o cálculo do comprimento de ancoragem deve
se considerar aos 28 dias.

f!"# = η! . η! . f!"#

Sendo:
η! = 1,2 para cordoalhas de três a sete fios;
η! = 1,0 para situação de boa aderência;
!
!,!"  . !!!"#
f!"# =   eq 2.14
!,!

Juntando as equações 2.12 e 2.13, temos a equação 2.15:

7  . ∅  . f!"# σ!" 3,5  . ∅  . σ!"


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

Em uma peça pré-fabricada também é importante saber qual a distancia a partir da


extremidade da peça pode-se considerar o esforço de protensão atuando em toda a seção.
A este comprimento dá-se o nome de distância de regularização l!"# .

!
l!"# = h! + 0,6  . l!"# ≥ l!"#              !"    !. !"

Segue um desenho ilustrativo explicando o comprimento de transferência e de


regularização.
22

Figura 2.4 – comprimento de transferência e comprimento de regularização

2.6 SEÇÃO COMPOSTA

A seção 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 pavimentação de edifícios e pontes.
Essa concepção estrutural apresenta a vantagem de diminuir o tempo de execução nos
canteiros e eliminar a necessidade de escoramentos durante a concretagem. O uso do
concreto moldado no local se deve a execução de uma capa que garante maior
solidarização entre os elementos garantindo a estrutura maior resistência a solicitações. No
entanto, como os elementos tem comportamentos diferentes, os seus efeitos devem ser
considerados. Segundo Inforsato (2009) e Faleiros Junior (2010), com a aplicação da capa
de concreto, além da formação da seção composta é possível que a laje seja calculada
como continua após o endurecimento da capa de concreto.
O fato de os concretos terem idades distintas acarreta em valores de deformação por
fluência e retração diferentes para cada caso. Alexander (2006) fez um estudo teórico e
experimental dos esforços que aparecem na seção com o passar do tempo verificando a
retração diferencial gerando tensões e deslocamentos adicionais e relacionando a ordem de
grandeza de influência desses fenômenos com a idade e espessura da capa estrutural
moldada no local.

2.7 DIMENSIONAMENTO DA ARMADURA TRANSVERSAL

O procedimento de cálculo da armadura transversal para o concreto protendido se


assemelha ao concreto armado, sendo necessário fazer apenas algumas ressalvas. Em
primeiro lugar, deve-se considerar o efeito da normal de protensão. Também é necessário
23

considerar o efeito da cortante existente quando a trajetória dos cabos é curva. Como este
trabalho visa a pré-tração, na qual a trajetória dos cabos é reta, este efeito não será
considerado. A NBR 6118:2007, considera que o cálculo deve ser feito com base no modelo
de treliça nas situações de modelo I ou II, para o trabalho apresentado, optou-se por calcular
utilizando o modelo I. Neste modelo, a inclinação da biela é de 45˚. Este cálculo é feito a
favor da segurança, pois sabe-se que o ângulo de inclinação das bielas para o concreto
protendido está entre 30˚ e 45˚.

2.7.1 EXPRESSÕES PARA CÁLCULO E VERIFICAÇÕES PARA DETALHAMENTO

As expressões que se encontram abaixo, foram retiradas do trabalho publicado por


CARVALHO (2007 e 2012).
Inicialmente, é necessário verificar a tensão de compressão nas belas. A cortante de
cálculo deve ser inferior a resistência das bielas.

V!" ≤ V!"#

!!"
Sendo V!"# =  0,27  . 1 − . f!"  . b!  . d eq 2.17
!"#

Estando a condição descrita acima verificada, parte-se para o cálculo da armadura


transversal. Para este cálculo, a cortante que os estribos devem resistir é equivalente a
cortante de cálculo 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 resistência do concreto é


suficiente para resistir as solicitações. Sendo assim a armadura necessária é a mínima.
A cortante resistida pela armadura é dada pela equação 2.20.

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

Onde:
- s é o espaçamento dos estribos;
24

- f!"# é a tensão na armadura transversal passiva; e


- α é um ângulo compreendido entre 45˚ e 90˚;

No caso geral, em que os estribos são verticais (α = 90˚), temos a equação 2.21.

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

É possível descrever a equação anterior em termos de taxa de armadura. Para tal,


basta dividir os dois lados da equação pela área de concreto da seção transversal. Isolando
a taxa de armadura, temos:

1,11  . τ!"
ρ!" =                !"    !. !!
f!"#

A armadura transversal deve garantir ductilidade à ruína por cisalhamento e ser


suficiente para suportar o esforço de tração resistido pelo concreto na alma, antes da
formação de fissuras de cisalhamento.
A armadura transversal mínima deve ser constituída por estribos com área
especificada pela equação 2.23.

f!",!
A !" ≥ 0,2  .  . b  . s            !"    !. !"
f!"# !

2.8 DETALHAMENTO

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


sobre projeto e execução de estruturas de concreto pré-moldado. Entretanto a seção
composta pode ser considerada como mista, pois parte de sua seção é composta por
concreto pré-fabricado (viga retangular) e outra parte da seção por concreto moldado no
local (capa) o qual é regido pela NBR6118:2007 portanto, as exigências de cobrimento e
espaçamento, mudam em torno da seção transversal.
Segundo a NBR9062:2003, para elementos em meio não 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 peças pré-fabricadas segundo a NBR9062

Localização
Tipos de Elementos Pré-
fabricados
No interior do edifício Ao ar livre

Lajes, mesas das vias T, placas


de vedação não estruturais e
1 1,5
elementos construtivos sujeitos a
cargas até 3 kN/m²
Vigas, pilares, arcos, nervuras
das vigas T e placas de vedação 1,5 2
estruturais

Como o trabalho tem o enfoque nas vigas pré-fabricadas, resolveu –se utilizar sempre um
cobrimento de 1,5cm. Para ambientes muito agressivos, é necessário aumentar o
cobrimento em 0,5cm.
Em relação ao espaçamento entre fios ou cordoalhas, a norma estabelece os seguintes
limites mínimos:
! > 2(!"â!"#$%  !"  !"#$"%&ℎ!)
! > 1,2(!"#"$ℎ!  !"  !"#$%  !"#$"!%&)
! > 2!"
26

3.   METODOLOGIA  
O procedimento automático de cálculo foi feito em duas etapas. Em uma, o usuário
pode entrar com todos os dados necessários e o programa verifica se a seção dada está
compatível aos esforços e condições existentes. Na outra, com todos os dados, e com as
verificações efetuadas, o programa gera um arquivo de texto o qual é lido por uma outra
rotina, que faz os desenhos da seção transversal e todo o detalhamento da armadura
longitudinal. Também é criada, pela rotina, uma tabela de aço.
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 cálculos, o ambiente de programação DELPHI pois além de usar
a linguagem orientada ao objeto, este já possui versões visuais para o sistema WINDOWS e
LINUX e permite a programação 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 através de uma rotina LISP que
permite que se obtenha além do desenho da forma, toda a planta de armação ativa e
passiva. Procurou-se utilizar a ferramenta de programação AutoLISP devido a possibilidade
de se programar no AutoCAD, e também devido ao contato com a linguagem obtido durante
a primeira iniciação científica.
Assim, de uma maneira geral, o trabalho foi desenvolvido em etapas distintas de modo
a organizar as atividades e proporcionar um encadeamento lógico. Ao término do programa,
foram resolvidos pequenos exemplos para testar a eficiência dos módulos 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 seções usuais
(retangulares) em prédios de galpões ou de múltiplos andares e também com seções
compostas (vigas retangulares com a consideração da influência de uma laje alveolar
apoiada).
Todos os procedimentos estão de acordo com a NBR6118:2007 e com a
NBR9062:2003 principalmente aqueles relativos a verificação da durabilidade em serviço
que é singular, bastante diferente de outras normas como a EUROCODE (2002) e que
tornam difícil o emprego de programas estrangeiros para a finalidade de detalhamento.
27

4.   DESENVOLVIMENTO  DO  ROTEIRO  


DO  PROGRAMA  

Neste item é mostrado como se desenvolveu o cálculo da armadura longitudinal


considerando já a lógica de programação.

4.1 ROTEIRO DE CÁLCULO DA ARMADURA LONGITUDINAL

Na revisão bibliográfica 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 cálculo das perdas iniciais e diferidas, deve seguir o procedimento de Inforsato
(2009) que está transcrito na sequencia. Após o cálculo das perdas pode-se novamente
calcular a armadura no estado limite último e verificar as condições de durabilidade
(fissuração).

1) Definição da classificação do ambiente em relação a sua agressividade.


2) Com a CAA define-se qual o nível de protensão a ser aplicado. Para o caso de
pré-tração quando se tem CAA I deve-se verificar em serviço apenas a abertura
de fissuras com limite wk≤0,2 mm para a combinação frequente (ψ1), este tipo
de protensão é classificada como parcial. Já para a CAA II a protensão é
classificada como limitada, que em serviço deve atender o estado de formação
de fissuras para a combinação frequente (ψ1) com o limite de
f ctk .inf = α ⋅ 0,7 ⋅ f ct ,m e o estado de descompressão cujo um ou mais ponto da
seção transversal a tensão normal é nula ( σ ≥ 0 ) não havendo tração no
restante da seção, essa verificação é feita para combinação quase permanente
(ψ2). Finalmente tem-se a protensão completa que é para a CAA III e IV que em
serviço deve ser verificado o estado de formação de fissuras para a combinação
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 descompressão σ ≥ 0 com a combinação
frequente(ψ1).
28

3) Os coeficientes ψ1 e ψ2 dependem da ocupação do edifício.


4) Detalham-se os carregamentos atuantes no elemento e as suas datas
respectivas de carregamento.
5) Estima-se uma perda de protensão e determina-se a armadura no tempo infinito
através da verificação da fissuração para a borda inferior.
6) Verifica-se em vazio com a armadura encontrada se a tensão na fibra superior
esta dentro do limite. Caso o limite seja ultrapassado é possível a colocação de
cordoalhas na fibra superior, limitando a tensão de tração na mesma.
7) Com esta armadura encontrada através da estimativa inicial, detalha-se os
cabos na seção e calcula-se as perdas diferidas considerando as datas dos
carregamentos determinadas no item 4.
8) Com a tensão final correta no cabo de protensão (tensão calculada
considerando as perdas) verifica-se novamente a condição de fissuração no
tempo infinito.
9) Com a armadura definida para o tempo infinito, verifica-se a peça em vazio
(verificação de ruptura simplificada) e a necessidade de isolamento de cabos na
borda inferior.
10) Verifica-se se a armadura dimensionada em serviço é suficiente para atender a
condição do ELU. Caso não seja pode-se completar com armadura frouxa.
11) Verifica-se a deformação excessiva com o cálculo estimado das flechas

4.2 ENTRADA DE DADOS E INFORMAÇÕES INICIAIS


4.2.1 INTRODUÇÃO
Como o programa deve ser utilizado para a resolução de vigas pré-fabricadas o
modelo de cálculo empregado é o de uma viga apoiada em dois apoios, sem momento na
extremidade.
Considera-se que a seção transversal da peça varia conforme o tempo passa pois a
seção que inicialmente é retangular, com o endurecimento do concreto da capa, adquire um
formato diferente (formato “T”) que deve ser considerado para o cálculo das propriedades
geométricas. Portanto, os carregamentos devidos ao peso próprio da viga, e da laje e o
peso devido a capa, exercem sua influência enquanto a seção ainda deve ser considerada
retangular. Já o efeito de revestimento e de alvenaria devem ser considerados apenas na
seção composta.
Um desenho genérico das seções composta e retangular pode ser visto na figura 4.1
29

Figura 4.1 – Seção retangular (à esquerda) e seção composta (à direita)

4.2.2 DESCRIÇÃO DAS TELAS DE ENTRADA

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


calcula as perdas de protensão e faz o dimensionamento tanto no tempo infinito quanto no
tempo zero. Lembrar que embora a verificação no tempo zero seja feita por análise de
tensões no concreto, trata-se de uma verificação no estado limite último. Caso exista a
necessidade de se modificar a seção ou a quantidade de aço inicialmente estimada, é
apresentado um alerta na tela do programa. Na sequência são apresentados detalhes da
janela mostrando como o programa está sendo desenvolvido e como é feita a entrada e
saída 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 específico do concreto armado de 25KN/m3. Como muitos dos valores
a serem inseridos podem não ser de fácil entendimento ao usuário, utilizou-se a função
“hint” do DELPHI. Ao colocar o “mouse” sobre uma célula, aparecerão informações
adicionais explicando de forma mais clara qual valor deve ser inserido pelo usuário. Para
ajudar o usuário, foi criado no canto superior esquerdo da janela o botão “arquivo”. Nele é
possível salvar os dados inseridos a abrí-los em outro momento.
30

Figura 4.2 – Primeira janela inteira preenchida.

Figura 4.3 – Caixa para inserção dos carregamentos

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


Com esta primeira janela é possível inserir os valores dos carregamentos permanentes g1
(g1 -peso próprio da viga), g2 (g2 - peso próprio da laje), g3 (g3 - peso da capa), g4 (g4 - peso
do revestimento) e g5 (g5 - peso da alvenaria). Também se faz necessário informar os
carregamentos acidentais máximos e mínimos e seus coeficientes de combinação. Além de
todos esses dados, também é exigido que o usuário informe o tempo em que esse
carregamento começa a atuar no elemento estrutural.
31

Figura 4.4 – Caixa geral para colocação dos valores diversos

Para prosseguir no programa usa-se a “caixa” (box) indicada na figura 4.2, onde se
informa o vão efetivo da viga; da seção transversal da viga: a largura, a altura, a altura útil,
a distancia da armadura negativa a borda da seção mais próxima, a espessura da capa.
Ainda são necessários informar: a altura da laje, a classe de agressividade ambiental, a
largura da pista de protensão, o fck (resistência característica de compressão do concreto) e
fcj (resistência do concreto antes dos 28 dias) da viga, o fck da capa de concreto, o tipo de
aço, o diâmetro da cordoalha, o diâmetro do estribo, o tipo de brita, a tensão inicial nos
cabos e as perdas iniciais e finais.
Para facilitar a compreensão, um desenho esquemático da seção pode ser visto a
seguir na figura 4.5:
32

Figura 4.5 – Seção retangular genérica com alguns elementos indicados

Figura 4.6 – Caixa para a colocação dos dados necessários para o cálculo do
coeficiente de fluência e de retração.

A terceira “caixa” da janela principal do programa é feita para que o usuário informe o
perímetro em contato com o ar das seções 1 e 2 sendo que estas se referem a seção
retangular e a seção composta respectivamente. Ele também deve informar a umidade
relativa do ar, a temperatura média, o valor do ensaio de abatimento do corpo de prova, o
tipo de cimento em cada seção e um tempo final.
33

Figura 4.7 – Caixa de saída dos coeficientes de fluência e retração

Como dados de saída, tem-se a “caixa 4” em que são mostrados os coeficientes de


fluência para cada carregamento e a retração que ocorre na seção.

Figura 4.8 – Caixa para a saída dos dados

A caixa 5 mostrada na figura 4.8 corresponde a saída de dados do dimensionamento


da área de aço tanto no bordo inferior como no superior, a altura útil máxima possível,
devido as condições dadas, e as perdas de protensão em cada borda.
34

Abaixo se encontra a janela completa com todas as células preenchidas e algumas das
janelas de aviso que informam o usuário sobre o pré-dimensionamento.

Figura 4.9 – Primeira janela inteira preenchida.

Figura 4.10 – Janelas de aviso.


35

Com as verificações atendidas, o programa abre uma nova janela. Esta pode ser
vista na figura 4.11 a seguir.

Figura 4.11 – Segunda janela

Esta janela também está dividida em caixas porém quase todas são apenas para
saída de dados. A janela mais a esquerda faz a verificação por tensões, a caixa do meio faz
a verificação por ruptura e a caixa da direita calcula o comprimento de transferência e de
regularização necessário 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 verificação por tensões

Nesta caixa são apresentados os valores de momento máximo e mínimo para o


bordo superior e inferior e para a combinação quase permanente e frequente. A direita
encontra-se os valores dos limites máximos e mínimos. É importante ressaltar que o
momento é calculado para a seção no meio do vão.

Figura 4.13 – Caixa com a verificação por ruptura


37

Esta é outra caixa apenas para a saída de dados. “x” é a posição da linha neutra em
relação ao bordo superior em cm. Mr é o momento resistente de cálculo no ELU e Md é o
momento de cálculo devido as forças atuantes na seção no meio do vão em KN.m. O
programa também informa o usuário sobre qual o domínio a viga está trabalhando e qual a
posição da linha neutra em relação a seção transversal (se ela passa pela mesa, pelo
pescoço ou pela alma).

Figura 4.14 – Caixa com o cálculo do comprimento de transferência e de regularização

Nesta caixa existe a possibilidade de entrar com alguns dados (eles ficam
previamente determinados mas podem ser alterados). É necessário que o usuário informe
como é feita a liberação da protensão. Ela pode ser feita de forma gradual ou brusca. De
modo geral, considera-se que em elementos pré-fabricados a liberação não é gradual. Neste
caso o comprimento de transferência aumenta em 25% do valor para desprotensão gradual.
O valor de n1 depende da cordoalha e o valor de n2 depende da aderência entre cordoalha e
concreto.
Na parte inferior da caixa são apresentados os valores do comprimento de
regularização e de transferência do bordo inferior e superior.
38

A partir desta segunda janela, abrem-se duas possibilidades para o usuário: fazer as
verificações em décimo de vão, ou calcular a armadura transversal. Ao optar-se pela
primeira opção surge uma nova janela que pode ser vista logo a seguir na figura 4.15.

Figura 4.15 – Terceira janela

Como é possível observar, esta janela mostra as perdas de protensão, as tensões


devido ao momento no tempo infinito e seus respectivos limites e as tensões devido ao
momento no tempo zero. Estes valores foram calculados a cada décimo de vão, estando S5
o meio do vão.
A direita vê um botão 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 tração.

Figura 4.17 – Quarta janela com possibilidade de tração.

Nesta janela é possível escolher se existe a possibilidade de que a viga não tenha
tração ou se ela deve respeitar o limite de 1,2fct. Lembrando que é difícil que uma seção
passe pelo critério de tração nula. Como visto na figura 4.16, caso haja tração, os valores
ficam vermelhos indicando que que essa não é uma possibilidade. Para o critério que admite
tração, calcula-se quantos cabos precisam ser isolados em cada seção e a área de aço
passiva necessária para conter a tração 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 usuário deve optar por calcular a armadura transversal.
Clicando no botão correspondente a quinta janela aparece, como é visto na figura 4.18.
40

Figura 4.18 – Quinta janela

Como pode ser visto, esta também é uma janela apenas para a saída dos dados. O
valor de Vrd2 é a cortante resistida pela pelas bielas, Vsd é a cortante de cálculo, Vc a
cortante resistida pelo concreto, Vsw a cortante que deve ser resistida pela armadura
transversal, o espaçamento é a distância entre estribos, sendo este valor um mínimo e ø o
diâmetro do estribo. Também é indicado quantos ramos existem no estribo e se a armadura
transversal é apenas construtiva (a armadura necessária é mínima) ou não.
A partir deste momento, com todas as verificações e com todos os cálculos feitos, é
possível criar o arquivo para o detalhamento da viga. Para isso, basta clicar no botão “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 não serão entendidos pela rotina em LISP. Com isso, todas as janelas
podem ser fechadas e começa a rotina feita em LISP no AutoCAD®.
Iniciando a rotina LISP e selecionando o arquivo criado pelo programa em DELPHI, o
usuário não precisa inserir nenhum novo dado, pois todos os dados necessários encontram-
se no arquivo. O desenho será feito com base nos dados fornecidos previamente e será
feita a seção transversal e longitudinal da viga juntamente com o detalhamento da armadura
e dos estribos e a criação de uma tabela de aço. 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 seção transversal.

Figura 4.20 – Desenho do detalhamento da armadura longitudinal.


42

Figura 4.21 – Desenho da tabela de aço.

Figura 4.22 – Desenho da tabela do concreto


43

Figura 4.23 – Todos os desenhos gerados

Figura 4.24 – Planta de armação

Figura 4.25 – Planta de formas


44

Figura 4.26 – Detalhe para formas da seção transversal

Figura 4.27 – Detalhe do chumbador em planta


45

5.   VALIDAÇÃO  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 tópico a seguir um exemplo
em que o dimensionamento já é conhecido.

5.1 EXEMPLO DE APLICAÇÃO 01

Será utilizado o exemplo 01 que se encontra na dissertação de mestrado de Inforsato


(2009) na página 88.

Dados:
CAA II
Armadura ativa cordoalha de Ф½” (Ap = 0,987 cm2) CP 190RB;
Armadura frouxa CA-50;
Módulo de elasticidade do aço: 200.000MPa
Concreto pré-moldado,
fcjk: 25MPa,
fck: 40MPa;
Concreto moldado no local (capa), fck: 30MPa;
Carregamentos:
g1 – peso próprio 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;
qmáximo – acidental: 21,60 kN/m;
qmínimo – 0 kN/m;
vão: 9,75m;
largura da viga: 30cm;
altura da viga: 90cm;
altura útil: 83,9cm;
altura da laje: 15cm;
espessura da capa: 5cm;
tensão inicial nos cabos: 145,30kN/cm2;
46

perda de protensão final estimada: 20%;


perda de protensão inicial estimada: 2,5%;
umidade relativa do ar: 70%;
temperatura média: 20˚C;
ensaio de abatimento de corpo de prova: 9cm;
Tipo de cimento da viga: CP-ARI;
Tipo de cimento da capa: CPII;

O intervalo de aplicação das cargas se encontra na tabela 5.1:

Tabela 5.1 – tempo de aplicação das cargas.


FASE TEMPO AÇÃO SEÇÃO PERDAS
Deformação
ancoragem;
Relaxação da
1 t0 = 0; t = 24 horas p
armadura;
Deformação
imediata.
Retração;
Fluência do
2 t0 = 1; t = ∞ dias p+g1 concreto;
Relaxação da
armadura.
Retração;
Fluência do
3 t0 = 15; t = ∞ dias p+g1+g2 concreto;
Relaxação da
armadura.
Retração;
Fluência do
4 t0 = 30; t = ∞ dias p+g1+g2+g3 concreto;
Relaxação da
armadura.
Retração;
5 t0 = 45; t = ∞ dias p+g1+g2+g3+g4 Fluência do
concreto;
47

Relaxação da
armadura.
Retração;
Fluência do
6 t0 = 60; t = ∞ dias p+g1+g2+g3+g4+g5 concreto;
Relaxação da
armadura.
Retração;
Fluência do
p+g1+g2+g3+g4+g5+
7 t0 = 75; t = ∞ dias concreto;
q
Relaxação da
armadura.

Como resultado esperado, se obtém:


Ø1=3,304;
Ø2=2,225;
Ø3=2,559;
Ø4=2,033;
Ø5=1,825;
Øq=1,691;
Coeficiente de retração: 2,6 x 10-4;
Área de aço de protensão mínimo: 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 retração: 2,6 x 10-4;
Área de aço de protensão mínimo: 8,09cm2;
Perda na borda inferior: 23,03%;
Perda na borda superior: 16,69%;
48

Como visto, não houve diferenças entre os valores esperados para os coeficientes
de fluência nem de retração e houveram pequenas diferenças entre os valores obtidos e os
valores esperados para as perdas de protensão e área de aço. Estas diferenças podem ser
consideradas como perdas devidas ao arredondamento.
Seguem os desenhos gerados pelo programa:

Figura 5.1 - Desenho da seção transversal retangular e estribos


49

Figura 5.2 – Desenho da seção transversal composta

Figura 5.3 - Desenho de forma da seção transversal composta


50
51

5.2 EXEMPLO DE APLICAÇÃO 02

Para este exemplo, será utilizada a mesma viga do exemplo anterior. Desta vez serão
calculadas as perdas e as tensões atuantes por décimo de vão. Como não existem
exemplos deste cálculo na bibliografia estudada, o cálculo será feito manualmente e então
comparado com os resultados obtidos da rotina desenvolvida.
Para realizar os cálculos no tempo zero, é necessário calcular o momento atuante
devido unicamente ao peso próprio da viga. Portanto, utiliza-se a seguinte equação:

!"!! !!!
!! = −        !. !. ! , com a variação 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 seção devido ao peso próprio.


S1 S2 S3 S4 S5
Mg1 (kN.m) 28,88 51,53 67,38 77 80,21

Para os cálculos no tempo infinito, utiliza-se a mesma equação 8.2.1. Os carregamentos


serão 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 seção.


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 seção.

Tabela 5.4 – Perdas calculadas manualmente.


Perdas iniciais (KN/cm2)
S1 S2 S3 S4 S5
Deformação da ancoragem 1,2 1,2 1,2 1,2 1,2
Relaxação da armadura 2,55 2,55 2,55 2,55 2,55
Deformação imediata no concreto inf 10,58 10,23 9,99 9,85 9,8
52

Deformação 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
Retração do concreto 5,2 5,2 5,2 5,2 5,2
Fluência inf 21,18 17,16 14,30 12,59 12,01
Fluência sup -0,37 3,26 5,84 7,39 7,90
Relaxação da armadura inf 8,028 8,050 8,065 8,073 8,076
Relaxação 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
Deformação da ancoragem 1,2 1,2 1,2 1,2 1,2
Relaxação da armadura 2,54 2,54 2,54 2,54 2,54
Deformação imediata no concreto inf 10,57 10,22 9,98 9,83 9,78
Deformação 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
Retração do concreto -5,21 -5,21 -5,21 -5,21 -5,21
Fluência inf 21,13 17,13 14,27 12,55 11,98
Fluência sup -0,35 3,27 5,85 7,40 7,92
Relaxação da armadura inf 8,01 8,11 8,18 8,22 8,23
Relaxação 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 décimo de vão.

5.3 EXEMPLO DE APLICAÇÃO 03

Desta vez, será utilizado o item a) do exemplo 1 que se encontra na dissertação de


mestrado de Faleiros Júnior (2010) na página 97. Será determinada a armadura de
protensão no ELU e no tempo infinito da seção transversal de uma ponte

Dados:
- Mg1 = 3540KN.m
- Mq = 1910KN.m
- CAA II
- d = 1,45m
- bw = 0,70m
- !!! = 1000!"#
- Aço de protensão CP190 RB
- Fck = 30MPa
- Relação á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 variação nos valores de área de aço. Isso se
deve ao fato de o programa utilizar a verificação por tensões enquanto o exemplo foi
resolvido unicamente pela verificação de ruptura.

5.4 EXEMPLO DE APLICAÇÃO 04

Como último exemplo, será utilizada três vigas com o mesmo valor de largura e altura
e submetida as mesmas ações porém com vãos crescentes. Seguem as características:

CAA II
Armadura ativa cordoalha de Ф9,5mm CP 175RB;
Armadura frouxa CA-50;
Módulo de elasticidade do aço: 210.000MPa
Concreto pré-moldado,
fcjk: 25MPa,
fck: 40MPa;
Concreto moldado no local (capa), fck: 30MPa;
Carregamentos:
g1 – peso próprio 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;
qmáximo – acidental: 10,00 kN/m;
qmínimo – 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 protensão final estimada: 20%;
perda de protensão inicial estimada: 2,5%;
umidade relativa do ar: 70%;
temperatura média: 20˚C;
ensaio de abatimento de corpo de prova: 9cm;
Tipo de cimento da viga: CP-ARI;
Tipo de cimento da capa: CPII;
55

O vão 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 necessárias.

a) vão = 6m (viga 1)

Armadura ativa positiva: 8 barras ø9,5mm (Ap=4,39cm2)


Armadura ativa negativa: 2 barras ø9,5mm (Ap=1,098cm2)

b) vão = 7m (viga 2)

Armadura ativa positiva: 12 barras ø9,5mm (Ap=6,59cm2)


Armadura ativa negativa: 3 barras ø9,5mm (Ap=1,647cm2)

c) vão = 8m (viga 3)

Armadura ativa positiva: 18 barras ø9,5mm (Ap=9,88cm2)


Armadura ativa negativa: 13 barras ø9,5mm (Ap=7,137cm2)

Para vão de 8m, foi necessário utilizar muita armadura. No caso, seria mais
interessante utilizar outra seção, aumentando o uso de concreto e diminuindo o uso de aço.
Em relação ao programa, percebe-se que os valores gerados foram coerentes,
validando novamente a rotina desenvolvida.
Figura 5.5 – Comparação entre a armação das vigas 1, 2 e 3 (esquerda para direita)
56

6.   MANUAL  DO  USUÁRIO  


Este manual foi feito visando facilitar a utilização do programa. Neste manual
encontra-se de modo claro e fácil todas as informações necessárias tais como a explicação
das variáveis e o uso dos botões em cada janela. Espera-se que, assim, mais alunos
possam usufruir do programa desenvolvido.

6.1 INÍCIO

Verifique se há em seu computador dois arquivos. Um chamado “Protendido” de


extensão *.exe e outro chamado “Detalhamento” de extensão *.lsp. O primeiro arquivo é o
responsável por fazer todos os cálculos e verificações do programa enquanto o segundo é
responsável por fazer o desenho da seção 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 versão do programa instalada em seu
computador.

6.2 UTILIZANDO O “PROTENDIDO.EXE”

Para começar, 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 é possível visualizar um indicador escrito “Janela 1/5”. É nessa janela onde
praticamente todos os dados serão inseridos. Caso a viga não passe pelas verificações nas
etapas seguintes, será necessário 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 mínima em KN/m;
qmáx: carga acidental máxima em KN/m;

* Esta célula é automaticamente preenchida ao dar os valores de altura e largura da


seção. Portanto o preenchimento desta célula é 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 majoração das respectivas cargas.

Ψ! : Coeficiente de combinação frequente;


Ψ! : Coeficiente de combinação quase permanente;
58

Figura 6.3 – Características gerais da viga

vão: vão efetivo da viga em m;


bw: largura da seção transversal da viga em cm;
h: altura da viga (seção retangular) em cm;
d: altura útil da viga (seção retangular) em cm;
d’: menor distância 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 protensão em m. Geralmente assume um valor de 100m. *Não
confundir com o vão da viga;
fck: resistência característica do concreto (seção pré-fabricada) em MPa;
fcj: resistência do concreto em 7 dias em MPa;
fck da capa: resistência característica do concreto da capa(concreto moldado no
local) em MPa;
Ep: Módulo de elasticidade do aço de protensão em MPa;
Tipo de aço: Varia entre CP – 190RB, CP – 190RN, CP – 175RB e CP – 175RN;
Diâmetro da cordoalha: Varia entre ... ;
Diâmetro do estribo: Varia entre ... ;
Brita: Tipo de brita, varia entre Brita 0, Brita 1, Brita 2 e Brita 3
Sigma pi (!!" ): tensão inicial dos cabos (desprezando as perdas) em KN/cm2;**
59

Perdas iniciais: estimativa das perdas que ocorrem logo ao soltar os macacos de
protensão em %;
Perdas finais: estimativa do total das perdas no tempo infinito em %;

** O preenchimento desta célula também é opcional. Caso a célula esteja vazia, o


programa entenderá que a tensão atuante é a máxima que o cabo aguenta.

Para facilitar a compreensão, um desenho esquemático das seções retangular e composta


pode ser visto a seguir:

Figura 6.4 – Seções retangular e composta genéricas com alguns elementos


indicados
60

Figura 6.5 – Coeficiente de fluência e retração

Uar seção 1: Perímetro em contato com o ar da seção 1 (seção retangular) em cm;***


Uar seção 2: Perímetro em contato com o ar da seção 2 (pescoço + capa) em cm;***
Umidade: umidade relativa do ar em %
Temperatura: temperatura média em ˚C
Slump: valor obtido pelo ensaio de abatimento de corpo de prova em cm;
Tipo de cimento da Seção 1: varia entre CPI, CPII, CPIII, CPIV e CPV-ARI;
Tipo de cimento da Seção 2: varia entre CPI, CPII, CPIII, CPIV e CPV-ARI;
Tempo final: Tempo final de utilização em dias. Pode-se considerar um tempo muito
grande (infinito);
*** O preenchimento destes valores também é opcional.

Os outros dados são de saída.

Figura 6.6 – Dados de saída (coeficientes)


61

ø: Coeficiente de fluência para cada carregamento;


!: Deformação do concreto;

Figura 6.7 – Dados de saída (área de aço e perdas de protensão)

Ap: Armadura ativa positiva.


Ap’: Armadura ativa negativa.
d máximo: maior valor que a altura útil pode ter
Perda no bordo inferior: Total das perdas finais calculadas no meio do vão no bordo
inferior;
Perda no bordo superior: Total das perdas finais calculadas no meio do vão no bordo
superior;
É importante ressaltar que é possível modificar o número de barras calculado.
Portanto, apesar de ser um dado de saída, também funciona como dado de entrada.

Tendo feita a explicação de todas as variáveis da janela 1, é ainda necessário explicar


certos pontos do programa.

-­‐ No canto superior esquerdo, encontra-se na barra, o botão “arquivo”. Nele


encontram-se algumas funções como pode ser visto a seguir:
62

Figura 6.8 – Conteúdo do programa

• O botão “Novo” limpa todas as células.


• O botão “Abrir...” dá a possibilidade de recuperar dados salvos anteriormente.
• Os botões “Salvar” e “Salvar Como...” dá a possibilidade de salvar os dados
inseridos no programa.
• O botão “Sair” (ou Ctrl+Q) encerra a janela.

-­‐ No botão “Ajuda” encontra-se uma janela onde é mostrada a versão do programa.

Figura 6.9 – Conteúdo do programa


63

-­‐ O botão “Limpar” apaga todas as células.


-­‐ Após o preenchimento de todas as células, se faz necessário clicar no botão
“Calcular” para que a nova janela com as verificações apareça.
-­‐ Se alguma célula não estiver preenchida (com exceção das células mencionadas
anteriormente) o programa acusará que existem campos em branco e não realizará
cálculo algum.
-­‐ Caso o usuário não se lembre sobre a que se refere determinada célula, ele pode
recorrer de um recurso de pista. Colocando o mouse sobre a célula, aparecerá uma
informação adicional que facilitará seu entendimento. Isso vale para todas as janelas.

Seguindo os passos deste manual, aparecerá para o usuário uma nova janela que
será chamada de janela 2.

Figura 6.10 – Segunda janela

Esta janela é importante, pois é através dela que as outras verificações serão feitas.
Nesta janela já não possui dados de entrada, senão unicamente para o cálculo do
comprimento de transferência. A seguir a janela será explicada em partes.
64

Figura 6.11 – Verificação por tensões

Na figura acima pode-se perceber que são apresentados os valores das tensões
devidas ao momento aplicado no meio do vão. É interessante destacar que, se alguma
tensão estiver fora dos limites estabelecidos, a célula fica vermelha, alertando o usuário.

Figura 6.12 – Verificação por ruptura


65

Nesta figura, são informados os valores da posição da linha neutra, momento


resistente, momento de cálculo, o domínio em que a seção trabalha e a referência da linha
neutra (se está na mesa ou na alma da viga).

Figura 6.13 – Comprimento de transferência e regularização

As células com valores de entrada, já estão preenchidas com valores “default”.


Existe a possibilidade de alterar estes valores mas não se recomenda pois eles são bem
usuais para estruturas pré-fabricadas.

O usuário perceberá que existem três botões que estão no meio da janela. Os dois
primeiros abrem novas janelas enquanto o terceiro cria o arquivo necessário para o
detalhamento. Caso o terceiro botão seja acionado antes que os outros sejam, o programa
acusará que faltam verificações a serem feitas e portanto não criará nenhum arquivo.
Clicando no botão “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 saída. Portanto é unicamente para


verificação. Na parte superior são vistas as perdas totais que ocorrem no bordo superior e
inferior a cada décimo de vão. Na parte central da janela aparecem as tensões em tempo
infinito devido ao momento total aplicado para combinações quase permanente e frequente,
ou frequente e rara, dependendo da CAA. Na parte inferior da janela apresentam-se as
tensões para tempo zero em décimo de vão.
Do mesmo modo como na janela 2, caso algum valor de tensão esteja fora dos
limites estipulados, a respectiva célula ficará vermelha.
Em seguida, o usuário deve clicar no botão “Isolar cabos”. Fazendo isso aparecerá a
janela 4.
67

Figura 6.15 – Quarta janela

Nesta janela, o usuário deve escolher qual limitação haverá para a tração.
Caso a tração seja indesejada, é necessário clicar em “tração nula”. Fazendo isso as
células que estão em linha, serão preenchidas com a quantidade de cabos não isolados na
seção. Caso exista problema com o isolamento os cabos, as células ficarão vermelhas e
portanto será necessário redimensionar a viga ou permitir a tração.
Caso seja permitida a tração, o usuário deve clicar em “-1,2 fct”. Dessa forma, será
permitido um limite de tração de até 1,2 fct. Entretanto, havendo tração na seção transversal,
importa que exista uma área de aço para resistir a este esforço. Portanto aparecerá um
valor de As’ para cada seção. Deste valor é descontado a área de armadura ativa calculada
anteriormente.
Tendo seguido estes passos, o usuário deve clicar em “OK” para voltar a terceira
janela e “OK” novamente para voltar a segunda janela.
De volta a segunda janela, o usuário deve clicar no botão “Armadura transversal”.
Isso abrirá a janela 5.
68

Figura 6.16 – Quinta janela

Esta quinta e última janela também é apenas para saída de dados. Ela apenas faz
algumas verificações para a armadura transversal necessária.
Clicando em “OK”, a janela será fechada, e o usuário se encontrará novamente na
janela 2. Caso deseje, ele deve clicar em “Criar arquivo para detalhamento” onde será dada
a opção de criar um arquivo de texto em algum diretório do computador.

Figura 6.17 – Caixa para criar arquivo de detalhamento


69

Tendo seguido todos os passos corretamente, o programa informará o usuário que o


arquivo foi salvo com sucesso. A partir deste ponto, o usuário pode fechar as janelas que
estiverem abertas. Ainda é possível manipular o arquivo de texto gerado utilizando o bloco
de notas. Fazendo isso o usuário deve tomar cuidado para não corromper o arquivo.
A partir deste ponto, se faz necessário 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”. Também é possível 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 usuário
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
aço. Após o detalhamento, aparecerá uma mensagem informando o usuário que o
detalhamento foi concluído com sucesso.

Figura 6.21 – Todos os desenhos gerados

A seguir, mostram-se imagens ampliadas da seção transversal, da viga em elevação


e planta juntamente com a armadura longitudinal e a tabela de aço.
72

Figura 6.22 – Detalhamento da seção transversal retangular

Figura 6.23 – Espaçamento das barras longitudinais


73

Figura 6.24 – Detalhamento da seção transversal composta

Figura 6.25 – Planta de armação

Figura 6.26 – Planta de forma


74

Figura 6.27 – Tabela de aço gerada


75

7.   CONCLUSÃO  
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 fácil
utilização e rápida obtenção de dados, podendo ser utilizada no ganho de sensibilidade na
interpretação de dados por parte dos estudantes e, quanto ao calculista, ser utilizado como
uma calculadora para análise de estruturas de concreto protendido. Os recursos visuais que
o programa oferece também são de grande valia para que seja possível uma rápida
avaliação de seções inapropriadas. A rotina criada em LISP também colabora com o
aumento de produtividade na liberação de pranchas de desenho para o detalhamento no
AutoCAD. O que foi desenvolvido e apresentado, se tornou uma ferramenta para otimização
de vigas protendidas bi-apoiadas.
76

8.   REFERÊNCIAS  

CARVALHO, R. C.; FIGUEIREDO FILHO. J. R. Cálculo e detalhamento de estruturas


usuais de concreto armado. Segundo a NBR 6118:2003. 3.ed. São Carlos: EDUFSCAR,
2007. 367 p.
CARVALHO R. C. Estruturas em Concreto Protendido. São Paulo: PINI, 2012. 110 p.
FALEIROS JUNIOR J. H. Procedimentos de Cálculo, Verificação e Detalhamento de
Armaduras Longitudinais na Seção Transversal em Elementos Protendidos. 2010.
193p. Mestrado em Engenharia de Estruturas - Departamento de Engenharia Civil, UFSCar,
São Carlos, 2010.
GHALI A.; FAVRE R. Concrete structures: Stresses and deformations 2. Ed. London:
Chapman and Hall, 1986. 352p.
INFORSATO, T. B. Considerações sobre o projeto, cálculo e detalhamento de vigas
pré- fabricadas protendidas com aderência inicial em pavimentos de edificações.
2009. 261 p. Mestrado em Engenharia de Estruturas - Departamento de Engenharia Civil,
UFSCar, São Carlos, 2009.
MACHADO, M. A. S. Aplicação do Método dos Elementos Finitos para a Análise Elasto-
viscoplástica de Peças de Concreto Armado e Protendido, Submetidas a Estados
Planos de Tensão. 2002. 178p. Mestrado em Engenharia de Estruturas – Escola de
Engenharia, UFRS, Porto Alegre, 2002.
PFEIL, W. Concreto protendido. 2. Ed. Rio de Janeiro: Livros técnicos e científicos editora
S.A. 1980.
VASCONCELOS, A. C. Manual prático para a correta utilização dos aços no concreto
protendido em obediência as normas atualizadas. 3. Ed. Belo Horizonte: Livros técnicos
e científicos editoria S. A. Companhia Siderúrgica Belgo-Mineira. Belo Horizonte, 1980.
77

9.   BIBLIOGRAFIA  
ACKER. A. V. Manual de Sistemas Pré-Fabricado de Concreto. FIB-2002. Tradução
Marcelo de A. Ferreira (ABCP-ABCIC-2004).
ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS, NBR 6118. Projeto de estruturas de
concreto: Procedimento. Rio de Janeiro. 2007. 221p.
ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. NBR 6349. Barras, cordoalhas e
fios de aço para armaduras de protensão: Ensaio de tração. Rio de Janeiro. 2008. 10p.
ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. NBR 7482. Fios de aço para
estruturas de concreto protendido: Especificação. Rio de Janeiro. 2008. 8p.
ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. NBR 7483. Cordoalhas de aço para
estruturas de concreto protendido: Especificação. Rio de Janeiro. 2008. 7p.
ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. NBR 7484. Barras, cordoalhas e
fios de aço destinados a armaduras de protensão: Método de ensaio de relaxação
isotérmica. Rio de Janeiro. 2009. 5p.
ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. NBR 9062. Projeto e execução de
estruturas de concreto pré-fabricado. Rio de Janeiro. 2003. 37p.
AGOSTINI, L. R. S. Concreto Protendido: Estudo das vigas isostáticas. 2. ed. São Paulo:
Livraria Ciência e Tecnologia Editora Ltda, 1983.
CATOIA, B. Comportamento de vigas protendidas pré-moldadas com ligações semi-
rígidas. São Carlos. 2007. 149p. Dissertação (Mestrado em Construção Civil). Universidade
Federal de São Carlos. São Carlos.
CAUDURO, E. L. Protensão com cordoalhas engraxadas e plastificadas - Pós-tensão
com sistema não aderente. 38o REIBRAC -1996
CHOLFE, L.; BONILHA, L. A. S. Concreto Protendido Teoria e Prática. 2. ed. São 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. São 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 técnicos e
científicos editora S.A., 1976.
NAWY E. G. Prestressed Concrete. A Fundamental Approach 2. Ed. New Jersey: Prentice
Hall, 1996. 789p.
RUSCH, H. Hormigón armado y hormigón pretensado. 2. Ed. Barcelona: Continental,
1975.
SILVA, I. MARTINS. Análise da redistribuição de esforços em vigas de concreto
protendido com seções composta. São Paulo, 2003. 144p. Dissertação (Mestre em
engenharia). Escola Politécnica da Universidade de São Paulo. São 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 próprio 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 aplicação da carga 1 em KN/m}
t002, {tempo inicial de aplicação da carga 2 em KN/m}
t003, {tempo inicial de aplicação da carga 3 em KN/m}
t004, {tempo inicial de aplicação da carga 4 em KN/m}
t005, {tempo inicial de aplicação da carga 5 em KN/m}
t00q, {tempo inicial de aplicação da carga acidental em KN/m}
t003B, {tempo inicial de aplicação da carga 3 em KN/m COMPOSTA}
t004B, {tempo inicial de aplicação da carga 4 em KN/m COMPOSTA}
t005B, {tempo inicial de aplicação da carga 5 em KN/m COMPOSTA}
t00qB, {tempo inicial de aplicação da carga acidental em KN/m COMPOSTA}
qmin, {carga acidental mínima em KN/m}
qmax, {carga acidental máxima em KN/m}
84

U1, {coeficiente de combinação 1}


U2, {Coeficiente de combinação 2}
U3, {Variável auxiliar}
U10, {U(1,0), 1 dia}
U1000, {Coeficiente interpolado na tabela da NBR}
vao, {Vão em m}
L, {largura da pista de protensão em m}
Mg1, {Momento calculado para peso próprio 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 mínima em KN.m}
Mqmax, {Momento calculado para carga acidental máxima 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 geométrico 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 início, sigmap*0,975}
sigmapi, {tensão no tempo inicial menos a perda por ancoragem, sigmap-sigmaanc}
sigmapii, {tensão no tempo inicial menos a perda por ancoragem e por deformação na
armadura}
sigmaanc, {perda por deformação de ancoragem}
sigmapr, {perda por relaxação da armadura}
sigmainf, {perda de protensão no bordo inferior}
sigmasup, {perda de protensão no bordo superior}
sigmapoginf, {perda por deformação imediata no concreto no bordo inferior}
sigmapogsup, {perda por deformação 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 protensão arbitrada para tempo infinito em porcentagem}
perdai, {perda de protensão arbitrada para o tempo zero em porcentagem}
ycg, {altura do centro de gravidade}
I, {Momento de inércia da seção inicial}
W, {I/ycg}
fctkinf,
fck07, {fck*0.7}
fctm,
e,{excentricidade}
elinha, {excentricidade negativa}
Ac, {área de concreto da seção transversal}
Ap, {área de aço 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, {Máximo limite inferior}
Apsup, {Mínimo limite superior}
Aplinha, {área de aço negativa}
Apele, {Área de aço da armadura de pele}
85

npele, {Número de barras da armadura de pele}


npele1,
R, {razão entre sigmapi e tensão do aço}
Rinf, {razão entre sigmapi inferior e tensão do aço}
Rsup, {razão entre sigmapi superior e tensão do aço}
fy, {tensão resistida no aço em MPa}
ftk, {tensão de escoamento do aço}
Aaco, {Área de aço da cordoalha}
Np, {Normal de protensão}
Mp, {Momento de ´protensão}
Ep, {Módulo de elasticidade do aço}
Eci, {módulo de elasticidade do concreto}
alpha, {razão entre o módulo de elasticidade do aço e do concreto fcj}
alphaf, {razão entre o módulo de elasticidade do aço e do concreto fck}
dbrita, {diametro máximo da brita}
n, {número de barras necessárias}
n0, {número de barras negativas necessárias}
nz, {idem}
n1, {valor truncado de n}
n11,
n2, {n-n1}
n22,
sh, {espaçamento horizontal}
sv, {espaçamento vertical}
ss, {espaçamento*}
destribo, {diametro do estribo}
dcor, {diametro da cordoalha}
nb, {número de barras por camada}
nb1, {número de barras na última camada}
nc, {número de camadas quebrado}
nc1, {número de camadas}
nc2, {nc-nctruncado}
c, {cobrimento}
bcg, {barras de aço multiplicadas pela sua posição}
Acg, {posição das barras de aço}
dreal, {d real}
perdainf, {total das perdas inferiores iniciais}
perdasup, {total das perdas superiores iniciais}
umi, {umidade relativa do ar}
Uar, {perímetro em contato com o ar da seção retangular}
Uar2, {perímetro em contato com o ar da seção composta}
temperatura, {temperatura média}
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 fictícia da seção retangular}
hfic2, {espessura fictícia da seção 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 aço}
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 seção composta}
areacomposta2, {área da seção composta (é um pouco maior que a seçao composta
acima)}
ycgcomposta, {altura do cg da seção composta}
Icomposta, {Momento de inércia da seção composta}
yicomposta, {distância do cg da seção composta até o ponto mais inferior da seção}
yscomposta, {distância do cg da seção composta até o ponto mais superior da seção}
Wicomposta, {I/yicomposta}
Wscomposta, {I/yscomposta}
fi1, {coeficiente de fluência para o carregamento 1}
fi2, {coeficiente de fluência para o carregamento 2}
fi3A, {coeficiente de fluência para o carregamento 3 (seção retangular)}
fi3B, {coeficiente de fluência para o carregamento 3 (seção composta)}
fi3, {coeficiente de fluência para o carregamento 3 (média)}
fi4A, {coeficiente de fluência para o carregamento 4 (seção retangular)}
fi4B, {coeficiente de fluência para o carregamento 4 (seção composta)}
fi4, {coeficiente de fluência para o carregamento 4 (média)}
fi5A, {coeficiente de fluência para o carregamento 5 (seção retangular)}
fi5B, {coeficiente de fluência para o carregamento 5 (seção composta)}
fi5, {coeficiente de fluência para o carregamento 5 (média)}
87

fiqA, {coeficiente de fluência para o carregamento acidental (seção retangular)}


fiqB, {coeficiente de fluência para o carregamento acidental (seção composta)}
fiq, {coeficiente de fluência para o carregamento acidental (média)}
ecomposta, {excentricidade da seção composta}
ecompostalinha, {excentricidade da seção composta negativa}
bff, {bw + abas}
pff, {bw - uns 7cm}
limsup, {limite superior para verificação}
liminf, {limite inferior para verificação}
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 verificação}
Wts, {usa na verificação}
fs1, {fator de segurança do carregamento 1}
fs2, {fator de segurança do carregamento 2}
fs3, {fator de segurança do carregamento 3}
fs4, {fator de segurança do carregamento 4}
fs5, {fator de segurança do carregamento 5}
fsq, {fator de segurança do carregamento acidental}
aux, {variável auxiliar}
aux2, {variável auxiliar 2}
aux3 {variável auxiliar 3} : real;

linha, {linha de arquivo de texto}


pl, {pedaço da linha de arquivo de texto}
tpaco, {tipo de aço}
daco, {diametro de aço}
dest, {diametro do estribo}
tpbrita, {tipo de brita}
tpcimento, {tipo de cimento utilizado para a seção 1}
tpcimento2, {tipo de cimento utilizado para a seção 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;

{Seção 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);

{Cálculo 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
{Combinação de ações 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/Ac-
sigma*e/W);
Ap7 := ((Mg1+Mg2+Mg3)*(-1)/W-(Mg4+Mg5+U2*Mqmin)/Wscomposta)/(sigma/Ac-
sigma*e/W);
Ap8 := (fck07-(Mg1+Mg2+Mg3)/W-(Mg4+Mg5+U2*Mqmin)/Wscomposta)/(sigma/Ac-
sigma*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;

{Combinação de ações 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/Ac-
sigma*e/W);
Ap14 := (fck07-(Mg1+Mg2+Mg3)/W-(Mg4+Mg5+U1*Mqmax)/Wscomposta)/(sigma/Ac-
sigma*e/W);
Ap15 := (-1.5*fctkinf-(Mg1+Mg2+Mg3)/W-(Mg4+Mg5+U1*Mqmin)/Wscomposta)/(sigma/Ac-
sigma*e/W);
Ap16 := (fck07-(Mg1+Mg2+Mg3)/W-(Mg4+Mg5+U1*Mqmin)/Wscomposta)/(sigma/Ac-
sigma*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
{Combinação de ações 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/Ac-
sigma*e/W);
Ap6 := (fck07-(Mg1+Mg2+Mg3)/W-(Mg4+Mg5+U1*Mqmax)/Wscomposta)/(sigma/Ac-
sigma*e/W);
Ap7 := ((Mg1+Mg2+Mg3)*(-1)/W-(Mg4+Mg5+U1*Mqmin)/Wscomposta)/(sigma/Ac-
sigma*e/W);
Ap8 := (fck07-(Mg1+Mg2+Mg3)/W-(Mg4+Mg5+U1*Mqmin)/Wscomposta)/(sigma/Ac-
sigma*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;

{Combinação de ações 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/Ac-
sigma*e/W);
Ap14 := (fck07-(Mg1+Mg2+Mg3)/W-(Mg4+Mg5+Mqmax)/Wscomposta)/(sigma/Ac-
sigma*e/W);
Ap15 := (-1.5*fctkinf-(Mg1+Mg2+Mg3)/W-(Mg4+Mg5+Mqmin)/Wscomposta)/(sigma/Ac-
sigma*e/W);
Ap16 := (fck07-(Mg1+Mg2+Mg3)/W-(Mg4+Mg5+Mqmin)/Wscomposta)/(sigma/Ac-
sigma*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 Seção.')
ELSE
begin
edit9.text := floattostrf(Apinf,ffFixed,18,2);
edit15.text := floattostrf(Apsup,ffFixed,18,2);
end;

{Cálculo do número 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 aço 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;

{Cálculo do número 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);

{Cálculo do número 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;

{Cálculo 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;

{cálculo 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 protensão iniciais}


{Deformção por ancoragem}
sigmaanc:=0.006*Ep/(L*10); {divide por 10 para transformar MPa em KN/cm2}

{Relaxação 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 deformação 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);

{Cálculo das perdas diferidas}


{Cálculo da retração do concreto} {Seção 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);

{-----}

{Cálculo do coeficiente de fluência} {Seção 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);

{Cálculo da perda por fluencia} {Seção 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);

{-----}

{Cálculo da retração do concreto} {Seção composta}


{*O cálculo da retração do concreto na seção composta será considerado o mesmo
da seção retangular.}
108

{-----}

{Perda por retração do concreto}


sigmaps:=Ep*epsoloncs/10;

{Perda por relaxação 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);

{-----}

{Verificações}
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 verificação está atendida!')
ELSE
showmessage('A seção não está verificada. Aumente a altura da viga ou aumente a
quantidade de aço no bordo inferior.');

{Abrir segundo formulário}


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); //g1


edit1.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 14, 3); //t0
edit33.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 10, 4); //gama1
edit53.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 35, 6); //g2
edit10.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 14, 3); //t0
edit34.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 10, 4); //gama2
edit54.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 35, 6); //g3
edit35.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 14, 3); //t0
edit38.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 10, 4); //gama3
edit55.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 44, 6); //g4
edit36.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 14, 3); //t0
edit39.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 10, 4); //gama4
edit56.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 40, 6); //g5
edit37.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 14, 3); //t0
edit40.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 10, 4); //gama5
edit57.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 40, 6); //qmin
edit11.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 40, 6); //qmax
edit12.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 14, 3); //t0
edit45.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 10, 4); //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); //vão
edit2.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 30, 5); //largura da seção, bw
edit5.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 28, 5); //alura da seção, 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 aço
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); //deformação
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); //número 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 inválido!');

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 mínima em KN/m, qmin =>');
118

Writeln(arq,edit11.text);
Write(arq,'carga acidental máxima 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 combinação frequente =>');
Writeln(arq,edit13.text);
Write(arq,'Coeficiente de combinação quase permanente =>');
Writeln(arq,edit14.text);

{Características gerais da viga}

Writeln(arq,'');
Writeln(arq,'');
Writeln(arq,'*Características gerais da viga');
Writeln(arq,'');
Write(arq,'vão em m =>');
Writeln(arq,edit2.text);
Write(arq,'largura da seção em cm, bw =>');
Writeln(arq,edit5.text);
Write(arq,'altura da seção em cm, h =>');
Writeln(arq,edit4.text);
Write(arq,'altura útil em cm, d =>');
Writeln(arq,edit3.text);
Write(arq,'menor distância 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 protensão 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,'Módulo de elasticidade do aço em MPa, E =>');
Writeln(arq,edit17.text);
Write(arq,'Tipo de aço (CP - 175RN, CP - 175RB, CP - 190RN ou CP - 190RB) =>');
Writeln(arq,combobox1.text);
Write(arq,'Diâmetro da cordoalha (9,5mm, 12,7mm ou 15,2mm) =>');
Writeln(arq,combobox3.text);
Write(arq,'Diâmetro 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,'tensão inicial no aço 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 cálculo do coeficiente de fluência}

Writeln(arq,'');
Writeln(arq,'');
Writeln(arq,'*Valores para o cálculo do coeficiente de fluência');
Writeln(arq,'');
Write(arq,'Perímetro em contato com o ar da seção 1 em cm, Uar 1 =>');
Writeln(arq,edit25.text);
Write(arq,'Perímetro em contato com o ar da seção 2 em cm, Uar 2 =>');
Writeln(arq,edit52.text);
Write(arq,'Umidade relativa do ar em % =>');
Writeln(arq,edit26.text);
Write(arq,'Temperatura média em ºC =>');
Writeln(arq,edit27.text);
Write(arq,'Slamp do concreto em cm =>');
Writeln(arq,edit28.text);
Write(arq,'Tipo de cimento da seção 1 (CPI, CPII, CPIII, CPIV ou CPV-ARI =>');
Writeln(arq,combobox6.text);
Write(arq,'Tipo de cimento da seção 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 fluência e deformação}

Writeln(arq,'');
Writeln(arq,'');
Writeln(arq,'*Coeficientes de fluência e deformação');
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,'Deformação do concreto =>');
Writeln(arq,edit32.text);

{Dados de saída}

Writeln(arq,'');
Writeln(arq,'');
Writeln(arq,'*Dados de saída');
Writeln(arq,'');
Write(arq,'Armadura positiva mínima em cm2 =>');
120

Writeln(arq,edit9.text);
Write(arq,'Armadura positiva máxima em cm2 =>');
Writeln(arq,edit15.text);
Write(arq,'Armadura positiva em cm2 =>');
Writeln(arq,edit22.text);
Write(arq,'Número de cordoalhas =>');
Writeln(arq,edit21.text);
Write(arq,'Armadura negativa em cm2 =>');
Writeln(arq,edit20.text);
Write(arq,'Número de cordoalhas =>');
Writeln(arq,edit29.text);
Write(arq,'máxima altura útil possível 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 não 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 mínima em KN/m, qmin =>');
Writeln(arq,edit11.text);
Write(arq,'carga acidental máxima 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 combinação frequente =>');
Writeln(arq,edit13.text);
Write(arq,'Coeficiente de combinação quase permanente =>');
Writeln(arq,edit14.text);

{Características gerais da viga}

Writeln(arq,'');
Writeln(arq,'');
Writeln(arq,'*Características gerais da viga');
Writeln(arq,'');
Write(arq,'vão em m =>');
Writeln(arq,edit2.text);
Write(arq,'largura da seção em cm, bw =>');
Writeln(arq,edit5.text);
Write(arq,'altura da seção em cm, h =>');
Writeln(arq,edit4.text);
Write(arq,'altura útil em cm, d =>');
Writeln(arq,edit3.text);
Write(arq,'menor distância 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 protensão 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,'Módulo de elasticidade do aço em MPa, E =>');
Writeln(arq,edit17.text);
Write(arq,'Tipo de aço (CP - 175RN, CP - 175RB, CP - 190RN ou CP - 190RB) =>');
Writeln(arq,combobox1.text);
Write(arq,'Diâmetro da cordoalha (9,5mm, 12,7mm ou 15,2mm) =>');
Writeln(arq,combobox3.text);
Write(arq,'Diâmetro 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,'tensão inicial no aço 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 cálculo do coeficiente de fluência}

Writeln(arq,'');
Writeln(arq,'');
Writeln(arq,'*Valores para o cálculo do coeficiente de fluência');
Writeln(arq,'');
Write(arq,'Perímetro em contato com o ar da seção 1 em cm, Uar 1 =>');
Writeln(arq,edit25.text);
Write(arq,'Perímetro em contato com o ar da seção 2 em cm, Uar 2 =>');
Writeln(arq,edit52.text);
Write(arq,'Umidade relativa do ar em % =>');
Writeln(arq,edit26.text);
Write(arq,'Temperatura média em ºC =>');
Writeln(arq,edit27.text);
Write(arq,'Slamp do concreto em cm =>');
Writeln(arq,edit28.text);
Write(arq,'Tipo de cimento da seção 1 (CPI, CPII, CPIII, CPIV ou CPV-ARI =>');
Writeln(arq,combobox6.text);
Write(arq,'Tipo de cimento da seção 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 fluência e deformação}

Writeln(arq,'');
Writeln(arq,'');
Writeln(arq,'*Coeficientes de fluência e deformação');
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,'Deformação do concreto =>');
Writeln(arq,edit32.text);

{Dados de saída}

Writeln(arq,'');
Writeln(arq,'');
Writeln(arq,'*Dados de saída');
Writeln(arq,'');
Write(arq,'Armadura positiva mínima em cm2 =>');
Writeln(arq,edit9.text);
Write(arq,'Armadura positiva máxima em cm2 =>');
Writeln(arq,edit15.text);
Write(arq,'Armadura positiva em cm2 =>');
Writeln(arq,edit22.text);
Write(arq,'Número de cordoalhas =>');
Writeln(arq,edit21.text);
Write(arq,'Armadura negativa em cm2 =>');
Writeln(arq,edit20.text);
Write(arq,'Número de cordoalhas =>');
Writeln(arq,edit29.text);
Write(arq,'máxima altura útil possível 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 não 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
{Cálculo do peso próprio automáticamente}
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
{Cálculo do peso próprio automáticamente}
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
{Cálculo da área de aço 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
{Cálculo da área de aço 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 botão 3 do form 2 foi ativado}
b4on,{se o valor for 1 indica que o botão 4 do form 2 foi ativado}
s1i,s1s,s2i,s2s,s3i,s3s,s4i,s4s, {tensões para a verificação por fissuras}
lsup, {limite superior}
linf, {limite inferior}
Ap, {área de aço no bordo inferior}
fckcp, {fck da capa de concreto}
128

epsolonp,
epsolon,
sigmapd,
Ep, {módulo de elasticidade do aço}
dte, {altura útil da seção T}
bf, {largura da mesa da viga "T"}
bw, {largura da alma da viga "T"}
capa, {espessura da capa de concreto}
x, {posição da LN}
x2, {máximo valor para que a seção esteja no domínio 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 mínimo}
Mqmax, {Momento causado pelo carregamento acidental máximo}
fs1, {fator de segurança do carregamento 1}
fs2, {fator de segurança do carregamento 2}
fs3, {fator de segurança do carregamento 3}
fs4, {fator de segurança do carregamento 4}
fs5, {fator de segurança do carregamento 5}
fsq, {fator de segurança do carregamento acidental}
Mr, {Momento resistido}
Ma, {Momento atuante}
Mg1sx, {Momento do carregamento 1, seção x}
Mg1s1, {Momento do carregamento 1, seção 1}
Mg1s2, {Momento do carregamento 1, seção 2}
Mg1s3, {Momento do carregamento 1, seção 3}
Mg1s4, {Momento do carregamento 1, seção 4}
Mg2sx, {Momento do carregamento 2, seção x}
Mg2s1, {Momento do carregamento 2, seção 1}
Mg2s2, {Momento do carregamento 2, seção 2}
Mg2s3, {Momento do carregamento 2, seção 3}
Mg2s4, {Momento do carregamento 2, seção 4}
Mg3sx, {Momento do carregamento 3, seção x}
Mg3s1, {Momento do carregamento 3, seção 1}
Mg3s2, {Momento do carregamento 3, seção 2}
Mg3s3, {Momento do carregamento 3, seção 3}
Mg3s4, {Momento do carregamento 3, seção 4}
Mg4sx, {Momento do carregamento 4, seção x}
Mg4s1, {Momento do carregamento 4, seção 1}
Mg4s2, {Momento do carregamento 4, seção 2}
Mg4s3, {Momento do carregamento 4, seção 3}
Mg4s4, {Momento do carregamento 4, seção 4}
Mg5sx, {Momento do carregamento 5, seção x}
Mg5s1, {Momento do carregamento 5, seção 1}
Mg5s2, {Momento do carregamento 5, seção 2}
Mg5s3, {Momento do carregamento 5, seção 3}
Mg5s4, {Momento do carregamento 5, seção 4}
Mqminsx, {Momento do carregamento acidental minimo, seção x}
Mqmins1, {Momento do carregamento acidental minimo, seção 1}
Mqmins2, {Momento do carregamento acidental minimo, seção 2}
Mqmins3, {Momento do carregamento acidental minimo, seção 3}
Mqmins4, {Momento do carregamento acidental minimo, seção 4}
129

Mqmaxsx, {Momento do carregamento acidental maximo, seção x}


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

Psup,
M0,
Msdx,
Vc,
Vsw,
Asw,
xx1, {décimo de vão}
xx2, {2x décimo de vão}
xx3, {3x décimo de vão}
xx4, {4x décimo de vão}
vao, {vão da viga}
g1, g2, g3, g4, g5, qmin, qmax,
sigmacginfs1, {perda por deformação 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, {tensão considerando as perdas iniciais}
sigma1s,
132

sigma2i,
sigma2s,
sigma3i,
sigma3s,
sigma4i,
sigma4s,
sigma5i,
sigma5s,
smax, {espaçamento 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 transferência no bordo inferior}
lbptsup, {comprimento de transferência no bordo superior}
lpinf, {Distância de regularização inferior}
lpsup {Distância de regularização superior}: real;

liberacao, cb1 : string;

f: TextFile;

implementation

uses Formulario, Formulario3, Formulario4, Formulario5;

{$R *.dfm}

procedure TFAPESP2.Button1Click(Sender: TObject);


begin
{Verificação a ruptura}
{Fazendo suposição de domínio 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;

{Cálculo de sigma pd}


{Valores retirados da tabela 5.1 da dissertação 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 seção não foi verificada pelo ELU.');
end;

if x<x2 then
edit16.text:= 'Domínio 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 verificação da fissuração}

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 := 'Combinação Quase Permanente';
label9.caption := 'Combinação Frequente';
end;

if (formulario.CAA = 'III') or (formulario.CAA = 'IV') then


begin
label1.caption := 'Combinação Frequente';
label9.caption := 'Combinação Rara';
end;

end;

procedure TFAPESP2.Button2Click(Sender: TObject);


begin
{Cálculo do comprimento de regularização}
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='Liberação não gradual' then {Considerando caso de liberação não 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;

{Verificação em décimo de vão}


xx1:= vao/10;
xx2:= 2*vao/10;
xx3:= 3*vao/10;
xx4:= 4*vao/10;

{Momento em décimo de vão}


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);

{Cálculo das perdas em décimo de vão}


{Perdas iniciais}
{Deformação da ancoragem}
sigmaanc:=formulario.sigmaanc;

{Relaxação da armadura}
sigmapr:=formulario.sigmapr;

{Perda por deformação 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 retração do concreto}
sigmaps:= formulario.sigmaps;

{Perda por fluência}


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));

{Seção 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);

{Seção 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);

{Seção 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);

{Seção 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 relaxação da armadura}


{Seção 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;

{Seção 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;

{Seção 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;

{Seção 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}


{Seção 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-sigmaprsups1-
sigmapcsups1)/(xpsup+xc*alphaf*nsup*(pp/10000));

sigmapinfs1:= perdainfs1+sigmapi1infs1;
sigmapsups1:= perdasups1+sigmapi1sups1;

{Seção 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-sigmaprsups2-
sigmapcsups2)/(xpsup+xc*alphaf*nsup*(pp/10000));

sigmapinfs2:= perdainfs2+sigmapi1infs2;
sigmapsups2:= perdasups2+sigmapi1sups2;

{Seção 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-sigmaprsups3-
sigmapcsups3)/(xpsup+xc*alphaf*nsup*(pp/10000));

sigmapinfs3:= perdainfs3+sigmapi1infs3;
sigmapsups3:= perdasups3+sigmapi1sups3;

{Seção 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-sigmaprsups4-
sigmapcsups4)/(xpsup+xc*alphaf*nsup*(pp/10000));

sigmapinfs4:= perdainfs4+sigmapi1infs4;
sigmapsups4:= perdasups4+sigmapi1sups4;

{Verificações}
{Seção 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;

{Seção 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;

{Seção 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;

{Seção 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 formulário}


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 décimo de vão}


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 décimo de vão}

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 transferência!');

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 aço=>');
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,'Diâmetro do estribo=>');
Writeln(f,StringReplace(floattostrf(formulario.destribo,ffFixed,18,2), ',', '.', [rfReplaceAll]));
Write(f,'Diâmetro da cordoalha=>');
Writeln(f,StringReplace(floattostrf(formulario.dcor,ffFixed,18,2), ',', '.', [rfReplaceAll]));
Write(f,'Diâmetro do máximo agregado=>');
Writeln(f,StringReplace(floattostrf(formulario.dbrita,ffFixed,18,1), ',', '.', [rfReplaceAll]));
Write(f,'Diâmetro do porta estribo=>');
Writeln(f,StringReplace(floattostrf(formulario.destribo,ffFixed,18,2), ',', '.', [rfReplaceAll]));
Write(f,'Número de cordoalhas de armadura positiva=>');
Writeln(f,StringReplace(floattostrf(formulario.n,ffFixed,18,0), ',', '.', [rfReplaceAll]));
Write(f,'Número 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,'Diâmetro da armadura de pele=>');
Writeln(f,1);
Write(f,'Número de barras=>');
Writeln(f,StringReplace(floattostrf(formulario.npele,ffFixed,18,0), ',', '.', [rfReplaceAll]));
Write(f,'Posição 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,'vão=>');
Writeln(f,StringReplace(floattostrf(formulario.vao*100,ffFixed,18,1), ',', '.', [rfReplaceAll]));
Write(f,'espaçamento vertical=>');
Writeln(f,StringReplace(floattostrf(formulario.sv,ffFixed,18,2), ',', '.', [rfReplaceAll]));
Write(f,'espaçamento horizontal=>');
Writeln(f,StringReplace(floattostrf(formulario.sh,ffFixed,18,2), ',', '.', [rfReplaceAll]));
Write(f,'Cabos não isolados na seção 1=>');
Writeln(f, formulario5.nn1);
Write(f,'Cabos não isolados na seção 2=>');
Writeln(f, formulario5.nn2);
Write(f,'Cabos não isolados na seção 3=>');
Writeln(f, formulario5.nn3);
153

Write(f,'Cabos não isolados na seção 4=>');


Writeln(f, formulario5.nn4);
Write(f,'Cabos não isolados na seção 5=>');
Writeln(f, formulario5.nn5);
Write(f,'Espaçamento=>');
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,'Tensão inicial de protensão=>');
Writeln(f,StringReplace(floattostrf(formulario.sigmap,ffFixed,18,2), ',', '.', [rfReplaceAll]));

Closefile(f);
ShowMessage('O arquivo foi criado com sucesso!');
end
else ShowMessage('O arquivo não foi criado!');
end
else
if (b3on<>1) then
Showmessage('É necessário fazer as verificações em décimo de vão!');
if (formulario5.b6on<>1) then
Showmessage('É necessário fazer as verificações do isolamento de cabos!');
if (b4on<>1) then
Showmessage('É necessário fazer as verificações 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 botão 1 do form 3 foi ativado}
perda1i, {Perda de protensão em décimo de vão}
perda1s,
perda2i,
156

perda2s,
perda3i,
perda3s,
perda4i,
perda4s,
perda5i,
perda5s,
Nps5, {Normal no meio do vão (seção 5)}
Mps5 {Momento no meio do vão (seção 5)}: real;

implementation

uses Formulario, Formulario2, Formulario4, Formulario5;

{$R *.dfm}

procedure TFAPESP3.FormCreate(Sender: TObject);


begin
{Nome dos títulos}
if formulario.CAA = 'II' then
begin
label1.caption := 'Combinação Quase Permanente';
label9.caption := 'Combinação Frequente';
end;

if (formulario.CAA = 'III') or (formulario.CAA = 'IV') then


begin
label1.caption := 'Combinação Frequente';
label9.caption := 'Combinação 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('Faça as verificações 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 não é 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 botão 1 do form 5 foi ativado}
xs1, {posição da LN na seção 1}
xs2, {posição da LN na seção 2}
xs3, {posição da LN na seção 3}
xs4, {posição da LN na seção 4}
xs5, {posição da LN na seção 5}
ft1, {força de tração na seção 1}
ft2, {força de tração na seção 2}
ft3, {força de tração na seção 3}
ft4, {força de tração na seção 4}
ft5, {força de tração na seção 5}
As1, {Área de aço na seção 1}
As2, {Área de aço na seção 2}
As3, {Área de aço na seção 3}
As4, {Área de aço na seção 4}
As5, {Área de aço na seção 5}
sigma1, {tensão na fibra superior para o cálculo do isolamento de cabos S1}
sigma2, {tensão na fibra superior para o cálculo do isolamento de cabos S2}
sigma3, {tensão na fibra superior para o cálculo do isolamento de cabos S3}
sigma4, {tensão na fibra superior para o cálculo do isolamento de cabos S4}
sigma5, {tensão na fibra superior para o cálculo do isolamento de cabos S5}
nn, {número de cabos descontando os isolados}
Apn, {área de aço 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 não isolados em string} : string;

implementation

uses Formulario, Formulario2, Formulario4;

{$R *.dfm}

procedure TFAPESP5.RadioButton1Click(Sender: TObject);


begin
rb:=1;
{zerando os valores de tensão limitada}
edit6.Text:='';
edit7.Text:='';
edit8.Text:='';
edit9.Text:='';
edit10.Text:='';
edit11.Text:='';
edit12.Text:='';
edit13.Text:='';
edit14.Text:='';
edit15.Text:='';

{Valores de tensão 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;

{Seção 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;

{Seção 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;

{Seção 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;

{Seção 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;

{seção 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 tensão 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 tensão 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; {Norma estabelece que a tensão no cabo seja de 25 KN/cm2}
As4:=ft4/25;
As5:=ft5/25;

perdasups1:=formulario2.perdasups1;
perdasups2:=formulario2.perdasups2;
perdasups3:=formulario2.perdasups3;
perdasups4:=formulario2.perdasups4;
n:=formulario.n;
elinha:=formulario.elinha;
Aaco:=formulario.Aaco;
Ac:=formulario.Ac;
W:=formulario.W;
lzinf:=formulario2.lzinf;

{Seção 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);

{Seção 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);

{Seção 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);

{Seção 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);

{seção 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"))

;MÓDULO 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" "Seção transversal retangular")
(command ".ucs" "M" (list 0 800))
(command ".text" "s" "standard" "TC" (list (/ b 2) -5) "0" "Seção transversal retangular")
(command ".ucs" "M" (list 0 -800))
(command ".layer" "S" "Viga" "")

; Criando seção 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" "Seção
transversal composta")
(command ".ucs" "M" (list 0 800))
(command ".text" "s" "standard" "TC" (list (/ b 2) (- 0 (+ (* 3 (+ hlaje capa))h) 5)) "0" "Seção
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 seção 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 número de camadas
assimétricas
(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 simétricas. si é
o número de barras da última camada
(if (= (rem m (+ n 1)) 0) ; caso com todas as camadas com o máximo de barras possível
(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 não 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 espaçamento para este caso. É diferente para
deixar o arranjo simétrico
(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 assimétrica
(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 simétrico
(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 número 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 traça 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 número 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 espaçamento 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 traça 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 número 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))
)
)
)

;MÓDULO 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 "Elevação")
(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))

; Criação da tabela de aço


(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" "Função")
(command ".text" "s" "standard" "MC" p3 "0" "Quantidade")
(command ".text" "s" "standard" "MC" p4 "0" "Diâmetro (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 aço")
(command ".text" "s" "standard" "MC" p8 "0" tpaco)
(command ".text" "s" "standard" "MC" p9 "0" "Tensão inicial de protensão (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" "Armação")
(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 concluído com sucesso")
196

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

10.7 ANEXO G – ARQUIVO PARA DETALHAMENTO

Arquivo para detalhamento


===============================================

Tipo de aço=>CP - 190RB


largura da alma, bw=>30.0
altura, h=>90.0
cobrimento, c=>3.5
Diâmetro do estribo=>0.63
Diâmetro da cordoalha=>1.27
Diâmetro do máximo agregado=>1.9
Diâmetro do porta estribo=>0.63
Número de cordoalhas de armadura positiva=>10
Número de cordoalhas de armadura negativa=>0
Armadura passiva=>2.86
Diâmetro da armadura de pele=>1
Número de barras=>8
Posição da LN, x=>4.3
altura útil, d=>83.9
capa=>5.0
altura da laje=>15.0
largura da mesa, bf=>225.0
vão=>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 mínima em KN/m, qmin =>0,00


carga acidental máxima em KN/m, qmax =>21,60
t0 em dias =>75
gama q =>1,4
Coeficiente de combinação frequente =>0,6
Coeficiente de combinação quase permanente =>0,4

*Características gerais da viga

vão em m =>9,75
largura da seção em cm, bw =>30
altura da seção em cm, h =>90
altura útil em cm, d =>83,9
menor distância 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 protensão em m, L =>100
fck do concreto em MPa =>40
fcj do concreto em MPa =>25
fck da capa em MPa =>30
Módulo de elasticidade do aço em MPa, E =>200000
Tipo de aço (CP - 175RN, CP - 175RB, CP - 190RN ou CP - 190RB) =>CP - 190RB
Diâmetro da cordoalha (9,5mm, 12,7mm ou 15,2mm) =>12,7mm
Diâmetro 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
tensão inicial no aço em KN/cm2, sigma pi =>145,30
Perdas inicias estimadas em % =>2,5
Perdas finais estimadas em % =>20

*Valores para o cálculo do coeficiente de fluência

Perímetro em contato com o ar da seção 1 em cm, Uar 1 =>210


Perímetro em contato com o ar da seção 2 em cm, Uar 2 =>225
Umidade relativa do ar em % =>70
Temperatura média em ºC =>20
Slump do concreto em cm =>9
Tipo de cimento da seção 1 (CPI, CPII, CPIII, CPIV ou CPV-ARI =>CPV-ARI
Tipo de cimento da seção 2 (CPI, CPII, CPIII, CPIV ou CPV-ARI =>CPII
tempo final considerado em dias =>10000

*Coeficientes de fluência e deformação

Ø1 =>3,304
Ø2 =>2,225
Ø3 =>2,559
Ø4 =>2,033
Ø5 =>1,825
Øacidental =>1,690
Deformação do concreto =>-0,000260344195434771
198

*Dados de saída

Armadura positiva mínima em cm2 =>8,09


Armadura positiva máxima em cm2 =>15,60
Armadura positiva em cm2 =>9,86
Número de cordoalhas =>10
Armadura negativa em cm2 =>1,972
Número de cordoalhas =>2
máxima altura útil possível em cm =>84,3
Perda no bordo inferior em % =>23,03
Perda no bordo superior em % =>14,69

Você também pode gostar