Procedimentos para cálculo e verificação de seções

Transcrição

Procedimentos para cálculo e verificação de seções
UNIVERSIDADE FEDERAL DE SÃO CARLOS
CENTRO DE CIÊNCIAS EXATAS E DE TECNOLOGIA
DEPARTAMENTO DE ENGENHARIA CIVIL
Procedimentos para cálculo e verificação de seções transversais
de concreto protendido no estado limite último e de serviço para
flexão normal
José Filho de Sousa Cunha
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: Prof. Dr. Roberto Chust Carvalho
São Carlos
2012
RESUMO
Trata-se da elaboração de programa que faz o dimensionamento de seções
submetidas a protensão com aderência. O programa será composto por várias rotinas
elaboradas em linguagem object pascal. Até o presente momento foi desenvolvido
praticamente toda a parte teórica necessária para o desenvolvimento das rotinas que é o
objetivo principal deste trabalho. O programa será elaborado de forma que intuitivamente o
usuário possa fornecer os dados necessários de entrada e também consiga interpretar de
maneira rápida e sucinta os dados de saída.
Palavras-chave: Protensão, aderência, rotinas.
ABSTRACT
ABSTRACT
It drafting program that makes the design of sections subjected to prestressing with grip. The
program will consist of several routines compiled object Pascal language. At this writing was
developed almost everywhere theoretical developments necessary for the routines which is
the main objective of this work. The program is designed so that the user can intuitively
provide the necessary data input and also can play quickly and succinctly output data.
Key-words: Prestressing, adherence, routines.
LISTA DE ILUSTRAÇÕES
Figura 1: Seção "T" dividida em duas seções retangulares ...................................................... 32
Figura 2: Seção com geometria qualquer e armadura Ap ......................................................... 33
Figura 3: Seção da figura dividida em tiras e pedaço da tira transformada em retângulo ........ 33
Figura 4: Posições de linha neutra para a seção dada ............................................................... 33
Figura 5: Tela principal do programa ....................................................................................... 37
Figura 6: Interface para cálculo no ELU seção retangular ....................................................... 38
Figura 7: Verificação no ELS no tempo infinito ...................................................................... 40
Figura 8: Seção geometrica e propriedades - laje alveolar ....................................................... 41
Figura 9: Interface para cálculo no ELU seção genérica .......................................................... 41
Figura 10: Interface características da seção ............................................................................ 43
LISTA DE TABELAS
Tabela 1: Coeficientes das ações diretas separadamente.......................................................... 19
Tabela 2 : Ações variáveis consideradas separadamente ......................................................... 19
Tabela 3: Combinações de serviço para ELS. .......................................................................... 21
Tabela 4: Valores dos coeficientes de combinação e de redução para cargas variáveis .......... 22
Tabela 5: Exigências dos níveis de protensão segundo a NBR 6118:2003 .............................. 23
Tabela 6 : Características físicas e mecânicas de fios e cordoalhas produzidos pela
ArcelorMittal. ................................................................................................................... 25
Tabela 7: Tensão no aço sd (MPa) .......................................................................................... 30
.
SUMÁRIO
1.
2.
CAPÍTULO ........................................................................................................................ 8
1.1
Introdução ................................................................................................................. 8
1.2
Objetivo ..................................................................................................................... 8
1.3
Justificativa ............................................................................................................... 9
1.4
Metodologia ............................................................................................................. 10
1.5
Apresentação do Trabalho..................................................................................... 10
CAPÍTULO ...................................................................................................................... 12
2.1
3.
Revisão Bibliográfica.............................................................................................. 12
CAPÍTULO ...................................................................................................................... 16
3.1
Conceitos e fundamentos do concreto protendido ............................................... 16
3.2
Vantagens e desvantagens do concreto protendido ............................................. 17
3.2.1 Vantagens ............................................................................................................. 17
3.2.2 Desvantagens ........................................................................................................ 17
3.3
Estados limite Último (ELU) ................................................................................. 18
3.3.1 Combinações últimas............................................................................................ 18
3.4
Estados limites de Serviço (ELS)........................................................................... 20
3.4.1 Combinações de serviço ....................................................................................... 20
4.
3.5
Tipos de protensão .................................................................................................. 22
3.6
Aços de protensão ................................................................................................... 24
3.7
Valores limites para operação da protensão ........................................................ 25
CAPÍTULO ...................................................................................................................... 27
4.1
Cálculo e verificação do Estado Limite Ultimo (ELU) ........................................ 27
4.2
Seção retangular ..................................................................................................... 28
4.2.1 Fundamentos teóricos ........................................................................................... 28
4.3
Seção Tê ................................................................................................................... 31
4.3.1 Fundamentos teóricos ........................................................................................... 31
4.4
Seção genérica ......................................................................................................... 32
4.4.1 Fundamentos teóricos ........................................................................................... 32
5.
C APÍTULO ..................................................................................................................... 36
5.1
Apresentação da tela principal do programa....................................................... 36
5.2
Seção retangular ..................................................................................................... 37
5.2.1 Verificação no tempo zero .................................................................................... 39
5.2.2 Verificação no tempo infinito ............................................................................... 39
6.
5.3
Seção genérica ......................................................................................................... 40
5.4
Características da seção ......................................................................................... 42
CAPÍTULO ...................................................................................................................... 44
6.1
Considerações finais ............................................................................................... 44
7.
REFERÊNCIAS .............................................................................................................. 45
8.
BIBLIOGRAFIA ............................................................................................................. 46
9.
ANEXO ............................................................................................................................ 47
9.1
Formulário - Tela Principal ................................................................................... 47
9.2
Formulário - Estado Limite Ultimo (ELU) .......................................................... 47
9.3
Formulário - Característica da seção ................................................................... 54
9.4
Formulário seção genérica ..................................................................................... 57
8
1.
1.1
CAPÍTULO
INTRODUÇÃO
O sistema de protensão iniciou-se pelo engenheiro norte americano P.A. Jackson no
ano de 1872. Mas foi Eugene Freyssinet que desenvolveu e aplicou as propriedades da
protensão de maneira significativa, construindo seis pontes de concreto protendido sobre o
rio Marne (Ponte de Luzancy) logo após o final da segunda guerra mundial.
O surgimento da protensão no concreto tinha objetivo eliminar as tensões de tração
que pudesse ocorrer em diversas situações de combinações das ações. Atualmente o
concreto protendido permite tensão de tração, dentro de certos limites, que são definidos em
função da durabilidade da peça estrutural. Desta forma têm-se as recomendações
normativas (NBR6118: 2007) que devem ser atendidos de acordo com o tipo de protensão
utilizada e dos fatores como a classe de agressividade e o tipo de construção.
O trabalho apresenta métodos de procedimento para cálculo e verificação nas
seções transversais de elementos submetidos à flexão, bem como, a conceituação dos
sistemas de protensão e o desenvolvimento de exemplos práticos. Opta-se por calcular a
armadura longitudinal no estado limite último e verifica-la no estado limite de serviço,
seguindo sempre as normas vigentes. Para melhor entendimento dos conceitos e
organização das informações, fez-se uma revisão bibliográfica considerando os principais
autores que já abordaram o assunto.
1.2
OBJETIVO
Este trabalho tem como objetivo o desenvolvimento de uma rotina em linguagem
object pascal, programada em Delphi, que auxilie no cálculo de armaduras longitudinais em
seções submetidas à flexão normal. A rotina será elaborada com base em teorias de cálculo
e recomendações normativas inerentes a elementos protendidos já abordados em obras por
autores. Pretende-se que a rotina retorne como resultados os seguintes itens:

Área de armadura ativa;
9

Momento resistente no estado limite último;

Verificação do estado limite de serviço no tempo zero e no tempo infinito;

Características no estádio I e II;

Momento de fissuração.
Com base na interpretação dos resultados de saída da rotina o usuário conseguirá
dimensionar a seção de forma a atender tanto os estado limite último quanto ao de serviços,
que são as condições imposta pela norma para o dimensionamento de seções submetido à
protensão.
1.3
JUSTIFICATIVA
O dimensionamento de seções protendidas consiste em um processo interativo
demandando trabalho repetitivo que quando usado com simplificações pode gerar
imprecisões de cálculo. Desta forma o desenvolvimento de uma ferramenta que contenha
procedimentos precisos pode otimizar o tempo despendido em projeto bem como a precisão
dos resultados.
Por outro lado as verificações no estado limite de serviço e último são relativamente
complexas, pois além das considerações feitas com teoria de concreto armado requerem o
conhecimento do esforço de protensão em tempos distintos (tempo zero- introdução da
protenção- e tempo infinito). Portanto uma rotina que realize o cálculo da área de armadura
e ao mesmo tempo em que faz as verificações das tensões limites e de grande importância
no auxílio de projeto em concreto protendido.
E ainda um projeto diferenciado, visto que, atualmente não se encontra no mercado
nenhum tipo de software que faz o cálculo da armadura necessária e a verificação das
tensões limites impostas na NBR 6118:2007.
Portanto o desenvolvimento desta rotina se justifica em razão de propiciar aos
projetistas de concreto protendido resultados mais precisos no cálculo de seções, redução
do tempo gasto nas verificações das seções e finalmente por integrar o cálculo da área de
aço necessária com a verificação das tensões limites, conforme a norma 6118:2003, nas
seções de elementos protendidos.
10
1.4
METODOLOGIA
Este trabalho trata-se de uma pesquisa aplicada monodiciplinar, que para se atingir
os objetivos será adotada a seguinte metodologia:
1. Revisão bibliográfica: procurará reunir informações, em diversas obras
relacionadas sobre o assunto inclusive na norma 6118:2007, para o entendimento das
teorias envolvidas no dimensionamento de seções de elementos submetidos a protensão;
2.
Apresentação
dos
procedimentos
de
cálculos:
serão
apresentados
os
procedimentos de cálculos, elaborados por autores referenciados e de acordo com as
recomendações normativas, que deverá ser programado no desenvolvimento da rotina. Os
procedimentos de cálculos deverão comtemplar: o cálculo da armadura no estado limite
último no tempo infinito; na verificação da seção, com armadura dada no estado limite
último, no tempo infinito no domínio 2 e 3; na verificação de seção, com armadura dada no
estado limite último, no tempo zero domínio 2 e 3 e no cálculo e verificações de durabilidade
considerando a protensão limitada e completa;
3. Desenvolvimento da rotina computacional: elaboração da rotina em linguagem
object pascal, programadas em Delphi, que realize os cálculos de acordo com
procedimentos de cálculos explanados no item anterior. Ainda a rotina deverá fornecer o
cálculo das propriedades geométricas no estádio I e II (sem fissuração e com o elemento
fissurado) e o momento de fissuração. Com estas informações o usuário poderá alimentar
outros programas que verificam a flecha;
4. Apresentação das telas do programa e resolução de exemplos: pretende-se que
as telas de inserção de dados da rotina assim como os de saídas sejam autoexplicativas.
Porém, como estratégia metodológica entende-se necessário o calculo de exemplos
apresentando ilustrações das telas facilitando a compreensão.
1.5
APRESENTAÇÃO DO TRABALHO
O trabalho será apresentado em sete capítulos de maneira que cada capítulo
abordará os temas inerentes.
O capítulo 1 é composto pela introdução, objetivos, justificativas e a metodologia
adotada.
No capítulo 2 consiste na revisão bibliográfica feita, que relaciona as principais obras
sobre o assunto.
11
No capítulo 3 são apresentados as conceituações gerais, definindo cada tipo de
protensão e indicando como são analisados os estados limites de cálculo, juntamente com
as combinações de ações e os fatores que nelas interferem.
No capítulo 4 são abordados os fundamentos teóricos para as seções retangulares,
Te e genérica. Para cada uma das seções é abordado equacionamento para a
determinação da armadura longitudinal.
Apresentados os temas referentes ao Estado Limite Último (ELU), onde descrevem
as fases que ocorre na seção até o colapso, as hipótese de cálculo, o dimensionamento e
equacionamento para a determinação das armaduras longitudinais nas seções retangulares
e na forma de “T”. Também aborda os temas referentes ao Estado Limite de Serviço (ELS).
Por fim terá os procedimentos de cálculos usados na programação.
No capítulo 5 além da apresentação das telas do programa também tem a resolução
de exemplo pratico para seção retangular e seção genérica. O exemplo contempla o
dimensionamento da área de aço (ELU) bem e verificações no tempo zero e infinito. Na
verificação no tempo zero é evidenciada, em função do não atendimento a tração e a
intensidade, a opção de inserir armadura ativa ou armadura passiva na parte superior.
Por fim no capítulo 6 terá as Considerações finais e as sugestões para trabalhos
futuros e a finalizando do trabalho listando as referências bibliográficas utilizadas.
Nos anexos serão apresentados os algoritmos usados no desenvolvimento do
programa, sendo divididos de acordo com os formulários gerados.
12
2.
2.1
CAPÍTULO
REVISÃO BIBLIOGRÁFICA
Historicamente a primeira prática do uso da protensão ocorreu no ano de 1872
quando o engenheiro americano P.A. Jackson, desenvolveu um sistema que consistia em
passar hastes de ferro através de blocos e apertá-los com porcas. Até o início do século XX
a técnica de protenção era essencialmente empírica, visto que, eram desconhecidos os
efeitos de retração e a fluência do concreto, responsáveis pelas perdas de protensão. Esses
efeitos causadores de perdas na protensão só foram comprovados no início do século XX,
através dos estudos e ensaios realizados por Koenem e Morsch. Contudo, o uso de aço de
baixa resistência, ainda resultava em perdas insatisfatórias no concreto protendido, quando
considerado as perdas lentas (Schimid, 2008).
Para Carvalho (2010), as primeiras tentativas de protensão esbarraram sempre na
impossibilidade de se garantir tensões de compressão permanentes no concreto. Os efeitos
de retração e da deformação lenta do concreto – estudada pro Koenem e Morsch –
acabavam por anular o efeito do estiramento prévio (esforço de compressão dada pelo aço)
da armadura. Somente com os ensaios feitos por Eugene Freyssinet é que foi possível
entender que seria necessário o uso de aços que permitissem grandes deformações de
estiramento, mesmo que perdessem esse estiramento em função da retração e fluência do
concreto, ao longo do tempo, parte do estiramento ainda sim transfeririam esforços de
compressão ao concreto, ou seja, seria necessário o uso de aço de alta resistência.
A difusão do concreto protendido segundo Schimid (2008) só veio ocorrer no final da
década de 40 quando a escassez de aço, provocado pela II Guerra Mundial, abriu caminho
para a protensão em virtude de que com protensão permitissem a construção de maior
número de estruturas comparadas com o aço comum (concreto armado). Faleiros Junior
(2010) evidencia-se que Eugene Freyssinet, construiu seis pontes de concreto protendido
sobre o rio Marne (Pont de Luzancy), que venciam 55 metros de vão, logo após o término da
segunda Guerra Mundial.
13
No Brasil a primeira obra em concreto protendido, 1948 no Rio Janeiro projetada
também por Freyssinet, foi à construção da ponte do galeão com 380 m de comprimento –
considerada a maior da época, nesta obra foram empregados aço de 12 fios com diâmetro
de cinco milímetros.
Sintetizando os conceitos do concreto protendido utilizados, França (2004) diz que
inicialmente o uso da protensão procurava-se eliminar totalmente as tensões normais de
tração com a (protensão completa). Atualmente, existe a tendência em utilizar a protensão
parcial onde, em situações de combinações extremas de ações, permite-se a fissuração da
peça como ocorre no concreto armado. Desta forma tem-se, hoje, a unificação do concreto
armado com concreto protendido constituindo o concreto estrutural.
O uso do sistema protendido oferece algumas vantagens, comparado com o
concreto armado. Em Faleiros Junior (2010), traz algumas vantagens oferecidas pelo
sistema de protensão. Já na obra de França (2004) além das vantagens também cita
algumas desvantagens do sistema protendido.
Para Carvalho (2010), o princípio do concreto protendido é primeiramente diminuir a
fissuração do concreto, através da introdução de tensões normais de compressão em
regiões, onde devido a outras ações, existem tensões de tração. Desta forma o concreto
protendido deve ser projetado quando submetido a diversas combinações de ações, as
tensões sejam apenas de compressão ou de pequena intensidade de tração. Ou ainda
conforme o lema “onde houver tração que se leve a compressão ou a protensão”.
Também em Carvalho (2010), faz se uma síntese dos aspectos a serem observados
na elaboração de um projeto em concreto protendido. Primeiramente o engenheiro projetista
deve está atento para uma série de informações que servirão como parâmetro de projeto. O
primeiro parâmetro é a classe de agressividade ambiental (CAA) que é definido na NBR
6118:2007 segundo as condições de exposição total ou parcial da estrutura. Definido a CAA
são então estabelecidos os parâmetros de valores máximos da relação A/C (água/cimento),
do valor mínimo da resistência característica do concreto e do mínimo cobrimento
necessário às armaduras. Com a classe de agressividade o projetista deve escolher o tipo
de protensão a ser usada (pré ou pós-tração) e qual a intensidade de protensão (protensão
parcial, limitada ou completa). Com todas essas informações a Norma recomenda qual o
tipo de verificação que deverá ser feito e qual a combinações de ações devem ser
consideradas.
Em Mandarás (1993), faz comparações de entre vigas de concreto armado e
concreto protendido concluindo que armaduras de concreto armado (CA-50 e CA-60),
quando usados em no concreto protendido, causam perdas inevitáveis que praticamente
14
anulam o efeito da protensão. Faz também o cálculo de seções submetidas a flexão. Para
isso, o autor faz um pré-dimensionamento considerando todos os esforços solicitantes da
estrutura e ressalva que quando a diferença do peso próprio for superior a 5% refaz todos
os procedimentos de cálculo considerando o novo carregamento do próprio da estrutura.
Posteriormente há determinação dos esforços o autor dimensiona uma viga, de ferrovia com
protensão completa, partindo do principio do calculo no estado limite de utilização e por
ultimo faz-se a verificação no estado limite último. O autor ainda sugere que quando o
estado limite ultimo não for atendido então poderia adotar as seguintes providencias: 1Adicionar armadura suplementar (passiva), como colaborante na seção resistente; 2- Adotar
para o concreto, uma maior resistência característica a compressão (fck); 3- Acrescentar
armadura de protensão a armadura inicial e por fim, 4- Modificar a geometria da seção
transversal.
Em Vasconcelos (1980), faz o dimensionamento de seções retangulares de concreto
protendido, seguindo o mesmo roteiro usado em concreto armado. Inicialmente faz o
dimensionamento no estado limite último e posteriormente, apenas para constatar a
durabilidade da estrutura, mediante as prescrições normativas, é que se faz a verificação no
estado limite de serviço. Esta sistemática de cálculo só foi possível devido aos resultados,
da tensão na armadura, obtidos de ensaio realizados pelo fabricante de aço.
França (2004) desenvolve uma sistemática de calculo diferenciado. O autor
desenvolve um método interativo de cálculo partindo do princípio do dimensionamento da
seção no (ELU). Para isto inicialmente e adota um valor para a relação (x/d) que resulta na
determinação da linha neutra. Posteriormente consegue-se determinar a deformações
especificas no concreto e por compatibilidade consegue-se também a do aço. Com base
nas deformações específicas pode se então determinar as tensões tanto na armadura
passiva como na armadura ativo, caso haja a simultaneidade das duas na seção.
Encontrada as tensões, determinam-se as forças resultantes no concreto e no aço e com
esta calcula se os esforços resistentes da seção. O processo é refeito, com uma nova
relação (x/d), caso o valor encontrado esforços resistente da seção seja inferior ao esforço
solicitante, isso interativamente ate o processo convergir. Caso o esforço solicitante seja
menor que o esforço resistente da seção então se pode determinar a área de aço de
armadura ativa e passiva na seção.
Seguindo o desenvolvimento deste trabalho esta revisão será gradativamente
complementada a medida que for desenvolvida os procedimentos para o cálculo e
verificação de seções protendidas. Cabe ressaltar ainda que este trabalho comtempla o
dimensionamento e a verificação de seções protendidas, processo esse ainda, não
executado nem pelos programas comercias existentes.
15
16
3.
3.1
CAPÍTULO
CONCEITOS E FUNDAMENTOS DO CONCRETO PROTENDIDO
A diferença entre o concreto armado e o concreto protendido está no tipo de
armadura utilizada. No concreto armado a armadura e do tipo passiva, ou seja, só resiste
quando mobilizada pela deformação imposta pelo concreto, a partir do momento que o
concreto adquire resistência e que é retirado seu escoramento. Já no concreto protendido a
armadura é do tipo ativa, neste caso, a armadura já está submetida a uma tensão
independentemente do concreto. Para isso é necessário que a armadura seja pré-tracionada
ou distendida de forma a transferir os esforços de compressão na estrutura de concreto.
Tanto as estruturas de concreto armado como as de concreto protendido são abordados
pela mesma norma (NBR 6118:2007) a qual trata as particularidades de cada sistema
quando necessário, principalmente no que se refere ao sistema construtivo, ao tipo de aço e
as verificações necessárias. A NBR 6118:2007 define o concreto protendido como:
“Aquele na qual parte da armadura é 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 melhor aproveitamento de aços de
alta resistência no estado limite ultimo (ELU)”.
Devido a fase de operação da protenção, que pode ocorrer antes ou depois do
lançamento do concreto, o concreto protendido é classificado em dois grandes grupos. O
primeiro é o concreto protendido com armadura aderente, que é subdividido em aderência
inicial (pré-tração) e aderência posterior (pós-tração). A segunda classificação refere-se ao
concreto protendido com armadura sem aderência. No texto da NBR 6118:2007 traz-se o
conceito para cada situação:
Aderência inicial (pré-tração): “Concreto protendido em que o pré-alongamento da
armadura ativa é feito utilizando-se apoios independentes do elemento estrutural, antes do
lançamento do concreto, sendo a ligação da armadura de protensão com os referidos apoios
desfeita após o endurecimento do concreto; a ancoragem no concreto realiza-se por
aderência”.
17
Aderência posterior (pós-tração): “Concreto protendido em que o pré-alongamento da
armadura ativa é realizado após o endurecimento do concreto, sendo utilizadas, como
apoios, partes do próprio elemento estrutural, criando posteriormente aderência com o
concreto de modo permanente, através da injeção de natas nas bainhas”.
Sem aderência (pós-tração): “Concreto protendido em que o pré-alongamento da
armadura ativa é realizado após o endurecimento do concreto, sendo utilizados, como
apoios, partes do próprio elemento estrutural, mas não sendo criada aderência com o
concreto, ficando a armadura ligada ao concreto apenas em pontos localizados”.
3.2
VANTAGENS E DESVANTAGENS DO CONCRETO PROTENDIDO
3.2.1
VANTAGENS

