![]() |
|
|
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 - Estruturas de Concreto Armado |
||
|
||
|
|
||
Java ::: Fundamentos da Linguagem ::: Tipos de Dados |
Apostila Java - Como usar o tipo de dados double da linguagem JavaQuantidade de visualizações: 22580 vezes |
O tipo de dados double é usado quando precisamos armazenar números de ponto-flutuante (com parte fracionária) na faixa 4.94065645841246544e-324 até 1.79769313486231570e+308. Este tipo ocupa 64 bits na memória (o mesmo que um long) e possui precisão de 14 ou 15 dígitos significativos. Veja um exemplo de seu uso:
public class Estudos{
public static void main(String args[]){
double valor = 54.5;
System.out.println("O valor da variável é: " +
valor);
System.exit(0);
}
}
É importante observar que a maioria dos métodos numéricos das classes Java (principalmente Math) possuem parâmetros do tipo double. Isso é feito de modo que possamos fornecer argumentos do tipo byte, short, int, long, float, etc. Como todos os tipos primitivos (exceto boolean) podem ser convertidos para double sem a necessidade de cast, esta é sem dúvida uma escolha bem acertada dos arquitetos da linguagem. Observe ainda que o tipo double não pode ser convertido implicitamente para nenhum outro tipo de dados primitivo. Se precisarmos convertê-lo para os tipos char, byte, short, int, long ou float, teremos que lançar mão de uma coerção (cast). Veja: double valor = 54.5; int valor2 = (int)(valor); É preciso ficar atento ao fato de que uma coerção de um tipo de ponto-flutuante para um tipo integral (inteiro) resulta na perda da parte fracionária do valor que está sofrendo o cast. Não é recomendável usar o tipo double (ou float) para aplicações financeiras nas quais a precisão dos valores numéricos é de muita importância. Para estes casos recomenda-se usar a classe BigDecimal. |
JavaScript ::: Dicas & Truques ::: Recursão (Recursividade) |
JavaScript Avançado - Como remover todas as ocorrências de uma substring em uma string usando uma função recursivaQuantidade de visualizações: 1 vezes |
|
Esta dica contém um ótimo exercício de recursão. Trata-se de uma função JavaScript recursiva para remover todas as ocorrências de uma substring em uma string. Analise o código cuidadosamente e você conseguirá desenvolver várias funções de recursividade a partir dele. Veja o código JavaScript completo:
<html>
<head>
<title>Estudando JavaScript</title>
</head>
<body>
<script type="text/javascript">
// função recursiva que remove todas as ocorrências
// de uma substring em uma string
function remover(string, substring){
// primeiro obtemos o índice da substring
// dentro da string
var indice = string.indexOf(substring);
var resultado = "";
// interromper a recursividade?
if(indice == -1){
return string;
}
else{
resultado += string.substring(0, indice) +
remover(string.substring(indice + substring.length),
substring);
}
return resultado;
}
// hora de testar a função recursiva
var frase = "Ontem comprei duas camisas e uma calça";
document.writeln("Original: " + frase);
frase = remover(frase, "duas");
document.writeln("<br>Nova frase: " + frase);
</script>
</body>
</html>
Ao executar este código nós teremos o seguinte resultado: Original: Ontem comprei duas camisas e uma calça Nova frase: Ontem comprei camisas e uma calça |
Python ::: Matplotlib Python Library (Biblioteca Python Matplotlib) ::: Passos Iniciais |
Plotagem e visualização de dados em Python - Como instalar a biblioteca Matplotlib e testar seu funcionamentoQuantidade de visualizações: 3750 vezes |
|
A biblioteca Matplotlib, escrita originalmente por John D. Hunter em 2003, é um dos pacotes Python mais populares para a plotagem e visualização de dados. O acesso às funcionalidades da Matplotlib é feito por meio da interface Pylab, que lembra muito o MATLAB, a linguagem de programação proprietária desenvolvida pela MathWorks. Os usuários acostumados com essa ferramenta chegam a afirmar que a biblioteca Matplotlib, combinada com a biblioteca NumPy, pode ser considerada o equivalente open source do MATLAB. Já tenho o Matplotlib disponível na minha instalação do Python? Antes de iniciar qualquer projeto que envolva a biblioteca Matplotlib, é importante verificar se a mesma está disponível em sua instalação do Python. Isso pode ser de várias formas. Mostrarei como obter a lista de módulos usando a opção "list" do pip. Basta abrir uma janela de terminal e disparar o seguinte comando: C:\Users\Osmar>pip list Você terá um resultado parecido com: C:\Users\Osmar>pip list Package Version ----------------- ------- astroid 2.4.2 colorama 0.4.4 isort 5.6.4 joblib 1.0.0 lazy-object-proxy 1.4.3 mccabe 0.6.1 numpy 1.19.4 pandas 1.1.5 Pillow 8.0.1 pip 20.3.3 pylint 2.6.0 python-dateutil 2.8.1 pytz 2020.4 scikit-learn 0.24.0 scipy 1.5.4 setuptools 49.2.1 six 1.15.0 threadpoolctl 2.1.0 toml 0.10.2 wrapt 1.12.1 wxPython 4.1.1
# importamos a bibliteca Matplotlib
import matplotlib as mp
def main():
# vamos mostrar a versão da biblioteca Matplotlib
versao = mp.__version__
print("A versão do Matplotlib é:", versao)
if __name__== "__main__":
main()
Se você tiver o Matplotlib instalado, o resultado desse código será algo como: A versão do Matplotlib é: 3.4.1 Se você não tiver a biblioteca Matplotlib instalada, a seguinte mensagem de erro será exibida: Exception has occurred: ModuleNotFoundError File "c:\estudos_python\estudos.py", line 3, in <module> import matplotlib as mp ModuleNotFoundError: No module named 'matplotlib' Não tenho o Matplotlib ainda. O que faço? Abra uma janela de terminal e dispare o comando abaixo: C:\Users\Osmar>pip install matplotlib Depois de alguns segundos você verá o seguinte resultado: Collecting matplotlib Downloading matplotlib-3.4.1-cp39-cp39-win_amd64.whl (7.1 MB) |-| 7.1 MB 3.3 MB/s Requirement already satisfied: pillow>=6.2.0 in c:\python_3_9_1\lib\site-packages (from matplotlib) (8.0.1) Requirement already satisfied: python-dateutil>=2.7 in c:\python_3_9_1\lib\site-packages (from matplotlib) (2.8.1) Requirement already satisfied: numpy>=1.16 in c:\python_3_9_1\lib\site-packages (from matplotlib) (1.19.4) Collecting cycler>=0.10 Downloading cycler-0.10.0-py2.py3-none-any.whl (6.5 kB) Requirement already satisfied: six in c:\users\osmar\appdata\roaming\python\python39\site-packages (from cycler>=0.10->matplotlib) (1.15.0) Collecting kiwisolver>=1.0.1 Downloading kiwisolver-1.3.1-cp39-cp39-win_amd64.whl (51 kB) |-| 51 kB 3.8 MB/s Collecting pyparsing>=2.2.1 Downloading pyparsing-2.4.7-py2.py3-none-any.whl (67 kB) |-| 67 kB 1.7 MB/s Installing collected packages: pyparsing, kiwisolver, cycler, matplotlib Successfully installed cycler-0.10.0 kiwisolver-1.3.1 matplotlib-3.4.1 pyparsing-2.4.7 Obteve resultado parecido? Pronto! Você já pode começar a usar a biblioteca Matplotlib em seus aplicações Python. |
C ::: Dicas & Truques ::: Strings e Caracteres |
Como comparar os primeiros n caracteres de duas strings usando a função strncmp() da linguagem CQuantidade de visualizações: 11062 vezes |
Muitas vezes precisar verificar se os primeiros n caracteres de duas strings são iguais. Para isso podemos usar a função strncmp() do header string.h. Esta função aceita dois ponteiros para as strings a serem comparadas e um inteiro especificando a quantidade dos primeiros caracteres que serão comparados. O retorno da função será o valor 0 se os n caracteres comparados forem iguais. Veja o código:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[]){
char palavra1[] = "Java";
char palavra2[] = "JavaScript";
if(strncmp(palavra1, palavra2, 4) == 0)
printf("Os primeiros n caracteres sao iguais");
else
printf("Os primeiros n caracteres NAO sao iguais");
puts("\n\n");
system("PAUSE");
return 0;
}
Ao executar este código C nós teremos o seguinte resultado: Os primeiros n caracteres sao iguais. |
Revit C# ::: Dicas & Truques ::: Colunas e Pilares |
Como rotacionar colunas e pilares no Revit via programação usando a função RotateElement() da classe ElementTransformUtils da Revit C# APIQuantidade de visualizações: 701 vezes |
|
Nesta dica mostrarei como podemos usar a função RotateElement() da classe ElementTransformUtils da Revit C# API para rotacionar uma coluna ou pilar no Revit, tudo isso via programação. Essa dica é muito útil para programadores Revit C#, pois traz as técnicas necessárias para selecionar um único elemento na área de desenho do Revit, assim como obter sua caixa delimitadora (BoundingBox), seu ponto geométrico central e, o mais importante, fazer a rotação do elemento em seus eixos. O primeiro passo é pedir para o usuário selecionar o pilar ou a coluna usando a função PickObject() da classe Selection, que retorna uma Reference. Após a seleção do elemento nós usamos a função GetElement() da classe Document para retornar o elemento como uma variável FamilyInstance, ou seja, uma instância de família do Revit. De posse da instância de família nós usamos a função get_BoundingBox() para obter e retornar um objeto da classe BoundingBoxXYZ. É esse objeto que usamos para obter o ponto máximo, o ponto mínimo e o ponto geométrico central da coluna ou pilar. O passo final é usar a função RotateElement() da classe ElementTransformUtils para rotacionar a coluna ou pilar de acordo com o ângulo de rotação desejado. Note que fiz a conversão de ângulos em graus para ângulos em radianos antes de efetuar a rotação. Veja o código Revit C# API completo para o exemplo:
using System;
using Autodesk.Revit.UI;
using Autodesk.Revit.DB;
using Autodesk.Revit.DB.Structure;
using Autodesk.Revit.UI.Selection;
using System.Collections.Generic;
using Autodesk.Revit.DB.Architecture;
using System.Linq;
namespace Estudos {
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.
TransactionMode.Manual)]
[Autodesk.Revit.DB.Macros.AddInId("ED8EC6C4-9489-48F7-B04E-B45B5D1BEB12")]
public partial class ThisApplication {
private void Module_Startup(object sender, EventArgs e) {
// vamos obter uma referência ao Document ativo
Document doc = this.ActiveUIDocument.Document;
UIDocument uidoc = this.ActiveUIDocument;
// agora mostramos uma mensagem para o usuário selecionar uma
// coluna ou pilar
TaskDialog.Show("Aviso", "Selecione uma coluna ou pilar");
// obtemos uma referência ao objeto Selection do
// UIDocument ativo
Selection selecao = uidoc.Selection;
// e finalmente esperamos que o usuário selecione o elemento
Reference selecionado = selecao.PickObject(ObjectType.Element,
"Selecione uma coluna ou pilar");
// agora testamos se o usuário realmente selecionou um
// elemento
if (selecionado != null) {
// vamos obter o elemento selecionado a partir da
// referência
FamilyInstance coluna = uidoc.Document.GetElement(selecionado)
as FamilyInstance;
// vamos obter o elemento BoundingBoxXYZ
BoundingBoxXYZ bounding = coluna.get_BoundingBox(null);
// vamos obter as informações da BoundingBoxXYZ
// primeiro o ponto mínimo (canto esquerdo inferior e
// a parte de trás da caixa delimitadora)
XYZ pontoMinimo = bounding.Min;
// agora o ponto máximo (canto direito superior e
// a parte da frente da caixa delimitadora)
XYZ pontoMaximo = bounding.Max;
// agora obtemos o ponto central da coluna
XYZ centro = (pontoMaximo + pontoMinimo) * 0.5;
// construímos a linha que servirá de eixo de rotação
Line eixos = Line.CreateBound(centro, centro + XYZ.BasisZ);
// definimos o ângulo de rotação em graus
double angulo_rotacao_graus = 45;
// convertemos para radianos
double angulo_rotacao_radianos = angulo_rotacao_graus * (Math.PI / 180);
// iniciamos a transação
Transaction transacao = new Transaction(doc);
transacao.Start("Como rotacionar colunas e pilares no Revit");
// rotacionamos a coluna ou pilar
ElementTransformUtils.RotateElement(doc, coluna.Id, eixos,
angulo_rotacao_radianos);
// fazemos o commit da transação
transacao.Commit();
// e mostramos o resultado
TaskDialog.Show("Aviso", "A coluna foi rotacionada com sucesso.");
}
}
private void Module_Shutdown(object sender, EventArgs e) {
// para fazer alguma limpeza de memória ou algo assim
}
#region Revit Macros generated code
private void InternalStartup() {
this.Startup += new System.EventHandler(Module_Startup);
this.Shutdown += new System.EventHandler(Module_Shutdown);
}
#endregion
}
}
|
Veja mais Dicas e truques de Revit C# |
Dicas e truques de outras linguagens |
|
Delphi - Como retornar o caractere a partir de um determinado código ASCII em Delphi usando a função Chr() |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





