Escolar Documentos
Profissional Documentos
Cultura Documentos
Tcc2012-Rodrigo Mattos Scavassin - Corrigido PDF
Tcc2012-Rodrigo Mattos Scavassin - Corrigido PDF
Dedico esta monografia aos meus pais e à minha irmã
que tanto me apoiaram. Também a dedico à Aliança
Bíblica Universitária (ABU), grupo com o qual aprendi a
ser um ser humano melhor e um cristão autêntico.
AGRADECIMENTOS
Meus sinceros agradecimentos ao Professor Doutor Roberto Chust Carvalho, com o qual
muito aprendi. Sem ele não seria possível a conclusão deste trabalho.
Agradeço principalmente a Deus, o único que merece toda honra e glória. Ele me tirou de
uma vida afundada no pecado e me deu uma vida cheia de propósito e o privilégio de ser
Seu filho.
RESUMO
Neste trabalho visou-se confeccionar um programa que calcula a armadura
longitudinal ativa e passiva a ser usada em uma viga pré-fabricada com pré-tração e
simplesmente apoiada.
Para realizar o detalhamento da armadura ao longo da viga foram usados os preceitos
de CARVALHO (2012) que foram testados e postos em prática por BINDILATEN (2009) e
FALEIROS FILHO (2011), além de PETRUCELLI (2009). Foi preciso desenvolver: a parte
do cálculo da armadura de estribos para resistir o cisalhamento de flexão; as verificações e o
detalhamento da armadura longitudinal ao longo da viga, principalmente no que se refere ao
isolamento da armadura junto às extremidades. Diferentemente dos poucos programas
comerciais existentes, foi realizado o cálculo das perdas iniciais e ao longo do tempo para que
o detalhamento de armadura fosse o mais preciso possível.
O cálculo foi feito partindo desde o pré-dimensionamento até chegar no detalhamento
da armadura, permitindo sempre alterações feitas pelo usuário. Assim, o usuário obtém a peça
detalhada através do uso de linguagem LISP do AutoCAD®.
Como resultado final se obteve uma ferramenta que pode ser usada por profissionais e
alunos para projetar e detalhar vigas em concreto protendido pré-tracionadas usando mais o
tempo para a análise da solução sem ter a necessidade de realizar procedimentos repetitivos
de cálculo e detalhamento que podem ser bastante demorados.
Todos os procedimentos estarão de acordo com a NBR6118:2007 e com a
NBR9062:2003.
Palavras-‐chave:
programa,
concreto
protendido,
pré-‐tração
ABSTRACT
ABSTRACT
This study aims to build a program that calculates the active and passive longitudinal
reinforcement to be used in a prefabricated beam with pretensioning and simply supported
beam.
To carry out the detailing along the beam were used the precepts of Carvalho (2012)
that have been tested and put into practice by Bindilaten (2009), Faleiros Filho (2011), and
Petrucelli (2009). It was necessary to develop: a calculation part of the shear stirrups to resist
the bending shear; the reinforcement checks and detailing along the beam, especially with
regard to the isolation of reinforcement along the edges. It is intended, unlike the few
programs which exist, perform the calculation of the initial losses and over time so that the
detail is as accurate as possible.
The calculation was made starting from pre-dimensioning until the reinforcement
detailing, always allowing changes made by the user. Then, the user gets the detailed beam
through the use of AutoCAD® LISP language.
As a final result is obtained a tool that can be used by professionals and students to
design and detail prestressed concrete beams using more time for analysis of the solution
without the need to perform repetitive procedures of calculation and detail that can be slow.
All procedures are in accordance with the NBR6118:2007 and with the
NBR9062:2003.
1.
INTRODUÇÃO ................................................................................................................... 8
1.1
JUSTIFICATIVA ........................................................................................................ 8
1.2
OBJETIVOS ................................................................................................................ 9
2.
REVISÃO BIBLIOGÁFICA ............................................................................................ 10
2.1
O CONCRETO PROTENDIDO .............................................................................. 10
2.2
PERDAS DE PROTENSÃO ..................................................................................... 11
2.2.1
PERDAS INICIAIS .............................................................................................. 11
2.2.2
PERDAS FINAIS ................................................................................................. 13
2.3
PRÉ-DIMENSIONAMENTO DA ARMADURA LONGITUDINAL .................. 15
2.4
VERIFICAÇÃO EM DÉCIMO DE VÃO ............................................................... 17
2.4.1
PERDAS INICIAIS .............................................................................................. 19
2.4.2
PERDAS FINAIS ................................................................................................. 20
2.5
COMPRIMENTO DE TRANSFERÊNCIA E DE REGULARIZAÇÃO ............ 20
2.6
SEÇÃO COMPOSTA ............................................................................................... 22
2.7
DIMENSIONAMENTO DA ARMADURA TRANSVERSAL ............................. 22
2.7.1
EXPRESSÕES PARA CÁLCULO E VERIFICAÇÕES PARA
DETALHAMENTO ......................................................................................................... 23
2.8
DETALHAMENTO .................................................................................................. 24
3.
METODOLOGIA ............................................................................................................. 26
4.
DESENVOLVIMENTO DO ROTEIRO DO PROGRAMA ........................................... 27
4.1
ROTEIRO DE CÁLCULO DA ARMADURA LONGITUDINAL ...................... 27
4.2
ENTRADA DE DADOS E INFORMAÇÕES INICIAIS ....................................... 28
4.2.1
INTRODUÇÃO .................................................................................................... 28
4.2.2
DESCRIÇÃO DAS TELAS DE ENTRADA ....................................................... 29
5.
VALIDAÇÃO DO PROGRAMA ...................................................................................... 45
5.1
EXEMPLO DE APLICAÇÃO 01 ............................................................................ 45
5.2
EXEMPLO DE APLICAÇÃO 02 ............................................................................ 51
5.3
EXEMPLO DE APLICAÇÃO 03 ............................................................................ 53
5.4
EXEMPLO DE APLICAÇÃO 04 ............................................................................ 54
6.
MANUAL DO USUÁRIO................................................................................................. 56
6.1
Início ........................................................................................................................... 56
6.2
Utilizando o “Protendido.exe” .................................................................................. 56
6.3
Utilizando o arquivo “Detalhamento.lsp” ............................................................... 69
7.
CONCLUSÃO ................................................................................................................... 75
8.
REFERÊNCIAS ............................................................................................................... 76
9.
BIBLIOGRAFIA .............................................................................................................. 77
10.
ANEXOS ......................................................................................................................... 79
10.1
ANEXO A – JANELA1 – DELPHI........................................................................ 79
10.2
ANEXO B – JANELA2 – DELPHI ...................................................................... 126
10.3
ANEXO C – JANELA3 – DELPHI...................................................................... 153
10.4
ANEXO D – JANELA4 – DELPHI...................................................................... 160
10.5
ANEXO E – JANELA5 – DELPHI ...................................................................... 162
10.6
ANEXO F – ROTINA LISP ................................................................................. 168
10.7
ANEXO G – ARQUIVO PARA DETALHAMENTO ....................................... 196
10.8
ANEXO H – ARQUIVO PARA SALVAR DADOS ........................................... 196
8
1.
INTRODUÇÃO
No Brasil, o concreto protendido é uma das áreas de estrutura que mais se expande.
As estruturas com este sistema são cada vez mais frequentes em obras de engenharia de
maneira que escolas (quase todos novo prédios da UFSCar são feitas em concreto
protendido), pontes, viadutos e passarelas (viaduto da acesso a UFSCar e passarelas
adjacentes), prédios de shopping centers, edificações comerciais, industriais e mesmo
residenciais que necessitam de maiores vãos e mesmo para vãos médios (obras
residenciais) tem laje protendida.
1.1 JUSTIFICATIVA
programa comercial nacional que se dedica a questão não calcula as perdas de protensão e
algumas peças (como as lajes alveolares que podem ser calculadas como vigas) apenas
verifica as situações de ELU para uma armadura dada e indica as tensões em serviço
deixando para o projetista as demais tarefas. De posse de uma ferramenta como a que se
deseja executar o projetista ou estudante poderá ter subsídios para analisar o cálculo das
armaduras e seu detalhamento com maior precisão. As considerações de cálculo são feitas
com os recursos existentes do conhecimento atual, permitindo que o projetista use mais seu
tempo para analisar se não seria melhor definir outra seção ou mesmo uma combinação de
armadura ativa com passiva e outras soluções.
1.2 OBJETIVOS
2.
REVISÃO
BIBLIOGÁFICA
2.1 O CONCRETO PROTENDIDO
• Fios, com diâmetro, em geral, de 3mm a 8mm, fornecidos em rolos. Estes são fios
trefilados de aço carbono;
• Cordoalhas que são formadas por vários fios (em geral, 3 ou 7) ou cabos de maneira
helicoidal;
• Barras de aço de alta resistência, com diâmetro superior a 12mm;
O uso de concreto protendido não implica em toda a armadura utilizada ser ativa
(armadura que recebe tensões antes de receber as solicitações previstas para sua
11
∆!. !
∆! = !" !. !
!!
∆!. !!
∆! = !" !. !
!
Δσ pr (t, t o )
ψ(t, to) = eq 2.4
σ pi
onde:
Δσpr(t, to)= perda de tensão por relaxação pura (com comprimento constante) desde o
instante to do estiramento da armadura até o instante t considerado
σpi= tensão da armadura de protensão no instante de seu estiramento
A relaxação de fios e cordoalhas, após 1000h a 20°C (Ψ1000) e para tensões
variando de 0,5 a 0,8 fptk, obtida em ensaios descritos na NBR 7484, não deve ultrapassar
os valores dados na NBR 7482 e na NBR 7483,respectivamente.
Para efeito de projeto, os valores de Ψ1000 da Tabela 2.1 podem ser adotados.
13
Os valores correspondentes a tempos diferentes de 1.000 horas, sempre a 200C, podem ser
determinados a partir da seguinte expressão:
0,15
" t ! to %
ψ(t, to) = ψ1000 .$ ' para (t, to) em dias eq 2.5
# 41, 67 &
para tensões inferiores a 0,5 fptk admite-se que não haja perda de protensão por relaxação;
Para valores intermediários dados na tabela 2.1 pode ser feita uma interpolação linear;
Para tempo infinito pode-se considerara ψ (∞, t0) = 2,5 . ψ1000
A perda é dada pela produto entre a retração ocorrida e o módulo de elasticidade, como
segue abaixo:
Figura 2.1 – Evolução da deformação por fluência para uma tensão constante.
Araújo (2010) avaliou os efeitos do tempo num painel alveolar protendido composto e
atestou que a retração diferencial em seções compostas de concreto acarretam elevadas
mudanças na distribuição das tensões, em especial, na região entre o concreto pré-moldado
e o moldado no local.
Lahude (2009) observou que, para uma mesma carga, ao adiar a sua aplicação no
elemento, a significância da fluência reduz bastante. No exemplo de uma defasagem de 60
dias significa um coeficiente de fluência 60% menor.
Como visto em Inforsato (2009), quando o valor arbitrado da perda de protensão é
muito conservador, as a armadura calculada chega a ser cerca de 20% do valor necessário.
Isso mostra a importância de um cálculo mais preciso das perdas.
Sendo:
!
!
f!"#,!"# = 0,21. f!"
N! a força aplicada no sentido axial da peça devido a protensão dada por N! = σ!"!! . A !
M! o momento aplicado devido a protensão dado por M! = N! . e
σ ≤ 0,7f!"
Para a condição de tempo zero, utiliza-se o valor total da tensão de protensão inicial
pois supõe-se que ainda não ocorreu nenhuma perda. Portanto podemos utilizar uma
inequação parecida com a anterior, substituindo σ!"!! (tensão no tempo infinito) por σ!"!!
(tensão no tempo zero), o valor a direita da inequação por −1,2f!",! e A ! por A!! .
Inforsato (2009) afirma que é possível utilizar a inequação de tensões no tempo infinito para
dimensionar a armadura do bordo inferior e a inequação de tensões no tempo zero para
dimensionar (se houver) a armadura do bordo superior.
Como pode ser visto, dividindo em décimo de vão, existem cinco seções as quais o
carregamento difere. A seção S5 é a que possui momento máximo e é por ela que é feito o
dimensionamento da armadura longitudinal. Para as outras seções deve-se verificar se não
existe problema em relação a tração no bordo superior. Em geral, na seção S1 terá
problemas com as verificações e portanto será necessário diminuir o número de cabos (tirar
a aderência) para esta.
Para o cálculo dos esforços nas seções intermediárias, utiliza-se o seguinte
equacionamento que vem da estática clássica.
p. l. x p. x !
M! = − !" !. !
2 2
e
p. l
V! = − p. x !" !. !
2
Sendo:
- Ms: Momento na seção S;
- Vs: Cortante na seção S;
- P: Ação considerada;
- l: Vão total;
- x: posição da seção S
19
Sendo:
- Np: Normal de protensão;
- Mp: Momento de protensão;
- σ!" : Tensão de protensão considerando as perdas na seção S;
- Ac: Área da seção transversal (igual para todas as seções);
- e: excentricidade da cordoalha em relação ao centro de gravidade;
A perda por ancoragem é a mesma por toda a viga. Como pode ser visto na equação
5.2, esta perda depende apenas do retrocesso da armadura, a largura da pista de protensão
e do módulo de elasticidade do aço.
A perda por relaxação do aço nas primeiras 24 horas também é equivalente para todos os
trechos da viga. Como vemos na equação 2.4, esta depende basicamente da tensão
aplicada na peça.
Já a perda por deformação imediata varia de seção para seção. Como visto na equação 2.3,
esta perda depende do momento causado pelo peso próprio da viga. No caso, M!" varia.
Esta variação pode ser visualizada na figura 2.3. Teoricamente, o valor da normal de
protensão Np também varia. Entretanto considerando que as outras perdas iniciais não
sofreram variação conforme a variação do valor de “x”, Np permanece constante em relação
a “x” para efeito de cálculo desta perda.
20
σ!"
l!"# = 0,5. l!" . !" !. !"
f!"#
7. ∅. f!"#
l!" = !" !. !"
36. f!"#
21
f bpd
Sendo que para o comprimento de transferência, o cálculo de deve considerar a
idade do concreto na data de protensão. Para o cálculo do comprimento de ancoragem deve
se considerar aos 28 dias.
f!"# = η! . η! . f!"#
Sendo:
η! = 1,2 para cordoalhas de três a sete fios;
η! = 1,0 para situação de boa aderência;
!
!,!" . !!!"#
f!"# = eq 2.14
!,!
!
l!"# = h! + 0,6 . l!"# ≥ l!"# !" !. !"
A seção composta está presente nas estruturas formadas por concretos pré-moldados
e os moldados “in loco”. É geralmente composta por uma viga pré-moldada, uma laje
alveolar e uma capa. É muito utilizada nos sistemas de pavimentação de edifícios e pontes.
Essa concepção estrutural apresenta a vantagem de diminuir o tempo de execução nos
canteiros e eliminar a necessidade de escoramentos durante a concretagem. O uso do
concreto moldado no local se deve a execução de uma capa que garante maior
solidarização entre os elementos garantindo a estrutura maior resistência a solicitações. No
entanto, como os elementos tem comportamentos diferentes, os seus efeitos devem ser
considerados. Segundo Inforsato (2009) e Faleiros Junior (2010), com a aplicação da capa
de concreto, além da formação da seção composta é possível que a laje seja calculada
como continua após o endurecimento da capa de concreto.
O fato de os concretos terem idades distintas acarreta em valores de deformação por
fluência e retração diferentes para cada caso. Alexander (2006) fez um estudo teórico e
experimental dos esforços que aparecem na seção com o passar do tempo verificando a
retração diferencial gerando tensões e deslocamentos adicionais e relacionando a ordem de
grandeza de influência desses fenômenos com a idade e espessura da capa estrutural
moldada no local.
considerar o efeito da cortante existente quando a trajetória dos cabos é curva. Como este
trabalho visa a pré-tração, na qual a trajetória dos cabos é reta, este efeito não será
considerado. A NBR 6118:2007, considera que o cálculo deve ser feito com base no modelo
de treliça nas situações de modelo I ou II, para o trabalho apresentado, optou-se por calcular
utilizando o modelo I. Neste modelo, a inclinação da biela é de 45˚. Este cálculo é feito a
favor da segurança, pois sabe-se que o ângulo de inclinação das bielas para o concreto
protendido está entre 30˚ e 45˚.
V!" ≤ V!"#
!!"
Sendo V!"# = 0,27 . 1 − . f!" . b! . d eq 2.17
!"#
A !"
V!" = . 0,9 . d . f!"# . senα + cosα !" !. !"
s
Onde:
- s é o espaçamento dos estribos;
24
No caso geral, em que os estribos são verticais (α = 90˚), temos a equação 2.21.
A !"
V!" = . 0,9 . d . f!"# !" !. !"
s
1,11 . τ!"
ρ!" = !" !. !!
f!"#
f!",!
A !" ≥ 0,2 . . b . s !" !. !"
f!"# !
2.8 DETALHAMENTO
Localização
Tipos de Elementos Pré-
fabricados
No interior do edifício Ao ar livre
Como o trabalho tem o enfoque nas vigas pré-fabricadas, resolveu –se utilizar sempre um
cobrimento de 1,5cm. Para ambientes muito agressivos, é necessário aumentar o
cobrimento em 0,5cm.
Em relação ao espaçamento entre fios ou cordoalhas, a norma estabelece os seguintes
limites mínimos:
! > 2(!"â!"#$% !" !"#$"%&ℎ!)
! > 1,2(!"#"$ℎ! !" !"#$% !"#$"!%&)
! > 2!"
26
3.
METODOLOGIA
O procedimento automático de cálculo foi feito em duas etapas. Em uma, o usuário
pode entrar com todos os dados necessários e o programa verifica se a seção dada está
compatível aos esforços e condições existentes. Na outra, com todos os dados, e com as
verificações efetuadas, o programa gera um arquivo de texto o qual é lido por uma outra
rotina, que faz os desenhos da seção transversal e todo o detalhamento da armadura
longitudinal. Também é criada, pela rotina, uma tabela de aço.
Considerando que o programa desenvolvido será utilizado essencialmente por
estudantes de engenharia civil, escolheu-se para a primeira etapa, que consiste em realizar
toda a entrada de dados e cálculos, o ambiente de programação DELPHI pois além de usar
a linguagem orientada ao objeto, este já possui versões visuais para o sistema WINDOWS e
LINUX e permite a programação em linguagem PASCAL que foi a linguagem aprendida
durante o primeiro semestre do curso. A segunda etapa, que consiste no detalhamento da
armadura longitudinal e de armadura transversal, foi feito através de uma rotina LISP que
permite que se obtenha além do desenho da forma, toda a planta de armação ativa e
passiva. Procurou-se utilizar a ferramenta de programação AutoLISP devido a possibilidade
de se programar no AutoCAD, e também devido ao contato com a linguagem obtido durante
a primeira iniciação científica.
Assim, de uma maneira geral, o trabalho foi desenvolvido em etapas distintas de modo
a organizar as atividades e proporcionar um encadeamento lógico. Ao término do programa,
foram resolvidos pequenos exemplos para testar a eficiência dos módulos do programa
finalizado. Procurou-se fazer com que os exemplos correspondam a problemas usuais de
engenharia civil. Dentro destes exemplos consta o de vigas com seções usuais
(retangulares) em prédios de galpões ou de múltiplos andares e também com seções
compostas (vigas retangulares com a consideração da influência de uma laje alveolar
apoiada).
Todos os procedimentos estão de acordo com a NBR6118:2007 e com a
NBR9062:2003 principalmente aqueles relativos a verificação da durabilidade em serviço
que é singular, bastante diferente de outras normas como a EUROCODE (2002) e que
tornam difícil o emprego de programas estrangeiros para a finalidade de detalhamento.
27
Para prosseguir no programa usa-se a “caixa” (box) indicada na figura 4.2, onde se
informa o vão efetivo da viga; da seção transversal da viga: a largura, a altura, a altura útil,
a distancia da armadura negativa a borda da seção mais próxima, a espessura da capa.
Ainda são necessários informar: a altura da laje, a classe de agressividade ambiental, a
largura da pista de protensão, o fck (resistência característica de compressão do concreto) e
fcj (resistência do concreto antes dos 28 dias) da viga, o fck da capa de concreto, o tipo de
aço, o diâmetro da cordoalha, o diâmetro do estribo, o tipo de brita, a tensão inicial nos
cabos e as perdas iniciais e finais.
Para facilitar a compreensão, um desenho esquemático da seção pode ser visto a
seguir na figura 4.5:
32
Figura 4.6 – Caixa para a colocação dos dados necessários para o cálculo do
coeficiente de fluência e de retração.
A terceira “caixa” da janela principal do programa é feita para que o usuário informe o
perímetro em contato com o ar das seções 1 e 2 sendo que estas se referem a seção
retangular e a seção composta respectivamente. Ele também deve informar a umidade
relativa do ar, a temperatura média, o valor do ensaio de abatimento do corpo de prova, o
tipo de cimento em cada seção e um tempo final.
33
Abaixo se encontra a janela completa com todas as células preenchidas e algumas das
janelas de aviso que informam o usuário sobre o pré-dimensionamento.
Com as verificações atendidas, o programa abre uma nova janela. Esta pode ser
vista na figura 4.11 a seguir.
Esta janela também está dividida em caixas porém quase todas são apenas para
saída de dados. A janela mais a esquerda faz a verificação por tensões, a caixa do meio faz
a verificação por ruptura e a caixa da direita calcula o comprimento de transferência e de
regularização necessário para a viga. Estas caixas podem ser vistas com mais detalhes nas
figuras 4.12, 4.13 e 4.14.
36
Esta é outra caixa apenas para a saída de dados. “x” é a posição da linha neutra em
relação ao bordo superior em cm. Mr é o momento resistente de cálculo no ELU e Md é o
momento de cálculo devido as forças atuantes na seção no meio do vão em KN.m. O
programa também informa o usuário sobre qual o domínio a viga está trabalhando e qual a
posição da linha neutra em relação a seção transversal (se ela passa pela mesa, pelo
pescoço ou pela alma).
Nesta caixa existe a possibilidade de entrar com alguns dados (eles ficam
previamente determinados mas podem ser alterados). É necessário que o usuário informe
como é feita a liberação da protensão. Ela pode ser feita de forma gradual ou brusca. De
modo geral, considera-se que em elementos pré-fabricados a liberação não é gradual. Neste
caso o comprimento de transferência aumenta em 25% do valor para desprotensão gradual.
O valor de n1 depende da cordoalha e o valor de n2 depende da aderência entre cordoalha e
concreto.
Na parte inferior da caixa são apresentados os valores do comprimento de
regularização e de transferência do bordo inferior e superior.
38
A partir desta segunda janela, abrem-se duas possibilidades para o usuário: fazer as
verificações em décimo de vão, ou calcular a armadura transversal. Ao optar-se pela
primeira opção surge uma nova janela que pode ser vista logo a seguir na figura 4.15.
Nesta janela é possível escolher se existe a possibilidade de que a viga não tenha
tração ou se ela deve respeitar o limite de 1,2fct. Lembrando que é difícil que uma seção
passe pelo critério de tração nula. Como visto na figura 4.16, caso haja tração, os valores
ficam vermelhos indicando que que essa não é uma possibilidade. Para o critério que admite
tração, calcula-se quantos cabos precisam ser isolados em cada seção e a área de aço
passiva necessária para conter a tração existente no bordo superior, no tempo zero. Esta
área pode ser descontada do valor de armadura ativa calculada anteriormente pelo
programa.
Voltando a segunda janela, o usuário deve optar por calcular a armadura transversal.
Clicando no botão correspondente a quinta janela aparece, como é visto na figura 4.18.
40
Como pode ser visto, esta também é uma janela apenas para a saída dos dados. O
valor de Vrd2 é a cortante resistida pela pelas bielas, Vsd é a cortante de cálculo, Vc a
cortante resistida pelo concreto, Vsw a cortante que deve ser resistida pela armadura
transversal, o espaçamento é a distância entre estribos, sendo este valor um mínimo e ø o
diâmetro do estribo. Também é indicado quantos ramos existem no estribo e se a armadura
transversal é apenas construtiva (a armadura necessária é mínima) ou não.
A partir deste momento, com todas as verificações e com todos os cálculos feitos, é
possível criar o arquivo para o detalhamento da viga. Para isso, basta clicar no botão “Criar
arquivo para detalhamento” na segunda janela e digitar o nome do arquivo para ser salvo.
Um modelo de como é o arquivo criado segue no anexo G. O arquivo pode ser alterado
utilizando simplesmente o bloco de notas tomando-se cuidado ao modificar certos valores
para valores que não serão entendidos pela rotina em LISP. Com isso, todas as janelas
podem ser fechadas e começa a rotina feita em LISP no AutoCAD®.
Iniciando a rotina LISP e selecionando o arquivo criado pelo programa em DELPHI, o
usuário não precisa inserir nenhum novo dado, pois todos os dados necessários encontram-
se no arquivo. O desenho será feito com base nos dados fornecidos previamente e será
feita a seção transversal e longitudinal da viga juntamente com o detalhamento da armadura
e dos estribos e a criação de uma tabela de aço. A seguir pode ser visto nas figuras de 4.19
até 4.27 os desenhos feitos automaticamente pela rotina.
41
Dados:
CAA II
Armadura ativa cordoalha de Ф½” (Ap = 0,987 cm2) CP 190RB;
Armadura frouxa CA-50;
Módulo de elasticidade do aço: 200.000MPa
Concreto pré-moldado,
fcjk: 25MPa,
fck: 40MPa;
Concreto moldado no local (capa), fck: 30MPa;
Carregamentos:
g1 – peso próprio 6,75 kN/m;
g2 – laje alveolar: 16,20 kN/m;
g3 – capa: 9,00 kN/m
g4 – alvenaria: 5,94 kN/m
g5 – revestimento: 5,76 kN/m;
qmáximo – acidental: 21,60 kN/m;
qmínimo – 0 kN/m;
vão: 9,75m;
largura da viga: 30cm;
altura da viga: 90cm;
altura útil: 83,9cm;
altura da laje: 15cm;
espessura da capa: 5cm;
tensão inicial nos cabos: 145,30kN/cm2;
46
Relaxação da
armadura.
Retração;
Fluência do
6 t0 = 60; t = ∞ dias p+g1+g2+g3+g4+g5 concreto;
Relaxação da
armadura.
Retração;
Fluência do
p+g1+g2+g3+g4+g5+
7 t0 = 75; t = ∞ dias concreto;
q
Relaxação da
armadura.
Como visto, não houve diferenças entre os valores esperados para os coeficientes
de fluência nem de retração e houveram pequenas diferenças entre os valores obtidos e os
valores esperados para as perdas de protensão e área de aço. Estas diferenças podem ser
consideradas como perdas devidas ao arredondamento.
Seguem os desenhos gerados pelo programa:
Para este exemplo, será utilizada a mesma viga do exemplo anterior. Desta vez serão
calculadas as perdas e as tensões atuantes por décimo de vão. Como não existem
exemplos deste cálculo na bibliografia estudada, o cálculo será feito manualmente e então
comparado com os resultados obtidos da rotina desenvolvida.
Para realizar os cálculos no tempo zero, é necessário calcular o momento atuante
devido unicamente ao peso próprio da viga. Portanto, utiliza-se a seguinte equação:
!"!! !!!
!! = − !. !. ! , com a variação de s entre 1 e 5 e o carregamento de p = g1 = 6,75
! !
Com os valores de momento calculados, foi feita a tabela 8.4, na qual é apresentado o valor
de cada perda, para cada seção.
S1 S2 S3 S4 S5
Simultaneidade das perdas inf 26,96 23,88 21,69 20,37 19,93
Total das perdas (%) 28,40 26,05 24,37 23,36 23,03
Como visto, os valores pouco diferiram entre si, validando a rotina criada no que diz
respeito as perdas consideradas em décimo de vão.
Dados:
- Mg1 = 3540KN.m
- Mq = 1910KN.m
- CAA II
- d = 1,45m
- bw = 0,70m
- !!! = 1000!"#
- Aço de protensão CP190 RB
- Fck = 30MPa
- Relação água/cimento a/c < 0,55
Podemos perceber que houve pequena variação nos valores de área de aço. Isso se
deve ao fato de o programa utilizar a verificação por tensões enquanto o exemplo foi
resolvido unicamente pela verificação de ruptura.
Como último exemplo, será utilizada três vigas com o mesmo valor de largura e altura
e submetida as mesmas ações porém com vãos crescentes. Seguem as características:
CAA II
Armadura ativa cordoalha de Ф9,5mm CP 175RB;
Armadura frouxa CA-50;
Módulo de elasticidade do aço: 210.000MPa
Concreto pré-moldado,
fcjk: 25MPa,
fck: 40MPa;
Concreto moldado no local (capa), fck: 30MPa;
Carregamentos:
g1 – peso próprio 3,50 kN/m;
g2 – laje alveolar: 16,00 kN/m;
g3 – capa: 8,00 kN/m
g4 – alvenaria: 5,00 kN/m
g5 – revestimento: 3,00 kN/m;
qmáximo – acidental: 10,00 kN/m;
qmínimo – 0 kN/m;
largura da viga: 20cm;
altura da viga: 70cm;
altura útil: 63,9cm;
altura da laje: 15cm;
espessura da capa: 5cm;
perda de protensão final estimada: 20%;
perda de protensão inicial estimada: 2,5%;
umidade relativa do ar: 70%;
temperatura média: 20˚C;
ensaio de abatimento de corpo de prova: 9cm;
Tipo de cimento da viga: CP-ARI;
Tipo de cimento da capa: CPII;
55
O vão de cada viga será respectivamente a)6m b)7m e c)8m. Com estes valores e utilizando
o programa desenvolvido, calcular a armadura ativa e passiva necessárias.
a) vão = 6m (viga 1)
b) vão = 7m (viga 2)
c) vão = 8m (viga 3)
Para vão de 8m, foi necessário utilizar muita armadura. No caso, seria mais
interessante utilizar outra seção, aumentando o uso de concreto e diminuindo o uso de aço.
Em relação ao programa, percebe-se que os valores gerados foram coerentes,
validando novamente a rotina desenvolvida.
Figura 5.5 – Comparação entre a armação das vigas 1, 2 e 3 (esquerda para direita)
56
6.1 INÍCIO
Perdas iniciais: estimativa das perdas que ocorrem logo ao soltar os macacos de
protensão em %;
Perdas finais: estimativa do total das perdas no tempo infinito em %;
-‐ No botão “Ajuda” encontra-se uma janela onde é mostrada a versão do programa.
Seguindo os passos deste manual, aparecerá para o usuário uma nova janela que
será chamada de janela 2.
Esta janela é importante, pois é através dela que as outras verificações serão feitas.
Nesta janela já não possui dados de entrada, senão unicamente para o cálculo do
comprimento de transferência. A seguir a janela será explicada em partes.
64
Na figura acima pode-se perceber que são apresentados os valores das tensões
devidas ao momento aplicado no meio do vão. É interessante destacar que, se alguma
tensão estiver fora dos limites estabelecidos, a célula fica vermelha, alertando o usuário.
O usuário perceberá que existem três botões que estão no meio da janela. Os dois
primeiros abrem novas janelas enquanto o terceiro cria o arquivo necessário para o
detalhamento. Caso o terceiro botão seja acionado antes que os outros sejam, o programa
acusará que faltam verificações a serem feitas e portanto não criará nenhum arquivo.
Clicando no botão “Verificar ao longo do comprimento” aparecerá a janela 3. Como
pode ser visto a seguir.
66
Nesta janela, o usuário deve escolher qual limitação haverá para a tração.
Caso a tração seja indesejada, é necessário clicar em “tração nula”. Fazendo isso as
células que estão em linha, serão preenchidas com a quantidade de cabos não isolados na
seção. Caso exista problema com o isolamento os cabos, as células ficarão vermelhas e
portanto será necessário redimensionar a viga ou permitir a tração.
Caso seja permitida a tração, o usuário deve clicar em “-1,2 fct”. Dessa forma, será
permitido um limite de tração de até 1,2 fct. Entretanto, havendo tração na seção transversal,
importa que exista uma área de aço para resistir a este esforço. Portanto aparecerá um
valor de As’ para cada seção. Deste valor é descontado a área de armadura ativa calculada
anteriormente.
Tendo seguido estes passos, o usuário deve clicar em “OK” para voltar a terceira
janela e “OK” novamente para voltar a segunda janela.
De volta a segunda janela, o usuário deve clicar no botão “Armadura transversal”.
Isso abrirá a janela 5.
68
Esta quinta e última janela também é apenas para saída de dados. Ela apenas faz
algumas verificações para a armadura transversal necessária.
Clicando em “OK”, a janela será fechada, e o usuário se encontrará novamente na
janela 2. Caso deseje, ele deve clicar em “Criar arquivo para detalhamento” onde será dada
a opção de criar um arquivo de texto em algum diretório do computador.
Para carregar esta rotina, deixe o AutoCAD® aberto. Clique em “Tools” e em seguida
em “Load Aplication”. Também é possível utilizar o atalho digitando “appload” no prompt de
comando.
Tendo feito isso, a rotina em LISP fará todo o detalhamento assim como a tabela de
aço. Após o detalhamento, aparecerá uma mensagem informando o usuário que o
detalhamento foi concluído com sucesso.
7.
CONCLUSÃO
Com o programa desenvolvido, se espera que este seja utilizado por estudantes de
engenharia e calculistas, na medida em que caracteriza-se como uma ferramenta de fácil
utilização e rápida obtenção de dados, podendo ser utilizada no ganho de sensibilidade na
interpretação de dados por parte dos estudantes e, quanto ao calculista, ser utilizado como
uma calculadora para análise de estruturas de concreto protendido. Os recursos visuais que
o programa oferece também são de grande valia para que seja possível uma rápida
avaliação de seções inapropriadas. A rotina criada em LISP também colabora com o
aumento de produtividade na liberação de pranchas de desenho para o detalhamento no
AutoCAD. O que foi desenvolvido e apresentado, se tornou uma ferramenta para otimização
de vigas protendidas bi-apoiadas.
76
8. REFERÊNCIAS
9.
BIBLIOGRAFIA
ACKER. A. V. Manual de Sistemas Pré-Fabricado de Concreto. FIB-2002. Tradução
Marcelo de A. Ferreira (ABCP-ABCIC-2004).
ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS, NBR 6118. Projeto de estruturas de
concreto: Procedimento. Rio de Janeiro. 2007. 221p.
ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. NBR 6349. Barras, cordoalhas e
fios de aço para armaduras de protensão: Ensaio de tração. Rio de Janeiro. 2008. 10p.
ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. NBR 7482. Fios de aço para
estruturas de concreto protendido: Especificação. Rio de Janeiro. 2008. 8p.
ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. NBR 7483. Cordoalhas de aço para
estruturas de concreto protendido: Especificação. Rio de Janeiro. 2008. 7p.
ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. NBR 7484. Barras, cordoalhas e
fios de aço destinados a armaduras de protensão: Método de ensaio de relaxação
isotérmica. Rio de Janeiro. 2009. 5p.
ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. NBR 9062. Projeto e execução de
estruturas de concreto pré-fabricado. Rio de Janeiro. 2003. 37p.
AGOSTINI, L. R. S. Concreto Protendido: Estudo das vigas isostáticas. 2. ed. São Paulo:
Livraria Ciência e Tecnologia Editora Ltda, 1983.
CATOIA, B. Comportamento de vigas protendidas pré-moldadas com ligações semi-
rígidas. São Carlos. 2007. 149p. Dissertação (Mestrado em Construção Civil). Universidade
Federal de São Carlos. São Carlos.
CAUDURO, E. L. Protensão com cordoalhas engraxadas e plastificadas - Pós-tensão
com sistema não aderente. 38o REIBRAC -1996
CHOLFE, L.; BONILHA, L. A. S. Concreto Protendido Teoria e Prática. 2. ed. São Paulo:
Escola de Engenharia Mackenzie. 44 p.
COLLINS M. P. Prestressed Concrete Structures. 3. ed. Englewood Cliffs: Prentice Hall,
1991. 766 p.
COLLINS M. P.; MITCHELL D. Prestressed Concrete Basicis. 1. Ed. Ottawa: CPCI, 1987.
614p.
ELLIOT K. S. Precast Concrete Structures 2. Ed. Woburn: Butterworth Heinemann, 1998.
375p.
78
10. ANEXOS
unit Formulario;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Menus, Math;
type
TFAPESP = class(TForm)
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
ComboBox1: TComboBox;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label10: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Button1: TButton;
MainMenu1: TMainMenu;
Arquivo1: TMenuItem;
Novo1: TMenuItem;
Abrir1: TMenuItem;
Salvar1: TMenuItem;
SalvarComo1: TMenuItem;
N1: TMenuItem;
Sair1: TMenuItem;
Editar1: TMenuItem;
Voltar1: TMenuItem;
N2: TMenuItem;
Recortar1: TMenuItem;
Copiar1: TMenuItem;
80
Colar1: TMenuItem;
N3: TMenuItem;
Slecionartudo1: TMenuItem;
Ajuda1: TMenuItem;
Contedo1: TMenuItem;
N4: TMenuItem;
Sobre1: TMenuItem;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
Button2: TButton;
ComboBox2: TComboBox;
Label29: TLabel;
Edit16: TEdit;
Label31: TLabel;
Label32: TLabel;
Edit17: TEdit;
Label11: TLabel;
Label33: TLabel;
Edit18: TEdit;
Label35: TLabel;
Label34: TLabel;
Label36: TLabel;
Edit19: TEdit;
Label39: TLabel;
ComboBox3: TComboBox;
Label17: TLabel;
Label40: TLabel;
ComboBox4: TComboBox;
Label44: TLabel;
ComboBox5: TComboBox;
GroupBox1: TGroupBox;
Label50: TLabel;
Label51: TLabel;
Edit25: TEdit;
Label52: TLabel;
Label53: TLabel;
Edit26: TEdit;
Label54: TLabel;
Label55: TLabel;
Edit27: TEdit;
Label56: TLabel;
Label57: TLabel;
Edit28: TEdit;
Label58: TLabel;
ComboBox6: TComboBox;
Label60: TLabel;
Edit30: TEdit;
Label61: TLabel;
GroupBox2: TGroupBox;
Label63: TLabel;
Label65: TLabel;
Edit41: TEdit;
Label64: TLabel;
Label77: TLabel;
Label78: TLabel;
81
Edit42: TEdit;
Label79: TLabel;
GroupBox3: TGroupBox;
Label1: TLabel;
Label21: TLabel;
Label23: TLabel;
Label25: TLabel;
Label9: TLabel;
Label22: TLabel;
Label24: TLabel;
Label26: TLabel;
Label27: TLabel;
Label28: TLabel;
Label66: TLabel;
Label67: TLabel;
Label68: TLabel;
Label69: TLabel;
Label70: TLabel;
Label71: TLabel;
Label72: TLabel;
Label73: TLabel;
Label74: TLabel;
Label75: TLabel;
Label76: TLabel;
Edit1: TEdit;
Edit10: TEdit;
Edit11: TEdit;
Edit12: TEdit;
Edit13: TEdit;
Edit14: TEdit;
Edit33: TEdit;
Edit34: TEdit;
Edit35: TEdit;
Edit36: TEdit;
Edit37: TEdit;
Edit38: TEdit;
Edit39: TEdit;
Edit40: TEdit;
Label80: TLabel;
Label81: TLabel;
Label82: TLabel;
Label83: TLabel;
Label84: TLabel;
Edit43: TEdit;
Label85: TLabel;
Label86: TLabel;
Label87: TLabel;
Label88: TLabel;
Edit44: TEdit;
Label90: TLabel;
Edit45: TEdit;
Label89: TLabel;
Label91: TLabel;
Label92: TLabel;
Label93: TLabel;
82
Label94: TLabel;
Label95: TLabel;
Label96: TLabel;
Edit47: TEdit;
Edit32: TEdit;
Edit50: TEdit;
Edit49: TEdit;
Edit48: TEdit;
Edit46: TEdit;
Edit31: TEdit;
Edit51: TEdit;
Label97: TLabel;
Label98: TLabel;
ComboBox7: TComboBox;
Label59: TLabel;
Edit52: TEdit;
Label99: TLabel;
Label100: TLabel;
GroupBox6: TGroupBox;
Label19: TLabel;
Label45: TLabel;
Label46: TLabel;
Label48: TLabel;
Label47: TLabel;
Label49: TLabel;
Edit8: TEdit;
Edit23: TEdit;
Edit24: TEdit;
GroupBox4: TGroupBox;
Label41: TLabel;
Label42: TLabel;
Label43: TLabel;
Label20: TLabel;
Label18: TLabel;
Label30: TLabel;
Edit9: TEdit;
Edit15: TEdit;
GroupBox5: TGroupBox;
Label62: TLabel;
Label37: TLabel;
Label38: TLabel;
Edit20: TEdit;
Label101: TLabel;
Edit53: TEdit;
Edit54: TEdit;
Label102: TLabel;
Edit55: TEdit;
Label103: TLabel;
Edit56: TEdit;
Label104: TLabel;
Edit57: TEdit;
Label105: TLabel;
Edit58: TEdit;
Label106: TLabel;
Label107: TLabel;
83
Edit21: TEdit;
Edit29: TEdit;
Edit22: TEdit;
GroupBox7: TGroupBox;
Label108: TLabel;
Label109: TLabel;
Label110: TLabel;
Edit59: TEdit;
Edit60: TEdit;
Label111: TLabel;
procedure Button1Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure Sair1Click(Sender: TObject);
procedure Voltar1Click(Sender: TObject);
procedure Recortar1Click(Sender: TObject);
procedure Copiar1Click(Sender: TObject);
procedure Colar1Click(Sender: TObject);
procedure Slecionartudo1Click(Sender: TObject);
procedure Contedo1Click(Sender: TObject);
procedure Sobre1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Abrir1Click(Sender: TObject);
procedure Salvar1Click(Sender: TObject);
procedure SalvarComo1Click(Sender: TObject);
procedure Novo1Click(Sender: TObject);
procedure Edit5Change(Sender: TObject);
procedure Edit4Change(Sender: TObject);
procedure Edit21Change(Sender: TObject);
procedure Edit29Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FAPESP: TFAPESP;
g1, {peso próprio da viga em KN/m}
g2, {Efeito da laje alveolar em KN/m}
g3, {Efeito da capa em KN/m}
g4, {Efeito da alvenaria em KN/m}
g5, {Efeito do revestimento em KN/m}
t001, {tempo inicial de aplicação da carga 1 em KN/m}
t002, {tempo inicial de aplicação da carga 2 em KN/m}
t003, {tempo inicial de aplicação da carga 3 em KN/m}
t004, {tempo inicial de aplicação da carga 4 em KN/m}
t005, {tempo inicial de aplicação da carga 5 em KN/m}
t00q, {tempo inicial de aplicação da carga acidental em KN/m}
t003B, {tempo inicial de aplicação da carga 3 em KN/m COMPOSTA}
t004B, {tempo inicial de aplicação da carga 4 em KN/m COMPOSTA}
t005B, {tempo inicial de aplicação da carga 5 em KN/m COMPOSTA}
t00qB, {tempo inicial de aplicação da carga acidental em KN/m COMPOSTA}
qmin, {carga acidental mínima em KN/m}
qmax, {carga acidental máxima em KN/m}
84
beta0,
betaf,
beta1,
betad,
beta1infinito,
sss, {depende do tipo de cimento}
fia,
fi1c,
fi2c,
fifinfinito,
fidinfinito,
fi,
sigmapcsup,
sigmapcinf,
sigmaps,
Ui1inf, {U(infinito,1) inferior}
Ui1sup, {U(infinito,1) superior}
xinf,
xsup,
xpinf,
xpsup,
sigmaprinf,
sigmaprsup,
xc,
ninf,
nsup,
pp, {taxa de aço}
sigmapi1inf, {sigmap (infinito,1) inferior}
sigmapi1sup, {sigmap (infinito,1) superior}
sigmapinf, {perdas totais no bordo inferior}
sigmapsup, {perdas totais no bordo superior}
perdatinf, {perda em porcentagem no bordo inferior}
perdatsup, {perda em porcentagem no bordo superior}
hlaje, {altura da laje alveolar}
capa, {espessura da capa em cm}
areacomposta, {área da seção composta}
areacomposta2, {área da seção composta (é um pouco maior que a seçao composta
acima)}
ycgcomposta, {altura do cg da seção composta}
Icomposta, {Momento de inércia da seção composta}
yicomposta, {distância do cg da seção composta até o ponto mais inferior da seção}
yscomposta, {distância do cg da seção composta até o ponto mais superior da seção}
Wicomposta, {I/yicomposta}
Wscomposta, {I/yscomposta}
fi1, {coeficiente de fluência para o carregamento 1}
fi2, {coeficiente de fluência para o carregamento 2}
fi3A, {coeficiente de fluência para o carregamento 3 (seção retangular)}
fi3B, {coeficiente de fluência para o carregamento 3 (seção composta)}
fi3, {coeficiente de fluência para o carregamento 3 (média)}
fi4A, {coeficiente de fluência para o carregamento 4 (seção retangular)}
fi4B, {coeficiente de fluência para o carregamento 4 (seção composta)}
fi4, {coeficiente de fluência para o carregamento 4 (média)}
fi5A, {coeficiente de fluência para o carregamento 5 (seção retangular)}
fi5B, {coeficiente de fluência para o carregamento 5 (seção composta)}
fi5, {coeficiente de fluência para o carregamento 5 (média)}
87
openDialog : TOpenDialog;
saveDialog : TSaveDialog;
arq: TextFile;
implementation
{$R *.dfm}
IF (edit1.text <> '') AND (edit2.text <> '') AND (edit3.text <> '') AND
(edit4.text <> '') AND (edit5.text <> '') AND (edit6.text <> '') AND
(edit10.text <> '') AND (edit11.text <> '') AND (edit12.text <> '') AND
(edit13.text <> '') AND (edit14.text <> '') AND (edit16.text <> '') AND
(edit17.text <> '') AND (edit18.text <> '') AND (edit19.text <> '') AND
(edit26.text <> '') AND (edit27.text <> '') AND (edit28.text <> '') AND
(edit30.text <> '') AND (edit33.text <> '') AND (edit34.text <> '') AND
(edit35.text <> '') AND (edit36.text <> '') AND (edit37.text <> '') AND
(edit38.text <> '') AND (edit39.text <> '') AND (edit40.text <> '') AND
(edit41.text <> '') AND (edit42.text <> '') AND (edit43.text <> '') AND
(edit44.text <> '') AND (edit45.text <> '') AND (edit51.text <> '') AND
(comboBox1.text <> '') AND (combobox2.text <> '') AND (combobox3.text <> '') AND
(combobox4.text <> '') AND (combobox5.text <> '') AND (combobox6.text <> '') AND
(combobox7.text <> '') THEN
begin
g1 := strtofloat(Edit1.text);
g2 := strtofloat(Edit10.text);
g3 := strtofloat(edit35.text);
g4 := strtofloat(edit36.text);
g5 := strtofloat(edit37.text);
t001 := strtofloat(edit33.text);
t002 := strtofloat(edit34.text);
t003 := strtofloat(edit38.text);
t004 := strtofloat(edit39.text);
t005 := strtofloat(edit40.text);
t00q := strtofloat(edit45.text);
qmin := strtofloat(Edit11.text);
qmax := strtofloat(Edit12.text);
vao := strtofloat(edit2.text);
L := strtofloat(edit18.text);
h := strtofloat(edit4.text);
h := h/100;
d := strtofloat(edit3.text);
d := d/100;
if edit44.text = '' then edit44.text := floattostr(100*(h-d));
dlinha := strtofloat(edit44.text);
dlinha := dlinha/100;
bw := strtofloat(edit5.Text);
bw := bw/100;
fck := strtofloat(edit6.text);
fcj := strtofloat(edit16.text);
Eci := 5600*sqrt(fcj);
Ep := strtofloat(edit17.text);
perda := strtofloat(edit19.text);
perdai := strtofloat(edit51.Text);
tpaco := combobox1.text;
CAA := combobox2.text;
Mg1 := (g1*sqr(vao))/8;
Mg2 := (g2*sqr(vao))/8;
Mg3 := (g3*sqr(vao))/8;
Mg4 := (g4*sqr(vao))/8;
Mg5 := (g5*sqr(vao))/8;
Mqmin := (qmin*sqr(vao))/8;
Mqmax := (qmax*sqr(vao))/8;
U1 := strtofloat(edit13.text);
89
U2 := strtofloat(edit14.Text);
t003B := 1;
t004B := t004-t003;
t005B := t005-t003;
t00qB := t00q-t003;
{Seção composta}
fckcp := strtofloat(edit41.text);
capa := strtofloat(edit42.text);
capa := capa/100;
hlaje := strtofloat(edit43.text);
hlaje := hlaje/100;
bf := bw + 0.2*vao;
bf := bf*(sqrt(fckcp)/sqrt(fck));
p := (bw-0.14)*(sqrt(fckcp)/sqrt(fck));
areacomposta := bw*h + p*hlaje + bf*capa;
ycgcomposta := ((bw*h*h/2) + (p*hlaje*(h+hlaje/2)) +
(bf*capa*(h+hlaje+capa/2)))/areacomposta;
Icomposta := bw*h*h*h/12 + p*hlaje*hlaje*hlaje/12 + bf*capa*capa*capa/12 +
sqr(ycgcomposta-h/2)*bw*h + sqr(ycgcomposta-(h+hlaje/2))*p*hlaje +
sqr(ycgcomposta-(h+hlaje+capa/2))*bf*capa;
yicomposta := ycgcomposta;
yscomposta := h+hlaje+capa-ycgcomposta;
Wicomposta := Icomposta/yicomposta;
Wscomposta := Icomposta/yscomposta;
ecomposta := yicomposta+d-h;
ecompostalinha := yscomposta-capa-hlaje-dlinha;
{----}
if U2>U1 then
begin
U3 := U2;
U2 := U1;
U1 := U3;
end;
ycg := h/2;
I := bw*exp(3*ln(h))/12; {x elevado a y -> exp(y*ln(x))}
W := I/ycg;
fctm:= 0.3*exp(ln(sqr(fcj))/3)*1000;
fctkinf := 0.21*exp(ln(sqr(fck))/3)*1000;
fck07 := 0.7*fck*1000;
e := d-ycg;
elinha := ycg-dlinha;
Ac := bw*h;
daco := combobox3.text;
if daco = '9,5mm' then Aaco := 0.549;
if daco = '12,7mm' then Aaco := 0.986;
if daco = '15,2mm' then Aaco := 1.399; {valores tirados da NBR-7483}
if daco = '9,5mm' then dcor := 0.95;
if daco = '12,7mm' then dcor := 1.27;
if daco = '15,2mm' then dcor := 1.52;
tpbrita := combobox4.text;
if tpbrita = 'Brita 0' then dbrita:=0.95;
if tpbrita = 'Brita 1' then dbrita:=1.9;
90
c:=1.5;
dest := combobox5.text;
if dest = '1/4"' then destribo:=0.63;
if dest = '5/16"' then destribo:=0.8;
if dest = '3/8"' then destribo:=1.0;
fs1:= strtofloat(edit53.text);
fs2:= strtofloat(edit54.text);
fs3:= strtofloat(edit55.text);
fs4:= strtofloat(edit56.text);
fs5:= strtofloat(edit57.text);
fsq:= strtofloat(edit58.text);
{Fibra superior}
Ap13 := (-1.5*fctkinf-(Mg1+Mg2+Mg3)/W-(Mg4+Mg5+U1*Mqmax)/Wscomposta)/(sigma/Ac-
sigma*e/W);
Ap14 := (fck07-(Mg1+Mg2+Mg3)/W-(Mg4+Mg5+U1*Mqmax)/Wscomposta)/(sigma/Ac-
sigma*e/W);
Ap15 := (-1.5*fctkinf-(Mg1+Mg2+Mg3)/W-(Mg4+Mg5+U1*Mqmin)/Wscomposta)/(sigma/Ac-
sigma*e/W);
Ap16 := (fck07-(Mg1+Mg2+Mg3)/W-(Mg4+Mg5+U1*Mqmin)/Wscomposta)/(sigma/Ac-
sigma*e/W);
{Fibra superior}
Ap5 := ((Mg1+Mg2+Mg3)*(-1)/W-(Mg4+Mg5+U1*Mqmax)/Wscomposta)/(sigma/Ac-
sigma*e/W);
Ap6 := (fck07-(Mg1+Mg2+Mg3)/W-(Mg4+Mg5+U1*Mqmax)/Wscomposta)/(sigma/Ac-
sigma*e/W);
Ap7 := ((Mg1+Mg2+Mg3)*(-1)/W-(Mg4+Mg5+U1*Mqmin)/Wscomposta)/(sigma/Ac-
sigma*e/W);
Ap8 := (fck07-(Mg1+Mg2+Mg3)/W-(Mg4+Mg5+U1*Mqmin)/Wscomposta)/(sigma/Ac-
sigma*e/W);
begin
if Ap6 > Apinf then Apinf:=Ap6;
if Ap5 < Apsup then Apsup:=Ap5;
end;
{Fibra superior}
Ap13 := (-1.5*fctkinf-(Mg1+Mg2+Mg3)/W-(Mg4+Mg5+Mqmax)/Wscomposta)/(sigma/Ac-
sigma*e/W);
Ap14 := (fck07-(Mg1+Mg2+Mg3)/W-(Mg4+Mg5+Mqmax)/Wscomposta)/(sigma/Ac-
sigma*e/W);
Ap15 := (-1.5*fctkinf-(Mg1+Mg2+Mg3)/W-(Mg4+Mg5+Mqmin)/Wscomposta)/(sigma/Ac-
sigma*e/W);
Ap16 := (fck07-(Mg1+Mg2+Mg3)/W-(Mg4+Mg5+Mqmin)/Wscomposta)/(sigma/Ac-
sigma*e/W);
95
Ap:=n*Aaco;
edit22.text:=floattostrf(Ap,ffFixed,18,2);
n0:=Aplinha/Aaco;
n11:=trunc(n0);
n22:=n0-n11;
if n22>0.1 then
n0:=n11+1
else
n0:=n11;
Aplinha:=n0*Aaco;
edit20.text:=floattostrf(Aplinha,ffFixed,18,3);
{cálculo do d real}
nc := n/nb;
nc1:=trunc(nc)+1;
nc2:=nc-trunc(nc);
nb1:=nc2*nb;
bcg:=0;
ss:=0;
aux:=nc1;
aux2:=0;
if nc2 = 0 then begin
while aux <> 0 do
begin
if aux2=0 then bcg:=bcg+(dcor/2)*nb
97
else bcg:=bcg+(dcor/2+(aux2*dcor)+ss)*nb;
aux2:=aux2+1;
ss:=ss+sv;
aux:=aux-1;
end;
end;
{Relaxação da armadura}
if (tpaco = 'CP - 175RN') or (tpaco = 'CP - 175RB') then
fy := 175;
if (tpaco = 'CP - 190RN') or (tpaco = 'CP - 190RB') then
fy := 190;
sigmapi := sigmap-sigmaanc;
R:=sigmapi/fy;
gama:=1+exp(-7.8+0.1*umi);
hfic:=2*gama*Ac*100/Uar; {hfic em m}
epsolon2s:=(33+2*hfic*100)/(20.8+3*hfic*100);
epsoloninfinito:=epsolon1s*epsolon2s;
Aa := 40;
Bb := 116*(hfic*hfic*hfic)-282*sqr(hfic)+220*hfic-4.8;
Cc := 2.5*(hfic*hfic*hfic)-8.8*hfic+40.7;
Dd := -75*(hfic*hfic*hfic)+585*sqr(hfic)+496*hfic-6.8;
Ee := -169*(hfic*hfic*hfic*hfic)+88*(hfic*hfic*hfic)+584*sqr(hfic)-39*hfic+0.8;
t0fic:=1*(temperatura+10)*tempo0/30;
tffic:=1*(temperatura+10)*tempof/30;
beta0:= ((t0fic/100)*(t0fic/100)*(t0fic/100)+Aa*(t0fic/100)*(t0fic/100)+
Bb*(t0fic/100))/((t0fic/100)*(t0fic/100)*(t0fic/100)+
Cc*(t0fic/100)*(t0fic/100)+Dd*(t0fic/100)+Ee);
betaf:= ((tffic/100)*(tffic/100)*(tffic/100)+Aa*(tffic/100)*(tffic/100)+
Bb*(tffic/100))/((tffic/100)*(tffic/100)*(tffic/100)+
Cc*(tffic/100)*(tffic/100)+Dd*(tffic/100)+Ee);
epsoloncs:= epsoloninfinito*(betaf-beta0);
edit32.text:=floattostr(epsoloncs);
{-----}
bff := bw + 0.2*vao;
pff := (bw-0.14);
areacomposta2 := (bff*capa)+(pff*hlaje);
Uar2 := bff;
if edit52.text<>'' then
Uar2 := strtofloat(edit52.text)/100;
if edit52.text='' then
edit52.text:=floattostr(uar2*100);
hfic2:=2*gama*areacomposta2/Uar2;
{1}
tffic:=strtofloat(edit30.text);
t0fic:=1*t001*(temperatura+10)/30;
tffic:=1*tffic*(temperatura+10)/30;
if (tpcimento = 'CPI') or (tpcimento = 'CPII') then begin
t0fic:=2*t001*(temperatura+10)/30;
tffic:=2*tffic*(temperatura+10)/30;
end;
if tpcimento = 'CPV-ARI' then begin
t0fic:=3*t001*(temperatura+10)/30;
tffic:=3*tffic*(temperatura+10)/30;
end;
beta1:= exp(sss*(1-sqrt(28/t001)));
fia:=0.8*(1-(beta1/beta1infinito));
fi1c:=4.45-0.035*umi;
if slamp<=4 then fi1c:= fi1c*0.75;
if slamp>=10 then fi1c:= fi1c*1.25;
fi2c:=(42+hfic*100)/(20+hfic*100);
fifinfinito:=fi1c*fi2c;
fidinfinito:=0.4;
betad:= (tffic-t0fic+20)/(tffic-t0fic+70);
Aa:= 42*hfic*hfic*hfic-350*sqr(hfic)+588*hfic+113;
Bb:= 768*hfic*hfic*hfic-3060*sqr(hfic)+3234*hfic-23;
Cc:= -200*hfic*hfic*hfic+13*hfic*hfic+1090*hfic+183;
Dd:= 7579*hfic*hfic*hfic-31916*hfic*hfic+35343*hfic+1931;
beta0 := (t0fic*t0fic+Aa*t0fic+Bb)/(t0fic*t0fic+Cc*t0fic+Dd);
betaf := (tffic*tffic+Aa*tffic+Bb)/(tffic*tffic+Cc*tffic+Dd);
100
fi1:= fia+fifinfinito*(betaf-beta0)+fidinfinito*betad;
edit31.Text:=floattostrf(fi1,ffFixed,18,3);
{2}
tffic:=strtofloat(edit30.text);
t0fic:=1*t002*(temperatura+10)/30;
tffic:=1*tffic*(temperatura+10)/30;
if (tpcimento = 'CPI') or (tpcimento = 'CPII') then begin
t0fic:=2*t002*(temperatura+10)/30;
tffic:=2*tffic*(temperatura+10)/30;
end;
if tpcimento = 'CPV-ARI' then begin
t0fic:=3*t002*(temperatura+10)/30;
tffic:=3*tffic*(temperatura+10)/30;
end;
beta1:= exp(sss*(1-sqrt(28/t002)));
fia:=0.8*(1-(beta1/beta1infinito));
fi1c:=4.45-0.035*umi;
if slamp<=4 then fi1c:= fi1c*0.75;
if slamp>=10 then fi1c:= fi1c*1.25;
fi2c:=(42+hfic*100)/(20+hfic*100);
fifinfinito:=fi1c*fi2c;
fidinfinito:=0.4;
betad:= (tffic-t0fic+20)/(tffic-t0fic+70);
Aa:= 42*hfic*hfic*hfic-350*sqr(hfic)+588*hfic+113;
Bb:= 768*hfic*hfic*hfic-3060*sqr(hfic)+3234*hfic-23;
Cc:= -200*hfic*hfic*hfic+13*hfic*hfic+1090*hfic+183;
Dd:= 7579*hfic*hfic*hfic-31916*hfic*hfic+35343*hfic+1931;
beta0 := (t0fic*t0fic+Aa*t0fic+Bb)/(t0fic*t0fic+Cc*t0fic+Dd);
betaf := (tffic*tffic+Aa*tffic+Bb)/(tffic*tffic+Cc*tffic+Dd);
fi2:= fia+fifinfinito*(betaf-beta0)+fidinfinito*betad;
edit46.Text:=floattostrf(fi2,ffFixed,18,3);
{3 - A}
tffic:=strtofloat(edit30.text);
t0fic:=1*t003*(temperatura+10)/30;
tffic:=1*tffic*(temperatura+10)/30;
if (tpcimento = 'CPI') or (tpcimento = 'CPII') then begin
t0fic:=2*t003*(temperatura+10)/30;
101
tffic:=2*tffic*(temperatura+10)/30;
end;
if tpcimento = 'CPV-ARI' then begin
t0fic:=3*t003*(temperatura+10)/30;
tffic:=3*tffic*(temperatura+10)/30;
end;
beta1:= exp(sss*(1-sqrt(28/t003)));
fia:=0.8*(1-(beta1/beta1infinito));
fi1c:=4.45-0.035*umi;
if slamp<=4 then fi1c:= fi1c*0.75;
if slamp>=10 then fi1c:= fi1c*1.25;
fi2c:=(42+hfic*100)/(20+hfic*100);
fifinfinito:=fi1c*fi2c;
fidinfinito:=0.4;
betad:= (tffic-t0fic+20)/(tffic-t0fic+70);
Aa:= 42*hfic*hfic*hfic-350*sqr(hfic)+588*hfic+113;
Bb:= 768*hfic*hfic*hfic-3060*sqr(hfic)+3234*hfic-23;
Cc:= -200*hfic*hfic*hfic+13*hfic*hfic+1090*hfic+183;
Dd:= 7579*hfic*hfic*hfic-31916*hfic*hfic+35343*hfic+1931;
beta0 := (t0fic*t0fic+Aa*t0fic+Bb)/(t0fic*t0fic+Cc*t0fic+Dd);
betaf := (tffic*tffic+Aa*tffic+Bb)/(tffic*tffic+Cc*tffic+Dd);
fi3A:= fia+fifinfinito*(betaf-beta0)+fidinfinito*betad;
{3 - B}
tffic:=strtofloat(edit30.text);
t0fic:=1*t003B*(temperatura+10)/30;
tffic:=1*tffic*(temperatura+10)/30;
if (tpcimento2 = 'CPI') or (tpcimento2 = 'CPII') then begin
t0fic:=2*t003B*(temperatura+10)/30;
tffic:=2*tffic*(temperatura+10)/30;
end;
if tpcimento2 = 'CPV-ARI' then begin
t0fic:=3*t003B*(temperatura+10)/30;
tffic:=3*tffic*(temperatura+10)/30;
end;
beta1:= exp(sss*(1-sqrt(28/t003B)));
fia:=0.8*(1-(beta1/beta1infinito));
fi1c:=4.45-0.035*umi;
if slamp<=4 then fi1c:= fi1c*0.75;
if slamp>=10 then fi1c:= fi1c*1.25;
fi2c:=(42+hfic2*100)/(20+hfic2*100);
fifinfinito:=fi1c*fi2c;
fidinfinito:=0.4;
betad:= (tffic-t0fic+20)/(tffic-t0fic+70);
Aa:= 42*hfic2*hfic2*hfic2-350*sqr(hfic2)+588*hfic2+113;
Bb:= 768*hfic2*hfic2*hfic2-3060*sqr(hfic2)+3234*hfic2-23;
Cc:= -200*hfic2*hfic2*hfic2+13*hfic2*hfic2+1090*hfic2+183;
Dd:= 7579*hfic2*hfic2*hfic2-31916*hfic2*hfic2+35343*hfic2+1931;
beta0 := (t0fic*t0fic+Aa*t0fic+Bb)/(t0fic*t0fic+Cc*t0fic+Dd);
betaf := (tffic*tffic+Aa*tffic+Bb)/(tffic*tffic+Cc*tffic+Dd);
fi3B:= fia+fifinfinito*(betaf-beta0)+fidinfinito*betad;
{3}
fi3:= (fi3A*Ac+fi3B*areacomposta2)/(Ac+areacomposta2);
edit47.Text:=floattostrf(fi3,ffFixed,18,3);
{4 - A}
tffic:=strtofloat(edit30.text);
t0fic:=1*t004*(temperatura+10)/30;
tffic:=1*tffic*(temperatura+10)/30;
if (tpcimento = 'CPI') or (tpcimento = 'CPII') then begin
t0fic:=2*t004*(temperatura+10)/30;
tffic:=2*tffic*(temperatura+10)/30;
end;
if tpcimento = 'CPV-ARI' then begin
t0fic:=3*t004*(temperatura+10)/30;
tffic:=3*tffic*(temperatura+10)/30;
end;
beta1:= exp(sss*(1-sqrt(28/t004)));
fia:=0.8*(1-(beta1/beta1infinito));
103
fi1c:=4.45-0.035*umi;
if slamp<=4 then fi1c:= fi1c*0.75;
if slamp>=10 then fi1c:= fi1c*1.25;
fi2c:=(42+hfic*100)/(20+hfic*100);
fifinfinito:=fi1c*fi2c;
fidinfinito:=0.4;
betad:= (tffic-t0fic+20)/(tffic-t0fic+70);
Aa:= 42*hfic*hfic*hfic-350*sqr(hfic)+588*hfic+113;
Bb:= 768*hfic*hfic*hfic-3060*sqr(hfic)+3234*hfic-23;
Cc:= -200*hfic*hfic*hfic+13*hfic*hfic+1090*hfic+183;
Dd:= 7579*hfic*hfic*hfic-31916*hfic*hfic+35343*hfic+1931;
beta0 := (t0fic*t0fic+Aa*t0fic+Bb)/(t0fic*t0fic+Cc*t0fic+Dd);
betaf := (tffic*tffic+Aa*tffic+Bb)/(tffic*tffic+Cc*tffic+Dd);
fi4A:= fia+fifinfinito*(betaf-beta0)+fidinfinito*betad;
{4 - B}
tffic:=strtofloat(edit30.text);
t0fic:=1*t004B*(temperatura+10)/30;
tffic:=1*tffic*(temperatura+10)/30;
if (tpcimento2 = 'CPI') or (tpcimento2 = 'CPII') then begin
t0fic:=2*t004B*(temperatura+10)/30;
tffic:=2*tffic*(temperatura+10)/30;
end;
if tpcimento2 = 'CPV-ARI' then begin
t0fic:=3*t004B*(temperatura+10)/30;
tffic:=3*tffic*(temperatura+10)/30;
end;
beta1:= exp(sss*(1-sqrt(28/t004B)));
fia:=0.8*(1-(beta1/beta1infinito));
fi1c:=4.45-0.035*umi;
if slamp<=4 then fi1c:= fi1c*0.75;
if slamp>=10 then fi1c:= fi1c*1.25;
fi2c:=(42+hfic2*100)/(20+hfic2*100);
fifinfinito:=fi1c*fi2c;
fidinfinito:=0.4;
betad:= (tffic-t0fic+20)/(tffic-t0fic+70);
Aa:= 42*hfic2*hfic2*hfic2-350*sqr(hfic2)+588*hfic2+113;
104
Bb:= 768*hfic2*hfic2*hfic2-3060*sqr(hfic2)+3234*hfic2-23;
Cc:= -200*hfic2*hfic2*hfic2+13*hfic2*hfic2+1090*hfic2+183;
Dd:= 7579*hfic2*hfic2*hfic2-31916*hfic2*hfic2+35343*hfic2+1931;
beta0 := (t0fic*t0fic+Aa*t0fic+Bb)/(t0fic*t0fic+Cc*t0fic+Dd);
betaf := (tffic*tffic+Aa*tffic+Bb)/(tffic*tffic+Cc*tffic+Dd);
fi4B:= fia+fifinfinito*(betaf-beta0)+fidinfinito*betad;
{4}
fi4:= (fi4A*Ac+fi4B*areacomposta2)/(Ac+areacomposta2);
edit48.Text:=floattostrf(fi4,ffFixed,18,3);
{5 - A}
tffic:=strtofloat(edit30.text);
t0fic:=1*t005*(temperatura+10)/30;
tffic:=1*tffic*(temperatura+10)/30;
if (tpcimento = 'CPI') or (tpcimento = 'CPII') then begin
t0fic:=2*t005*(temperatura+10)/30;
tffic:=2*tffic*(temperatura+10)/30;
end;
if tpcimento = 'CPV-ARI' then begin
t0fic:=3*t005*(temperatura+10)/30;
tffic:=3*tffic*(temperatura+10)/30;
end;
beta1:= exp(sss*(1-sqrt(28/t005)));
fia:=0.8*(1-(beta1/beta1infinito));
fi1c:=4.45-0.035*umi;
if slamp<=4 then fi1c:= fi1c*0.75;
if slamp>=10 then fi1c:= fi1c*1.25;
fi2c:=(42+hfic*100)/(20+hfic*100);
fifinfinito:=fi1c*fi2c;
fidinfinito:=0.4;
betad:= (tffic-t0fic+20)/(tffic-t0fic+70);
Aa:= 42*hfic*hfic*hfic-350*sqr(hfic)+588*hfic+113;
Bb:= 768*hfic*hfic*hfic-3060*sqr(hfic)+3234*hfic-23;
Cc:= -200*hfic*hfic*hfic+13*hfic*hfic+1090*hfic+183;
Dd:= 7579*hfic*hfic*hfic-31916*hfic*hfic+35343*hfic+1931;
beta0 := (t0fic*t0fic+Aa*t0fic+Bb)/(t0fic*t0fic+Cc*t0fic+Dd);
betaf := (tffic*tffic+Aa*tffic+Bb)/(tffic*tffic+Cc*tffic+Dd);
105
fi5A:= fia+fifinfinito*(betaf-beta0)+fidinfinito*betad;
{5 - B}
tffic:=strtofloat(edit30.text);
t0fic:=1*t005B*(temperatura+10)/30;
tffic:=1*tffic*(temperatura+10)/30;
if (tpcimento2 = 'CPI') or (tpcimento2 = 'CPII') then begin
t0fic:=2*t005B*(temperatura+10)/30;
tffic:=2*tffic*(temperatura+10)/30;
end;
if tpcimento2 = 'CPV-ARI' then begin
t0fic:=3*t005B*(temperatura+10)/30;
tffic:=3*tffic*(temperatura+10)/30;
end;
beta1:= exp(sss*(1-sqrt(28/t005B)));
fia:=0.8*(1-(beta1/beta1infinito));
fi1c:=4.45-0.035*umi;
if slamp<=4 then fi1c:= fi1c*0.75;
if slamp>=10 then fi1c:= fi1c*1.25;
fi2c:=(42+hfic2*100)/(20+hfic2*100);
fifinfinito:=fi1c*fi2c;
fidinfinito:=0.4;
betad:= (tffic-t0fic+20)/(tffic-t0fic+70);
Aa:= 42*hfic2*hfic2*hfic2-350*sqr(hfic2)+588*hfic2+113;
Bb:= 768*hfic2*hfic2*hfic2-3060*sqr(hfic2)+3234*hfic2-23;
Cc:= -200*hfic2*hfic2*hfic2+13*hfic2*hfic2+1090*hfic2+183;
Dd:= 7579*hfic2*hfic2*hfic2-31916*hfic2*hfic2+35343*hfic2+1931;
beta0 := (t0fic*t0fic+Aa*t0fic+Bb)/(t0fic*t0fic+Cc*t0fic+Dd);
betaf := (tffic*tffic+Aa*tffic+Bb)/(tffic*tffic+Cc*tffic+Dd);
fi5B:= fia+fifinfinito*(betaf-beta0)+fidinfinito*betad;
{5}
fi5:= (fi5A*Ac+fi5B*areacomposta2)/(Ac+areacomposta2);
edit49.Text:=floattostrf(fi5,ffFixed,18,3);
{q - A: acidental}
tffic:=strtofloat(edit30.text);
t0fic:=1*t00q*(temperatura+10)/30;
tffic:=1*tffic*(temperatura+10)/30;
if (tpcimento = 'CPI') or (tpcimento = 'CPII') then begin
106
t0fic:=2*t00q*(temperatura+10)/30;
tffic:=2*tffic*(temperatura+10)/30;
end;
if tpcimento = 'CPV-ARI' then begin
t0fic:=3*t00q*(temperatura+10)/30;
tffic:=3*tffic*(temperatura+10)/30;
end;
beta1:= exp(sss*(1-sqrt(28/t00q)));
fia:=0.8*(1-(beta1/beta1infinito));
fi1c:=4.45-0.035*umi;
if slamp<=4 then fi1c:= fi1c*0.75;
if slamp>=10 then fi1c:= fi1c*1.25;
fi2c:=(42+hfic*100)/(20+hfic*100);
fifinfinito:=fi1c*fi2c;
fidinfinito:=0.4;
betad:= (tffic-t0fic+20)/(tffic-t0fic+70);
Aa:= 42*hfic*hfic*hfic-350*sqr(hfic)+588*hfic+113;
Bb:= 768*hfic*hfic*hfic-3060*sqr(hfic)+3234*hfic-23;
Cc:= -200*hfic*hfic*hfic+13*hfic*hfic+1090*hfic+183;
Dd:= 7579*hfic*hfic*hfic-31916*hfic*hfic+35343*hfic+1931;
beta0 := (t0fic*t0fic+Aa*t0fic+Bb)/(t0fic*t0fic+Cc*t0fic+Dd);
betaf := (tffic*tffic+Aa*tffic+Bb)/(tffic*tffic+Cc*tffic+Dd);
fiqA:= fia+fifinfinito*(betaf-beta0)+fidinfinito*betad;
{q - B: acidental}
tffic:=strtofloat(edit30.text);
t0fic:=1*t00qB*(temperatura+10)/30;
tffic:=1*tffic*(temperatura+10)/30;
if (tpcimento2 = 'CPI') or (tpcimento2 = 'CPII') then begin
t0fic:=2*t00qB*(temperatura+10)/30;
tffic:=2*tffic*(temperatura+10)/30;
end;
if tpcimento2 = 'CPV-ARI' then begin
t0fic:=3*t00qB;
tffic:=3*tffic;
end;
beta1:= exp(sss*(1-sqrt(28/t00qB)));
fia:=0.8*(1-(beta1/beta1infinito));
fi1c:=4.45-0.035*umi;
if slamp<=4 then fi1c:= fi1c*0.75;
if slamp>=10 then fi1c:= fi1c*1.25;
fi2c:=(42+hfic2*100)/(20+hfic2*100);
fifinfinito:=fi1c*fi2c;
fidinfinito:=0.4;
betad:= (tffic-t0fic+20)/(tffic-t0fic+70);
Aa:= 42*hfic2*hfic2*hfic2-350*sqr(hfic2)+588*hfic2+113;
Bb:= 768*hfic2*hfic2*hfic2-3060*sqr(hfic2)+3234*hfic2-23;
Cc:= -200*hfic2*hfic2*hfic2+13*hfic2*hfic2+1090*hfic2+183;
Dd:= 7579*hfic2*hfic2*hfic2-31916*hfic2*hfic2+35343*hfic2+1931;
beta0 := (t0fic*t0fic+Aa*t0fic+Bb)/(t0fic*t0fic+Cc*t0fic+Dd);
betaf := (tffic*tffic+Aa*tffic+Bb)/(tffic*tffic+Cc*tffic+Dd);
fiqB:= fia+fifinfinito*(betaf-beta0)+fidinfinito*betad;
{q : acidental}
fiq:= (fiqA*Ac+fiqB*areacomposta2)/(Ac+areacomposta2);
edit50.Text:=floattostrf(fiq,ffFixed,18,3);
Aa:=(Np/Ac+(Mp-Mg1)*e/I)*fi1;
Bb:=((Mg2*e*fi2)+(Mg3*e*fi3))/I;
Cc:=((Mg4*ecomposta*fi4)+(Mg5*ecomposta*fi5))/Icomposta;
Dd:=U2*Mqmax*ecomposta*fiq/Icomposta;
sigmapcinf:=(alphaf*(Aa-Bb-Cc-Dd))/10000;
Aa:=(Np/Ac+(-Mp+Mg1)*elinha/I)*fi1;
Bb:=((Mg2*elinha*fi2)+(Mg3*elinha*fi3))/I;
Cc:=((Mg4*ecompostalinha*fi4)+(Mg5*ecompostalinha*fi5))/Icomposta;
Dd:=U2*Mqmax*ecompostalinha*fiq/Icomposta;
sigmapcsup:=abs((alphaf*(Aa+Bb+Cc+Dd))/10000);
{-----}
{-----}
xinf:=-ln(1-Ui1inf/100);
xsup:=-ln(1-Ui1sup/100);
sigmaprinf:=perdainf*xinf;
sigmaprsup:=perdasup*xsup;
ninf:=1+sqr(e)*Ac/I;
nsup:=1+sqr(elinha)*Ac/I;
pp:= (Aplinha+Ap)/Ac;
sigmapi1inf:= (sigmaps-sigmaprinf-sigmapcinf)/(xpinf+xc*alphaf*ninf*(pp/10000));
sigmapi1sup:= (sigmaps-sigmaprsup-sigmapcsup)/(xpsup+xc*alphaf*nsup*(pp/10000));
sigmapinf:= perdainf+sigmapi1inf;
sigmapsup:= perdasup+sigmapi1sup;
perdatinf:= (sigmap-sigmapinf)*100/sigmap;
edit23.text:=floattostrf(perdatinf,ffFixed,18,2);
perdatsup:= (sigmap-sigmapsup)*100/sigmap;
edit24.text:=floattostrf(perdatsup,ffFixed,18,2);
{-----}
{Verificações}
Np:=sigmapinf*Ap+sigmapsup*Aplinha;
Mp:=sigmapinf*Ap*e-sigmapsup*Aplinha*elinha;
limsup:=700*fck;
liminf:=-fctkinf;
yts:=h-ycgcomposta;
Wts:=Icomposta/yts;
sig1s:=Np/Ac+(-Mp+Mg1+Mg2+Mg3)/W+(Mg4+Mg5+U1*Mqmax)/Wts;
sig2s:=Np/Ac+(-Mp+Mg1+Mg2+Mg3)/W+(Mg4+Mg5+U1*Mqmin)/Wts;
sig3i:=Np/Ac+(Mp-Mg1-Mg2-Mg3)/W-(Mg4+Mg5+U2*Mqmax)/Wicomposta;
sig4i:=Np/Ac+(Mp-Mg1-Mg2-Mg3)/W-(Mg4+Mg5+U2*Mqmin)/Wicomposta;
sig3s:=Np/Ac+(-Mp+Mg1+Mg2+Mg3)/W+(Mg4+Mg5+U2*Mqmax)/Wts;
sig4s:=Np/Ac+(-Mp+Mg1+Mg2+Mg3)/W+(Mg4+Mg5+U2*Mqmin)/Wts;
end;
sig1s:=Np/Ac+(-Mp+Mg1+Mg2+Mg3)/W+(Mg4+Mg5+Mqmax)/Wts;
sig2s:=Np/Ac+(-Mp+Mg1+Mg2+Mg3)/W+(Mg4+Mg5+Mqmin)/Wts;
sig3i:=Np/Ac+(Mp-Mg1-Mg2-Mg3)/W-(Mg4+Mg5+U1*Mqmax)/Wicomposta;
sig4i:=Np/Ac+(Mp-Mg1-Mg2-Mg3)/W-(Mg4+Mg5+U1*Mqmin)/Wicomposta;
sig3s:=Np/Ac+(-Mp+Mg1+Mg2+Mg3)/W+(Mg4+Mg5+U1*Mqmax)/Wts;
sig4s:=Np/Ac+(-Mp+Mg1+Mg2+Mg3)/W+(Mg4+Mg5+U1*Mqmin)/Wts;
110
end;
end
ELSE
ShowMessage('Existem campos em branco!');
end;
begin
Edit1.PasteFromClipboard;
end;
edit35.text := '';
edit36.text := '';
edit37.text := '';
edit38.text := '';
edit39.text := '';
edit40.text := '';
edit41.text := '';
edit42.text := '';
edit43.text := '';
edit44.text := '';
edit45.text := '';
edit46.text := '';
edit47.text := '';
edit48.text := '';
edit49.text := '';
edit50.text := '';
edit51.text := '';
edit52.text := '';
edit53.text := '';
edit54.text := '';
edit55.text := '';
edit56.text := '';
edit57.text := '';
edit58.text := '';
combobox1.Text := '';
combobox2.Text := '';
combobox3.Text := '';
combobox4.Text := '';
combobox5.Text := '';
combobox6.Text := '';
combobox7.Text := '';
end;
openDialog := TOpenDialog.Create(self);
openDialog.InitialDir := GetCurrentDir;
openDialog.Options := [ofFileMustExist];
openDialog.Filter := 'Delphi project files|*.txt';
if openDialog.Execute
then
Begin
AssignFile(arq, openDialog.FileName);
Reset(arq);
Readln(arq, linha);
if linha = ' Arquivo para leitura do programa' then
begin
Readln(arq, linha);
Readln(arq, linha);
Readln(arq, linha);
Readln(arq, linha);
Readln(arq, linha);
113
edit58.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 39, 5); //coeficiente frequente
edit13.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 46, 5); //coeficiente quase permanente
edit14.text:= pl;
Readln(arq, linha);
Readln(arq, linha);
Readln(arq, linha);
Readln(arq, linha);
Readln(arq, linha);
pl:=copy(linha, 12, 5); //vão
edit2.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 30, 5); //largura da seção, bw
edit5.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 28, 5); //alura da seção, h
edit4.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 24, 5); //altura útil, d
edit3.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 63, 5); //dlinha
edit44.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 14, 5); //capa
edit42.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 24, 5); //altura da laje
edit43.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 61, 5); //CAA
combobox2.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 41, 5); //Largura da pista
edit18.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 26, 5); //fck
edit6.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 26, 5); //fcj
edit16.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 22, 5); //fck capa
edit41.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 43, 7); //E
edit17.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 66, 10); //Tipo de aço
combobox1.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 51, 6); //Diametro da cordoalha
115
combobox3.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 45, 5); //diametro do estribo
combobox5.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 56, 7); //tipo de brita
combobox4.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 45, 10); //sigma pi
edit7.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 33, 6); //perda inicial
edit51.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 32, 6); //perda final
edit19.text:= pl;
Readln(arq, linha);
Readln(arq, linha);
Readln(arq, linha);
Readln(arq, linha);
Readln(arq, linha);
pl:=copy(linha, 57, 4); //Uar1
edit25.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 57, 4); //Uar2
edit52.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 31, 4); //Umidade
edit26.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 27, 4); //Temperatura
edit27.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 27, 4); //slamp
edit28.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 65, 7); //tipo de cimento 1
combobox6.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 65, 7); //tipo de cimento 2
combobox7.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 35, 6); //tempo final
edit30.text:= pl;
Readln(arq, linha);
Readln(arq, linha);
Readln(arq, linha);
Readln(arq, linha);
Readln(arq, linha);
pl:=copy(linha, 6, 6); //fi1
edit31.text:= pl;
Readln(arq, linha);
pl:=copy(linha, 6, 6); //fi2
edit46.text:= pl;
Readln(arq, linha);
116
end
else showmessage('Arquivo inválido!');
CloseFile (arq);
end
else ShowMessage('A abertura do arquivo foi cancelada!');
end;
117
saveDialog := TSaveDialog.Create(self);
saveDialog.Title := 'Salvar arquivo';
saveDialog.InitialDir := GetCurrentDir;
saveDialog.Filter := 'Text file|*.txt|';
saveDialog.DefaultExt := 'txt';
saveDialog.FilterIndex := 1;
if saveDialog.Execute
then
Begin
{Criando arquivo de texto}
AssignFile (arq, saveDialog.FileName);
Rewrite (arq);
Writeln(arq,' Arquivo para leitura do programa');
Writeln(arq,'=================================================');
{Carregamentos}
Writeln(arq,'');
Writeln(arq,'*Carregamentos');
Writeln(arq,'');
Write(arq,'carga permanente em KN/m, g1 =>');
Writeln(arq,edit1.text);
Write(arq,'t0 em dias =>');
Writeln(arq,edit33.text);
Write(arq,'gama 1 =>');
Writeln(arq,edit53.text);
Write(arq,'carga devido à laje em KN/m, g2 =>');
Writeln(arq,edit10.text);
Write(arq,'t0 em dias =>');
Writeln(arq,edit34.text);
Write(arq,'gama 2 =>');
Writeln(arq,edit54.text);
Write(arq,'carga devido à capa em KN/m, g3 =>');
Writeln(arq,edit35.text);
Write(arq,'t0 em dias =>');
Writeln(arq,edit38.text);
Write(arq,'gama 3 =>');
Writeln(arq,edit55.text);
Write(arq,'carga devido ao revestimento em KN/m, g4 =>');
Writeln(arq,edit36.text);
Write(arq,'t0 em dias =>');
Writeln(arq,edit39.text);
Write(arq,'gama 4 =>');
Writeln(arq,edit56.text);
Write(arq,'carga devido à alvenaria em KN/m, g5 =>');
Writeln(arq,edit37.text);
Write(arq,'t0 em dias =>');
Writeln(arq,edit40.text);
Write(arq,'gama 5 =>');
Writeln(arq,edit57.text);
Write(arq,'carga acidental mínima em KN/m, qmin =>');
118
Writeln(arq,edit11.text);
Write(arq,'carga acidental máxima em KN/m, qmax =>');
Writeln(arq,edit12.text);
Write(arq,'t0 em dias =>');
Writeln(arq,edit45.text);
Write(arq,'gama q =>');
Writeln(arq,edit58.text);
Write(arq,'Coeficiente de combinação frequente =>');
Writeln(arq,edit13.text);
Write(arq,'Coeficiente de combinação quase permanente =>');
Writeln(arq,edit14.text);
Writeln(arq,'');
Writeln(arq,'');
Writeln(arq,'*Características gerais da viga');
Writeln(arq,'');
Write(arq,'vão em m =>');
Writeln(arq,edit2.text);
Write(arq,'largura da seção em cm, bw =>');
Writeln(arq,edit5.text);
Write(arq,'altura da seção em cm, h =>');
Writeln(arq,edit4.text);
Write(arq,'altura útil em cm, d =>');
Writeln(arq,edit3.text);
Write(arq,'menor distância entre o cg da armadura e a face externa, d'+Chr(39)+' =>');
Writeln(arq,edit44.text);
Write(arq,'capa em cm =>');
Writeln(arq,edit42.text);
Write(arq,'altura da laje em cm =>');
Writeln(arq,edit43.text);
Write(arq,'Classe de Agressividade Ambiental (I, II, III ou IV), CAA =>');
Writeln(arq,combobox2.text);
Write(arq,'Largura da pista de protensão em m, L =>');
Writeln(arq,edit18.text);
Write(arq,'fck do concreto em MPa =>');
Writeln(arq,edit6.text);
Write(arq,'fcj do concreto em MPa =>');
Writeln(arq,edit16.text);
Write(arq,'fck da capa em MPa =>');
Writeln(arq,edit41.text);
Write(arq,'Módulo de elasticidade do aço em MPa, E =>');
Writeln(arq,edit17.text);
Write(arq,'Tipo de aço (CP - 175RN, CP - 175RB, CP - 190RN ou CP - 190RB) =>');
Writeln(arq,combobox1.text);
Write(arq,'Diâmetro da cordoalha (9,5mm, 12,7mm ou 15,2mm) =>');
Writeln(arq,combobox3.text);
Write(arq,'Diâmetro do estribo (1/4", 5/16" ou 3/8") =>');
Writeln(arq,combobox5.text);
Write(arq,'Tipo de brita (Brita 0, Brita 1, Brita 2 ou Brita 3) =>');
Writeln(arq,combobox4.text);
Write(arq,'tensão inicial no aço em KN/cm2, sigma pi =>');
Writeln(arq,edit7.text);
Write(arq,'Perdas inicias estimadas em % =>');
119
Writeln(arq,edit51.text);
Write(arq,'Perdas finais estimadas em % =>');
Writeln(arq,edit19.text);
Writeln(arq,'');
Writeln(arq,'');
Writeln(arq,'*Valores para o cálculo do coeficiente de fluência');
Writeln(arq,'');
Write(arq,'Perímetro em contato com o ar da seção 1 em cm, Uar 1 =>');
Writeln(arq,edit25.text);
Write(arq,'Perímetro em contato com o ar da seção 2 em cm, Uar 2 =>');
Writeln(arq,edit52.text);
Write(arq,'Umidade relativa do ar em % =>');
Writeln(arq,edit26.text);
Write(arq,'Temperatura média em ºC =>');
Writeln(arq,edit27.text);
Write(arq,'Slamp do concreto em cm =>');
Writeln(arq,edit28.text);
Write(arq,'Tipo de cimento da seção 1 (CPI, CPII, CPIII, CPIV ou CPV-ARI =>');
Writeln(arq,combobox6.text);
Write(arq,'Tipo de cimento da seção 2 (CPI, CPII, CPIII, CPIV ou CPV-ARI =>');
Writeln(arq,combobox7.text);
Write(arq,'tempo final considerado em dias =>');
Writeln(arq,edit30.text);
Writeln(arq,'');
Writeln(arq,'');
Writeln(arq,'*Coeficientes de fluência e deformação');
Writeln(arq,'');
Write(arq,'Ø1 =>');
Writeln(arq,edit31.text);
Write(arq,'Ø2 =>');
Writeln(arq,edit46.text);
Write(arq,'Ø3 =>');
Writeln(arq,edit47.text);
Write(arq,'Ø4 =>');
Writeln(arq,edit48.text);
Write(arq,'Ø5 =>');
Writeln(arq,edit49.text);
Write(arq,'Øacidental =>');
Writeln(arq,edit50.text);
Write(arq,'Deformação do concreto =>');
Writeln(arq,edit32.text);
{Dados de saída}
Writeln(arq,'');
Writeln(arq,'');
Writeln(arq,'*Dados de saída');
Writeln(arq,'');
Write(arq,'Armadura positiva mínima em cm2 =>');
120
Writeln(arq,edit9.text);
Write(arq,'Armadura positiva máxima em cm2 =>');
Writeln(arq,edit15.text);
Write(arq,'Armadura positiva em cm2 =>');
Writeln(arq,edit22.text);
Write(arq,'Número de cordoalhas =>');
Writeln(arq,edit21.text);
Write(arq,'Armadura negativa em cm2 =>');
Writeln(arq,edit20.text);
Write(arq,'Número de cordoalhas =>');
Writeln(arq,edit29.text);
Write(arq,'máxima altura útil possível em cm =>');
Writeln(arq,edit8.text);
Write(arq,'Perda no bordo inferior em % =>');
Writeln(arq,edit23.text);
Write(arq,'Perda no bordo superior em % =>');
Writeln(arq,edit24.text);
CloseFile(arq);
end
else ShowMessage('O arquivo não foi salvo!');
end;
saveDialog := TSaveDialog.Create(self);
saveDialog.Title := 'Salvar arquivo';
saveDialog.InitialDir := GetCurrentDir;
saveDialog.Filter := 'Text file|*.txt|';
saveDialog.DefaultExt := 'txt';
saveDialog.FilterIndex := 1;
if saveDialog.Execute
then
Begin
{Criando arquivo de texto}
AssignFile (arq, saveDialog.FileName);
Rewrite (arq);
Writeln(arq,' Arquivo para leitura do programa');
Writeln(arq,'=================================================');
{Carregamentos}
Writeln(arq,'');
Writeln(arq,'*Carregamentos');
Writeln(arq,'');
Write(arq,'carga permanente em KN/m, g1 =>');
Writeln(arq,edit1.text);
Write(arq,'t0 em dias =>');
Writeln(arq,edit33.text);
Write(arq,'gama 1 =>');
Writeln(arq,edit53.text);
Write(arq,'carga devido à laje em KN/m, g2 =>');
Writeln(arq,edit10.text);
121
Writeln(arq,'');
Writeln(arq,'');
Writeln(arq,'*Características gerais da viga');
Writeln(arq,'');
Write(arq,'vão em m =>');
Writeln(arq,edit2.text);
Write(arq,'largura da seção em cm, bw =>');
Writeln(arq,edit5.text);
Write(arq,'altura da seção em cm, h =>');
Writeln(arq,edit4.text);
Write(arq,'altura útil em cm, d =>');
Writeln(arq,edit3.text);
Write(arq,'menor distância entre o cg da armadura e a face externa, d'+Chr(39)+' =>');
Writeln(arq,edit44.text);
Write(arq,'capa em cm =>');
Writeln(arq,edit42.text);
Write(arq,'altura da laje em cm =>');
Writeln(arq,edit43.text);
122
Writeln(arq,'');
Writeln(arq,'');
Writeln(arq,'*Valores para o cálculo do coeficiente de fluência');
Writeln(arq,'');
Write(arq,'Perímetro em contato com o ar da seção 1 em cm, Uar 1 =>');
Writeln(arq,edit25.text);
Write(arq,'Perímetro em contato com o ar da seção 2 em cm, Uar 2 =>');
Writeln(arq,edit52.text);
Write(arq,'Umidade relativa do ar em % =>');
Writeln(arq,edit26.text);
Write(arq,'Temperatura média em ºC =>');
Writeln(arq,edit27.text);
Write(arq,'Slamp do concreto em cm =>');
Writeln(arq,edit28.text);
Write(arq,'Tipo de cimento da seção 1 (CPI, CPII, CPIII, CPIV ou CPV-ARI =>');
Writeln(arq,combobox6.text);
Write(arq,'Tipo de cimento da seção 2 (CPI, CPII, CPIII, CPIV ou CPV-ARI =>');
Writeln(arq,combobox7.text);
Write(arq,'tempo final considerado em dias =>');
Writeln(arq,edit30.text);
Writeln(arq,'');
Writeln(arq,'');
Writeln(arq,'*Coeficientes de fluência e deformação');
123
Writeln(arq,'');
Write(arq,'Ø1 =>');
Writeln(arq,edit31.text);
Write(arq,'Ø2 =>');
Writeln(arq,edit46.text);
Write(arq,'Ø3 =>');
Writeln(arq,edit47.text);
Write(arq,'Ø4 =>');
Writeln(arq,edit48.text);
Write(arq,'Ø5 =>');
Writeln(arq,edit49.text);
Write(arq,'Øacidental =>');
Writeln(arq,edit50.text);
Write(arq,'Deformação do concreto =>');
Writeln(arq,edit32.text);
{Dados de saída}
Writeln(arq,'');
Writeln(arq,'');
Writeln(arq,'*Dados de saída');
Writeln(arq,'');
Write(arq,'Armadura positiva mínima em cm2 =>');
Writeln(arq,edit9.text);
Write(arq,'Armadura positiva máxima em cm2 =>');
Writeln(arq,edit15.text);
Write(arq,'Armadura positiva em cm2 =>');
Writeln(arq,edit22.text);
Write(arq,'Número de cordoalhas =>');
Writeln(arq,edit21.text);
Write(arq,'Armadura negativa em cm2 =>');
Writeln(arq,edit20.text);
Write(arq,'Número de cordoalhas =>');
Writeln(arq,edit29.text);
Write(arq,'máxima altura útil possível em cm =>');
Writeln(arq,edit8.text);
Write(arq,'Perda no bordo inferior em % =>');
Writeln(arq,edit23.text);
Write(arq,'Perda no bordo superior em % =>');
Writeln(arq,edit24.text);
CloseFile(arq);
end
else ShowMessage('O arquivo não foi salvo!');
end;
edit1.text := '';
edit2.text := '';
edit3.text := '';
edit4.text := '';
edit5.text := '';
124
edit6.text := '';
edit7.text := '';
edit8.text := '';
edit9.text := '';
edit10.text := '';
edit11.text := '';
edit12.text := '';
edit13.text := '';
edit14.text := '';
edit15.text := '';
edit16.text := '';
edit17.text := '';
edit18.text := '';
edit19.text := '';
edit20.text := '';
edit21.text := '';
edit22.text := '';
edit23.text := '';
edit24.text := '';
edit25.text := '';
edit26.text := '';
edit27.text := '';
edit28.text := '';
edit29.text := '';
edit30.text := '';
edit31.text := '';
edit32.text := '';
edit33.text := '';
edit34.text := '';
edit35.text := '';
edit36.text := '';
edit37.text := '';
edit38.text := '';
edit39.text := '';
edit40.text := '';
edit41.text := '';
edit42.text := '';
edit43.text := '';
edit44.text := '';
edit45.text := '';
edit46.text := '';
edit47.text := '';
edit48.text := '';
edit49.text := '';
edit50.text := '';
edit51.text := '';
edit52.text := '';
edit53.text := '';
edit54.text := '';
edit55.text := '';
edit56.text := '';
edit57.text := '';
edit58.text := '';
edit59.text := '';
edit60.text := '';
125
combobox1.Text := '';
combobox2.Text := '';
combobox3.Text := '';
combobox4.Text := '';
combobox5.Text := '';
combobox6.Text := '';
combobox7.Text := '';
end;
end;
end;
end.
unit Formulario2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Math;
type
TFAPESP2 = class(TForm)
GroupBox1: TGroupBox;
Edit1: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edit2: TEdit;
Label5: TLabel;
Edit3: TEdit;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Edit8: TEdit;
Label13: TLabel;
Edit9: TEdit;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Edit10: TEdit;
Edit11: TEdit;
Edit12: TEdit;
GroupBox2: TGroupBox;
Button1: TButton;
Edit13: TEdit;
127
Label17: TLabel;
Label18: TLabel;
Edit14: TEdit;
Label19: TLabel;
Label20: TLabel;
Label21: TLabel;
Edit15: TEdit;
Label22: TLabel;
Edit16: TEdit;
Edit17: TEdit;
GroupBox4: TGroupBox;
Button2: TButton;
Button3: TButton;
Edit18: TEdit;
Edit19: TEdit;
Edit20: TEdit;
Edit21: TEdit;
Label23: TLabel;
Label24: TLabel;
Label25: TLabel;
Label26: TLabel;
Label27: TLabel;
Label28: TLabel;
Label29: TLabel;
Label30: TLabel;
GroupBox3: TGroupBox;
ComboBox1: TComboBox;
Edit22: TEdit;
Edit23: TEdit;
Label31: TLabel;
Label32: TLabel;
Button4: TButton;
Button5: TButton;
Label111: TLabel;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FAPESP2: TFAPESP2;
b3on,{se o valor for 1 indica que o botão 3 do form 2 foi ativado}
b4on,{se o valor for 1 indica que o botão 4 do form 2 foi ativado}
s1i,s1s,s2i,s2s,s3i,s3s,s4i,s4s, {tensões para a verificação por fissuras}
lsup, {limite superior}
linf, {limite inferior}
Ap, {área de aço no bordo inferior}
fckcp, {fck da capa de concreto}
128
epsolonp,
epsolon,
sigmapd,
Ep, {módulo de elasticidade do aço}
dte, {altura útil da seção T}
bf, {largura da mesa da viga "T"}
bw, {largura da alma da viga "T"}
capa, {espessura da capa de concreto}
x, {posição da LN}
x2, {máximo valor para que a seção esteja no domínio 2}
Mg1, {Momento causado pelo carregamento g1}
Mg2, {Momento causado pelo carregamento g2}
Mg3, {Momento causado pelo carregamento g3}
Mg4, {Momento causado pelo carregamento g4}
Mg5, {Momento causado pelo carregamento g5}
Mqmin, {Momento causado pelo carregamento acidental mínimo}
Mqmax, {Momento causado pelo carregamento acidental máximo}
fs1, {fator de segurança do carregamento 1}
fs2, {fator de segurança do carregamento 2}
fs3, {fator de segurança do carregamento 3}
fs4, {fator de segurança do carregamento 4}
fs5, {fator de segurança do carregamento 5}
fsq, {fator de segurança do carregamento acidental}
Mr, {Momento resistido}
Ma, {Momento atuante}
Mg1sx, {Momento do carregamento 1, seção x}
Mg1s1, {Momento do carregamento 1, seção 1}
Mg1s2, {Momento do carregamento 1, seção 2}
Mg1s3, {Momento do carregamento 1, seção 3}
Mg1s4, {Momento do carregamento 1, seção 4}
Mg2sx, {Momento do carregamento 2, seção x}
Mg2s1, {Momento do carregamento 2, seção 1}
Mg2s2, {Momento do carregamento 2, seção 2}
Mg2s3, {Momento do carregamento 2, seção 3}
Mg2s4, {Momento do carregamento 2, seção 4}
Mg3sx, {Momento do carregamento 3, seção x}
Mg3s1, {Momento do carregamento 3, seção 1}
Mg3s2, {Momento do carregamento 3, seção 2}
Mg3s3, {Momento do carregamento 3, seção 3}
Mg3s4, {Momento do carregamento 3, seção 4}
Mg4sx, {Momento do carregamento 4, seção x}
Mg4s1, {Momento do carregamento 4, seção 1}
Mg4s2, {Momento do carregamento 4, seção 2}
Mg4s3, {Momento do carregamento 4, seção 3}
Mg4s4, {Momento do carregamento 4, seção 4}
Mg5sx, {Momento do carregamento 5, seção x}
Mg5s1, {Momento do carregamento 5, seção 1}
Mg5s2, {Momento do carregamento 5, seção 2}
Mg5s3, {Momento do carregamento 5, seção 3}
Mg5s4, {Momento do carregamento 5, seção 4}
Mqminsx, {Momento do carregamento acidental minimo, seção x}
Mqmins1, {Momento do carregamento acidental minimo, seção 1}
Mqmins2, {Momento do carregamento acidental minimo, seção 2}
Mqmins3, {Momento do carregamento acidental minimo, seção 3}
Mqmins4, {Momento do carregamento acidental minimo, seção 4}
129
Psup,
M0,
Msdx,
Vc,
Vsw,
Asw,
xx1, {décimo de vão}
xx2, {2x décimo de vão}
xx3, {3x décimo de vão}
xx4, {4x décimo de vão}
vao, {vão da viga}
g1, g2, g3, g4, g5, qmin, qmax,
sigmacginfs1, {perda por deformação imediata no concreto}
sigmacgsups1,
sigmacginfs2,
sigmacgsups2,
sigmacginfs3,
sigmacgsups3,
sigmacginfs4,
sigmacgsups4,
perdainfs1, {total das perdas iniciais}
perdasups1,
perdainfs2,
perdasups2,
perdainfs3,
perdasups3,
perdainfs4,
perdasups4,
Nps1,
Mps1,
Nps2,
Mps2,
Nps3,
Mps3,
Nps4,
Mps4,
sigmapcinfs1,
sigmapcsups1,
sigmapcinfs2,
sigmapcsups2,
sigmapcinfs3,
sigmapcsups3,
sigmapcinfs4,
sigmapcsups4,
xinfs1,
xsups1,
xinfs2,
xsups2,
xinfs3,
xsups3,
xinfs4,
xsups4,
sigmaprinfs1,
sigmaprsups1,
sigmaprinfs2,
131
sigmaprsups2,
sigmaprinfs3,
sigmaprsups3,
sigmaprinfs4,
sigmaprsups4,
sigmapi1infs1,
sigmapi1sups1,
sigmapi1infs2,
sigmapi1sups2,
sigmapi1infs3,
sigmapi1sups3,
sigmapi1infs4,
sigmapi1sups4,
sigmapinfs1,
sigmapsups1,
sigmapinfs2,
sigmapsups2,
sigmapinfs3,
sigmapsups3,
sigmapinfs4,
sigmapsups4,
sig1is1,
sig1ss1,
sig1is2,
sig1ss2,
sig1is3,
sig1ss3,
sig1is4,
sig1ss4,
sig2is1,
sig2ss1,
sig2is2,
sig2ss2,
sig2is3,
sig2ss3,
sig2is4,
sig2ss4,
sig3is1,
sig3ss1,
sig3is2,
sig3ss2,
sig3is3,
sig3ss3,
sig3is4,
sig3ss4,
sig4is1,
sig4ss1,
sig4is2,
sig4ss2,
sig4is3,
sig4ss3,
sig4is4,
sig4ss4,
sigma1i, {tensão considerando as perdas iniciais}
sigma1s,
132
sigma2i,
sigma2s,
sigma3i,
sigma3s,
sigma4i,
sigma4s,
sigma5i,
sigma5s,
smax, {espaçamento maximo}
lbpti,
lbpts,
sigxi,
sigxs,
lzinf, {limite inferior no tempo zero}
lzsup, {limite superior no tempo zero}
fbpd,
nn1, {valor de n (éta) 1}
nn2, {valor de n (éta) 2}
lbptinf, {comprimento de transferência no bordo inferior}
lbptsup, {comprimento de transferência no bordo superior}
lpinf, {Distância de regularização inferior}
lpsup {Distância de regularização superior}: real;
f: TextFile;
implementation
{$R *.dfm}
Mg1:=formulario.Mg1;
Mg2:=formulario.Mg2;
Mg3:=formulario.Mg3;
Mg4:=formulario.Mg4;
Mg5:=formulario.Mg5;
Mqmin:=formulario.Mqmin;
Mqmax:=formulario.Mqmax;
Ma:= Mg1*fs1+Mg2*fs2+Mg3*fs3+Mg4*fs4+Mg5*fs5+Mqmax*fsq;
edit15.text:=floattostrf(Ma,ffFixed,18,2);
g1:=formulario.g1;
g2:=formulario.g2;
g3:=formulario.g3;
g4:=formulario.g4;
g5:=formulario.g5;
qmin:=formulario.qmin;
qmax:=formulario.qmax;
vao:=formulario.vao;
x:= Ap*sigmapd*140/(0.68*bf*fckcp*1000);
edit13.text:=floattostrf(x,ffFixed,18,2);
edit14.text:=floattostrf(Mr,ffFixed,18,2);
if Mr<Ma then
begin
edit14.color:=clred;
Showmessage('A seção não foi verificada pelo ELU.');
end;
if x<x2 then
edit16.text:= 'Domínio 2';
if x<capa then
edit17.Text:= 'LN na mesa';
if x>capa then
edit17.Text:= 'LN na alma';
end;
procedure TFAPESP2.FormCreate(Sender: TObject);
begin
{Apresentando os valores da verificação da fissuração}
s1i:= formulario.sig1i;
s1s:= formulario.sig1s;
s2i:= formulario.sig2i;
s2s:= formulario.sig2s;
s3i:= formulario.sig3i;
s3s:= formulario.sig3s;
s4i:= formulario.sig4i;
s4s:= formulario.sig4s;
lsup:=formulario.limsup;
linf:=formulario.liminf;
edit1.text:=floattostrf(s3i,ffFixed,18,2);
if (s3i<0) or (s3i>lsup) then edit1.Color:=clred;
edit2.text:=floattostrf(s4i,ffFixed,18,2);
if (s4i<0) or (s4i>lsup) then edit2.Color:=clred;
edit3.text:=floattostrf(s3s,ffFixed,18,2);
if (s3s<0) or (s3s>lsup) then edit3.Color:=clred;
edit4.text:=floattostrf(s4s,ffFixed,18,2);
if (s4s<0) or (s4s>lsup) then edit4.Color:=clred;
edit7.text:=floattostrf(s1i,ffFixed,18,2);
if (s1i<linf) or (s1i>lsup) then edit7.Color:=clred;
edit8.text:=floattostrf(s2i,ffFixed,18,2);
if (s2i<linf) or (s2i>lsup) then edit8.Color:=clred;
edit9.text:=floattostrf(s1s,ffFixed,18,2);
if (s1s<linf) or (s1s>lsup) then edit9.Color:=clred;
edit10.text:=floattostrf(s2s,ffFixed,18,2);
if (s2s<linf) or (s2s>lsup) then edit10.Color:=clred;
edit5.text:='0';
edit6.text:=floattostrf(lsup,ffFixed,18,2);
136
edit11.text:=floattostrf(linf,ffFixed,18,2);
edit12.text:=floattostrf(lsup,ffFixed,18,2);
end;
lpinf:=sqrt(sqr(h*100)+sqr(0.6*lbptinf));
if lpinf<=lbptinf then lpinf:=lbptinf;
lpsup:=sqrt(sqr(h*100)+sqr(0.6*lbptsup));
if lpsup<=lbptsup then lpsup:=lbptsup;
edit18.text:=floattostrf(lbptsup,ffFixed,18,2);
edit19.text:=floattostrf(lbptinf,ffFixed,18,2);
edit20.text:=floattostrf(lpsup,ffFixed,18,2);
edit21.text:=floattostrf(lpinf,ffFixed,18,2);
end;
Ep:= formulario.Ep;
epsolonp:= sigmapinf/Ep;
epsolon:= (0.01+epsolonp)*1000;
capa:= formulario.capa*100;
dte:=formulario.d*100+formulario.hlaje*100+capa;
x2:= 3.5*dte/13.5;
fs1:=formulario.fs1;
fs2:=formulario.fs2;
fs3:=formulario.fs3;
fs4:=formulario.fs4;
fs5:=formulario.fs5;
fsq:=formulario.fsq;
Mg1:=formulario.Mg1;
Mg2:=formulario.Mg2;
Mg3:=formulario.Mg3;
Mg4:=formulario.Mg4;
Mg5:=formulario.Mg5;
Mqmin:=formulario.Mqmin;
Mqmax:=formulario.Mqmax;
Ma:= Mg1*fs1+Mg2*fs2+Mg3*fs3+Mg4*fs4+Mg5*fs5+Mqmax*fsq;
g1:=formulario.g1;
g2:=formulario.g2;
g3:=formulario.g3;
g4:=formulario.g4;
g5:=formulario.g5;
qmin:=formulario.qmin;
qmax:=formulario.qmax;
vao:=formulario.vao;
Mg2s1:=(g2*vao*xx1/2)-(g2*sqr(xx1)/2);
Mg2s2:=(g2*vao*xx2/2)-(g2*sqr(xx2)/2);
Mg2s3:=(g2*vao*xx3/2)-(g2*sqr(xx3)/2);
Mg2s4:=(g2*vao*xx4/2)-(g2*sqr(xx4)/2);
Mg3s1:=(g3*vao*xx1/2)-(g3*sqr(xx1)/2);
Mg3s2:=(g3*vao*xx2/2)-(g3*sqr(xx2)/2);
Mg3s3:=(g3*vao*xx3/2)-(g3*sqr(xx3)/2);
Mg3s4:=(g3*vao*xx4/2)-(g3*sqr(xx4)/2);
Mg4s1:=(g4*vao*xx1/2)-(g4*sqr(xx1)/2);
Mg4s2:=(g4*vao*xx2/2)-(g4*sqr(xx2)/2);
Mg4s3:=(g4*vao*xx3/2)-(g4*sqr(xx3)/2);
Mg4s4:=(g4*vao*xx4/2)-(g4*sqr(xx4)/2);
138
Mg5s1:=(g5*vao*xx1/2)-(g5*sqr(xx1)/2);
Mg5s2:=(g5*vao*xx2/2)-(g5*sqr(xx2)/2);
Mg5s3:=(g5*vao*xx3/2)-(g5*sqr(xx3)/2);
Mg5s4:=(g5*vao*xx4/2)-(g5*sqr(xx4)/2);
Mqmins1:=(qmin*vao*xx1/2)-(qmin*sqr(xx1)/2);
Mqmins2:=(qmin*vao*xx2/2)-(qmin*sqr(xx2)/2);
Mqmins3:=(qmin*vao*xx3/2)-(qmin*sqr(xx3)/2);
Mqmins4:=(qmin*vao*xx4/2)-(qmin*sqr(xx4)/2);
Mqmaxs1:=(qmax*vao*xx1/2)-(qmax*sqr(xx1)/2);
Mqmaxs2:=(qmax*vao*xx2/2)-(qmax*sqr(xx2)/2);
Mqmaxs3:=(qmax*vao*xx3/2)-(qmax*sqr(xx3)/2);
Mqmaxs4:=(qmax*vao*xx4/2)-(qmax*sqr(xx4)/2);
{Relaxação da armadura}
sigmapr:=formulario.sigmapr;
{Perdas diferidas}
{Perda por retração do concreto}
sigmaps:= formulario.sigmaps;
fi1:=formulario.fi1;
fi2:=formulario.fi2;
fi3:=formulario.fi3;
fi4:=formulario.fi4;
fi5:=formulario.fi5;
fiq:=formulario.fiq;
Nps1:=Ap*perdainfs1+Aplinha*perdasups1;
Mps1:=Ap*perdainfs1*e - Aplinha*perdasups1*elinha;
Nps2:=Ap*perdainfs2+Aplinha*perdasups2;
Mps2:=Ap*perdainfs2*e - Aplinha*perdasups2*elinha;
Nps3:=Ap*perdainfs3+Aplinha*perdasups3;
Mps3:=Ap*perdainfs3*e - Aplinha*perdasups3*elinha;
Nps4:=Ap*perdainfs4+Aplinha*perdasups4;
Mps4:=Ap*perdainfs4*e - Aplinha*perdasups4*elinha;
alphaf:= Ep/(5600*sqrt(fck));
{Seção 1}
Aa:=(Nps1/Ac+(Mps1-Mg1s1)*e/I)*fi1;
Bb:=((Mg2s1*e*fi2)+(Mg3s1*e*fi3))/I;
Cc:=((Mg4s1*ecomposta*fi4)+(Mg5s1*ecomposta*fi5))/Icomposta;
Dd:=U2*Mqmaxs1*ecomposta*fiq/Icomposta;
sigmapcinfs1:=(alphaf*(Aa-Bb-Cc-Dd))/10000;
Aa:=(Nps1/Ac+(-Mps1+Mg1s1)*elinha/I)*fi1;
Bb:=((Mg2s1*elinha*fi2)+(Mg3s1*elinha*fi3))/I;
Cc:=((Mg4s1*ecompostalinha*fi4)+(Mg5s1*ecompostalinha*fi5))/Icomposta;
Dd:=U2*Mqmaxs1*ecompostalinha*fiq/Icomposta;
sigmapcsups1:=abs((alphaf*(Aa+Bb+Cc+Dd))/10000);
{Seção 2}
Aa:=(Nps2/Ac+(Mps2-Mg1s2)*e/I)*fi1;
Bb:=((Mg2s2*e*fi2)+(Mg3s2*e*fi3))/I;
Cc:=((Mg4s2*ecomposta*fi4)+(Mg5s2*ecomposta*fi5))/Icomposta;
Dd:=U2*Mqmaxs2*ecomposta*fiq/Icomposta;
sigmapcinfs2:=(alphaf*(Aa-Bb-Cc-Dd))/10000;
Aa:=(Nps2/Ac+(-Mps2+Mg1s2)*elinha/I)*fi1;
Bb:=((Mg2s2*elinha*fi2)+(Mg3s2*elinha*fi3))/I;
Cc:=((Mg4s2*ecompostalinha*fi4)+(Mg5s2*ecompostalinha*fi5))/Icomposta;
Dd:=U2*Mqmaxs2*ecompostalinha*fiq/Icomposta;
sigmapcsups2:=abs((alphaf*(Aa+Bb+Cc+Dd))/10000);
{Seção 3}
Aa:=(Nps3/Ac+(Mps3-Mg1s3)*e/I)*fi1;
Bb:=((Mg2s3*e*fi2)+(Mg3s3*e*fi3))/I;
Cc:=((Mg4s3*ecomposta*fi4)+(Mg5s3*ecomposta*fi5))/Icomposta;
Dd:=U2*Mqmaxs3*ecomposta*fiq/Icomposta;
sigmapcinfs3:=(alphaf*(Aa-Bb-Cc-Dd))/10000;
Aa:=(Nps3/Ac+(-Mps3+Mg1s3)*elinha/I)*fi1;
Bb:=((Mg2s3*elinha*fi2)+(Mg3s3*elinha*fi3))/I;
Cc:=((Mg4s3*ecompostalinha*fi4)+(Mg5s3*ecompostalinha*fi5))/Icomposta;
Dd:=U2*Mqmaxs3*ecompostalinha*fiq/Icomposta;
140
sigmapcsups3:=abs((alphaf*(Aa+Bb+Cc+Dd))/10000);
{Seção 4}
Aa:=(Nps4/Ac+(Mps4-Mg1s4)*e/I)*fi1;
Bb:=((Mg2s4*e*fi2)+(Mg3s4*e*fi3))/I;
Cc:=((Mg4s4*ecomposta*fi4)+(Mg5s4*ecomposta*fi5))/Icomposta;
Dd:=U2*Mqmaxs4*ecomposta*fiq/Icomposta;
sigmapcinfs4:=(alphaf*(Aa-Bb-Cc-Dd))/10000;
Aa:=(Nps4/Ac+(-Mps4+Mg1s4)*elinha/I)*fi1;
Bb:=((Mg2s4*elinha*fi2)+(Mg3s4*elinha*fi3))/I;
Cc:=((Mg4s4*ecompostalinha*fi4)+(Mg5s4*ecompostalinha*fi5))/Icomposta;
Dd:=U2*Mqmaxs4*ecompostalinha*fiq/Icomposta;
sigmapcsups4:=abs((alphaf*(Aa+Bb+Cc+Dd))/10000);
xinfs1:=-ln(1-Ui1inf/100);
xsups1:=-ln(1-Ui1sup/100);
sigmaprinfs1:=perdainfs1*xinfs1;
sigmaprsups1:=perdasups1*xsups1;
{Seção 2}
Rinf:=perdainfs2/fy;
Rsup:=perdasups2/fy;
xinfs2:=-ln(1-Ui1inf/100);
xsups2:=-ln(1-Ui1sup/100);
sigmaprinfs2:=perdainfs2*xinfs2;
sigmaprsups2:=perdasups2*xsups2;
{Seção 3}
Rinf:=perdainfs3/fy;
142
Rsup:=perdasups3/fy;
xinfs3:=-ln(1-Ui1inf/100);
xsups3:=-ln(1-Ui1sup/100);
sigmaprinfs3:=perdainfs3*xinfs3;
sigmaprsups3:=perdasups3*xsups3;
{Seção 4}
Rinf:=perdainfs4/fy;
Rsup:=perdasups4/fy;
end;
if (tpaco = 'CP - 175RB') or (tpaco = 'CP - 190RB') then
begin
if Rinf<=0.5 then U1000:=0;
if (Rinf>0.5) and (Rinf<=0.6) then U1000:=13*(Rinf-0.5);
if (Rinf>0.6) and (Rinf<=0.7) then U1000:=12*(Rinf-0.6)+1.3;
if (Rinf>0.7) and (Rinf<=0.8) then U1000:=10*(Rinf-0.7)+2.5;
if Rinf>0.8 then U1000:=3.5;
end;
Ui1inf:= 2.5*U1000;
xinfs4:=-ln(1-Ui1inf/100);
xsups4:=-ln(1-Ui1sup/100);
sigmaprinfs4:=perdainfs4*xinfs4;
sigmaprsups4:=perdasups4*xsups4;
sigmapi1infs1:= (sigmaps-sigmaprinfs1-sigmapcinfs1)/(xpinf+xc*alphaf*ninf*(pp/10000));
sigmapi1sups1:= (sigmaps-sigmaprsups1-
sigmapcsups1)/(xpsup+xc*alphaf*nsup*(pp/10000));
sigmapinfs1:= perdainfs1+sigmapi1infs1;
sigmapsups1:= perdasups1+sigmapi1sups1;
{Seção 2}
xpinf:= xinfs2+1;
xpsup:= xsups2+1;
xc:= 1+0.5*fi1;
144
ninf:=1+sqr(e)*Ac/I;
nsup:=1+sqr(elinha)*Ac/I;
pp:= (Aplinha+Ap)/Ac;
sigmapi1infs2:= (sigmaps-sigmaprinfs2-sigmapcinfs2)/(xpinf+xc*alphaf*ninf*(pp/10000));
sigmapi1sups2:= (sigmaps-sigmaprsups2-
sigmapcsups2)/(xpsup+xc*alphaf*nsup*(pp/10000));
sigmapinfs2:= perdainfs2+sigmapi1infs2;
sigmapsups2:= perdasups2+sigmapi1sups2;
{Seção 3}
xpinf:= xinfs3+1;
xpsup:= xsups3+1;
xc:= 1+0.5*fi1;
ninf:=1+sqr(e)*Ac/I;
nsup:=1+sqr(elinha)*Ac/I;
pp:= (Aplinha+Ap)/Ac;
sigmapi1infs3:= (sigmaps-sigmaprinfs3-sigmapcinfs3)/(xpinf+xc*alphaf*ninf*(pp/10000));
sigmapi1sups3:= (sigmaps-sigmaprsups3-
sigmapcsups3)/(xpsup+xc*alphaf*nsup*(pp/10000));
sigmapinfs3:= perdainfs3+sigmapi1infs3;
sigmapsups3:= perdasups3+sigmapi1sups3;
{Seção 4}
xpinf:= xinfs4+1;
xpsup:= xsups4+1;
xc:= 1+0.5*fi1;
ninf:=1+sqr(e)*Ac/I;
nsup:=1+sqr(elinha)*Ac/I;
pp:= (Aplinha+Ap)/Ac;
sigmapi1infs4:= (sigmaps-sigmaprinfs4-sigmapcinfs4)/(xpinf+xc*alphaf*ninf*(pp/10000));
sigmapi1sups4:= (sigmaps-sigmaprsups4-
sigmapcsups4)/(xpsup+xc*alphaf*nsup*(pp/10000));
sigmapinfs4:= perdainfs4+sigmapi1infs4;
sigmapsups4:= perdasups4+sigmapi1sups4;
{Verificações}
{Seção 1}
Np:=sigmapinfs1*Ap+sigmapsups1*Aplinha;
Mp:=sigmapinfs1*Ap*e-sigmapsups1*Aplinha*elinha;
limsup:=700*fck;
liminf:=-fctkinf;
yts:=h-ycgcomposta;
Wts:=Icomposta/yts;
sig1ss1:=Np/Ac+(-Mp+Mg1s1+Mg2s1+Mg3s1)/W+(Mg4s1+Mg5s1+U1*Mqmaxs1)/Wts;
sig2ss1:=Np/Ac+(-Mp+Mg1s1+Mg2s1+Mg3s1)/W+(Mg4s1+Mg5s1+U1*Mqmins1)/Wts;
sig3is1:=Np/Ac+(Mp-Mg1s1-Mg2s1-Mg3s1)/W-(Mg4s1+Mg5s1+U2*Mqmaxs1)/Wicomposta;
sig4is1:=Np/Ac+(Mp-Mg1s1-Mg2s1-Mg3s1)/W-(Mg4s1+Mg5s1+U2*Mqmins1)/Wicomposta;
sig3ss1:=Np/Ac+(-Mp+Mg1s1+Mg2s1+Mg3s1)/W+(Mg4s1+Mg5s1+U2*Mqmaxs1)/Wts;
sig4ss1:=Np/Ac+(-Mp+Mg1s1+Mg2s1+Mg3s1)/W+(Mg4s1+Mg5s1+U2*Mqmins1)/Wts;
end;
sig1ss1:=Np/Ac+(-Mp+Mg1s1+Mg2s1+Mg3s1)/W+(Mg4s1+Mg5s1+Mqmaxs1)/Wts;
sig2ss1:=Np/Ac+(-Mp+Mg1s1+Mg2s1+Mg3s1)/W+(Mg4s1+Mg5s1+Mqmins1)/Wts;
sig3is1:=Np/Ac+(Mp-Mg1s1-Mg2s1-Mg3s1)/W-(Mg4s1+Mg5s1+U1*Mqmaxs1)/Wicomposta;
sig4is1:=Np/Ac+(Mp-Mg1s1-Mg2s1-Mg3s1)/W-(Mg4s1+Mg5s1+U1*Mqmins1)/Wicomposta;
sig3ss1:=Np/Ac+(-Mp+Mg1s1+Mg2s1+Mg3s1)/W+(Mg4s1+Mg5s1+U1*Mqmaxs1)/Wts;
sig4ss1:=Np/Ac+(-Mp+Mg1s1+Mg2s1+Mg3s1)/W+(Mg4s1+Mg5s1+U1*Mqmins1)/Wts;
end;
{Seção 2}
Np:=sigmapinfs2*Ap+sigmapsups2*Aplinha;
Mp:=sigmapinfs2*Ap*e-sigmapsups2*Aplinha*elinha;
limsup:=700*fck;
liminf:=-fctkinf;
yts:=h-ycgcomposta;
Wts:=Icomposta/yts;
sig1ss2:=Np/Ac+(-Mp+Mg1s2+Mg2s2+Mg3s2)/W+(Mg4s2+Mg5s2+U1*Mqmaxs2)/Wts;
sig2ss2:=Np/Ac+(-Mp+Mg1s2+Mg2s2+Mg3s2)/W+(Mg4s2+Mg5s2+U1*Mqmins2)/Wts;
sig3is2:=Np/Ac+(Mp-Mg1s2-Mg2s2-Mg3s2)/W-(Mg4s2+Mg5s2+U2*Mqmaxs2)/Wicomposta;
sig4is2:=Np/Ac+(Mp-Mg1s2-Mg2s2-Mg3s2)/W-(Mg4s2+Mg5s2+U2*Mqmins2)/Wicomposta;
sig3ss2:=Np/Ac+(-Mp+Mg1s2+Mg2s2+Mg3s2)/W+(Mg4s2+Mg5s2+U2*Mqmaxs2)/Wts;
sig4ss2:=Np/Ac+(-Mp+Mg1s2+Mg2s2+Mg3s2)/W+(Mg4s2+Mg5s2+U2*Mqmins2)/Wts;
end;
sig2is2:=Np/Ac+(Mp-Mg1s2-Mg2s2-Mg3s2)/W-(Mg4s2+Mg5s2+Mqmins2)/Wicomposta;
sig1ss2:=Np/Ac+(-Mp+Mg1s2+Mg2s2+Mg3s2)/W+(Mg4s2+Mg5s2+Mqmaxs2)/Wts;
sig2ss2:=Np/Ac+(-Mp+Mg1s2+Mg2s2+Mg3s2)/W+(Mg4s2+Mg5s2+Mqmins2)/Wts;
sig3is2:=Np/Ac+(Mp-Mg1s2-Mg2s2-Mg3s2)/W-(Mg4s2+Mg5s2+U1*Mqmaxs2)/Wicomposta;
sig4is2:=Np/Ac+(Mp-Mg1s2-Mg2s2-Mg3s2)/W-(Mg4s2+Mg5s2+U1*Mqmins2)/Wicomposta;
sig3ss2:=Np/Ac+(-Mp+Mg1s2+Mg2s2+Mg3s2)/W+(Mg4s2+Mg5s2+U1*Mqmaxs2)/Wts;
sig4ss2:=Np/Ac+(-Mp+Mg1s2+Mg2s2+Mg3s2)/W+(Mg4s2+Mg5s2+U1*Mqmins2)/Wts;
end;
{Seção 3}
Np:=sigmapinfs3*Ap+sigmapsups3*Aplinha;
Mp:=sigmapinfs3*Ap*e-sigmapsups3*Aplinha*elinha;
limsup:=700*fck;
liminf:=-fctkinf;
yts:=h-ycgcomposta;
Wts:=Icomposta/yts;
sig1ss3:=Np/Ac+(-Mp+Mg1s3+Mg2s3+Mg3s3)/W+(Mg4s3+Mg5s3+U1*Mqmaxs3)/Wts;
sig2ss3:=Np/Ac+(-Mp+Mg1s3+Mg2s3+Mg3s3)/W+(Mg4s3+Mg5s3+U1*Mqmins3)/Wts;
sig3is3:=Np/Ac+(Mp-Mg1s3-Mg2s3-Mg3s3)/W-(Mg4s3+Mg5s3+U2*Mqmaxs3)/Wicomposta;
sig4is3:=Np/Ac+(Mp-Mg1s3-Mg2s3-Mg3s3)/W-(Mg4s3+Mg5s3+U2*Mqmins3)/Wicomposta;
sig3ss3:=Np/Ac+(-Mp+Mg1s3+Mg2s3+Mg3s3)/W+(Mg4s3+Mg5s3+U2*Mqmaxs3)/Wts;
sig4ss3:=Np/Ac+(-Mp+Mg1s3+Mg2s3+Mg3s3)/W+(Mg4s3+Mg5s3+U2*Mqmins3)/Wts;
end;
sig1ss3:=Np/Ac+(-Mp+Mg1s3+Mg2s3+Mg3s3)/W+(Mg4s3+Mg5s3+Mqmaxs3)/Wts;
sig2ss3:=Np/Ac+(-Mp+Mg1s3+Mg2s3+Mg3s3)/W+(Mg4s3+Mg5s3+Mqmins3)/Wts;
sig3is3:=Np/Ac+(Mp-Mg1s3-Mg2s3-Mg3s3)/W-(Mg4s3+Mg5s3+U1*Mqmaxs3)/Wicomposta;
sig4is3:=Np/Ac+(Mp-Mg1s3-Mg2s3-Mg3s3)/W-(Mg4s3+Mg5s3+U1*Mqmins3)/Wicomposta;
sig3ss3:=Np/Ac+(-Mp+Mg1s3+Mg2s3+Mg3s3)/W+(Mg4s3+Mg5s3+U1*Mqmaxs3)/Wts;
sig4ss3:=Np/Ac+(-Mp+Mg1s3+Mg2s3+Mg3s3)/W+(Mg4s3+Mg5s3+U1*Mqmins3)/Wts;
end;
{Seção 4}
Np:=sigmapinfs4*Ap+sigmapsups4*Aplinha;
Mp:=sigmapinfs4*Ap*e-sigmapsups4*Aplinha*elinha;
147
limsup:=700*fck;
liminf:=-fctkinf;
yts:=h-ycgcomposta;
Wts:=Icomposta/yts;
sig1ss4:=Np/Ac+(-Mp+Mg1s4+Mg2s4+Mg3s4)/W+(Mg4s4+Mg5s4+U1*Mqmaxs4)/Wts;
sig2ss4:=Np/Ac+(-Mp+Mg1s4+Mg2s4+Mg3s4)/W+(Mg4s4+Mg5s4+U1*Mqmins4)/Wts;
sig3is4:=Np/Ac+(Mp-Mg1s4-Mg2s4-Mg3s4)/W-(Mg4s4+Mg5s4+U2*Mqmaxs4)/Wicomposta;
sig4is4:=Np/Ac+(Mp-Mg1s4-Mg2s4-Mg3s4)/W-(Mg4s4+Mg5s4+U2*Mqmins4)/Wicomposta;
sig3ss4:=Np/Ac+(-Mp+Mg1s4+Mg2s4+Mg3s4)/W+(Mg4s4+Mg5s4+U2*Mqmaxs4)/Wts;
sig4ss4:=Np/Ac+(-Mp+Mg1s4+Mg2s4+Mg3s4)/W+(Mg4s4+Mg5s4+U2*Mqmins4)/Wts;
end;
sig1ss4:=Np/Ac+(-Mp+Mg1s4+Mg2s4+Mg3s4)/W+(Mg4s4+Mg5s4+Mqmaxs4)/Wts;
sig2ss4:=Np/Ac+(-Mp+Mg1s4+Mg2s4+Mg3s4)/W+(Mg4s4+Mg5s4+Mqmins4)/Wts;
sig3is4:=Np/Ac+(Mp-Mg1s4-Mg2s4-Mg3s4)/W-(Mg4s4+Mg5s4+U1*Mqmaxs4)/Wicomposta;
sig4is4:=Np/Ac+(Mp-Mg1s4-Mg2s4-Mg3s4)/W-(Mg4s4+Mg5s4+U1*Mqmins4)/Wicomposta;
sig3ss4:=Np/Ac+(-Mp+Mg1s4+Mg2s4+Mg3s4)/W+(Mg4s4+Mg5s4+U1*Mqmaxs4)/Wts;
sig4ss4:=Np/Ac+(-Mp+Mg1s4+Mg2s4+Mg3s4)/W+(Mg4s4+Mg5s4+U1*Mqmins4)/Wts;
end;
{Porcentagem de perda}
perda1i:=(sigmap-sigmapinfs1)*100/sigmap;
perda1s:=(sigmap-sigmapsups1)*100/sigmap;
perda2i:=(sigmap-sigmapinfs2)*100/sigmap;
perda2s:=(sigmap-sigmapsups2)*100/sigmap;
perda3i:=(sigmap-sigmapinfs3)*100/sigmap;
perda3s:=(sigmap-sigmapsups3)*100/sigmap;
perda4i:=(sigmap-sigmapinfs4)*100/sigmap;
perda4s:=(sigmap-sigmapsups4)*100/sigmap;
perda5i:=perdatinf;
perda5s:=perdatsup;
xx1:= vao/10;
xx2:= 2*vao/10;
149
xx3:= 3*vao/10;
xx4:= 4*vao/10;
Mg2sx:=(g2*vao*0.45/2)-(g2*sqr(0.45)/2);
Mg2s1:=(g2*vao*xx1/2)-(g2*sqr(xx1)/2);
Mg2s2:=(g2*vao*xx2/2)-(g2*sqr(xx2)/2);
Mg2s3:=(g2*vao*xx3/2)-(g2*sqr(xx3)/2);
Mg2s4:=(g2*vao*xx4/2)-(g2*sqr(xx4)/2);
Mg3sx:=(g3*vao*0.45/2)-(g3*sqr(0.45)/2);
Mg3s1:=(g3*vao*xx1/2)-(g3*sqr(xx1)/2);
Mg3s2:=(g3*vao*xx2/2)-(g3*sqr(xx2)/2);
Mg3s3:=(g3*vao*xx3/2)-(g3*sqr(xx3)/2);
Mg3s4:=(g3*vao*xx4/2)-(g3*sqr(xx4)/2);
Mg4sx:=(g4*vao*0.45/2)-(g4*sqr(0.45)/2);
Mg4s1:=(g4*vao*xx1/2)-(g4*sqr(xx1)/2);
Mg4s2:=(g4*vao*xx2/2)-(g4*sqr(xx2)/2);
Mg4s3:=(g4*vao*xx3/2)-(g4*sqr(xx3)/2);
Mg4s4:=(g4*vao*xx4/2)-(g4*sqr(xx4)/2);
Mg5sx:=(g5*vao*0.45/2)-(g5*sqr(0.45)/2);
Mg5s1:=(g5*vao*xx1/2)-(g5*sqr(xx1)/2);
Mg5s2:=(g5*vao*xx2/2)-(g5*sqr(xx2)/2);
Mg5s3:=(g5*vao*xx3/2)-(g5*sqr(xx3)/2);
Mg5s4:=(g5*vao*xx4/2)-(g5*sqr(xx4)/2);
Mqminsx:=(qmin*vao*0.45/2)-(qmin*sqr(0.45)/2);
Mqmins1:=(qmin*vao*xx1/2)-(qmin*sqr(xx1)/2);
Mqmins2:=(qmin*vao*xx2/2)-(qmin*sqr(xx2)/2);
Mqmins3:=(qmin*vao*xx3/2)-(qmin*sqr(xx3)/2);
Mqmins4:=(qmin*vao*xx4/2)-(qmin*sqr(xx4)/2);
Mqmaxsx:=(qmax*vao*0.45/2)-(qmax*sqr(0.45)/2);
Mqmaxs1:=(qmax*vao*xx1/2)-(qmax*sqr(xx1)/2);
Mqmaxs2:=(qmax*vao*xx2/2)-(qmax*sqr(xx2)/2);
Mqmaxs3:=(qmax*vao*xx3/2)-(qmax*sqr(xx3)/2);
Mqmaxs4:=(qmax*vao*xx4/2)-(qmax*sqr(xx4)/2);
Vg1sx:=(g1*vao/2)-g1*0.45;
Vg1s0:=(g1*vao/2);
Vg1s1:=(g1*vao/2)-g1*xx1;
Vg1s2:=(g1*vao/2)-g1*xx2;
Vg1s3:=(g1*vao/2)-g1*xx3;
Vg1s4:=(g1*vao/2)-g1*xx4;
150
Vg2sx:=(g2*vao/2)-g2*0.45;
Vg2s0:=(g2*vao/2);
Vg2s1:=(g2*vao/2)-g2*xx1;
Vg2s2:=(g2*vao/2)-g2*xx2;
Vg2s3:=(g2*vao/2)-g2*xx3;
Vg2s4:=(g2*vao/2)-g2*xx4;
Vg3sx:=(g3*vao/2)-g3*0.45;
Vg3s0:=(g3*vao/2);
Vg3s1:=(g3*vao/2)-g3*xx1;
Vg3s2:=(g3*vao/2)-g3*xx2;
Vg3s3:=(g3*vao/2)-g3*xx3;
Vg3s4:=(g3*vao/2)-g3*xx4;
Vg4sx:=(g4*vao/2)-g4*0.45;
Vg4s0:=(g4*vao/2);
Vg4s1:=(g4*vao/2)-g4*xx1;
Vg4s2:=(g4*vao/2)-g4*xx2;
Vg4s3:=(g4*vao/2)-g4*xx3;
Vg4s4:=(g4*vao/2)-g4*xx4;
Vg5sx:=(g5*vao/2)-g5*0.45;
Vg5s0:=(g5*vao/2);
Vg5s1:=(g5*vao/2)-g5*xx1;
Vg5s2:=(g5*vao/2)-g5*xx2;
Vg5s3:=(g5*vao/2)-g5*xx3;
Vg5s4:=(g5*vao/2)-g5*xx4;
Vqminsx:=(qmin*vao/2)-qmin*0.45;
Vqmins0:=(qmin*vao/2);
Vqmins1:=(qmin*vao/2)-qmin*xx1;
Vqmins2:=(qmin*vao/2)-qmin*xx2;
Vqmins3:=(qmin*vao/2)-qmin*xx3;
Vqmins4:=(qmin*vao/2)-qmin*xx4;
Vqmaxsx:=(qmax*vao/2)-qmax*0.45;
Vqmaxs0:=(qmax*vao/2);
Vqmaxs1:=(qmax*vao/2)-qmax*xx1;
Vqmaxs2:=(qmax*vao/2)-qmax*xx2;
Vqmaxs3:=(qmax*vao/2)-qmax*xx3;
Vqmaxs4:=(qmax*vao/2)-qmax*xx4;
Vsdx:= fs1*Vg1sx+fs2*Vg2sx+fs3*Vg3sx+fs4*Vg4sx+fs5*Vg5sx+fsq*Vqmaxsx;
Vsd0:= fs1*Vg1s0+fs2*Vg2s0+fs3*Vg3s0+fs4*Vg4s0+fs5*Vg5s0+fsq*Vqmaxs0;
alfav2:= 1-(fck/250);
Vrd2:=
0.54*alfav2*(fck*1000/1.4)*bw*d*sin(DegToRad(30))*sin(DegToRad(30))*(cot(DegToRad(90)
)+cot(DegToRad(30)));
fctd:=fctkinf/1.4;
Vc0:=0.6*fctd*bw*d;
pinf:=formulario.sigmapinf;
psup:=formulario.sigmapsup;
lbpti:=strtofloat(edit19.text);
lbpts:=strtofloat(edit18.text);
sigxi:=45*pinf/lbpti;
151
sigxs:=45*psup/lbpti;
Np:=Ap*sigxi+Aplinha*sigxs;
Mp:=Ap*sigxi*e-Aplinha*sigxs*elinha;
M0:=0.9*Np*W/Ac+0.9*Mp;
Msdx:= fs1*Mg1sx+fs2*Mg2sx+fs3*Mg3sx+fs4*Mg4sx+fs5*Mg5sx+fsq*Mqmaxsx;
Vsw:=Vsdx-Vc;
if Vsw<0 then
begin
Asw:=0.2*(fctm/500000)*bw*10000*sin(DegToRad(90));
espacamento:= 4*32/Asw;
if Vsdx/Vrd2 <= 0.67 then smax:=min(60*d,30)
else smax:=min(30*d,20);
if espacamento>smax then espacamento:=smax;
end
else
begin
Asw:=Vsw*100*1.15/(0.9*d*100*50);
if Asw<0.2*(fctm/500000)*bw*10000*sin(DegToRad(90)) then
Asw:=0.2*(fctm/500000)*bw*10000*sin(DegToRad(90));
espacamento:= 4*32/Asw;
if Vsdx/Vrd2 <= 0.67 then smax:=min(60*d,30)
else smax:=min(30*d,20);
if espacamento>smax then espacamento:=smax;
end;
{Abrir formulario 4}
Application.CreateForm(TFAPESP4, FAPESP4);
FAPESP4.ShowModal;
FAPESP4.Free;
end
else Showmessage('Calcule o valor do comprimento de transferência!');
end;
if saveDialog.Execute
then
152
Begin
{Criando arquivo de texto}
AssignFile (f, saveDialog.FileName);
Rewrite (f);
Writeln(f,' Arquivo para detalhamento');
Writeln(f,'===============================================');
Writeln(f,'');
Write(f,'Tipo de aço=>');
Writeln(f,StringReplace(formulario.tpaco, ',', '.', [rfReplaceAll]));
Write(f,'largura da alma, bw=>');
Writeln(f,StringReplace(floattostrf(formulario.bw*100,ffFixed,18,1), ',', '.', [rfReplaceAll]));
Write(f,'altura, h=>');
Writeln(f,StringReplace(floattostrf(formulario.h*100,ffFixed,18,1), ',', '.', [rfReplaceAll]));
Write(f,'cobrimento, c=>');
Writeln(f,StringReplace(floattostr(formulario.c), ',', '.', [rfReplaceAll]));
Write(f,'Diâmetro do estribo=>');
Writeln(f,StringReplace(floattostrf(formulario.destribo,ffFixed,18,2), ',', '.', [rfReplaceAll]));
Write(f,'Diâmetro da cordoalha=>');
Writeln(f,StringReplace(floattostrf(formulario.dcor,ffFixed,18,2), ',', '.', [rfReplaceAll]));
Write(f,'Diâmetro do máximo agregado=>');
Writeln(f,StringReplace(floattostrf(formulario.dbrita,ffFixed,18,1), ',', '.', [rfReplaceAll]));
Write(f,'Diâmetro do porta estribo=>');
Writeln(f,StringReplace(floattostrf(formulario.destribo,ffFixed,18,2), ',', '.', [rfReplaceAll]));
Write(f,'Número de cordoalhas de armadura positiva=>');
Writeln(f,StringReplace(floattostrf(formulario.n,ffFixed,18,0), ',', '.', [rfReplaceAll]));
Write(f,'Número de cordoalhas de armadura negativa=>');
Writeln(f,StringReplace(floattostrf(formulario.n0,ffFixed,18,0), ',', '.', [rfReplaceAll]));
Write(f,'Armadura passiva=>');
Writeln(f,StringReplace(floattostrf(formulario5.As1,ffFixed,18,2), ',', '.', [rfReplaceAll]));
Write(f,'Diâmetro da armadura de pele=>');
Writeln(f,1);
Write(f,'Número de barras=>');
Writeln(f,StringReplace(floattostrf(formulario.npele,ffFixed,18,0), ',', '.', [rfReplaceAll]));
Write(f,'Posição da LN, x=>');
Writeln(f,StringReplace(floattostrf(x,ffFixed,18,1), ',', '.', [rfReplaceAll]));
Write(f,'altura útil, d=>');
Writeln(f,StringReplace(floattostrf(formulario.d*100,ffFixed,18,1), ',', '.', [rfReplaceAll]));
Write(f,'capa=>');
Writeln(f,StringReplace(floattostrf(formulario.capa*100,ffFixed,18,1), ',', '.', [rfReplaceAll]));
Write(f,'altura da laje=>');
Writeln(f,StringReplace(floattostrf(formulario.hlaje*100,ffFixed,18,1), ',', '.', [rfReplaceAll]));
Write(f,'largura da mesa, bf=>');
Writeln(f,StringReplace(floattostrf(formulario.bff*100,ffFixed,18,1), ',', '.', [rfReplaceAll]));
Write(f,'vão=>');
Writeln(f,StringReplace(floattostrf(formulario.vao*100,ffFixed,18,1), ',', '.', [rfReplaceAll]));
Write(f,'espaçamento vertical=>');
Writeln(f,StringReplace(floattostrf(formulario.sv,ffFixed,18,2), ',', '.', [rfReplaceAll]));
Write(f,'espaçamento horizontal=>');
Writeln(f,StringReplace(floattostrf(formulario.sh,ffFixed,18,2), ',', '.', [rfReplaceAll]));
Write(f,'Cabos não isolados na seção 1=>');
Writeln(f, formulario5.nn1);
Write(f,'Cabos não isolados na seção 2=>');
Writeln(f, formulario5.nn2);
Write(f,'Cabos não isolados na seção 3=>');
Writeln(f, formulario5.nn3);
153
Closefile(f);
ShowMessage('O arquivo foi criado com sucesso!');
end
else ShowMessage('O arquivo não foi criado!');
end
else
if (b3on<>1) then
Showmessage('É necessário fazer as verificações em décimo de vão!');
if (formulario5.b6on<>1) then
Showmessage('É necessário fazer as verificações do isolamento de cabos!');
if (b4on<>1) then
Showmessage('É necessário fazer as verificações da armadura transversal!');
end;
end.
unit Formulario3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Math;
type
TFAPESP3 = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
154
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Edit10: TEdit;
Edit11: TEdit;
Edit12: TEdit;
GroupBox2: TGroupBox;
Edit45: TEdit;
Edit46: TEdit;
Label22: TLabel;
Label23: TLabel;
Edit47: TEdit;
Edit48: TEdit;
Edit49: TEdit;
Edit50: TEdit;
Edit51: TEdit;
Edit52: TEdit;
Edit53: TEdit;
Edit54: TEdit;
GroupBox3: TGroupBox;
Label24: TLabel;
Label25: TLabel;
Edit55: TEdit;
Edit56: TEdit;
Edit57: TEdit;
Edit58: TEdit;
Edit59: TEdit;
Edit60: TEdit;
Edit61: TEdit;
Edit62: TEdit;
Edit63: TEdit;
Edit64: TEdit;
Label26: TLabel;
Edit65: TEdit;
Edit66: TEdit;
Label27: TLabel;
Label28: TLabel;
Label29: TLabel;
Label30: TLabel;
Label31: TLabel;
Label32: TLabel;
Edit13: TEdit;
Edit14: TEdit;
155
Edit21: TEdit;
Edit22: TEdit;
Edit29: TEdit;
Edit30: TEdit;
Edit37: TEdit;
Edit38: TEdit;
Edit15: TEdit;
Edit16: TEdit;
Edit17: TEdit;
Edit18: TEdit;
Edit19: TEdit;
Edit20: TEdit;
Edit28: TEdit;
Edit27: TEdit;
Edit35: TEdit;
Edit36: TEdit;
Edit44: TEdit;
Edit43: TEdit;
Edit42: TEdit;
Edit41: TEdit;
Edit33: TEdit;
Edit34: TEdit;
Edit26: TEdit;
Edit25: TEdit;
Edit24: TEdit;
Edit23: TEdit;
Edit31: TEdit;
Edit32: TEdit;
Edit39: TEdit;
Edit40: TEdit;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
Label20: TLabel;
Label21: TLabel;
Label33: TLabel;
Button1: TButton;
Button2: TButton;
Label111: TLabel;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FAPESP3: TFAPESP3;
b5on, {se o valor for 1 indica que o botão 1 do form 3 foi ativado}
perda1i, {Perda de protensão em décimo de vão}
perda1s,
perda2i,
156
perda2s,
perda3i,
perda3s,
perda4i,
perda4s,
perda5i,
perda5s,
Nps5, {Normal no meio do vão (seção 5)}
Mps5 {Momento no meio do vão (seção 5)}: real;
implementation
{$R *.dfm}
linf:=formulario2.linf;
lsup:=formulario2.lsup;
sig1is1:=formulario2.sig1is1;
sig1ss1:=formulario2.sig1ss1;
sig1is2:=formulario2.sig1is2;
sig1ss2:=formulario2.sig1ss2;
sig1is3:=formulario2.sig1is3;
sig1ss3:=formulario2.sig1ss3;
sig1is4:=formulario2.sig1is4;
sig1ss4:=formulario2.sig1ss4;
edit7.Text:=floattostrf(sig1is1,ffFixed,18,2);
edit17.Text:=floattostrf(sig1is2,ffFixed,18,2);
edit25.Text:=floattostrf(sig1is3,ffFixed,18,2);
edit33.Text:=floattostrf(sig1is4,ffFixed,18,2);
edit9.Text:=floattostrf(sig1ss1,ffFixed,18,2);
edit19.Text:=floattostrf(sig1ss2,ffFixed,18,2);
edit27.Text:=floattostrf(sig1ss3,ffFixed,18,2);
edit35.Text:=floattostrf(sig1ss4,ffFixed,18,2);
sig2is1:=formulario2.sig2is1;
sig2ss1:=formulario2.sig2ss1;
sig2is2:=formulario2.sig2is2;
sig2ss2:=formulario2.sig2ss2;
sig2is3:=formulario2.sig2is3;
sig2ss3:=formulario2.sig2ss3;
sig2is4:=formulario2.sig2is4;
sig2ss4:=formulario2.sig2ss4;
edit8.Text:=floattostrf(sig2is1,ffFixed,18,2);
edit18.Text:=floattostrf(sig2is2,ffFixed,18,2);
edit26.Text:=floattostrf(sig2is3,ffFixed,18,2);
edit34.Text:=floattostrf(sig2is4,ffFixed,18,2);
edit10.Text:=floattostrf(sig2ss1,ffFixed,18,2);
edit20.Text:=floattostrf(sig2ss2,ffFixed,18,2);
edit28.Text:=floattostrf(sig2ss3,ffFixed,18,2);
edit36.Text:=floattostrf(sig2ss4,ffFixed,18,2);
sig3is1:=formulario2.sig3is1;
sig3ss1:=formulario2.sig3ss1;
sig3is2:=formulario2.sig3is2;
sig3ss2:=formulario2.sig3ss2;
sig3is3:=formulario2.sig3is3;
sig3ss3:=formulario2.sig3ss3;
sig3is4:=formulario2.sig3is4;
sig3ss4:=formulario2.sig3ss4;
edit1.Text:=floattostrf(sig3is1,ffFixed,18,2);
edit13.Text:=floattostrf(sig3is2,ffFixed,18,2);
edit21.Text:=floattostrf(sig3is3,ffFixed,18,2);
edit29.Text:=floattostrf(sig3is4,ffFixed,18,2);
edit3.Text:=floattostrf(sig3ss1,ffFixed,18,2);
edit15.Text:=floattostrf(sig3ss2,ffFixed,18,2);
edit23.Text:=floattostrf(sig3ss3,ffFixed,18,2);
edit31.Text:=floattostrf(sig3ss4,ffFixed,18,2);
sig4is1:=formulario2.sig4is1;
sig4ss1:=formulario2.sig4ss1;
sig4is2:=formulario2.sig4is2;
sig4ss2:=formulario2.sig4ss2;
sig4is3:=formulario2.sig4is3;
sig4ss3:=formulario2.sig4ss3;
sig4is4:=formulario2.sig4is4;
sig4ss4:=formulario2.sig4ss4;
edit2.Text:=floattostrf(sig4is1,ffFixed,18,2);
edit14.Text:=floattostrf(sig4is2,ffFixed,18,2);
edit22.Text:=floattostrf(sig4is3,ffFixed,18,2);
edit30.Text:=floattostrf(sig4is4,ffFixed,18,2);
edit4.Text:=floattostrf(sig4ss1,ffFixed,18,2);
edit16.Text:=floattostrf(sig4ss2,ffFixed,18,2);
edit24.Text:=floattostrf(sig4ss3,ffFixed,18,2);
edit32.Text:=floattostrf(sig4ss4,ffFixed,18,2);
edit5.text:='0';
edit6.text:=floattostrf(lsup,ffFixed,18,2);
edit11.text:=floattostrf(linf,ffFixed,18,2);
edit12.text:=floattostrf(lsup,ffFixed,18,2);
s1i:=formulario.sig1i;
s1s:=formulario.sig1s;
s2i:=formulario.sig2i;
s2s:=formulario.sig2s;
s3i:=formulario.sig3i;
s3s:=formulario.sig3s;
s4i:=formulario.sig4i;
s4s:=formulario.sig4s;
edit37.text:=floattostrf(s3i,ffFixed,18,2);
edit38.text:=floattostrf(s4i,ffFixed,18,2);
edit39.text:=floattostrf(s3s,ffFixed,18,2);
edit40.text:=floattostrf(s4s,ffFixed,18,2);
edit41.text:=floattostrf(s1i,ffFixed,18,2);
edit42.text:=floattostrf(s2i,ffFixed,18,2);
edit43.text:=floattostrf(s1s,ffFixed,18,2);
edit44.text:=floattostrf(s2s,ffFixed,18,2);
159
edit45.text:=floattostrf(sigma1s,ffFixed,18,2);
edit46.text:=floattostrf(sigma1i,ffFixed,18,2);
edit47.text:=floattostrf(sigma2s,ffFixed,18,2);
edit48.text:=floattostrf(sigma2i,ffFixed,18,2);
edit49.text:=floattostrf(sigma3s,ffFixed,18,2);
edit50.text:=floattostrf(sigma3i,ffFixed,18,2);
edit51.text:=floattostrf(sigma4s,ffFixed,18,2);
edit52.text:=floattostrf(sigma4i,ffFixed,18,2);
edit53.text:=floattostrf(sigma5s,ffFixed,18,2);
edit54.text:=floattostrf(sigma5i,ffFixed,18,2);
{Limites}
edit65.text:=floattostrf(lzinf,ffFixed,18,2);
edit66.text:=floattostrf(lzsup,ffFixed,18,2);
edit61.text:=floattostrf(perda4s,ffFixed,18,2);
edit62.text:=floattostrf(perda4i,ffFixed,18,2);
edit63.text:=floattostrf(perda5s,ffFixed,18,2);
edit64.text:=floattostrf(perda5i,ffFixed,18,2);
end;
end.
unit Formulario4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Math, StdCtrls;
type
TFAPESP4 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label50: TLabel;
Label1: TLabel;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Edit7: TEdit;
Label63: TLabel;
Edit8: TEdit;
Label6: TLabel;
Label7: TLabel;
161
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Edit9: TEdit;
Button1: TButton;
Label111: TLabel;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FAPESP4: TFAPESP4;
est: Real;
implementation
{$R *.dfm}
if Vsw<0 then
edit7.text:='A armadura transversal é apenas construtiva.'
else
edit7.text:='A armadura transversal não é apenas construtiva.';
end;
close;
end;
end.
unit Formulario5;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TFAPESP5 = class(TForm)
Label21: TLabel;
Label20: TLabel;
Label19: TLabel;
Label18: TLabel;
Label17: TLabel;
GroupBox1: TGroupBox;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit1: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Edit10: TEdit;
Label1: TLabel;
Button1: TButton;
Edit11: TEdit;
Edit12: TEdit;
Edit13: TEdit;
Edit14: TEdit;
Edit15: TEdit;
Label2: TLabel;
Label3: TLabel;
Label111: TLabel;
procedure RadioButton1Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
163
var
FAPESP5: TFAPESP5;
b6on, {se o valor for 1 indica que o botão 1 do form 5 foi ativado}
xs1, {posição da LN na seção 1}
xs2, {posição da LN na seção 2}
xs3, {posição da LN na seção 3}
xs4, {posição da LN na seção 4}
xs5, {posição da LN na seção 5}
ft1, {força de tração na seção 1}
ft2, {força de tração na seção 2}
ft3, {força de tração na seção 3}
ft4, {força de tração na seção 4}
ft5, {força de tração na seção 5}
As1, {Área de aço na seção 1}
As2, {Área de aço na seção 2}
As3, {Área de aço na seção 3}
As4, {Área de aço na seção 4}
As5, {Área de aço na seção 5}
sigma1, {tensão na fibra superior para o cálculo do isolamento de cabos S1}
sigma2, {tensão na fibra superior para o cálculo do isolamento de cabos S2}
sigma3, {tensão na fibra superior para o cálculo do isolamento de cabos S3}
sigma4, {tensão na fibra superior para o cálculo do isolamento de cabos S4}
sigma5, {tensão na fibra superior para o cálculo do isolamento de cabos S5}
nn, {número de cabos descontando os isolados}
Apn, {área de aço descontando os cabos isolados}
rb {valor do Radio button, se rb=1 é o limite 0; se rb=2 é o limite lzinf} :real;
nn1, nn2, nn3, nn4, nn5 {quantidade de cabos não isolados em string} : string;
implementation
{$R *.dfm}
sigma3:=formulario2.sigma3s;
sigma4:=formulario2.sigma4s;
sigma5:=formulario2.sigma5s;
perdasups1:=formulario2.perdasups1;
perdasups2:=formulario2.perdasups2;
perdasups3:=formulario2.perdasups3;
perdasups4:=formulario2.perdasups4;
n:=formulario.n;
elinha:=formulario.elinha;
Aaco:=formulario.Aaco;
Ac:=formulario.Ac;
W:=formulario.W;
lzinf:=formulario2.lzinf;
{Seção 1}
if sigma1>=0 then begin edit1.text:=floattostr(n); nn1:=edit1.text; end
else begin
nn:=n;
while sigma1<0 do begin
nn:=nn-1;
Apn:= nn*Aaco;
Nps1:=Apn*perdasups1;
Mps1:=Apn*perdasups1*elinha;
sigma1:=Nps1/Ac - Mps1/W + Mg1s1/W;
end;
edit1.text:=floattostr(nn);
nn1:=edit1.text;
end;
{Seção 2}
if sigma2>=0 then begin edit2.text:=floattostr(n); nn2:=edit2.text; end
else begin
nn:=n;
while sigma2<0 do begin
nn:=nn-1;
Apn:= nn*Aaco;
Nps2:=Apn*perdasups2;
Mps2:=Apn*perdasups2*elinha;
sigma2:=Nps2/Ac - Mps2/W + Mg1s2/W;
end;
edit2.text:=floattostr(nn);
nn2:=edit2.text;
end;
{Seção 3}
if sigma3>=0 then begin edit3.text:=floattostr(n); nn3:=edit3.text; end
else begin
nn:=n;
while sigma3<0 do begin
nn:=nn-1;
Apn:= nn*Aaco;
Nps3:=Apn*perdasups3;
Mps3:=Apn*perdasups3*elinha;
sigma3:=Nps3/Ac - Mps3/W + Mg1s3/W;
end;
165
edit3.text:=floattostr(nn);
nn3:=edit3.text;
end;
{Seção 4}
if sigma4>=0 then begin edit4.text:=floattostr(n); nn4:=edit4.text; end
else begin
nn:=n;
while sigma4<0 do begin
nn:=nn-1;
Apn:= nn*Aaco;
Nps4:=Apn*perdasups4;
Mps4:=Apn*perdasups4*elinha;
sigma4:=Nps4/Ac - Mps4/W + Mg1s4/W;
end;
edit4.text:=floattostr(nn);
nn4:=edit4.text;
end;
{seção 5}
if sigma5>=0 then begin edit5.text:=floattostr(n); nn5:=edit5.text; end
else begin
edit5.text:= 'X';
edit1.Color:=clred;
edit2.Color:=clred;
edit3.Color:=clred;
edit4.Color:=clred;
edit5.Color:=clred;
end;
end;
sigma1i:=formulario2.sigma1i;
166
sigma2i:=formulario2.sigma2i;
sigma3i:=formulario2.sigma3i;
sigma4i:=formulario2.sigma4i;
sigma5i:=formulario2.sigma5i;
h:=formulario.h;
bw:=formulario.bw;
xs1:=abs(sigma1)*h/(abs(sigma1)+sigma1i);
xs2:=abs(sigma2)*h/(abs(sigma2)+sigma2i);
xs3:=abs(sigma3)*h/(abs(sigma3)+sigma3i);
xs4:=abs(sigma4)*h/(abs(sigma4)+sigma4i);
xs5:=abs(sigma5)*h/(abs(sigma5)+sigma5i);
ft1:=abs(sigma1)*bw*xs1/2;
ft2:=abs(sigma2)*bw*xs2/2;
ft3:=abs(sigma3)*bw*xs3/2;
ft4:=abs(sigma4)*bw*xs4/2;
ft5:=abs(sigma5)*bw*xs5/2;
As1:=ft1/25;
As2:=ft2/25;
As3:=ft3/25; {Norma estabelece que a tensão no cabo seja de 25 KN/cm2}
As4:=ft4/25;
As5:=ft5/25;
perdasups1:=formulario2.perdasups1;
perdasups2:=formulario2.perdasups2;
perdasups3:=formulario2.perdasups3;
perdasups4:=formulario2.perdasups4;
n:=formulario.n;
elinha:=formulario.elinha;
Aaco:=formulario.Aaco;
Ac:=formulario.Ac;
W:=formulario.W;
lzinf:=formulario2.lzinf;
{Seção 1}
if sigma1>=lzinf then begin edit6.text:=floattostr(n); nn1:=edit6.text; end
else begin
nn:=n;
while sigma1<lzinf do begin
nn:=nn-1;
Apn:= nn*Aaco;
Nps1:=Apn*perdasups1;
Mps1:=Apn*perdasups1*elinha;
sigma1:=Nps1/Ac - Mps1/W + Mg1s1/W;
end;
edit6.text:=floattostr(nn);
nn1:=edit6.text;
end;
edit11.text:=floattostrf(As1,ffFixed,18,2);
{Seção 2}
if sigma2>=lzinf then begin edit7.text:=floattostr(n); nn2:=edit7.text; end
167
else begin
nn:=n;
while sigma2<lzinf do begin
nn:=nn-1;
Apn:= nn*Aaco;
Nps2:=Apn*perdasups2;
Mps2:=Apn*perdasups2*elinha;
sigma2:=Nps2/Ac - Mps2/W + Mg1s2/W;
end;
edit7.text:=floattostr(nn);
nn2:=edit7.text;
end;
edit12.text:=floattostrf(As2,ffFixed,18,2);
{Seção 3}
if sigma3>=lzinf then begin edit8.text:=floattostr(n); nn3:=edit8.text; end
else begin
nn:=n;
while sigma3<lzinf do begin
nn:=nn-1;
Apn:= nn*Aaco;
Nps3:=Apn*perdasups3;
Mps3:=Apn*perdasups3*elinha;
sigma3:=Nps3/Ac - Mps3/W + Mg1s3/W;
end;
edit8.text:=floattostr(nn);
nn3:=edit8.text;
end;
edit13.text:=floattostrf(As3,ffFixed,18,2);
{Seção 4}
if sigma4>=lzinf then begin edit9.text:=floattostr(n); nn4:=edit9.text; end
else begin
nn:=n;
while sigma4<lzinf do begin
nn:=nn-1;
Apn:= nn*Aaco;
Nps4:=Apn*perdasups4;
Mps4:=Apn*perdasups4*elinha;
sigma4:=Nps4/Ac - Mps4/W + Mg1s4/W;
end;
edit9.text:=floattostr(nn);
nn4:=edit9.text;
end;
edit14.text:=floattostrf(As4,ffFixed,18,2);
{seção 5}
edit10.text:= floattostr(n);
nn5:=edit10.text;
edit15.text:=floattostrf(As5,ffFixed,18,2);
end;
end.
(setq arquivo (getfiled "Selecione o arquivo para detalhamento" "c:/" "txt" 2))
(setq arq (open arquivo "r"))
(setq linha (read-line arq))
(setq linha (read-line arq))
(setq linha (read-line arq))
(setq linha (read-line arq))
(close arq)
(command ".pline" p1a P1b p2a P2b p3a P3b p4a P4b p5 p6 p7 p8 p9 p10 p11 p12 "close")
(command ".ucs" "M" (list 0 800))
(command ".pline" p1a P1b p2a P2b p3a P3b p4a P4b "close")
(command ".pline" p5 p6 p7 p8 p9 p10 p11 p12 "close")
(setq ent (entlast))
(command "._hatch" "_P" "ANSI37" 1 "0.0" "_S" ent "")
(command ".rectangle" (list -45 (- (- 0 (+ h (* 3 (+ hlaje capa)))) 40)) (list -35 (- (- 0 (+ h (* 3
(+ hlaje capa)))) 30)) "")
(setq ent (entlast))
(command "._hatch" "_P" "ANSI37" 1 "0.0" "_S" ent "")
(command ".ucs" "M" (list 0 -800))
(command ".layer" "S" "Texto" "")
(command ".text" "s" "standard" "TC" (list (/ b 2) (- 0 (+ (* 3 (+ hlaje capa))h) 5)) "0" "Seção
transversal composta")
(command ".ucs" "M" (list 0 800))
(command ".text" "s" "standard" "TC" (list (/ b 2) (- 0 (+ (* 3 (+ hlaje capa))h) 5)) "0" "Seção
transversal composta")
(command ".text" "s" "standard" "ML" (list -25 (- 0 (+ h (* 3 (+ hlaje capa))) 35)) "0"
"Concreto moldado no local")
(command ".ucs" "M" (list 0 -800))
(if (<= fi 1)
(setq fi1l (* 3 fi))
)
(if (and (< 1 fi) (< fi 2))
(setq fi1l (* 5 fi))
)
(if (>= fi 2)
(setq fi1l (* 8 fi))
)
(setq fi1 (/ fi1l 2))
(setq ce1 (+ c fi1))
(setq ce2 (- b ce1))
(setq a1 (- b c))
(setq ce3 (- h ce1))
(setq a2 (- h c))
(setq a3 (+ c fi))
(setq a4 (- a1 fi))
(setq a5 (- a2 fi))
(command ".layer" "S" "Estribo" "")
(command "pline" p1 p2 "arc" "CE" pc1 p3 "L" p4 "arc" "CE" pc2 p5 "L" p6 "arc" "CE" pc3 p7
"L" p8 "arc" "CE" pc4 p1 "")
(setq objeto (entlast))
(command "offset" fi objeto (list (/ b 2) (/ h 2)) "")
(command "pline" p1 p2 "arc" "CE" pc1 p3 "L" p4 "arc" "CE" pc2 p5 "L" p6 "arc" "CE" pc3 p7
"L" p8 "arc" "CE" pc4 p1 "")
(setq objeto (entlast))
(command "offset" fi objeto (list (/ b 2) (- 0 (* 3 (+ hlaje capa)) (/ h 2))) "")
(command "pline" p1 p2 "arc" "CE" pc1 p3 "L" p4 "arc" "CE" pc2 p5 "L" p6 "arc" "CE" pc3 p7
"L" p8 "arc" "CE" pc4 p1 "")
(setq objeto (entlast))
(command "offset" fi objeto (list (/ b 2) (- 0 (* 3 (+ hlaje capa)) (/ h 2))) "")
(setq mlinha m)
173
(setq mlinha2 m)
(setq mlinhan mn)
(setq mlinha2n mn)
(setq b1 (+ 2 d1 (* 0.04 d1)))
(setq b2 (+ d1 (* 0.04 d1) d1 (* 0.04 d1)))
(setq b3 (+ (* 1.2 d2) d1 (* 0.04 d1)))
(setq b4 (+ (* 0.5 d1) d1 (* 0.04 d1)))
(setq ah (max b1 b2 b3))
(setq av (max b1 b2 b4))
(setq a (- b (* 2 (+ c fi (/ (+ d1 (* 0.04 d1)) 2)))))
(setq alinha (- b (* 2 (+ c fi (/ d1 2)))))
(setq n (fix (/ a ah)))
(setq nlinha n)
(setq nlinha2 n)
(setq nlinha3 n)
(setq a3linha a3)
(setq a3linha2 a3)
(setq a3linha3 a3)
(setq a3linha4 a3)
(setq a3linha5 a3)
(setq mg 2)
(setq ahlinha (/ alinha n))
(setq ahli ahlinha)
(setq ahli2 ahlinha)
(setq ncam1 (/ m (+ n 1))) ; numero de camadas para o caso onde todas as camadas
possuam a mesma quantidade de barras
(setq ncam2 (+ 1 (fix (/ m (+ n 1))))) ; numero de barras para número de camadas
assimétricas
(setq ahu (/ alinha (- m 1)))
(setq ahu2 ahu)
174
)
)
(if (< mn (+ n 1))
(while (> (- mlinhan 2) 0)
(command ".circle" (list (+ a3 (/ d1 2) ahu2n) (- h (+ a3 (/ d1 2)))) (/ d1 2))
(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))
(command ".circle" (list (+ a3 (/ d1 2) ahu2n) (- h (+ a3 (/ d1 2)))) (/ d1 2))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(setq ahu2n (+ ahu2n ahun))
(setq mlinhan (- mlinhan 1))))
)
(if (> (rem mn (+ n 1)) 0)
(if (= (+ 1 (fix (/ mn (+ n 1)))) 2)
(while (> (- mlinhan (+ n 1)) 0)
(while (> (+ nlinha 1) 2)
(command ".circle" (list (+ a3 (/ d1 2) ahli) (- h (+ a3 (/ d1 2)))) (/ d1 2))
(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))
(command ".circle" (list (+ a3 (/ d1 2) ahli) (- h (+ a3 (/ d1 2)))) (/ d1 2))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(setq ahli (+ ahli ahlinha))
(setq nlinha (- nlinha 1)))
(if (= (rem sinn 2) 0)
(progn
(command ".circle" (list (- b (+ a3linha (/ d1 2))) (- h (+ a3 (/ d1 2) av))) (/ d1 2))
(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))
(command ".circle" (list (- b (+ a3linha (/ d1 2))) (- h (+ a3 (/ d1 2) av))) (/ d1 2))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(setq a3linha (+ a3linha ahlinha)))
(progn
(command ".circle" (list (+ a3linha2 (/ d1 2)) (- h (+ a3 (/ d1 2) av))) (/ d1 2))
(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))
(command ".circle" (list (+ a3linha2 (/ d1 2)) (- h (+ a3 (/ d1 2) av))) (/ d1 2))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(setq a3linha2 (+ a3linha2 ahlinha))))
(setq mlinhan (- mlinhan 1))
(setq sinn (- sinn 1)))
(if (= (+ 1 (fix (/ mn (+ n 1)))) 3)
(while (> (- mlinhan (* (+ n 1) (- ncam2n 1)))0)
(while (> (+ nlinha 1) 0)
(while (> (+ nlinha2 1) 2)
(command ".circle" (list (+ a3 (/ d1 2) ahli) (- h (+ a3 (/ d1 2)))) (/ d1 2))
(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))
(command ".circle" (list (+ a3 (/ d1 2) ahli) (- h (+ a3 (/ d1 2)))) (/ d1 2))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(setq ahli (+ ahli ahlinha))
(setq nlinha2 (- nlinha2 1)))
(command ".circle" (list (+ a3linha (/ d1 2)) (- h (+ a3 (/ d1 2) av))) (/ d1 2))
(command ".ucs" "M" (list 0 (- 0 (+ (* 3 (+ hlaje capa)) h))))
(command ".circle" (list (+ a3linha (/ d1 2)) (- h (+ a3 (/ d1 2) av))) (/ d1 2))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(setq a3linha (+ a3linha ahlinha))
(setq nlinha (- nlinha 1)))
(if (= (rem sinn 2) 0)
(progn
181
)
)
)
(command ".linetype" "s" "bylayer" "")
(command ".layer" "S" "Eixos" "")
(command "pline" p1 p2 "arc" "CE" pc1 p3 "L" p4 "arc" "CE" pc2 p5 "L" p6 "arc" "CE" pc3 p7
"L" p8 "arc" "CE" pc4 p1 "")
(setq objeto (entlast))
(command "offset" fi objeto (list (/ b 2) (/ h 2)) "")
(command "pline" p1 p2 "arc" "CE" pc1 p3 "L" p4 "arc" "CE" pc2 p5 "L" p6 "arc" "CE" pc3 p7
"L" p8 "arc" "CE" pc4 p1 "")
(setq objeto (entlast))
(command "offset" fi objeto (list (/ b 2) (- 0 (* 3 (+ hlaje capa)) (/ h 2))) "")
(progn
(command ".linetype" "s" "dashedx2" "")
(command ".line" (list (+ a3 (/ d1 2)) (+ h 3)) (list (+ a3 (/ d1 2)) (- h (+ a3 (/ d1 2) 2)))
"")
(setq lin2 (entlast))
(command ".array" lin2 "" "R" "1" (+ n 1) ahlinha)
(command ".linetype" "s" "bylayer" ""))
)
)
)
(command ".text" "s" "standard" "BC" (list (/ vao 2) -100) "0" text)
(setq text (strcat (rtos mmm) " N1 " "%%c" (rtos(* d1 10)) "-" (rtos vao)))
(command ".text" "s" "standard" "BC" (list (/ vao 2) -150) "0" text)
(setq text (strcat "4 N5 " "%%c" (rtos(* fi 10)) "-" (rtos vao)))
(command ".text" "s" "standard" "BC" (list (/ vao 2) (+ 150 h)) "0" text)
(if (not (= mnm 0))
(progn
(setq text (strcat (rtos mnm) " N4 " "%%c" (rtos(* d1 10)) "-" (rtos vao)))
(command ".text" "s" "standard" "BC" (list (/ vao 2) (+ 200 h)) "0" text)
)
)
(command ".layer" "S" "Cabos" "")
(command ".text" "s" "standard" "BC" (list (/ vao 20) (+ h 5)) "0" nn1)
(command ".text" "s" "standard" "BC" (list (- (* (/ vao 10) 2) (/ vao 20)) (+ h 5)) "0" nn2)
(command ".text" "s" "standard" "BC" (list (- (* (/ vao 10) 3) (/ vao 20)) (+ h 5)) "0" nn3)
(command ".text" "s" "standard" "BC" (list (- (* (/ vao 10) 4) (/ vao 20)) (+ h 5)) "0" nn4)
(command ".text" "s" "standard" "BC" (list (- (* (/ vao 10) 5) (/ vao 20)) (+ h 5)) "0" nn5)
(command ".ucs" "M" (list -230 0))
; Calculando os pesos
(setq paco 0.0078)
(setq peso1 (* mmm (/ (* d1 d1 pi) 4) vao paco))
(setq peso2 (* 4 (/ (* d3 d3 pi) 4) vao paco))
(if (> h 60)
(setq peso3 (* (* 2 nap) (/ (* dap dap pi) 4) vao paco))
(setq peso3 0)
)
(if (not (= mnm 0))
(setq peso4 (* mmm (/ (* d1 d1 pi) 4) vao paco))
(setq peso4 0)
)
(setq peso5 (* 4 (/ (* d3 d3 pi) 4) vao paco))
(setq peso6 (* nest1 (/ (* fi fi pi) 4) lestr paco))
(setq peso7 (* nest1 (/ (* fi fi pi) 4) lestrb paco))
(setq pesot (+ peso1 peso2 peso3 peso4 peso5 peso6 peso7))
(command ".text" "s" "standard" "BL" (list (- 60 (/ bf 2)) 270) "0" "Armação")
(command ".text" "s" "standard" "BL" (list (- 60 (/ bf 2)) 970) "0" "Formas")
(command ".line" (list (- (/ b 2) (/ bf 2)) (+ h hlaje capa 5.5)) (list (+ (/ b 2) (/ bf 2)) (+ h hlaje
capa 5.5)) "")
(command ".line" (list (- (/ b 2) (/ bf 2)) (+ h hlaje capa 2)) (list (- (/ b 2) (/ bf 2)) (+ h hlaje
capa 9)) "")
(command ".line" (list (+ (/ b 2) (/ bf 2)) (+ h hlaje capa 2)) (list (+ (/ b 2) (/ bf 2)) (+ h hlaje
capa 9)) "")
(command ".text" "s" "standard" "BC" (list (/ b 2) (+ h hlaje capa 8)) "0" (strcat (rtos bf)
"cm"))
(command ".ucs" "M" (list 0 (+ (* 3 (+ hlaje capa)) h)))
(setvar "OSMODE" V)
(setvar "CMDECHO" 1)
(princ)
)
*Carregamentos
vão em m =>9,75
largura da seção em cm, bw =>30
altura da seção em cm, h =>90
altura útil em cm, d =>83,9
menor distância entre o cg da armadura e a face externa, d' =>5
capa em cm =>5
altura da laje em cm =>15
Classe de Agressividade Ambiental (I, II, III ou IV), CAA =>II
Largura da pista de protensão em m, L =>100
fck do concreto em MPa =>40
fcj do concreto em MPa =>25
fck da capa em MPa =>30
Módulo de elasticidade do aço em MPa, E =>200000
Tipo de aço (CP - 175RN, CP - 175RB, CP - 190RN ou CP - 190RB) =>CP - 190RB
Diâmetro da cordoalha (9,5mm, 12,7mm ou 15,2mm) =>12,7mm
Diâmetro do estribo (1/4", 5/16" ou 3/8") =>1/4"
Tipo de brita (Brita 0, Brita 1, Brita 2 ou Brita 3) =>Brita 1
tensão inicial no aço em KN/cm2, sigma pi =>145,30
Perdas inicias estimadas em % =>2,5
Perdas finais estimadas em % =>20
Ø1 =>3,304
Ø2 =>2,225
Ø3 =>2,559
Ø4 =>2,033
Ø5 =>1,825
Øacidental =>1,690
Deformação do concreto =>-0,000260344195434771
198
*Dados de saída