Reduz as tensões de tração provocadas pela flexão e pelos esforços cortantes;

Reduz a incidência de fissuras: Com a protensão é possível melhorar a capacidade
de utilização da peca estrutural e controlar de modo mais eficiente a fissuração,
podendo, em alguns casos, até eliminá-la;

A seção de concreto comprimida tende a uma maior resistência aos alongamentos
gerados pela flexão, provocando menores tensões de fissuração;

O controle das fissuras está diretamente relacionado com a durabilidade das
estruturas, pois aumenta a protensão da armadura contra corrosão, bem como a
estanqueidade do concreto;

Reduz as quantidades necessárias de concreto e de aço, devido ao emprego
eficiente de matérias de maior resistência;

Permite vencer vãos maiores que o concreto armado convencional, reduzindo a
armadura necessária na viga;

3.2.2

Diminuição da flecha;
DESVANTAGENS
Corrosão do aço de protensão. Como nos aços de concreto armado as armaduras
de protensão também sofrem com a corrosão eletrolítica. No entanto nas armaduras
de protendidas apresenta outro tipo de corrosão – denominada de corrosão
sobtensão (stress-corrosion) – fragilizando a seção da armadura, além de propiciar a
ruptura frágil. Por esse motivo a armadura protendida deve ser muito bem protegida;
18

Perdas de protensão. São todas as perdas verificadas nos esforços aplicados nos
cabos de protensão. As perdas são classificadas em perdas imediatas (perda por
atrito, ancoragem e encurtamento elástico do concreto) e perdas ao longo do tempo
(perdas por retração e fluência do concreto e relaxação do aço).

Qualidade da injeção de nata nas bainhas e da capa engraxada nas cordoalhas
engraxadas;

Forças altas nas ancoragens;

Controle de execução mais rigoroso;

Cuidados especiais em estruturas hiperestáticas.
3.3
ESTADOS LIMITE ÚLTIMO (ELU)
Corresponde ao esgotamento da capacidade de resistência estrutural, ou seja, a
partir desse ponto a estrutura entra em colapso.
3.3.1
COMBINAÇÕES ÚLTIMAS
As combinações no ELU são feitas majorando as ações permanentes que provocam
efeitos desfavoráveis e minoram-se as ações que provoca efeitos favoráveis a segurança da
estrutura. Os coeficientes de ponderação e apresentado na NBR 8681:2003, a qual faz se a
analise dos coeficientes separadamente e também em conjunto. A Tabela 1 mostra os
coeficientes para as ações permanentes, analise separadamente, em função do tipo de
combinação.
19
Tabela 1: Coeficientes das ações diretas separadamente.
Fonte: NBR 8681:2003.
Para as ações variadas também se tem o mesmo raciocínio da permanente, ou seja,
a análise pode ser considerando as ações separadamente ou em conjunto, na Tabela 2
apresenta os coeficientes de ponderação considerando a atuação separadamente para as
ações variáveis.
Tabela 2 : Ações variáveis consideradas separadamente
Fonte: Item 5.1.4.2 da NBR8681: 2003.
20
3.4
ESTADOS LIMITES DE SERVIÇO (ELS)
O ELS está relacionado ao desempenho mínimo que o empreendimento, no seu
total, deve apresentar quando submetidos a condições de uso. Portanto, deve-se garantir a
durabilidade da estrutura, aparência, conforto do usuário e a boa utilização funcional. A
norma NBR 6118: 2007 definem vários estados limites a fim de garantir a durabilidade e as
especificações nos projetos.

Estado limite de abertura de fissuras (ELS-W): Estado em que as fissuras
apresentam com aberturas iguais aos máximos especificados. O cálculo é feito
considerando as tensões nas barras da armadura de tração no estádio II (concreto
fissurado à tração e comportamento elástico linear dos materiais). A verificação deve
ser feita para cada grupo de elementos de armaduras passivas e ativa,
desconsiderando neste ultimo caso a protensão sem aderência.

Estado limite de formação de fissuras (ELS-F): Estado em que se inicia a
formação de fissuras. Admite-se que este estado limite é atingido quando a tensão
de tração transversal for igual a:
√

(3.1)
Estado limite de descompressão (ELS-D): Estado na qual em um ou mais pontos
da seção transversal à tensão normal é nula, não havendo tração no restante da
seção. Verificação comum no concreto protendido.
3.4.1
COMBINAÇÕES DE SERVIÇO
O tipo de combinações de serviço e apresentado abaixo e faz referência a
probabilidade das ações atuar durante a vida útil da estrutura.
Abaixo, Tabela 3, apresenta-se o quadro descritivo com as combinações no Estado
Limite de Serviço (ELS) a serem consideradas.
21
Tabela 3: Combinações de serviço para ELS.
COMBINAÇÕES
DE SERVIÇO
DESCRIÇÃO
Nas
QUASE
PERMANENTE
CÁLCULO DAS SOLICITAÇÕES
combinações
quase
permanentes de serviço, todas
as
ações
variáveis
∑
são
∑
consideradas com seus valores
quase permanentes ᴪ2Fqk.
Nas combinações frequentes
de serviço, a ação variável
principal Fq1 é tomada com
FREQUENTES
seu valor frequente ᴪ1Fq1k e
todas
as
demais
ações
∑
∑
variáveis são tomadas com
seus
valores
quase
permanentes ᴪ2Fqk.
Nas
combinações
serviço,
a
ação
raras
de
variável
principal Fq1 é tomada com
RARAS
seu valor característico Fq1k e
∑
∑
todas as demais ações são
tomadas
com
seus valores
frequentes ᴪ1Fqk.
ᴪ1 é o fator de redução de combinações frequente para ELS
ᴪ2 é o fator de redução de combinações quase permanente para ELS
Estes coeficientes estão na NBR 8681:2003.
Fonte: NBR 6118:2003.
Os coeficientes de ponderação estão na NBR 8681:2003 e apresentado na Tabela 4.
22
Tabela 4: Valores dos coeficientes de combinação e de redução para cargas variáveis
Fonte: NBR 8681:2003.
3.5
TIPOS DE PROTENSÃO
A protensão pode ocorrer em três diferentes níveis de intensidade da força, que são
definidos na NBR 6118:2007 em protensão completa, limitada e protensão parcial. A
escolha adequada de nível de protensão irá depender de critérios pré-estabelecidos
levando-se em conta o tipo de construção e a classe de agressividade do meio ambiente.
Vale ressaltar que em função da intensidade de protensão a área de aço calculada
será diferente, sendo que na protensão completa consumirá mais aço que na protensão
parcial, pois esta permite tensões de tração. Pode se concluir que quanto maior a
agressividade ambiental e por consequente maior risco de corrosão da armadura, maior
será a necessidade de protensão, pois desta forma reduz ou elimina-se a formação de
fissuras no concreto e, portanto o risco de corrosão na armadura. Acrescenta-se ainda, que
na NBR 71979, as estruturas de pontes ferroviárias ou vigas de pontes rolantes, só eram
admitidas protensão com aderência e o concreto protendido sem aderência só era admitido
23
em casos especiais e sempre com protensão completa. Na nova norma (NBR 6118:2007) o
texto não traz nenhuma consideração quanto a protensão sem aderência.
Em Carvalho (2010), faz se uma síntese dos aspectos a serem levados em
consideração na elaboração de um projeto em concreto protendido. Primeiramente o
engenheiro projetista deve está atento para uma série de informações que servirão como
parâmetro de projeto. O primeiro parâmetro é a classe de agressividade ambiental (CAA)
que é definido na NBR 6118:2007 segundo as condições de exposição total ou parcial da
estrutura. Definido a CAA são então estabelecidos os parâmetros de valores máximos da
relação A/C (água/cimento), do valor mínimo da resistência característica do concreto e do
mínimo cobrimento necessário às armaduras. Com a classe de agressividade o projetista
deve escolher o tipo de protensão a ser usada (pré ou pós-tração) e qual a intensidade de
protensão (protensão parcial, limitada ou completa). Com todas essas informações a Norma
recomenda qual o tipo de verificação que deverá ser feito e qual a combinações de ações
devem ser consideradas. Abaixo na Tabela 5 apresenta resumidamente as recomendações
normativas (NBR 6118: 2003) a serem adotados na elaboração de um projeto de concreto
protendido.
Tabela 5: Exigências dos níveis de protensão segundo a NBR 6118:2003
TIPOS
DE AGRESSIVIDADE
PROTENSÃO
AMBIENTE
COMBINAÇÕES
EXIGÊNCIA
DE
AÇÕES
A
CONSIDERAR
Pré-tração CAA I
ELS-W ≤ 0,2 mm
Frequente
Pré-tração CAA II
ELS-F
Frequente
Pós-tração CAA III e IV
ELS-D
Quase permanente
ELS-F
Rara
ELS-D
Frequente
Protensão parcial
Pós-tração CAA I e II
Protensão limitada
Protensão completa
Pré-tração CAA III e IV
Fonte: NBR 6118:2003
Em função do nível de protensão, mostrados acima, e então definido o estado limite
de serviço que a peça deverá atender.
24
3.6
AÇOS DE PROTENSÃO
Os aços de protensão são caracterizados por terem altas resistências, pela ausência
de um patamar de escoamento e são identificados pela sigla CP (concreto protendido)
seguido do valor, em kgf/mm², da tensão de ruptura e também pelas siglas RN ou RB que
indica se o aço é de relaxação normal ou baixa. Exemplos de aços de protensão produzido
no Brasil são: CP145RB, CP150RB, CP170RN, CP175RB, CP175RN e CP190RB. Estes
aços de protensão fabricados são fornecidos em barras, fios e cordoalhas.

