![]() |
|
|
Planilha de Dimensionamento de Tubulações
Hidráulicas Água Fria e Água Quente CompletaNossa planilha automática de dimensionamento de tubulações de água fria e quente é uma ferramenta desenvolvida para auxiliar engenheiros e projetistas no cálculo rápido e preciso das redes hidráulicas de edificaçoes. Por meio da inserçao de dados como vazao, diâmetro da tubulaçao, comprimento da rede, material do tubo e coeficientes hidráulicos, a planilha realiza automaticamente os cálculos necessários para verificar velocidade da água, perda de carga e dimensionamento adequado das tubulaçoes. |
||
Você está aqui: Cards de Engenharia Civil - Construção Civil |
||
|
||
|
|
||
Python ::: Python para Engenharia ::: Engenharia Civil - Cálculo Estrutural |
Como calcular os esforços solicitantes majorados em pilares usando Python - Python para Engenharia CivilQuantidade de visualizações: 925 vezes |
![]() Quando estamos dimensionando pilares em concreto armado em geral, a primeira coisa que devemos fazer é calcular os esforços solicitantes, ou seja, as cargas que estão chegando ao pilar. No caso dos pilares intermediários, ou seja, pilares que residem fora dos cantos e extremidades da estrutura e que, por isso, recebem a carga em seu centro geométrico, considera-se a compressão centrada. Dessa forma, chamamos de Nk o somatório de todas as cargas verticais atuantes na estrutura e podemos desprezar as excentricidades de 1ª ordem. De acordo com a NBR 6118 (ABNT, 2014), para a situação de projeto, essa força normal Nk deve ser majorada pelos coeficientes γn e γf, resultando em uma força normal de projeto chamada Nd. O coeficiente γn deve majorar os esforços solicitantes finais de cálculo de acordo com a menor dimensão do pilar. A norma diz que a menor dimensão que um pilar pode ter é 19cm, mas, em alguns casos, podemos ter a menor dimensão de até 14cm, precisando, para isso, majorar os esforços solicitantes. Nos comentários do código Python eu mostro como esse cálculo é feito, de acordo com a NBR 6118 (ABNT, 2014), é claro. O coeficiente γf, na maioria dos casos, possui o valor 1,4 e entra no cálculo para converter a força normal Nk em força normal de projeto Nd. A fórmula para o cálculo dos esforços solicitantes majorados em pilares intermediários é: \[ Nd = \gamma n \cdot \gamma f \cdot Nk \] Onde: γn majora os esforços de acordo com a menor dimensão do pilar de acordo com a NBR 6118 (ABNT, 2014). γf em geral possui o valor 1.4 para majorar os esforços em estruturas de concreto armado. Nk é a força normal característica aplicada ao pilar, em kN. Nd é a força normal de projeto, em kN. Vamos então ao código Python, que solicitará ao usuário os valores de suas dimensões hx e hy (em centímetros) e a carga, ou seja, a força normal característica chegando no pilar em kN e vamos mostrar a força normal de projeto Nd:
# método principal
def main():
# vamos pedir as dimensões do pilar
hx = float(input("Informe a dimensão do pilar na direção x (em cm): "))
hy = float(input("Informe a dimensão do pilar na direção y (em cm): "))
# vamos pedir a carga total no pilar em kN
Nk = float(input("Informe a carga total no pilar (em kN): "))
# vamos obter o menor lado do pilar (menor dimensão da seção transversal)
if (hx < hy):
b = hx
else:
b = hy
# agora vamos calcular a área do pilar em centímetros quadrados
area = hx * hy
# a área está de acordo com a norma NBR 6118 (ABNT, 2014)
if (area < 360):
print("A área do pilar não pode ser inferior a 360cm2")
return
# vamos calcular a força normal de projeto Nd
yn = 1.95 - (0.05 * b) # de acordo com a norma NBR 6118 (ABNT, 2014) Tabela 13.1
yf = 1.4 # regra geral para concreto armado
Nd = yn * yf * Nk
# e mostramos os resultados
print("\nA área do pilar é: {0} cm2".format(round(area, 2)))
print("A menor dimensão do pilar é: {0} cm".format(round(b, 2)))
print("O valor do coeficiente yn é: {0}".format(round(yn, 2)))
print("A força normal de projeto Nd é: {0} kN".format(round(Nd, 2)))
if __name__== "__main__":
main()
Ao executar este código Python nós teremos o seguinte resultado: Informe a dimensão do pilar na direção x (em cm): 40 Informe a dimensão do pilar na direção y (em cm): 19 Informe a carga total no pilar (em kN): 841.35 A área do pilar é: 760.0 cm2 A menor dimensão do pilar é: 19.0 cm O valor do coeficiente yn é: 1.0 A força normal de projeto Nd é: 1177.89 kN |
C ::: Dicas & Truques ::: Strings e Caracteres |
Como escrever uma função C personalizada que copia os caracteres de uma string para outra stringQuantidade de visualizações: 8979 vezes |
Quando precisamos copiar os caracteres de uma string para outra string em C, geralmente usamos a função strcpy(). Para que você entenda como esta função realmente funciona, o código abaixo mostra como escrever uma função personalizada que realiza tal tarefa. Estude-a cuidadosamente. É uma boa forma de entender como percorrer os caracteres de uma string usando ponteiros:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// função personalizada que copia os caracteres de
// uma string para outra
char *str_copy(char *destino, const char *origem){
while(*destino++ = *origem++){
;;
}
return (destino - 1);
}
int main(int argc, char *argv[]){
char frase1[] = "Gosto de PHP";
char frase2[50]; // pode receber até 49 caracteres
// copia a primeira frase para a segunda
str_copy(frase2, frase1);
// exibe o resultado
printf(frase2);
puts("\n\n");
system("PAUSE");
return 0;
}
Ao executar este código C nós teremos o seguinte resultado: Gosto de PHP |
C ::: Desafios e Lista de Exercícios Resolvidos ::: Engenharia Civil - Cálculo Estrutural |
Exercícios Resolvidos de C - Como calcular as reações de apoio, momento de flexão máxima e forças cortantes em uma viga bi-apoiada com carga distribuída retangular usando CQuantidade de visualizações: 1836 vezes |
|
Pergunta/Tarefa: Veja a seguinte figura: ![]() Nesta imagem temos uma viga bi apoiada com uma carga q distribuída de forma retangular a uma distância l. Para fins didáticos, vamos considerar que a carga q será em kN/m e a distância l será em metros. O apoio A é de segundo gênero e o apoio B é de primeiro gênero. Escreva um programa C que solicita ao usuário que informe o valor da carga q e a distância l entre os apoios A e B. Em seguida mostre os valores das reações nos apoios A e B, o momento de flexão máxima da viga e o momento de flexão para uma determinada distância (que o usuário informará) a partir do apoio A. Mostre também as forças cortantes nos apoios A e B. Lembre-se de que, para uma carga distribuída de forma retangular, o diagrama de momento fletor é uma parábola, enquanto o diagrama de cortante é uma reta (com o valor zero para a força cortante no meio da viga). Sua saída deve ser parecida com: Valor da carga em kN/m: 10 Distância em metros: 13 A reação no apoio A é: 65.000000 kN A reação no apoio B é: 65.000000 kN O momento fletor máximo é: 211.250000 kN Informe uma distância a partir do apoio A: 4 O momento fletor na distância informada é: 180.000000 kN A força cortante no apoio A é: 65.000000 kN A força cortante no apoio B é: -65.000000 kN Veja a resolução comentada deste exercício usando C:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char *argv[]) {
// variáveis usadas na resolução do problema
float carga, distancia, reacao_a, reacao_b;
float flexao_maxima, distancia_temp, flexao_distancia;
float cortante_a, cortante_b;
// vamos pedir para o usuário informar o valor da carga
printf("Valor da carga em kN/m: ");
scanf("%f", &carga);
// vamos pedir para o usuário informar a distância entre os apoios
printf("Distancia em metros: ");
scanf("%f", &distancia);
// vamos calcular a reação no apoio A
reacao_a = (1.0 / 2.0) * carga * distancia;
// vamos calcular a reação no apoio B
reacao_b = reacao_a;
// vamos calcular o momento fletor máximo
flexao_maxima = (1.0 / 8.0) * carga * pow(distancia, 2.0);
// e mostramos o resultado
printf("\nA reacao no apoio A e: %f kN", reacao_a);
printf("\nA reacao no apoio B e: %f kN", reacao_b);
printf("\nO momento fletor maximo e: %f kN", flexao_maxima);
// vamos pedir para o usuário informar uma distância a
// partir do apoio A
printf("\n\nInforme uma distancia a partir do apoio A: ");
scanf("%f", &distancia_temp);
// vamos mostrar o momento fletor na distância informada
if (distancia_temp > distancia) {
printf("\nDistancia invalida.\n");
}
else {
flexao_distancia = (1.0 / 2.0) * carga * distancia_temp *
(distancia - distancia_temp);
printf("O momento fletor na distancia informada e: %f kN",
flexao_distancia);
}
// vamos mostrar a força cortante no apoio A
cortante_a = (1.0 / 2.0) * carga * distancia;
printf("\n\nA forca cortante no apoio A e: %f kN", cortante_a);
// vamos mostrar a força cortante no apoio B
cortante_b = cortante_a * -1;
printf("\nA forca cortante no apoio B e: %f kN\n\n", cortante_b);
printf("\n\n");
system("PAUSE");
return 0;
}
|
C# ::: Dicas & Truques ::: Tipos de Dados |
Como usar o tipo bool da linguagem C# - Apostila C# para iniciantesQuantidade de visualizações: 18560 vezes |
O tipo bool do C# é um apelido para o tipo System.Boolean do .NET e pode representar apenas dois valores: True ou False. Este tipo é usado em expressões condicionais e, quando os valores True e False estiverem sendo usados como literais, estes deverão ser escritos como "true" e "false". Veja:bool pode = true; bool vencido = false; Se escrevermos "True" e "False", teremos erros de compilação: The name 'True' does not exist in the current context The name 'False' does not exist in the current context No entanto, se imprimirmos o valor de uma variável do tipo boolean usando Console.WriteLine(), teremos os valores "True" e "False". Experimente: bool pode = true; Console.WriteLine(pode); Para saber a quantidade de bytes que um tipo bool ocupa, podemos usar o método sizeof(). Veja:
Console.WriteLine("Um boolean ocupa " + sizeof(bool) +
" bytes no C# 2.0");
Este código exibirá: Um boolean ocupa 1 bytes no C# 2.0 Em C++, um valor de tipo bool pode ser convertido para um valor do tipo int, ou seja, false é equivalente à zero e true é equivalente à um valor diferente de zero. Em C# isso não é possível. Veja o que acontece quando tentamos converter um tipo int para um tipo boolean:
int pode = 1;
if(pode)
Console.WriteLine("OK");
A mensagem de erro de compilação é: Cannot implicitly convert type 'int' to 'bool' |
Firebird ::: Dicas & Truques ::: Strings e Caracteres |
Como converter o valor de um campo do tipo CHAR ou VARCHAR em letras minúsculas usando a função LOWER() do FirebirdQuantidade de visualizações: 8932 vezes |
|
A função LOWER() do Firebird é usada quando precisamos converter o valor de um campo do tipo CHAR ou VARCHAR em letras minúsculas. A partir do Firebird 2 esta função consegue transformar em minúsculas até mesmo os caracteres não pertencentes ao conjunto ASCII (non-ASCII), mesmo se o collation padrão (binary) estiver sendo usado. Veja um exemplo de como usar esta função em uma query SQL DML SELECT FROM: SELECT NOME NORMAL, LOWER(NOME) MINUSCULAS FROM CLIENTES WHERE ID = 1; Ao executarmos esta query teremos o seguinte resultado: NORMAL MINUSCULAS OSMAR J. SILVA osmar j. silva A função LOWER() pode ser usada em DSQL (Dynamic SQL), ESQL (Embedded SQL) e PSQL (Stored procedure and trigger language). |
Veja mais Dicas e truques de Firebird |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