Barras de aço: liga de alta resistência, laminadas a quente, com diâmetro superior a
12 mm Fornecidos em segmentos retos de comprimento normalmente compreendido
entre 10 e 12 m;

Fios: com diâmetro em geral não maior que 12 mm, fornecidos em rolos ou bobinas.
A trefilação produz o encruamento do aço, aumento sua resistência, desta forma
obtém-se resistências mais elevadas para fios de menor diâmetro;

Cordoalhas: Formados por fios enrolados em forma de hélice. As mais comuns são
constituídas de três e sete fios;

Cordoalhas engraxadas e plastificadas: Cordoalhas com características idênticas a
cordoalhas convencionais, porém possui em sua superfície uma camada de graxa
que e revestida por um plástico (polietileno de alta densidade- PEDAD). Este plástico
permite o movimento livre da cordoalha em seu interior;

Cordoalhas especiais para estruturas estaiadas: Produzidas com três camadas
protetoras contra a corrosão: Galvanização dos fios a quente antes do
encordoamento e da estabilização; filme de cera de petróleo e são encapadas com
plásticos resistentes a raio ultravioleta.
A diferenciação dos aços de relaxação normal (RN) e o de baixa relaxação (RB) se
dá no tratamento dado no alívio de tensões internas devido ao processo de produção dos
fios por trefilação - tratamento térmico a qual os fios são passados em chumbo derretido
entre, 250 a 500 0C, resultando na melhora da linearidade do diagrama Tensão x
Deformação. Nos aços de tipo RB, além do tratamento inicial também faz se um
alongamento de aproximadamente 1%, isso faz com que aços de RB apresentem melhores
características elásticas e menores perdas de tensão por relaxação comparada aos aços do
tipo RN. Os aços de tipo RB são os mais utilizados, devido principalmente, a constância da
produção.
25
Atualmente no Brasil existe apenas um fabricante de aço especial para o concreto
protendido que produz os mesmo fios e cordoalhas que eram produzidos na década de 60.
Até 1974 no Brasil só eram produzidos os do tipo RN
Abaixo Tabela 6 apresenta a tabela disponibilizada pelo fabricante, com as
características e propriedades mecânicas de fios e cordoalhas.
Tabela 6 : Características físicas e mecânicas de fios e cordoalhas produzidos pela
ArcelorMittal.
Fonte:
https://www.belgo.com.br/produtos/construcao_civil/fios_cordoalhas/pdf/fios_cordoalhas.pdf
3.7
VALORES LIMITES PARA OPERAÇÃO DA PROTENSÃO
As forças de protensão são obtidas utilizando-se armaduras de alta resistência
(armaduras ativas). Para a execução da protensão a NBR 6118:2007, estabelece valores
26
que limitam a tensão inicial no aço e que varia de acordo com o tipo de aço (RN ou RB) e da
tipologia do sistema empregado (pós ou pré-tração).
Para as armaduras pré-tracionadas deve-se adotar o menor valor da tensão inicial
(σpi) entre:
{
(3.2)
{
(3.3)
Para as armaduras pós-tracionadas deve-se adotar o menor valor da tensão inicial
(σpi) entre:
{
(3.4)
{
(3.5)
Onde:
.
Estes limites devem ser atendidos para evitar problemas como “boca de jacaré” que
surgem quando a resistência do concreto não e suficiente para garantir a completa
ancoragem da armadura.
27
4.
4.1
CAPÍTULO
CÁLCULO E VERIFICAÇÃO DO ESTADO LIMITE ULTIMO (ELU)
Diferente do concreto armado em que o dimensionamento das seções ocorre no
Estado Limite Ultimo (ELU) e depois se faz a verificação no Estado Limite de Serviço (ELS),
no concreto protendido o dimensionamento não implica necessariamente na mesma ordem,
ou seja, pode-se dimensionar inicialmente no ELS e depois verificar no ELU sendo também
o contrário correto. O que a norma NBR 6118:2003 define e que ambos os estados (ELU e
ELS) sejam verificados no dimensionamento da seção. Neste trabalho o dimensionamento
ocorrerá a partir do ELU e posteriormente verificação das tensões no ELS.
Para o dimensionamento de peças protendidas no ELU as hipóteses de cálculo
segue as mesma para o concreto armado que estão descritas no item 17.2 da NBR
6118:2003. Resumidamente tem se seguir as hipóteses:
a) Em peças isostáticas deve-se considerar, além das solicitações que a peça teria
se não fosse protendida, o efeito das ancoragens, mudanças de direção dos cabos de
protensão e os valores destas considerados com suas perdas;
b) Nas estruturas hiperestáticas além das solicitações citadas anteriormente os
efeitos hiperestáticos de protensão;
c) As seções transversais resistentes são compostas pelas seções de concreto, da
armadura de protensão e de eventual armadura passiva existente e não é necessário
reduzir, no cálculo dos esforços normais, a área dos furos correspondentes às bainhas dos
cabos de protensão, se esta área não ultrapassa 2% da área da seção transversal
geométrica da peça;
d) As resistências de cálculo no escoamento e na ruptura da armadura são dadas
por fpyd= fpyk/1,15 e fptd= fptk/1,15, respectivamente.
28
4.2
4.2.1
SEÇÃO RETANGULAR
FUNDAMENTOS TEÓRICOS
O dimensionamento da seção retangular em protendido utiliza o diagrama parábolaretângulo e considera o domínio 2 subdividido de 2a e 2b. O sub-domínio 2a corresponde à
deformação do concreto até -2‰ e o sub-domínio 2b indo de -2‰ ao limite de -3,5‰.
Os domínios de deformações podem ser caracterizados pelo coeficiente KX, que
determina a altura da linha neutra, pela relação abaixo:
Kx 
 cd
x

 cd   sd d
(4.1)
 cd é a deformação específica de cálculo do concreto,  sd é a deformação
específica de cálculo do aço, x a altura da linha neutra e d a altura útil de concreto.
Em
Santos
(1983),
apresenta-se
as
equações
constitutivas
do
concreto
correspondentes ao diagrama parábola-retângulo. Kx lim é o parâmetro que define o limite
do domínio 3 e 4.

Sub-domínio 2a:
0  Kx  1
6
5k x2 (3  8k x )
d 
3(1  k x ) 2
kz 

12  9k x (4  k x )
4(3  8k x )
(4.2)
(4.3)
(4.4)
Sub-domínio 2b:
1  Kx  3,5
6
13,5
(4.5)
16k x  1
15
(4.6)
d 
 171k x2  342k x  21
kz 
20(16k x  1)

Domínio 3:
(4.7)
29
3,5
 Kx  Kx lim
13,5
d 
17k x
21
kz  1

99k x
238
(4.8)
(4.9)
(4.10)
Domínio 4:
Kx  Kx lim
d 
17k x
21
kz  1
99k x
238
(4.11)
(4.12)
(4.13)
O momento resistido pela seção pode ser considerado como a resultante de
compressão no concreto multiplicada pelo braço de alavanca, ou seja:
M  Rcc z
(4.14)
Rcc   d  cd bw d
(4.15)
z  kz d
(4.16)
Das equações 4.15 e 4.16 em 4.14 tem-se:
M  Rcc z   d . cd .bw .d .k z .d   d .k z . cd .bw .d 2
(4.17)
M
  d .k z
 cd .bw .d 2
(4.18)
Assim, dos valores de k x limites expressos por meio da equação 4.18 aplicados às
equações dos parâmetros adimensionais  d e k z , tem que:

Sub-domínio 2a: 0  d k z  0,1041667

Sub-domínio 2b: 0,1041667  d k z  0,1872428

Domínio 3: 0,1872428  d k z  d ,lim k z ,lim

Domínio 4:  d k z   d ,lim k z ,lim
30
em que  d ,lim 
17
99
k x ,lim e k z ,lim  1 
k x ,lim
21
238
Desta forma, conhecidos o valor de
M
, pode-se determinar qual domínio de
 cd .bw .d 2
deformação se encontra a seção, por meio da comparação com as inequações
apresentadas acima. E ainda, por um processo numérico, determinar o k x , já que  d e k z
são expressos em função dele.
Obtendo-se o valor de k x , obtêm-se as deformações no aço e no concreto. Se
domínio 2 (a ou b) tem-se  cd 
kx
1  kx
0.010 e  sd  0.010 se domínio 3,  sd 
0.0035
1  kx
kx
e  cd  0.0035 .
Uma vez determinado o valor da deformação  sd , busca-se o valor de  p , que é a
deformação de protensão obtida em função da tensão no tempo infinito. A referida tensão é
aquela aplicada nas cordoalhas descontadas as perdas ao longo do tempo. A deformação
total do aço é obtida pela seguinte soma:
 t   sd   p
(4.19)
Com o valor de  t , utiliza-se Tabela 7 para encontrar por interpolação o valor da
tensão utilizada para determinação da armadura da seção,  sd . Conhecido o valor do k z ,
calcula-se a armadura:
Tabela 7: Tensão no aço sd (MPa)
(%o) 5,25
CP175 1025
CP190 1025
(%o) 20,00
CP175 1407
CP190 1527
Ap 
6,794 7,438 8,167 9,000 9,962 10,00 12,50 15,00 17,5
1264 1316 1344 1365 1368 1368 1378 1388 1397
1314 1411 1459 1482 1486 1486 1496 1507 1517
22,50
1416
1538
Md
K z  d   sd
25,00
1426
15,48
27,5
1436
1559
30,00
1445
1569
32,50
1455
1579
35,00
1464
1590
37,50
14,74
1600
40,00
1484
1611
(4.20)
Quando da protenção, a única ação existente no elemento protendido é o peso
próprio. Isso pode implicar em tração nas fibras superiores das peças que, se inferiores a
31
1,2 fct,m , podem ser admitidas desde que se coloque armadura passiva. No estado limite
último no ato da protensão, as tensões de compressão nas fibras inferiores não podem
superar o limite de 0,7 fckj, sendo o fckj a resistência prevista do concreto na data da
aplicação da protensão.
No caso da existência de tração com valor superior ao limite de 1,2 fct,m , pode-se
utilizar cabos na face superior para reduzir a tração ao limite ou a zero. No caso de redução
da tração para um valor admissível e diferente de zero, pode-se considerar os cabos de
protensão como parte ou totalidade da quantidade de armadura passiva necessária, já que
as tensões nos cabos são baixas.
4.3
4.3.1
SEÇÃO TÊ
FUNDAMENTOS TEÓRICOS
Para as seções de formato T, utilizou-se do diagrama bloco-retangular para a
programação, pois julgou-se desnecessário a busca por um rigor que seria facilmente
mascarado pelas imprecisões na determinação da largura de mesa colaborante, de forma
que o cálculo em vez de mais preciso, se tornaria apenas mais trabalhoso.
Analogamente ao explicado para as seções retangulares tem-se:
M d  Fc  z
(4.21)
Fc  0,85  f cd   b w   0,8  x 
(4.22)
z  d  0,4  x
(4.23)


M d  0,68  x  d  0,272  x 2  b w  f cd
(4.24)
2
Dividindo-se ambos os membros da equação 4.24 por bw  d  f cd tem-se:


Md
0,68  x  d  0,272  x 2  bw  f cd 
x
x2 




0
,
68


0
,
272


bw  d 2  f cd
bw  d 2  f cd
d
d 2 

(4.25)
Fazendo:
Md
= KMD
bw  d 2  f cd
e
x
 KX
d
a equação 4.25 torna-se:
(4.26)
(4.27)
32
KMD  0,68  (KX)  0,272  (KX) 2
(4.28)
Deste modo, pode-se encontrar o valor de KX resolvendo-se a equação de segundo
grau acima.
Nas seções de formato T, duas possibilidades devem ser consideradas:
funcionamento como seção retangular ou como seção T, propriamente dito. A análise da
posição da linha neutra, passando na mesa ou na alma, mostrará qual seção deve ser
considerada nos cálculos.
Nas situações em que a linha neutra passa pela alma da seção, o cálculo se dá em
duas etapas, como mostra a Figura 1 a seguir:

calcula-se inicialmente o momento resistido pelas abas;

o momento restante é absorvido pela nervura (alma).
Figura 1: Seção "T" dividida em duas seções retangulares
Fonte: Carvalho e Figueiredo (2007)
Obtido o valor de KX, pode-se encontrar a deformação no aço e de forma análoga ao
apresentado para seções retangulares, calcular a armadura necessária.
As considerações sobre a verificação no ato da protensão são iguais as
apresentadas nos fundamentos teóricos das seções retangulares.
4.4
4.4.1
SEÇÃO GENÉRICA
FUNDAMENTOS TEÓRICOS
O dimensionamento da armadura longitudinal de uma seção qualquer consiste em
um processo interativo, a qual variando a posição da linha neutra ao longo da seção calculase o momento resistente (Mu) e caso este seja maior ou igual ao momento de calculo (Md),
tem-se a solução da posição da linha neutra. Conhecida a linha neutra e a força resultante
de compressão determina a área de aço (Ap).
O cálculo de armadura Ap de uma seção qualquer pode ser feita por iterações. O
procedimento é feito fazendo a divisão da seção transversal em elementos com pequenos
33
valores de altura que serão chamadas de tiras. Um exemplo de seção deste tipo é dado na
Figura 2 e sua discretização é indicada na Figura 3.
Figura 2: Seção com geometria qualquer e armadura Ap
Ap
No passo posterior os trechos são transformados em retângulos.
Figura 3: Seção da figura dividida em tiras e pedaço da tira transformada em retângulo
Depois disto é possível considerar diversas posições de linha neutra como as
indicadas na Figura 4.
Figura 4: Posições de linha neutra para a seção dada
34
Para cada posição de linha neutra x calcula para cada tira (retângulo) comprimido o
valor de deformação do concreto  c, m no seu ponto médio (de altura) e através deste calcula
 c correspondente e a força Fci correspondente desta tira (equação 4.29).
Fci  bw,i  hi   ci
(4.29)
O valor  c e obtido de forma condicional. Para isto inicialmente fixa-se o valor de
 si  0,01 calcula-se  ci , (Equação 4.30). Caso o valor de  ci  0,002 calcula-se  ci
(Equação 4.32), caso  ci  0,002 a tensão  ci é calculada conforme a (Equação 4.35). Até
o presente a seção trabalha no domínio 2a ou 2b. Caso  ci  0,0035 tem se a seção no
domínio 3 e neste caso fixa  ci  0,002 e calcula-se  si  0,01 (Equação 4.37) a tensão no
concreto mantem constante. Por ultimo pode se ter  si   s ,lim ,  s ,lim e calculado conforme
(Equação 4.42), corresponde a seção no domínio 4. Abaixo tem as deformações e tensões
no concreto para cada domínio.

Domínio 2a:
 ci  
s  x
(x  d )
 0   c  0,002
(4.30)
 s  0,01
(4.31)
2
 
 cm  
 ci  0,85  f cd  1  1 
 
  0,002  
(4.32)

Domino 2b:
 ci  
s  x
(x  d )
 0,002   c  0,0035
(4.33)
 s  0,01
(4.34)
 ci  0,85  f cd
(4.35)

Domino 3:
 c  0,0035
 si 
 c  ( d  x)
x
(4.36)
 0,01   s   s ,lim
(4.37)
35
 ci  0,85  f cd

(4.38)
Domínio 4:
 c  0,0035
 si 
(4.39)
 c  (d  x)
x
  s   s ,lim
 ci  0,85  f cd
(4.40)
(4.41)
Sedo  s ,lim dado por:
 s ,lim 
 c  (1 
x
lim)
d
x
lim
d
(4.42)
A distância do centro desta tira até o cg da armadura é conhecida e chamada de zi.
Assim, já é possível calcular a parcela de momento resistente devido esta tira.
M R  Fci  zi
(4.43)
Depois disto, basta repetir a operação para todos os retângulos comprimidos que se
obterá a resultante de força de compressão e o momento resistido dado pelas equações
(4.31 e 4.32) respectivamente.
Fc 
F
i 1..n
MR 
M
i 1..n
(4.44)
ci
Ri
(4.45)
Estes correspondem a uma posição de linha x. Para cada posição de linha neutra
existirá um valor de Fc e um valor de momento resistido de MR. Caso M R  M d a linha
neutra em questão é solução do problema e o valor da armadura é dada pela equação
abaixo.
AP 
Fc
 pd
(4.46)
36
5.
5.1
C APÍTULO
APRESENTAÇÃO DA TELA PRINCIPAL DO PROGRAMA
O programa, produto deste trabalho, tem como objetivo o cálculo da armadura
longitudinal em seções de concreto protendido, com forma retangular, Te e seção genérica,
submetidas à flexão normal. Para atingir o objetivo, adotou-se o procedimento de cálculo
agrupando os assuntos nos tópicos apresentados logo abaixo:

Área de armadura ativa;

Momento resistente no estado limite último;

Verificação do estado limite de serviço no tempo zero e no tempo infinito;

Características no estádio I e II;

Momento de fissuração.
Portanto, para cada tipo de seção os procedimentos de cálculos abordam os
assuntos dos tópicos acima. Diante disto a apresentação inicial do programa ocorre como
mostra a Figura 5, onde tem se os ícones “botões” que faz a ligação com outras janelas
(interfaces).
37
Figura 5: Tela principal do programa
Fonte: Do autor (2012)
Há consideração de implementar novas seções ou comandos, o que possivelmente
pode ser feito editando o formulário que representa a interface desejada. Isto permite um
fluxo continuo de melhorias no programa.
5.2
SEÇÃO RETANGULAR
Quando o usuário ao clicar com o botão do mouse no ícone ELU correspondente a
seção retangular tem se a janela ilustrada na Figura 6.
Nela são inseridos os dados
necessários para o cálculo e posteriormente ao se clicar no ícone “calcular” a rotina retorna
como resultados: o momento de cálculo, o momento resistente da seção, domínio
considerando x
necessária.
d lim
Com
como o limite entre o domínio 3 e 4 e finalmente o valor da área de aço
a
análise
destes
valores
o
projetista
consegue
rapidamente
dimensionamento a seção.
A fim de exemplificar melhor o funcionamento do programa, Figura 6: Interface para
cálculo no ELUFigura 6, faz-se a resolução do seguinte problema. Qual a armadura
necessária para uma seção com base bw= 0,70m altura útil dt= 1,45m resistência
característica do concreto fck= 30 MPa aço CP190 e tensão σinfito= 1000MPa considerando
o carregamento permanente de 3540 kN. m e acidental de 2798kN.m?
38
Figura 6: Interface para cálculo no ELU seção retangular
Dados de Saída
Dados de entrada
Verificação tempo
Zero e infinito
Fonte: Do autor (2012).
Considerando a perda inicial de 5% e total de 26%, a área de aço calculada foi de
54cm², sendo a altura mínima de 1,36m a qual esta próxima da altura adotado no inicio do
cálculo de 1,45m. Com isso conclui-se que a seção esta dimensionada considerando melhor
situação que e o domínio 3.
Depois de feita a análise dos resultados faz-se então a verificação no ELS. Esta
ocorre em dois momentos distintos. A primeiro, verificação no tempo zero, faz consideração
ao momento posterior a ação da protensão, sendo considerado apenas o carregamento
devido ao peso próprio e as perdas imediatas. Já a segunda, verificação no tempo infinito,
refere-se ao momento em todos os carregamentos estejam efetivamente agindo sobre a
seção considerando também todas as perdas (perdas imediatas mais as perdas diferidas).
Neste trabalho as perdas, imediatas e diferidas, são valores que o usuário deverá
fornecer podendo ser implementado em outro momento uma rotina que faz este cálculo.
Isto resultaria em um programa preciso que através do método de calculo interativo,
resultaria valores precisos.
39
5.2.1
VERIFICAÇÃO NO TEMPO ZERO
A verificação no tempo zero corresponde ao momento em que seção esta submetida
apenas aos esforços do peso próprio. Neste caso, quando da protensão o concreto com a
resistência fictícia deverá ter resistência tal que não cause compressão excessiva
(esmagamento do concreto) ou esforços de tração na peça. Caso tenha-se esforço de
tração e esta esteja dentro do limite, pode-se como medida de controle fazer o calculo de
armadura passiva para combater o surgimento da fissura. Caso tensão de tração seja
superior como medida de controle pose-se alterar a dimensões da seção ou ainda pode
considerar o efeito de um cabo de protensão na parte superior eliminando assim a tração.
No exemplo as tensões que sugiram na seção foram inferiores a tensão limite
estando, portanto a seção verificada em vazio.
5.2.2
VERIFICAÇÃO NO TEMPO INFINITO
A norma estabelece quais os estados limites devem ser atendidos levando em
consideração a classe de agressividade ambiental (CAA) e o sistema de protensão (pós ou
pré- tração). Com a entrada destes dados o programa retorna de forma resumida quais as
verificações e consequente combinação deve ser atendida. No exemplo, Figura 7, o
programa verificou a o ELS-F (Estado Limite de Formação de Fissura) com a combinação
frequente e o ELS-D (Estado Limite de descompressão) para a combinação quase
permanente.
Com a análise dos resultados conclui-se que para o ELS-F as tensões surgidas
então dentro dos limites assim como para o ELS-D. Na parte inferior esquerda da tela do
programa apresenta a informação fornecida pelo programa que confere o status da seção.
No caso do exemplo a seção está verificada e atende ao ELS no tempo infinito e no tempo
zero, assim como no ELU.
40
Figura 7: Verificação no ELS no tempo infinito
Análise dos resultados
Dados de entrada
Fonte: Do autor (2012).
Para a seção Te, a apresentação do programa e similar ao da seção retangular,
portando não será feita apresentação das telas do programa. Também a forma de entrada
dos dados ocorre como o da seção retangular inicialmente informa a geometria da seção e
as propriedades mecânicas e física do concreto e aço resultando na área de aço e
posteriormente faz a verificações no tempo zero e posteriormente no tempo infinito.
5.3
SEÇÃO GENÉRICA
Para o calculo da armadura longitudinal de uma seção genérica, o usuário deverá
informar a quantidade de retângulos a qual discretiza a seção. Cabe ressaltar que quanto
maior a quantidade de retângulos maior será a precisão do cálculo. Apesar de se fazer o
calculo de seções genéricas, o programa também faz o cálculo de seções retangulares e Te,
bastando que sejam informados 1(um) ou 2 (dois) retângulos na entrada dos dados.
No processamento, a rotina faz a divisões de cada retângulo em novos retângulos
com altura não superior a 0,5 cm. Isso quer dizer que a linha neutra varia em torno de 0,5
cm. Com a linha neutra variando de 0,5 cm o procedimento de cálculo consiste na
41
determinação momento resistente para cada posição de linha neutra, sendo no instante em
que o momento resistente seja igual ou maior que o momento atuante tem se a solução.
Para melhor compreensão do programa faz-se o dimensionamento do seguinte
exemplo adaptado de Faleiros Junior.
Calcular a área de aço necessária para a laje alveolar com h=20cm simplesmente
apoiada com vão livre de 6m . Considera-se Fck=30MPa; CP190RB; Mg1=16,07;
Mg2=18,27; Mqmax=28,13. Abaixo Figura 8, tem-se a seção.
Figura 8: Seção geometrica e propriedades - laje alveolar
Fonte: Faleiros Junior.
Na Figura 9 tem a interface do programa com dados com dados inseridos e os
resultados.
Figura 9: Interface para cálculo no ELU seção genérica
Dados de entrada
RESULTADOS
= 0,035 m
42
Na parte superior tem se os dados de entrada e nos demais campos têm os dados
processados e os resultados. No centro tem se os dados referente a linha neutra na posição
0,035m:

Deformação média no concreto (Ec) - valor da deformação do concreto considerando
o centro de aplicação da força no centro de gravidade de cada uma das tiras,
retângulos;

Tensão no concreto (  ci ) – valores da tensão calculada de acordo o descrito no
fundamento teórico Cap4;

Força resistente de compressão ( Fci ) – obtida através da multiplicação de
 ci  Areai . O somatório de Fci será apresentado em F resultante na posição da
linha neutra igual a 0,035;

Momento resistente ( M Ri ) – obtido pela multiplicação de M R  Fci  z i . O somatório
de M Ri será o valor do momento resultante da seção e também a condição em que
quando maior que o momento atuante tem a solução da seção;

Fresult e Mresult – São os somatórios de Fci e M Ri para cada posição de linha
neutra. No exemplo para LN = 0,035 tem se Mr = 97,116 kN.m.
Os dados acima são meramente para analise do processamento interno do programa.
Por ultimo tem se os resultados esperados, sendo apresentado o domínio da seção o
momento de calculo resistente e resistente máximo (quando LN esta no limite entre os
domínios 3 e 4) a precisão do calculo a tensão no aço posição da linha neutra e a área de
aço necessária que no exemplo e de 3,44 cm².
5.4
CARACTERÍSTICAS DA SEÇÃO
O programa faz o cálculo das características de sacão retangular e em Tê,
considerando os estádios I, estádio I homogêneo e estádio II.
O estádio I compreende a seção no estado bruto, ou seja, é desconsiderada a
presença da área de aço na seção bem como o efeito da fissuração. Já no estádio I
homogêneo é considerado a área de aço na seção, resultando valores superiores ao do
estádio I. O estádio II faz a consideração do efeito da fissuração, ou seja, uma vez que a
seção esteja submetida esforço de momento superior ao momento resistente de fissuração,
a peça fissura. Para a consideração deste efeito é desconsiderada área de concreto a na
43
região tracionada (parte da seção fissurada) resultando em valores de área e inércia inferior
aos do estádio I.
Na Figura 10 é apresentada a interface do programa com os campos devidamente
preenchidos e resultados retornado pelo programa.
Figura 10: Interface características da seção
Fonte: Do autor (2012).
44
6.
6.1
CAPÍTULO
CONSIDERAÇÕES FINAIS
Mostrou-se que o dimensionamento de seções protendidas, principalmente seções
genéricas, e uma tarefa extremamente trabalhosa para ser realizada na mão, visto que que
são inúmeras as variáveis e também as condições que devem ser atendidas. Portanto a
utilização deste programa tem uma grande importância na precisão de resultados e também
na minimização de tempo na elaboração de projetos.
O programa oferece uma interface intuitiva facilitando o entendimento e entrada dos
dados necessários. Também adverte o usuário em situações que o calculo não e atendido
melhorando assim a compreensão da analise dos resultados.
Como sugestão para trabalhos futuros pode se feito o modulo para calcular as
perdas inicial e final e compara com os valores atribuídos nesta programa. Isso possibilitaria
o dimensionamento de uma seção com todos os dados previamente calculados.
45
7.
REFERÊNCIAS
CARVALHO, R. C. Estruturas em concreto protendido: cálculo e detalhamento. 2010. São
Paulo. Pini, 2012.
FALEIROS JUNIOR, J. H. Procedimentos de cálculos, verificação e detalhamento de
armaduras longitudinais na seção transversal em elementos protendidos. 2010. 179 F.
Dissertação (Mestrado) - Universidade Federal de São de Carlos, São Carlos.
FRANÇA, R. L. S., ISHITANI, H.; GRAZIANO, F. Concreto protendido: conceitos
fundamentais. São Paulo: USP/ Escola Politécnica/ Departamento de Engenharia de
Estruturas e Fundações, 2004. Revisão1.
INFORSATO, T. B. Consideração sobre o projeto cálculo e detalhamento de vigas préfabricadas protendidas com aderência inicial em pavimentações de edificações. 2009.
Dissertação (Mestrado) - Universidade Federal de São Carlos, São Carlos.
MADARÁS, E. Curso de concreto protendido. 1973 v.1. Departamento de Engenharia Civil/
Universidade Santa Cecília dos Bandeirantes. Santos.
SCHIMID, M. R. L. Um pouco da história do uso do aço no concreto protendido no Brasil e
no mundo. IBRACON- Aço na construção civil, Rio de Janeiro, p. 50-55, 2008.
VASCONCECELOS, A. C. Manual prático para a correta utilização dos aços no concreto
protendido em obediência as normas utilizadas. Belo Horizonte: Livros técnicos e científicos;
Companhia Siderúrgica Belgo- Mineira 1980.
46
8.
BIBLIOGRAFIA
COLLINS, M. P. Prestressed concrete structures. Ontario: Response, 1997.
KLEIN, R. Dimensionamento por computador de vigas simplesmente apoiada de concreto
protendido pós-tracionada. 2002. Dissertação (Mestrado) - Universidade Federal de Santa
Catarina, Florianópolis.
MELO, C. E. G. Manual munte de projetos pré-fabricados de concreto. São Paulo: Pini,
2004.
MELLO, A. L. V. Calculo de lajes lisas com protenção parcial e limitada. 2005. 128 p.
Dissertação (Mestrado) - Universidade Federal de São Carlos, São Carlos.
NAWY, E. G. Prestressed concrete. 2 Ed. New Jersey. 1995.
PRECAST CONCRETE INSTITUTE/ PRESTRESSED - PCI-2004: PCI design handbook
precast and prestressed concrete. 6. Ed. Chicago, 2004.
ROCHA, A. M. Novo curso prático de concreto armado e concreto protendido. 2. Ed. Rio de
Janeiro: Científica, 1972.
SANTOS, L. M. Calculo de concreto armado. Vol. 1. São Paulo, 1977.
VERRÍSSIMO, G. S.; CESÁR JR.; KLÉOS M. L. Concreto protendido- fundamentos básicos
e perdas de protenção. 4. Ed. Viçosa: Universidade Federal de Viçosa, 1998.
47
9.
9.1
ANEXO
FORMULÁRIO - TELA PRINCIPAL
unit Unit5;
interface
uses
Windows, Messages, SysUtils, Variants, Classes,
Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Buttons, ComCtrls;
type
TForm5 = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
BitBtn2: TBitBtn;
Panel3: TPanel;
Panel4: TPanel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Memo1: TMemo;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Image2: TImage;
Image3: TImage;
Button5: TButton;
Button6: TButton;
Panel5: TPanel;
StatusBar1: TStatusBar;
Timer1: TTimer;
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form5: TForm5;
implementation
uses UniCOP, Unit2, Unit3, Unit6, Unit8;
{$R *.dfm}
procedure TForm5.Button1Click(Sender: TObject);
begin
Application.CreateForm(TForm1, Form1);
Form1.ShowModal;
Form1.Free;
end;
procedure TForm5.Button3Click(Sender: TObject);
begin
Application.CreateForm(TForm2, Form2);
Form2.ShowModal;
Form2.Free;
end;
procedure TForm5.Button4Click(Sender: TObject);
begin
Application.CreateForm(TForm2, Form2);
Form2.ShowModal;
Form2.Free;
end;
procedure TForm5.Button5Click(Sender: TObject);
begin
Application.CreateForm(TForm8, Form8);
Form8.ShowModal;
Form8.Free;
end;
procedure TForm5.FormCreate(Sender: TObject);
begin
StatusBar1.Panels[1].Text:= 'HORA:
'+timetostr(time);
StatusBar1.Panels[2].Text:= 'DATA:
'+datetostr(date);
end;
procedure TForm5.Button2Click(Sender: TObject);
begin
Application.CreateForm(TForm6, Form6);
Form6.ShowModal;
Form6.Free;
end;
end.
9.2
FORMULÁRIO - ESTADO
LIMITE ULTIMO (ELU)
unit UniCOP;
interface
uses
Windows, Messages, SysUtils, Variants, Classes,
Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Buttons;
type
TForm1 = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
48
Label1: TLabel;
edtmg1: TEdit;
edtmqmax: TEdit;
ComboBox1: TComboBox;
edtbw: TEdit;
ComboBox2: TComboBox;
edth: TEdit;
edtdt: TEdit;
edtfck: TEdit;
edtpi: TEdit;
edtpt: TEdit;
edtmg2: TEdit;
edtmqmin: TEdit;
Panel3: TPanel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label7: TLabel;
Label8: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label9: TLabel;
Label24: TLabel;
Label28: TLabel;
Label29: TLabel;
Label31: TLabel;
Label33: TLabel;
Label21: TLabel;
Label22: TLabel;
Label23: TLabel;
Label25: TLabel;
BitBtn1: TBitBtn;
Label26: TLabel;
Label15: TLabel;
edtgamac: TEdit;
Label16: TLabel;
Label17: TLabel;
BitBtn2: TBitBtn;
ComboBox3: TComboBox;
ComboBox4: TComboBox;
ComboBox5: TComboBox;
ComboBox6: TComboBox;
edtsigmapmax: TEdit;
Label20: TLabel;
edtsigmapescolhido: TEdit;
Label27: TLabel;
Label30: TLabel;
Label32: TLabel;
Button1: TButton;
edtNOTA: TEdit;
Label18: TLabel;
edtEPSS: TEdit;
edtKX: TEdit;
edtKZ: TEdit;
edtsigmapd: TEdit;
edtet: TEdit;
edtasp: TEdit;
Label35: TLabel;
Label36: TLabel;
Label37: TLabel;
Label38: TLabel;
Label39: TLabel;
Label41: TLabel;
Label34: TLabel;
Label40: TLabel;
Label42: TLabel;
Label43: TLabel;
Label44: TLabel;
Label45: TLabel;
Label47: TLabel;
Label46: TLabel;
Button2: TButton;
Bevel5: TBevel;
Bevel6: TBevel;
GroupBox1: TGroupBox;
ComboBox7: TComboBox;
edtmpp: TEdit;
edtexc: TEdit;
Label48: TLabel;
Label49: TLabel;
Label50: TLabel;
Label51: TLabel;
Button5: TButton;
edtDMIN: TEdit;
Label52: TLabel;
Label53: TLabel;
edtfcj: TEdit;
Label54: TLabel;
Label55: TLabel;
edtNOTA2: TEdit;
edttenss: TEdit;
edttensi: TEdit;
Label56: TLabel;
Label57: TLabel;
Button4: TButton;
Label68: TLabel;
Label69: TLabel;
Label19: TLabel;
Label70: TLabel;
Label73: TLabel;
Label74: TLabel;
Label75: TLabel;
Label76: TLabel;
Label6: TLabel;
Label77: TLabel;
Label78: TLabel;
Label79: TLabel;
Label80: TLabel;
Label81: TLabel;
Label82: TLabel;
edtmdmax: TEdit;
Label71: TLabel;
Label83: TLabel;
edtmd: TEdit;
Label84: TLabel;
Label85: TLabel;
49
Label60: TLabel;
edtlims: TEdit;
edtlimi: TEdit;
Label58: TLabel;
Label59: TLabel;
Label61: TLabel;
Button3: TButton;
edtASlinha: TEdit;
Label62: TLabel;
Label63: TLabel;
Label64: TLabel;
ComboBox8: TComboBox;
edtdlinha: TEdit;
Label65: TLabel;
Label66: TLabel;
edtAplinha: TEdit;
Label67: TLabel;
Label72: TLabel;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure ComboBox1Change(Sender:
TObject);
procedure ComboBox4Change(Sender:
TObject);
procedure ComboBox5Change(Sender:
TObject);
procedure ComboBox6Change(Sender:
TObject);
procedure ComboBox2Change(Sender:
TObject);
procedure ComboBox3Change(Sender:
TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure ComboBox7Change(Sender:
TObject);
procedure Button5Click(Sender: TObject);
procedure ComboBox8Change(Sender:
TObject);
procedure Button4Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
sigmapmax,fptk,KXLIM,KX,KZ,DMIN,MDLIM,
MDLIMs,gamac:real;
bw,fck,h,dt,gamafg1,gamafg2,gamafq,sigmap:real;
MD,MDs,mg1, mg2, mqmax,mqmin, pi,pt,A:real;
Asp,et,exc,EPSC,EPSS, sigmap0, sigmapd,
sigmapi:real;
I,Wi,Ws,Wi2,Ws2,sigmapt0,Np,Npp,prot,
tenss,tensi,limi,lims,tensslinha,fcj:real;
AplinhaminC, AplinhaminT:real;
E:array[1..19]of real;
CP190:array[1..19]of real;
CP175:array[1..19]of real;
k:integer;
x,Rt,xi:real;
Aslinha, dtlinha, Aplinhamax,Aplinhamin:real;
function DuasDecimais(a:real):real;
function TresDecimais(b:real):real;
function QuatroDecimais(c:real):real;
implementation
uses Unit4, Unit2, Unit3;
{$R *.dfm}
function DuasDecimais(a:real):real;
begin
a:=a*100;
a:=round(a);
a:=a/100;
Result:=a;
end;
function TresDecimais(b:real):real;
begin
b:=b*1000;
b:=round(b);
b:=b/1000;
Result:=b;
end;
function QuatroDecimais(c:real):real;
begin
c:=c*10000;
c:=round(c);
c:=c/10000;
Result:=c;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
close;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
close;
end;
procedure TForm1.ComboBox1Change(Sender:
TObject);
begin
begin
if combobox1.Text= 'CP190' then
begin
fptk:= 1900;
combobox3.enabled:=true;
end;
end;
begin
if combobox1.Text= 'CP175' then
begin
combobox3.enabled:=true;
fptk:= 1750;
end;
end;
end;
procedure TForm1.ComboBox4Change(Sender:
TObject);
50
begin
if combobox4.text='1,3' then
gamafg1:=1.3
else if
combobox4.text='1,4' then
gamafg1:=1.4
else
gamafg1:=strtofloat(combobox4.text);
end;
procedure TForm1.ComboBox5Change(Sender:
TObject);
begin
if combobox5.text='1,5' then
gamafg2:=1.5
else if combobox5.text='1,3' then
gamafg2:=1.3
else if
combobox5.text='1,4' then
gamafg2:=1.4
else
gamafg2:=strtofloat(combobox5.text);
end;
procedure TForm1.ComboBox6Change(Sender:
TObject);
begin
if combobox6.text='1,5' then
gamafq:=1.5
else if combobox6.text='1,3' then
gamafq:=1.3
else if
combobox6.text='1,4' then
gamafq:=1.4
else
gamafq:=strtofloat(combobox6.text);
end;
procedure TForm1.ComboBox2Change(Sender:
TObject);
begin
begin
if combobox2.Text= '0,628' then
KXLIM:= 0.6283;
end;
begin
if combobox2.Text= '0,5' then
KXLIM:= 0.5;
end;
begin
if combobox2.Text= '0,4' then
KXLIM:= 0.4;
end;
end;
procedure TForm1.ComboBox3Change(Sender:
TObject);
begin
begin
if combobox3.Text= 'Pré-tração' then
begin
prot:=1;
if fptk=1900 then
sigmapmax:=1453.5 else
if fptk=1750 then
sigmapmax:= 1343
end;
end;
begin
if combobox3.Text= 'Pós-tração' then
begin
prot:=0;
if fptk=1900 then
sigmapmax:=1402.2 else
if fptk=1750 then
sigmapmax:= 1295
end;
end;
edtsigmapmax.text:= floattostr(sigmapmax);
end;
//////////////////////////////////////////////
procedure TForm1.Button1Click(Sender: TObject);
var NETA, NETALIM, N1, N2, N3, N4, ERRO,
ep: real;
i,j:integer;
begin
bw:=StrToFloat(edtbw.Text);
dt:=StrToFloat(edtdt.Text);
h:=StrToFloat(edth.Text);
mg1:=StrToFloat(edtmg1.Text);
mg2:=StrToFloat(edtmg2.Text);
mqmax:=StrToFloat(edtmqmax.Text);
mqmin:=StrToFloat(edtmqmin.Text);
fck:=StrToFloat(edtfck.Text);
gamac:=StrToFloat(edtgamac.Text);
pi:=strtofloat(edtpi.Text);
pt:=strtofloat(edtpt.text);
sigmapi:=strtofloat(edtsigmapescolhido.text);
A:=bw*h;
MD:=mg1*gamafg1+mg2*gamafg2+mqmax*gama
fq;
NETALIM:=(17/21)*KXLIM*(1(99/238)*KXLIM);
MDLIM:=NETALIM*0.85*fck*1000/gamac*bw*s
qr(dt);
DMIN:=sqrt(MD/(bw*NETALIM*0.85*fck*1000/
gamac));
DMIN:=DuasDecimais(DMIN);
edtDMIN.text:=floattostr(DMIN);
MDs:=duasdecimais(MD);
edtmd.Text:=floattostr(MDs);
MDLIMs:=duasdecimais(MDLIM);
edtmdmax.Text:=floattostr(MDLIMs);
panel3.Visible:=false;
edtmpp.Text:=' ';
edtexc.Text:=' ';
edtfcj.Text:=' ';
edtNOTA2.Text:=' ';
if MD>MDLIM then
BEGIN
edtNOTA.Text:='Domínio 4: aumente o d';
edtEPSS.text:=' ';
edtKX.Text:=' ';
edtsigmapd.Text:=' ';
51
edtKZ.Text:=' ';
edtet.Text:=' ';
edtAsp.Text:=' ';
end
else
Begin
NETA:=
MD/(0.85*fck*1000/gamac*bw*sqr(dt));
////////// Domínio 2a
if (0<=NETA) AND (NETA<=0.1041667) then
begin
edtNOTA.Text:='Sub-domínio 2a';
N1:=0;
N2:=1/6;
N4:=0;
ERRO:=NETA-N4;
while ERRO > 0.00001 do
begin
N3:= (N1+N2)/2;
N4:= ((5*sqr(N3)*(3-8*N3))/(3*sqr(1N3)))*((12-9*N3*(4-N3))/(4*(3-8*N3)));
if N4 < NETA then
N1:=N3 //N2 é mantido
else
N2:=N3;
//N1 é mantido
ERRO:=abs(NETA-N4);
end;
KZ:= (12-9*N3*(4-N3))/(4*(3-8*N3));
KX:=N3;
EPSS:=0.010;
EPSC:=KX*0.010/(1-KX);
end;
///////////// Domínio 2b
if (NETA>0.1041667) AND (NETA<0.1872428)
then
begin
edtNOTA.Text:='Sub-domínio 2b';
N1:=1/6;
N2:=3.5/13.5;
N4:=0;
ERRO:=NETA-N4;
while ERRO > 0.00001 do
begin
N3:= (N1+N2)/2;
N4:= ((16*N3-1)/15)*((342*N3-171*sqr(N3)21)/(20*(16*N3-1)));
if N4 < NETA then
N1:=N3 //N2 é mantido
else
N2:=N3;
//N1 é mantido
ERRO:=abs(NETA-N4);
end;
KZ:= (342*N3-171*sqr(N3)-21)/(20*(16*N31));
KX:=N3;
EPSS:=0.010;
EPSC:=KX*0.010/(1-KX);
end;
//////////////// Domínio 3
if (NETA>=0.1872428) AND
(NETA<=NETALIM) then
begin
edtNOTA.Text:='Domínio 3';
N1:=3.5/13.5;
N2:=KXLIM;
N4:=0;
ERRO:=NETA-N4;
while ERRO > 0.00001 do
begin
N3:= (N1+N2)/2;
N4:=(17/21)*N3*(1-(99/238)*N3);
if N4 < NETA then
N1:=N3 //N2 é mantido
else
N2:=N3;
//N1 é mantido
ERRO:=abs(NETA-N4);
end;
KZ:=(1-(99/238)*N3);
KX:=N3;
EPSC:=0.0035;
EPSS:=(1-KX)*EPSC/KX;
end;
E[1]:=5.250 ;E[2]:=6.794 ;E[3]:=7.438
;E[4]:=8.167 ;E[5]:=9 ;E[6]:=9.962 ;E[7]:=10
;E[8]:=12.5 ;
E[9]:=15 ;E[10]:=17.5 ;E[11]:=20
;E[12]:=22.5 ;E[13]:=25 ;E[14]:=27.5 ;E[15]:=30
;E[16]:=32.5 ;
E[17]:=35 ;E[18]:=37.5 ;E[19]:=40 ;
CP190[1]:= 1025 ; CP190[2]:= 1314
;CP190[3]:= 1411 ; CP190[4]:= 1459 ;CP190[5]:=
1482 ; CP190[6]:=1486 ;
CP190[7]:= 1486 ; CP190[8]:=1496
;CP190[9]:=1507 ; CP190[10]:=1517
;CP190[11]:= 1527 ; CP190[12]:=1538 ;
CP190[13]:=1548 ; CP190[14]:=1559
;CP190[15]:=1569 ; CP190[16]:= 1579
;CP190[17]:= 1590 ;CP190[18]:=1600 ;
CP190[19]:= 1611 ;
CP175[1]:=1025 ;CP175[2]:=1264 ;
CP175[3]:=1316 ;CP175[4]:=1344
;CP175[5]:=1365 ;CP175[6]:=1368 ;
CP175[7]:= 1368 ;CP175[8]:=1378
;CP175[9]:=1388 ;CP175[10]:=1397
;CP175[11]:=1407 ;CP175[12]:=1416 ;
CP175[13]:=1426 ;CP175[14]:=1436
;CP175[15]:=1445 ;CP175[16]:=1455
;CP175[17]:=1464 ;CP175[18]:=1474 ;
CP175[19]:=1484 ;
sigmap0:=sigmapi*(1-pt/100);
i:=1;
if fptk=1900 then
begin
while sigmap0 > CP190[i] do
i:=i+1;
j:=i-1;
if j<>0 then
begin
52
ep:= E[j] + (sigmap0-CP190[j])*(E[i]E[j])/(CP190[i]-CP190[j]);
et:=ep+EPSS*1000;
end
else
begin
ep:=sigmap0/200; //regime linear = sigmap0
< 1025
et:=ep+EPSS*1000;
end;
i:=1;
while et > E[i] do
i:=i+1;
j:=i-1;
if j<>0 then
sigmapd:= CP190[j] - (CP190[i]CP190[j])*(et-E[j])/(E[i]-E[j])
else
sigmapd:=200000*et/1000;
end;
i:=1;
if fptk=1750 then
begin
while sigmap0 > CP175[i] do
i:=i+1;
j:=i-1;
if j<>0 then
begin
ep:= E[j] + (sigmap0-CP175[j])*(E[i]E[j])/(CP175[i]-CP175[j]);
et:=ep+EPSS*1000;
end
else
begin
ep:=sigmap0/200; //regime linear = sigmap0
< 1025
et:=ep+EPSS*1000;
end;
i:=1;
while et > E[i] do
i:=i+1;
j:=i-1;
if j<>0 then
sigmapd:= CP175[j] - (CP175[i]CP175[j])*(et-E[j])/(E[i]-E[j])
else
sigmapd:=200000*et/1000;
end;
EPSS:=EPSS*1000;
EPSS:=TresDecimais(EPSS);
edtEPSS.text:=floattostr(EPSS);
et:=tresdecimais(et);
edtet.text:=floattostr(et);
Asp:=MD/(KZ*dt*sigmapd/10);
Asp:=DuasDecimais(Asp);
edtasp.text:=floattostr(Asp);
sigmapd:=duasdecimais(sigmapd);
edtsigmapd.text:=floattostr(sigmapd);
KZ:=tresdecimais(KZ);
edtKZ.Text:=FloatToStr(KZ);
KX:=tresdecimais(KX);
edtKX.Text:=FloatToStr(KX);
end;
end;
///////////////////////////////////////////////////////////////////////////
/////////
procedure TForm1.Button2Click(Sender: TObject);
begin
panel3.Visible:=true;
button5.enabled:=false;
label48.Enabled:=false;
label50.Enabled:=false;
label49.Enabled:=false;
label51.Enabled:=false;
edtmpp.Enabled:=false;
edtexc.Enabled:=false;
edttenss.Text:=' ';
edttensi.Text:=' ';
edtlimi.Text:=' ';
edtlims.Text:=' ';
edtNOTA2.Text:=' ';
end;
procedure TForm1.ComboBox7Change(Sender:
TObject);
begin
label48.Enabled:=true;
label50.Enabled:=true;
label49.Enabled:=true;
label51.Enabled:=true;
edtmpp.Enabled:=true;
edtexc.Enabled:=true;
button5.Enabled:=true;
if combobox7.Text= 'Meio do vão' then
begin
mg1:=strtofloat(edtmg1.Text);
edtmpp.Text:=floattostr(mg1);
exc:=dt-h/2;
edtexc.Text:=floattostr(exc);
edtmpp.ReadOnly:=true;
edtexc.ReadOnly:=true;
end;
if combobox7.Text= 'Outra seção (introduzir
dados)' then
begin
edtmpp.Text:=' ';
edtexc.Text:=' ';
edtmpp.ReadOnly:=false;
edtexc.ReadOnly:=false;
end;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
fcj:=strtofloat(edtfcj.Text);
mg1:=strtofloat(edtmpp.Text);
exc:=strtofloat(edtexc.text);
I:=(bw*h*sqr(h))/12;
Wi:= 2*I/h;
Ws:= Wi;
Wi2:= QUATRODECIMAIS(Wi);
Ws2:= QUATRODECIMAIS(Ws);
53
sigmapt0:=sigmapi*(1-pi/100); //tempo zero
Asp:=strtofloat(edtasp.Text);
Np:=Asp*0.1*sigmapt0; //asp em metros e sigma
em kN/m2
if prot=0 then
Npp:=Np*1.1 else
Npp:=Np;
// (+) compressão
// fibras superiores
tenss:= Npp/(bw*h)-Npp*exc/Ws + mg1/Ws;
tensi:= Npp/(bw*h)+Npp*exc/Wi - mg1/Wi;
limi:=0.7*fcj*1000;
lims:=(-1)*1.2*0.3*exp(2/3*ln(fcj))*1000;
tenss:= duasdecimais(tenss);
tensi:= duasdecimais(tensi);
limi:=duasdecimais(limi);
lims:=duasdecimais(lims);
edttenss.Text:=floattostr(tenss);
edttensi.Text:=floattostr(tensi);
edtlims.Text:=floattostr(lims);
edtlimi.Text:=floattostr(limi);
if tensi > limi then
begin
edtNOTA2.Text:='Compressão excessiva';
label62.Visible:=false;
label63.Visible:=false;
edtAslinha.Visible:=false;
label67.Visible:=false;
label72.Visible:=false;
edtAplinha.Visible:=false;
button3.Visible:=false;
label64.Visible:=false;
label65.Visible:=false;
label66.Visible:=false;
combobox8.Visible:=false;
edtdlinha.Visible:=false;
end
else
begin
if tenss > 0 then
begin
edtNOTA2.Text:='Não há tração nas fibras
superiores';
label62.Visible:=false;
label63.Visible:=false;
edtAslinha.Visible:=false;
label67.Visible:=false;
label72.Visible:=false;
edtAplinha.Visible:=false;
button3.Visible:=false;
label64.Visible:=false;
label65.Visible:=false;
label66.Visible:=false;
combobox8.Visible:=false;
edtdlinha.Visible:=false;
button4.Visible:=true;
end;
if (lims < tenss) and (tenss < 0) then
begin
edtNOTA2.Text:='Tensão de tração inferior
a 1,2fct,m';
x:=h*(sqrt(sqr(tenss)))/(sqrt(sqr(tenss))+
tensi);
Rt:=x*bw*(sqrt(sqr(tenss)))/2;
Aslinha:= Rt/(25/1.15); //250 MPa
Aslinha:=DUASDECIMAIS(Aslinha);
edtASlinha.Text:= floattostr(Aslinha);
label62.Visible:=true;
label63.Visible:=true;
edtAslinha.Visible:=true;
label67.Visible:=false;
label72.Visible:=false;
edtAplinha.Visible:=false;
button3.Visible:=false;
label64.Visible:=false;
label65.Visible:=false;
label66.Visible:=false;
combobox8.Visible:=false;
edtdlinha.Visible:=false;
button4.Visible:=true;
end;
if tenss < lims then
begin
edtNOTA2.Text:='Alterar seção ou colocar
cabos superiores';
label64.Visible:=true;
label65.Visible:=true;
label66.Visible:=true;
edtdlinha.Visible:=true;
combobox8.Visible:=true;
label62.Visible:=false;
label63.Visible:=false;
edtASlinha.Visible:=false;
label67.Visible:=false;
label72.Visible:=false;
edtAplinha.Visible:=false;
button3.Visible:=false;
end;
end;
end;
procedure TForm1.ComboBox8Change(Sender:
TObject);
begin
if combobox8.Text='Não Permitir Tração' then
begin
dtlinha:=strtofloat(edtdlinha.Text);
AplinhaminC:=(Npp*exc/Ws - Npp/(bw*h)mg1/Ws)/(sigmapt0*1000/(bw*h)+sigmapt0*1000/
Ws*(h/2-dtlinha));
Aplinhamin:=AplinhaminC*10000;
button3.Visible:=true;
end
else
begin
dtlinha:=strtofloat(edtdlinha.Text);
AplinhaminT:=(lims + Npp*exc/Ws Npp/(bw*h)mg1/Ws)/(sigmapt0*1000/(bw*h)+sigmapt0*1000/
Ws*(h/2-dtlinha));
54
Aplinhamin:=AplinhaminT*10000;
button3.Visible:=true;
end;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
Application.CreateForm(TForm2, Form2);
Form2.edtmg1.Text:=edtmg1.Text;
Form2.edtmg2.Text:=edtmg2.Text;
Form2.edtmqmax.Text:=edtmqmax.Text;
Form2.edtmqmin.Text:=edtmqmin.Text;
Form2.edtfck.Text:=edtfck.Text;
Form2.edtpt.Text:=edtpt.Text;
Form2.edtap.Text:=edtasp.Text;
Form2.edtexc.Text:=edtexc.Text;
Form2.edtwi.Text:=floattostr(Wi2);
Form2.edtws.Text:=floattostr(Ws2);
Form2.edtA.Text:=floattostr(A);
Form2.ComboBox3.Enabled:=true;
if tenss < lims then // => cabos
begin
Form2.edtAPLINHA.VISIBLE:=true;
Form2.edtAPLINHA.text:=edtAplinha.text;
Form2.Label35.visible:=true;
Form2.Label36.visible:=true;
Form2.Label37.visible:=true;
Form2.Label38.visible:=true;
Form2.edtexclinha.VISIBLE:=true;
end
else
begin
Form2.edtAPLINHA.VISIBLE:=false;
Form2.Label35.visible:=false;
Form2.Label36.visible:=false;
Form2.Label37.visible:=false;
Form2.Label38.visible:=false;
Form2.edtexclinha.VISIBLE:=false;
end;
Form2.ShowModal;
Form2.Free;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
if combobox8.Text= 'Permitir Tração' then
begin
tensi:= Npp/(bw*h) + Npp*exc/Wi - mg1/Wi +
Aplinhamin*sigmapt0*1000/(bw*h) Aplinhamin*sigmapt0*1000/Wi*(h/2-dtlinha);
x:=h*(sqrt(sqr(lims)))/(sqrt(sqr(lims))+ tensi);
Rt:=x*bw*(sqrt(sqr(lims)))/2;
Aslinha:= Rt/(25/1.15); //250 MPa
Aslinha:=DUASDECIMAIS(Aslinha);
Aslinha:= Aslinha - Aplinhamin;
Aplinhamin:=DUASDECIMAIS(Aplinhamin);
if Aslinha < 0 then
edtASlinha.Text:= '0' else
edtASlinha.Text:= floattostr(Aslinha);
edtAplinha.Text:=floattostr(Aplinhamin);
end
else
begin
edtASlinha.Text:= '0';
edtAplinha.Text:=floattostr(Aplinhamin);
end;
Label62.Visible:=true;
Label63.Visible:=true;
Label67.Visible:=true;
Label72.Visible:=true;
edtASlinha.Visible:=true;
edtAplinha.Visible:=true;
button4.Visible:=true;
end;
end.
9.3
FORMULÁRIO CARACTERÍSTICA DA SEÇÃO
unit Unit8;
interface
uses
Windows, Messages, SysUtils, Variants, Classes,
Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Buttons;
type
TForm8 = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
edtfck: TEdit;
edtes: TEdit;
edtAS: TEdit;
edth: TEdit;
edtbw: TEdit;
StaticText1: TStaticText;
edtd: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label6: TLabel;
Label7: TLabel;
Panel4: TPanel;
Panel5: TPanel;
edtdlinha: TEdit;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
edtA1: TEdit;
edtYS1: TEdit;
edtYI1: TEdit;
edtI1: TEdit;
edtA2: TEdit;
edtYS2: TEdit;
edtYI2: TEdit;
edtI2: TEdit;
edtA3: TEdit;
55
edtYS3: TEdit;
edtYI3: TEdit;
edtI3: TEdit;
Label16: TLabel;
edtASLINHA: TEdit;
Label5: TLabel;
ComboBox1: TComboBox;
edtmr: TEdit;
Label17: TLabel;
btnA: TButton;
btnYS: TButton;
btnYI: TButton;
btnI: TButton;
StaticText2: TStaticText;
BitBtn1: TBitBtn;
Button1: TButton;
ComboBox2: TComboBox;
Image1: TImage;
Image2: TImage;
edtbf: TEdit;
edthf: TEdit;
Label18: TLabel;
Label19: TLabel;
StaticText3: TStaticText;
Label12: TLabel;
edtgamac: TEdit;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Edit1: TEdit;
Label20: TLabel;
Label21: TLabel;
procedure ComboBox1Change(Sender:
TObject);
procedure Button1Click(Sender: TObject);
procedure btnAClick(Sender: TObject);
procedure ComboBox2Change(Sender:
TObject);
procedure btnYSClick(Sender: TObject);
procedure btnYIClick(Sender: TObject);
procedure btnIClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form8: TForm8;
fck,Ec,es,n,bw,h,Ast,Astlinha,Mr,bf,hf,d,
dlinha:real;
A1,A2,A3,I1,I2,I3,YS1,YS2,YS3,YI1,YI2,YI3:
real;
aux1, aux2:integer;
c1,c2,c3, fctm, alfa:real;
implementation
{$R *.dfm}
procedure TForm8.ComboBox1Change(Sender:
TObject);
begin
if combobox1.Text='Simples' then
begin
aux1:=1;
edtAS.Visible:=true;
Label7.Visible:=true;
Panel4.Visible:=false;
Panel5.Visible:=false;
edtASLINHA.visible:=false;
Label5.Visible:=false;
end;
if combobox1.Text='Dupla' then
begin
aux1:=2;
edtASLINHA.visible:=true;
Label5.Visible:=true;
edtAS.Visible:=true;
Label7.Visible:=true;
Panel4.Visible:=false;
Panel5.Visible:=false;
end;
btnA.enabled:=false;
btnYS.enabled:=false;
btnYI.enabled:=false;
btnI.enabled:=false;
end;
procedure TForm8.Button1Click(Sender: TObject);
begin
Panel4.Visible:=true;
Panel5.Visible:=true;
Tedit(edtA1).text:=' ';
Tedit(edtA2).text:=' ';
Tedit(edtA3).text:=' ';
Tedit(edtYS1).text:=' ';
Tedit(edtYS2).text:=' ';
Tedit(edtYS3).text:=' ';
Tedit(edtYI1).text:=' ';
Tedit(edtYI2).text:=' ';
Tedit(edtYI3).text:=' ';
Tedit(edtI1).text:=' ';
Tedit(edtI2).text:=' ';
Tedit(edtI3).text:=' ';
bw:=StrToFloat(edtbw.Text);
h:=StrToFloat(edth.Text);
if aux2=1 then
begin //seção retangular
bf:=bw;
hf:=0;
end;
if aux2=2 then //seção Tê
begin
bf:=StrToFloat(edtbf.Text);
hf:=StrToFloat(edthf.Text);
end;
if aux1=1 then
//armadura simples
begin
Ast:=StrToFloat(edtAS.Text);
end;
if aux1=2 then
//armadura dupla
begin
Ast:=StrToFloat(edtAS.Text);
Astlinha:=StrToFloat(edtAslinha.Text);
56
end;
//gamac:=strtofloat(edtgamac.Text);
es:=StrToFloat(edtes.Text);
fck:=StrToFloat(edtfck.Text);
d:=Strtofloat(edtd.Text);
dlinha:=StrToFloat(edtdlinha.Text);
Ec:=0.85*5600*sqrt(fck);
n:=es/Ec;
bw:=bw*100;
h:=h*100;
hf:=hf*100;
bf:=bf*100;
d:=d*100;
if hf=0 then
bf:=bw;
c1:=bw/2;
c2:=hf*(bf-bw)+(n-1)*Astlinha+n*Ast;
c3:=dlinha*(1-n)*Astlinha-d*n*Ast0.5*hf*hf*(bf-bw);
YS3:=(0-c2+sqrt(c2*c2-4*c1*c3))/(2*c1);
if hf<>0 then
begin
if YS3>hf then
begin
I3:=((hf*hf*hf)/12)*(bf-bw)+hf*(bfbw)*sqr(YS3-hf/2)+(bw*YS3*sqr(YS3))/3;
I3:=I3+(n-1)*Astlinha*sqr(YS3dlinha)+n*Ast*sqr(YS3-d);
end;
if YS3<hf then
begin
I3:=(bf*YS3*sqr(YS3))/3+(n1)*Astlinha*sqr(YS3-dlinha)+n*Ast*sqr(YS3-d);
end;
end;
if hf=0 then
begin
I3:=(bf*YS3*sqr(YS3))/3+(n1)*Astlinha*sqr(YS3-dlinha)+n*Ast*sqr(YS3-d);
end;
btnA.enabled:=true;
fctm:= ln(0.3)+2/3*ln(fck);
fctm:=exp(fctm);
A1:=(bw*h + (bf-bw)*hf);
YI1:=(bw*(h-hf)*(h-hf)/2+(hf*bf)*(hhf/2))/A1;
YS1:=((bf-bw)*sqr(hf)/2+bw*sqr(h)/2)/A1;
I1:= (bf-bw)*hf*sqr(hf)/12 +
bw*h*sqr(h)/12+(bf-bw)*hf*sqr(YS1-hf/2)
+bw*h*sqr(YI1-h/2);
Mr:=alfa*fctm*1000*I1*0.00000001/(YI1/100);
Mr:=Mr*100;
Mr:=round(Mr);
Mr:=Mr/100;
edtmr.text:=floattostr(Mr);
////////////////////////// sub dominio 2a
end;
procedure TForm8.ComboBox2Change(Sender:
TObject);
begin
Label1.Visible:= true;
Label2.Visible:= true;
Label3.Visible:= true;
Label8.Visible:= true;
edtbw.Visible:=true;
edth.Visible:=true;
edtd.Visible:=true;
edtdlinha.Visible:=true;
Tedit(edtA1).text:=' ';
Tedit(edtA2).text:=' ';
Tedit(edtA3).text:=' ';
Tedit(edtYS1).text:=' ';
Tedit(edtYS2).text:=' ';
Tedit(edtYS3).text:=' ';
Tedit(edtYI1).text:=' ';
Tedit(edtYI2).text:=' ';
Tedit(edtYI3).text:=' ';
Tedit(edtI1).text:=' ';
Tedit(edtI2).text:=' ';
Tedit(edtI3).text:=' ';
if combobox2.Text='Seção Retangular' then
begin
Image1.Visible:=true;
Image2.Visible:=false;
aux2:=1;
alfa:=1.5;
hf:=0;
bf:=0;
panel4.Visible:=false;
Label18.visible:=false;
Label19.visible:=false;
edtbf.Visible:=false;
edthf.Visible:=false;
end;
if combobox2.Text='Seção Tê' then
begin
panel4.Visible:=false;
Image2.Visible:=true;
Image1.Visible:=false;
Label18.visible:=true;
Label19.visible:=true;
edtbf.Visible:=true;
edthf.Visible:=true;
aux2:=2;
alfa:=1.2;
end;
btnA.enabled:=false;
btnYS.enabled:=false;
btnYI.enabled:=false;
btnI.enabled:=false;
end;
procedure TForm8.btnAClick(Sender: TObject);
begin
A1:=(bw*h + (bf-bw)*hf);
if aux1=2 then //armadura dupla
begin
A2:= bw*h + (bf-bw)*hf + Ast*(n-1)+
Astlinha*(n-1);
A3:= bw*YS3+Ast*n+ Astlinha*(n-1);
57
end
else
begin
A2:= bw*h + (bf-bw)*hf +Ast*(n-1);
A3:= bw*YS3+Ast*n;
end;
A1:=A1*100;
A1:=round(A1);
A1:=A1/100;
edtA1.Text:=FloatToStr(A1);
A2:=A2*100;
A2:=round(A2);
A2:=A2/100;
edtA2.Text:=FloatToStr(A2);
A3:=A3*100;
A3:=round(A3);
A3:=A3/100;
edtA3.Text:=FloatToStr(A3);
btnYS.enabled:=true;
end;
procedure TForm8.btnYSClick(Sender: TObject);
begin
YS1:=((bf-bw)*sqr(hf)/2+bw*sqr(h)/2)/A1;
if aux1=2 then
YS2:=((bf-bw)*hf*hf/2+bw*h*h/2+Ast*(n1)*d)/A2
else
YS2:=((bf-bw)*hf*hf/2+bw*h*h/2+Ast*(n1)*d+Astlinha*(n-1)*dlinha)/A2;
YS1:=YS1*100;
YS1:=round(YS1);
YS1:=YS1/100;
edtYS1.Text:=FloatToStr(YS1);
YS2:=YS2*100;
YS2:=round(YS2);
YS2:=YS2/100;
edtYS2.Text:=FloatToStr(YS2);
YS3:=YS3*100;
YS3:=round(YS3);
YS3:=YS3/100;
edtYS3.Text:=FloatToStr(YS3);
btnYI.enabled:=true;
end;
procedure TForm8.btnYIClick(Sender: TObject);
begin
YI1:=(bw*(h-hf)*(h-hf)/2+(hf*bf)*(h-hf/2))/A1;
if aux1=2 then
begin
YI2:=(bw*(h-hf)*(h-hf)/2+(hf*bf)*(hhf/2)+Ast*(n-1)*(h-d)+Astlinha*(n-1)*(hdlinha))/A2;
YI3:=h-YS3;
end
else
begin
YI2:=(bw*(h-hf)*(h-hf)/2+(hf*bf)*(hhf/2)+Ast*(n-1)*(h-d))/A2;
YI3:=h-YS3;
end;
YI1:=YI1*100;
YI1:=round(YI1);
YI1:=YI1/100;
edtYI1.Text:=FloatToStr(YI1);
YI2:=YI2*100;
YI2:=round(YI2);
YI2:=YI2/100;
edtYI2.Text:=FloatToStr(YI2);
YI3:=YI3*100;
YI3:=round(YI3);
YI3:=YI3/100;
edtYI3.Text:=FloatToStr(YI3);
btnI.enabled:=true;
end;
procedure TForm8.btnIClick(Sender: TObject);
begin
I1:= (bf-bw)*hf*sqr(hf)/12 +
bw*h*sqr(h)/12+(bf-bw)*hf*sqr(YS1-hf/2)
+bw*h*sqr(YI1-h/2);
if aux1=2 then
I2:= (bf-bw)*hf*sqr(hf)/12 +
bw*h*sqr(h)/12+(bf-bw)*hf*sqr(YS2-hf/2)
+bw*h*sqr(YS2-h/2)+Ast*(n-1)*sqr(YS2-d)+
Astlinha*(n-1)*sqr(YI2-dlinha)
else
I2:=(bf-bw)*hf*sqr(hf)/12 +
bw*h*sqr(h)/12+(bf-bw)*hf*sqr(YS2-hf/2)
+bw*h*sqr(YS2-h/2)+Ast*(n-1)*sqr(YS2-d);
I1:=I1*100;
I1:=round(I1);
I1:=I1/100;
edtI1.Text:=FloatToStr(I1);
I2:=I2*100;
I2:=round(I2);
I2:=I2/100;
edtI2.Text:=FloatToStr(I2);
I3:=I3*100;
I3:=round(I3);
I3:=I3/100;
edtI3.Text:=FloatToStr(I3);
end;
end.
9.4
FORMULÁRIO SEÇÃO
GENÉRICA
unit Unit1_Secao_Generica;
interface
uses
Windows, Messages, SysUtils, Variants,
Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
58
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
ComboBoxAco: TComboBox;
edtsigmamax: TEdit;
edtsigmap: TEdit;
Label18: TLabel;
Label19: TLabel;
Label1: TLabel;
Label2: TLabel;
edtperdainicial: TEdit;
edtperdafinal: TEdit;
Button1: TButton;
Label26: TLabel;
Label3: TLabel;
edtmg2: TEdit;
edtmg1: TEdit;
edtmqmin: TEdit;
edtmqmax: TEdit;
Label76: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label9: TLabel;
Label10: TLabel;
Label8: TLabel;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
ComboBox3: TComboBox;
Label15: TLabel;
Label16: TLabel;
edtmd: TEdit;
Label17: TLabel;
edtfck: TEdit;
Label21: TLabel;
edtgamac: TEdit;
Label20: TLabel;
Label22: TLabel;
edtd: TEdit;
Label23: TLabel;
ComboBox4: TComboBox;
Label24: TLabel;
edtdiv: TEdit;
Label25: TLabel;
Memob: TMemo;
Label27: TLabel;
Memoh: TMemo;
Label28: TLabel;
Label29: TLabel;
Memo4: TMemo;
Memo5: TMemo;
Label31: TLabel;
Memo6: TMemo;
Label32: TLabel;
MemoMr: TMemo;
Label33: TLabel;
MemoFc: TMemo;
Label34: TLabel;
MemoEcdMedio: TMemo;
Label35: TLabel;
MemoTensaoConcreto: TMemo;
Label36: TLabel;
Memo1: TMemo;
Label37: TLabel;
Label38: TLabel;
Memo2: TMemo;
Label41: TLabel;
edtI: TEdit;
Label44: TLabel;
MemoForcaResult: TMemo;
MemoMomentoResult: TMemo;
Label39: TLabel;
Label46: TLabel;
edtDiferenca: TEdit;
edtLN: TEdit;
edtEc: TEdit;
edtEs: TEdit;
Label50: TLabel;
Label48: TLabel;
edtMucd: TEdit;
Label49: TLabel;
Label51: TLabel;
Label52: TLabel;
Label53: TLabel;
edtDominio: TEdit;
edtSigmapd: TEdit;
edtAp: TEdit;
Label42: TLabel;
Label43: TLabel;
Label54: TLabel;
Label30: TLabel;
edtEt: TEdit;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label11: TLabel;
Label56: TLabel;
Label57: TLabel;
GroupBox2: TGroupBox;
RadioGroup1: TRadioGroup;
59
GroupBox3: TGroupBox;
GroupBox4: TGroupBox;
Label59: TLabel;
Panel1: TPanel;
Label58: TLabel;
Panel2: TPanel;
Memo3: TMemo;
Label47: TLabel;
RadioGroup2: TRadioGroup;
Panel3: TPanel;
Label40: TLabel;
GroupBox1: TGroupBox;
Label45: TLabel;
edtMrmaximo: TEdit;
procedure
ComboBoxAcoChange(Sender: TObject);
procedure ComboBox1Change(Sender:
TObject);
procedure ComboBox2Change(Sender:
TObject);
procedure ComboBox3Change(Sender:
TObject);
procedure Button1Click(Sender:
TObject);
procedure ComboBox4Change(Sender:
TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type
TDeformacaoResultado = record
tipo: string;
dominio: string;
valor: real;
end;
var
Form1: TForm1;
ndiv, i, j: integer;
bw2, bw, bw11, h, area, x2, x, x11, LN, z,
ycg, CG, tensaoC,
Ecmed: array [1 .. 1000] of real;
Esd, Ecd, Fcd, Mucd, Mrcd, Mrmaximo:
array [1 .. 1000] of real;
Fc, Mu, tensaoConcreto, EcdMed: array
[1 .. 1000, 1 .. 1000] of real;
FcSoma, MuSoma: array [1 .. 1000] of
real;
E: array [1 .. 19] of real;
CP190: array [1 .. 19] of real;
CP175: array [1 .. 19] of real;
ep, et, Ap: real;
somaLN, somaCG: real;
d: real;
LnPosicao, contador, condicao: integer;
menorValor, maiorValor, diferenca: real;
nrec, iout, jout, encontrou: integer;
Mui, LNFinal, EcFinal: real;
QDominio: array [1 .. 1000] of string;
repete, k1, valor: real;
nRepete, k: integer;
k2: string;
x1: real;
result1: TDeformacaoResultado;
DeformacaoArray: array [1 .. 1000] of
TDeformacaoResultado;
n, Percentual: real;
function menor(a, b: real): real;
function DuasDecimais(a: real): real;
function TresDecimais(b: real): real;
function CincoDecimais(b: real): real;
function Deformacao(x, d, xlim: real):
TDeformacaoResultado;
implementation
a, b, fptk: real;
mg1, mg2, mqmax, mqmin, md, gamag1,
gamag2, gamaq, gamac: real;
fck, xlim: real;
Sigmapmaximo, sigmad, sigmap0,
sigmapd, perdainicial, perdafinal: real;
{$R *.dfm}
function menor(a, b: real): real;
begin
if a < b then
60
Result := a
else
Result := b;
end;
function DuasDecimais(a: real): real;
begin
a := a * 100;
a := round(a);
a := a / 100;
Result := a;
end;
function TresDecimais(b: real): real;
begin
b := b * 1000;
b := round(b);
b := b / 1000;
Result := b;
end;
function CincoDecimais(b: real): real;
begin
b := b * 100000;
b := round(b);
b := b / 100000;
Result := b;
end;
function Deformacao(x, d, xlim: real):
TDeformacaoResultado;
var
Es, Eslim, Ec, valor1: real;
tipo1, dominio1: string;
DeformacaoResultado:
TDeformacaoResultado;
begin
if (x <> d ) then
begin
Es := 0.01;
Ec := ((-1) * Es * x) / (x - d);
if (Ec <= 0.002) then
dominio1 := 'Dominio 2a'
else
dominio1 := 'Dominio 2b';
valor1 := Ec;
tipo1 := 'Ec';
if (Ec >= 0.0035) then
begin
Ec := 0.0035;
Eslim := (Ec / xlim) - Ec;
Es := (Ec * (d - x)) / x;
if (Es >= Eslim) then
dominio1 := 'Dominio 3'
else
dominio1 := 'Dominio 4';
valor1 := Es;
tipo1 := 'Es';
end;
end;
if (x = d) then
begin
dominio1 := 'Dominio 4';
valor1 := 0;
tipo1 := 'Es';
end;
with DeformacaoResultado do
begin
tipo := tipo1;
dominio := dominio1;
valor := valor1;
end;
Result := DeformacaoResultado;
end;
{ **********************coeficientes
de
majoração**************************
** }
procedure TForm1.Button1Click(Sender:
TObject);
begin
mg1 := strtofloat(edtmg1.Text);
mg2 := strtofloat(edtmg2.Text);
mqmax := strtofloat(edtmqmax.Text);
mqmin := strtofloat(edtmqmin.Text);
md := (mg1 * gamag1) + (mg2 * gamag2)
+ (mqmax + mqmin) * gamaq;
md := DuasDecimais(md);
edtmd.Text := floattostr(md);
fck := strtofloat(edtfck.Text);
gamac := strtofloat(edtgamac.Text);
d := strtofloat(edtd.Text);
61
sigmad := strtofloat(edtsigmap.Text);
perdainicial :=
strtofloat(edtperdainicial.Text);
perdafinal :=
strtofloat(edtperdafinal.Text);
x[j]:=0.9*x[j];
somaLN := 0;
for i := 1 to ndiv do
begin // d=100
ndiv := strtoint(edtdiv.Text);
/// /////////// discretização da seçao
Memo1.Clear;
Memo2.Clear;
Memo3.Clear;
MemoEcdMedio.Clear;
MemoTensaoConcreto.Clear;
MemoFc.Clear;
MemoMr.Clear;
MemoForcaResult.Clear;
MemoMomentoResult.Clear;
Memo4.Clear;
Memo5.Clear;
Memo6.Clear;
for i := 1 to ndiv do
begin
bw2[i] := strtofloat(Memob.Lines[i - 1]);
x2[i] := strtofloat(Memoh.Lines[i - 1]);
end;
j := 0;
for i := 1 to ndiv do
begin
repete := x2[i] / 0.005;
k1 := trunc(repete);
k2 := floattostr(k1);
nRepete := strtoint(k2);
valor := x2[i] / nRepete;
for k := 0 to (nRepete - 1) do
begin
j := j + 1;
x[j] := valor;
bw[j] := bw2[i];
end;
end;
ndiv := j;
somaLN := somaLN + x[i]; // //10 30 60
100
LN[i] := somaLN; // Linha neutra
area[i] := bw[i] * x[i]; // Area
ycg[i] := x[i] / 2; // Cg
//5 10 15 20
CG[i] := LN[i] - ycg[i];
z[i] := d - LN[i] + ycg[i]; // Z
80 55 20
//95
area[i] := TresDecimais(area[i]);
Memo5.Lines.Add(floattostr(area[i]));
LN[i] := CincoDecimais(LN[i]);
Memo4.Lines.Add(floattostr(LN[i]));
z[i] := TresDecimais(z[i]);
Memo6.Lines.Add(floattostr(z[i]));
end;
/// /////// Determinacao das deformacao
especifica para cada LN
for i := 1 to ndiv do
begin
result1 := Deformacao(LN[i], d, xlim);
if (result1.dominio = 'Dominio 2a') then
begin
QDominio[i] := 'Dominio 2a';
Esd[i] := 0.01;
Ecd[i] := result1.valor;
end;
if (result1.dominio = 'Dominio 2b') then
begin
QDominio[i] := 'Dominio 2b';
Esd[i] := 0.01;
Ecd[i] := result1.valor;
end;
if (result1.dominio = 'Dominio 3') then
begin
QDominio[i] := 'Dominio 3';
Esd[i] := result1.valor;
Ecd[i] := 0.0035;
end;
62
if (result1.dominio = 'Dominio 4') then
begin
QDominio[i] := 'Dominio 4';
Esd[i] := result1.valor;
Ecd[i] := 0.0035;
end;
DeformacaoArray[i] := result1;
end;
/// Calcula o Mr da secao a posicao de LN
///
EcdMed[1, 1] := Ecd[1] * (LN[1] CG[1]) / LN[1];
if (EcdMed[1, 1] < 0.002) then
tensaoConcreto[1, 1] := (0.85 * fck *
1000) / gamac *
(1 - sqr(1 - (EcdMed[1, 1] / 0.002)));
if (EcdMed[1, 1] >= 0.002) then
tensaoConcreto[1, 1] := (0.85 * fck *
1000) / gamac;
Fcd[1] := tensaoConcreto[1, 1] * area[1];
Mucd[1] := Fcd[1] * z[1];
/// // Caso LN na primeira posicao nao
resulte em Mr maior que MD
if Mucd[1] < md then
begin
for i := 2 to ndiv do
begin
MuSoma[i] := 0;
FcSoma[i] := 0;
for j := 1 to i do
begin
EcdMed[i, j] := Ecd[i] * (LN[i] CG[j]) / LN[i];
if (EcdMed[i, j] < 0.002) then
tensaoConcreto[i, j] := (0.85 * fck *
1000) / gamac *
(1 - sqr(1 - (EcdMed[i, j] / 0.002)));
if (EcdMed[i, j] >= 0.002) then
tensaoConcreto[i, j] := (0.85 * fck *
1000) / gamac;
Fc[i, j] := tensaoConcreto[i, j] *
area[j];
FcSoma[i] := FcSoma[i] + Fc[i, j];
Fcd[i] := FcSoma[i]; // Força
Resultante
Mu[i, j] := Fc[i, j] * z[j];
MuSoma[i] := MuSoma[i] + Mu[i, j];
Mucd[i] := MuSoma[i]; // Resultante
Momento resistente
end;
/// fim loop interno
end;
/// fim loop externo
///
////////////////////////////////////////////////////////
/// obtêm o valor de Mr e a possicao da
LN
for i := 1 to ndiv do
if (Mucd[i] < md) or (Mucd[i] = 0)
then
begin
Mrcd[i] := Mucd[i];
Mrcd[i] := 10000000000000000;
end
else
Mrcd[i] := Mucd[i];
menorValor := Mrcd[1];
for i := 2 to ndiv do
if menorValor > Mrcd[i] then
menorValor := Mrcd[i];
for i := 1 to ndiv do
if (Mucd[i] = menorValor) then
LnPosicao := i;
// Maximo momento resistente
for i := 1 to ndiv do
if (QDominio[i] <> 'Dominio 4') then
begin
Mrmaximo[i] := Mucd[i];
end
else
Mrmaximo[i] := 0;
maiorValor := Mrmaximo[1];
for i := 2 to ndiv do
if maiorValor < Mrmaximo[i] then
maiorValor := Mrmaximo[i];
63
/// ///Escreve os valores de Mr e Fc
tensao e deformacao
for i := 1 to ndiv do
begin
Ecd[i] := CincoDecimais(Ecd[i]);
Esd[i] := CincoDecimais(Esd[i]);
Fcd[i] := TresDecimais(Fcd[i]);
Mucd[i] := TresDecimais(Mucd[i]);
Memo1.Lines.Add(floattostr(Ecd[i]));
Memo2.Lines.Add(floattostr(Esd[i]));
Memo3.Lines.Add(QDominio[i]);
MemoForcaResult.Lines.Add(floattostr(Fc
d[i]));
MemoMomentoResult.Lines.Add(floattost
r(Mucd[i]));
end;
for i := 1 to LnPosicao do
begin
Fc[LnPosicao, i] :=
TresDecimais(Fc[LnPosicao, i]);
Mu[LnPosicao, i] :=
TresDecimais(Mu[LnPosicao, i]);
tensaoConcreto[LnPosicao, i] :=
TresDecimais(tensaoConcreto[LnPosicao,
i]);
EcdMed[LnPosicao, i] :=
CincoDecimais(EcdMed[LnPosicao, i]);
MemoTensaoConcreto.Lines.Add(floattost
r(tensaoConcreto[LnPosicao, i]));
MemoFc.Lines.Add(floattostr(Fc[LnPosica
o, i]));
MemoMr.Lines.Add(floattostr(Mu[LnPosi
cao, i]));
MemoEcdMedio.Lines.Add(floattostr(Ecd
Med[LnPosicao, i]));
end;
/// /// Analise dos resultados
condicao := 0;
edtDominio.Text := '';
edtMrmaximo.Text := '';
edtMucd.Text := '';
edtDiferenca.Text := '';
edtLN.Text := '';
edtEc.Text := '';
edtEs.Text := '';
edtDominio.Text := '';
edtSigmapd.Text := '';
edtEt.Text := '';
edtAp.Text := '';
begin
if Mrcd[LnPosicao] =
10000000000000000 then
// caso momemento restente seja menor
que o momento atuante
begin
showmessage(
'/// Momento Resistente (Mr) da
seção menor que o Momento Atuante (Md)
///');
edtDominio.Text := '';
edtMrmaximo.Text := '';
edtMucd.Text := '';
edtDiferenca.Text := '';
edtLN.Text := '';
edtEc.Text := '';
edtEs.Text := '';
edtDominio.Text := '';
edtI.Text := '';
end
else
// caso momento resitente seja maior
que o momento atuanete
begin
if QDominio[LnPosicao] = 'Dominio
4' then
// caso momento resitente ocorra com
a secao no dominio 4
begin
maiorValor :=
DuasDecimais(maiorValor);
edtMrmaximo.Text :=
floattostr(maiorValor);
edtMucd.Text := '';
edtDiferenca.Text := '';
edtLN.Text := '';
edtEc.Text := '';
64
edtEs.Text := '';
edtDominio.Text := 'Domínio 4,
aumetar altura d';
edtI.Text := '';
end
else
// caso o momento resitente ocorra
com a secao diferente do domino 4, tem se
a solucao
begin
maiorValor :=
DuasDecimais(maiorValor);
edtMrmaximo.Text :=
floattostr(maiorValor);
Mucd[LnPosicao] :=
DuasDecimais(Mucd[LnPosicao]);
edtMucd.Text :=
floattostr(Mucd[LnPosicao]);
diferenca := ((Mucd[LnPosicao] md) * 100) / Mucd[LnPosicao];
diferenca :=
TresDecimais(diferenca);
edtDiferenca.Text :=
floattostr(diferenca);
LN[LnPosicao] :=
TresDecimais(LN[LnPosicao]);
edtLN.Text :=
floattostr(LN[LnPosicao]);
Ecd[LnPosicao] :=
TresDecimais(Ecd[LnPosicao]);
edtEc.Text :=
floattostr(Ecd[LnPosicao]);
edtEs.Text :=
floattostr(Esd[LnPosicao]);
edtDominio.Text :=
QDominio[LnPosicao];
edtI.Text := floattostr(LnPosicao);
end;
end;
end;
end;
if Mucd[1] >= md then
// Caso o Momento Resistente do
primeiro retangulo seja superior a Md
begin
edtMrmaximo.Text := '';
Mucd[1] := DuasDecimais(Mucd[1]);
edtMucd.Text := floattostr(Mucd[1]);
diferenca := ((Mucd[1] - md) * 100) /
Mucd[1];
diferenca := TresDecimais(diferenca);
edtDiferenca.Text :=
floattostr(diferenca);
LN[LnPosicao] :=
TresDecimais(LN[1]);
edtLN.Text := floattostr(LN[1]);
Ecd[LnPosicao] :=
TresDecimais(Ecd[1]);
edtEc.Text := floattostr(Ecd[1]);
edtEs.Text := floattostr(Esd[1]);
edtDominio.Text := QDominio[1];
edtI.Text := '';
end;
/// /////////// encontrar o valor da tensao
sigmapd
E[1]:=5.250 ;E[2]:=6.794 ;E[3]:=7.438
;E[4]:=8.167 ;E[5]:=9 ;E[6]:=9.962
;E[7]:=10 ;E[8]:=12.5 ;
E[9]:=15 ;E[10]:=17.5 ;E[11]:=20
;E[12]:=22.5 ;E[13]:=25 ;E[14]:=27.5
;E[15]:=30 ;E[16]:=32.5 ;
E[17]:=35 ;E[18]:=37.5 ;E[19]:=40 ;
CP190[1]:= 1025 ; CP190[2]:= 1314
;CP190[3]:= 1411 ; CP190[4]:= 1459
;CP190[5]:= 1482 ; CP190[6]:=1486 ;
CP190[7]:= 1486 ; CP190[8]:=1496
;CP190[9]:=1507 ; CP190[10]:=1517
;CP190[11]:= 1527 ; CP190[12]:=1538 ;
CP190[13]:=1548 ; CP190[14]:=1559
;CP190[15]:=1569 ; CP190[16]:= 1579
;CP190[17]:= 1590 ;CP190[18]:=1600 ;
CP190[19]:= 1611 ;
CP175[1]:=1025 ;CP175[2]:=1264 ;
CP175[3]:=1316 ;CP175[4]:=1344
;CP175[5]:=1365 ;CP175[6]:=1368 ;
CP175[7]:= 1368 ;CP175[8]:=1378
;CP175[9]:=1388 ;CP175[10]:=1397
;CP175[11]:=1407 ;CP175[12]:=1416 ;
65
CP175[13]:=1426 ;CP175[14]:=1436
;CP175[15]:=1445 ;CP175[16]:=1455
;CP175[17]:=1464 ;CP175[18]:=1474 ;
CP175[19]:=1484 ;
sigmap0:= sigmad * (1 - (perdafinal /
100));
i := 1;
if fptk = 1900 then
begin
while sigmap0 > CP190[i] do
i := i + 1;
j := i - 1;
if j <> 0 then
begin
ep := E[j] + (sigmap0 - CP190[j]) *
(E[i] - E[j]) / (CP190[i] - CP190[j]);
et := ep + Esd[LnPosicao] * 1000;
end
else
begin
ep := sigmap0 / 200; // regime linear =
sigmap0 < 1025
et := ep + Esd[LnPosicao] * 1000;
end;
i := 1;
while et > E[i] do
i := i + 1;
while sigmap0 > CP175[i] do
i := i + 1;
j := i - 1;
if j <> 0 then
begin
ep := E[j] + (sigmap0 - CP175[j]) *
(E[i] - E[j]) / (CP175[i] - CP175[j]);
et := ep + Esd[LnPosicao] * 1000;
end
else
begin
ep := sigmap0 / 200; // regime linear =
sigmap0 < 1025
et := ep + Esd[LnPosicao] * 1000;
end;
i := 1;
while et > E[i] do
i := i + 1;
j := i - 1;
if j <> 0 then
sigmapd := CP175[j] - (CP175[i] CP175[j]) * (et - E[j]) / (E[i] - E[j])
else
sigmapd := 200000 * et / 1000;
end;
end;
if QDominio[LnPosicao] <> 'Dominio 4'
then
begin
sigmapd:=DuasDecimais(sigmapd);
edtSigmapd.Text:=floattostr(sigmapd);
et:=DuasDecimais(et);
edtEt.Text:=floattostr(et);
/// calculo da area de aço
Ap:=Fcd[LnPosicao]/(sigmapd/10);
Ap:=DuasDecimais(Ap);
edtAp.Text:=floattostr(Ap);
i := 1;
end;
j := i - 1;
if j <> 0 then
sigmapd := CP190[j] - (CP190[i] CP190[j]) * (et - E[j]) / (E[i] - E[j])
else
sigmapd := 200000 * et / 1000;
if fptk = 1750 then
begin
// Edit1.Text:=floattostr(menorValor);
end;
66
end;
{
**********************************
**********************************
********* }
/// /////////////////////////////////////
/// ////////////////////////////////////
{ **********************coeficientes
de
majoração**************************
** }
procedure
TForm1.ComboBox1Change(Sender:
TObject);
begin
if ComboBox1.Text = '1,3' then
gamag1 := 1.3
else if ComboBox1.Text = '1,4' then
gamag1 := 1.4
else
gamag1 := strtofloat(ComboBox1.Text);
end;
procedure
TForm1.ComboBox2Change(Sender:
TObject);
begin
if ComboBox2.Text = '1,3' then
gamag2 := 1.3
else if ComboBox2.Text = '1,4' then
gamag2 := 1.4
else if ComboBox2.Text = '1,5' then
gamag2 := 1.5
else
gamag2 := strtofloat(ComboBox2.Text);
end;
procedure
TForm1.ComboBox3Change(Sender:
TObject);
begin
if ComboBox3.Text = '1,3' then
gamaq := 1.3
else if ComboBox3.Text = '1,4' then
gamaq := 1.4
else if ComboBox3.Text = '1,5' then
gamaq := 1.5
else
gamag1 := strtofloat(ComboBox3.Text);
{
**********************************
**********************************
******** }
/// /////////////////
/// ////////////////
{ **********************limite
dominio 3
4*********************************
*}
procedure
TForm1.ComboBox4Change(Sender:
TObject);
begin
if ComboBox4.Text = '0,4' then
xlim := 0.4
else if ComboBox4.Text = '0,5' then
xlim := 0.5
else if ComboBox4.Text = '0,628' then
xlim := 0.628
else if ComboBox4.Text = '1' then
xlim := 1
else
xlim := strtofloat(ComboBox4.Text);
end;
{
**********************************
**********************************
******** }
/// /////////////////
/// ////////////////
{ **********************Limite
protensão***************************
********* }
procedure
TForm1.ComboBoxAcoChange(Sender:
TObject);
begin
if ComboBoxAco.Text = 'CP 190RN'
then
begin
if RadioButton1.Checked then
begin
fptk := 1900;
a := 0.77 * fptk;
b := 0.90 * 0.90 * fptk;
Sigmapmaximo := menor(a, b);
67
end;
if RadioButton2.Checked then
begin
fptk := 1900;
a := 0.74 * fptk;
b := 0.87 * 0.90 * fptk;
Sigmapmaximo := menor(a, b);
end;
end
else if ComboBoxAco.Text = 'CP 190RB'
then
begin
if RadioButton1.Checked then
begin
fptk := 1900;
a := 0.77 * fptk;
b := 0.85 * 0.90 * fptk;
Sigmapmaximo := menor(a, b);
end;
if RadioButton2.Checked then
begin
fptk := 1900;
a := 0.74 * fptk;
b := 0.82 * 0.90 * fptk;
Sigmapmaximo := menor(a, b);
end;
end
else if ComboBoxAco.Text = 'CP 175RN'
then
begin
if RadioButton1.Checked then
begin
fptk := 1750;
a := 0.77 * fptk;
b := 0.90 * 0.90 * fptk;
Sigmapmaximo := menor(a, b);
end;
if RadioButton2.Checked then
begin
fptk := 1750;
a := 0.74 * fptk;
b := 0.87 * 0.90 * fptk;
Sigmapmaximo := menor(a, b);
end;
end
else if ComboBoxAco.Text = 'CP 175RB'
then
begin
if RadioButton1.Checked then
begin
fptk := 1750;
a := 0.77 * fptk;
b := 0.85 * 0.90 * fptk;
Sigmapmaximo := menor(a, b);
end;
if RadioButton2.Checked then
begin
fptk := 1750;
a := 0.74 * fptk;
b := 0.82 * 0.90 * fptk;
Sigmapmaximo := menor(a, b);
end;
end
else
begin
edtsigmamax.Text := '';
exit;
end;
edtsigmamax.Text :=
floattostr(Sigmapmaximo);
end;
{
**********************************
**********************************
******** }
end.

Documentos relacionados