![]() |
|
|
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. |
||
C# ::: Datas e Horas ::: DateTime |
Como adicionar ou subtrair meses de uma data em C# usando o método AddMonths() da estrutura DateTimeQuantidade de visualizações: 11437 vezes |
|
Em algumas situações nossos códigos precisam adicionar ou subtrair meses de uma data. Isso pode ser feito com o auxílio do método AddMonths() da estrutura DateTime. Este método recebe o número de meses a serem acrescidos ou substraídos da data representada pelo DateTime atual e retorna um novo DateTime com as devidas modificações. Veja um trecho de código no qual adicionamos 3 meses à data atual:
static void Main(string[] args){
// vamos obter a data de hoje
DateTime hoje = DateTime.Now;
// exibe a data de hoje
System.Console.WriteLine("Hoje é {0:d}", hoje);
// vamos adicionar 3 meses à data de hoje
DateTime data_futura = hoje.AddMonths(3);
// exibe a data daqui a três meses
System.Console.WriteLine("Daqui a 3 meses será {0:d}", data_futura);
// pausa o programa
System.Console.Write("\nPressione qualquer tecla para sair...");
Console.ReadKey();
}
É possível também subtrair meses. Para isso só precisamos fornecer um valor negativo para o método AddMonths(). Veja:
static void Main(string[] args){
// vamos obter a data de hoje
DateTime hoje = DateTime.Now;
// exibe a data de hoje
System.Console.WriteLine("Hoje é {0:d}", hoje);
// vamos subtrair 5 meses da data de hoje
DateTime data_passado = hoje.AddMonths(-5);
// exibe a data 5 meses atrás
System.Console.WriteLine("Há 5 meses era {0:d}", data_passado);
// pausa o programa
System.Console.Write("\nPressione qualquer tecla para sair...");
Console.ReadKey();
}
Lembre-se, contudo, que o método AddMonths() pode disparar uma exceção do tipo ArgumentOutOfRangeException se o DateTime resultante for menor que MinValue ou maior que MaxValue. MinValue e MaxValue são os menor e maior valores que um DateTime pode representar. Esta exceção também será disparada se o valor fornecido para o mês for menor que -120.000 ou maior que 120.000. |
AutoCAD .NET API C# ::: Dicas & Truques ::: Linha, Linhas, Comando LINE |
Como selecionar uma linha no AutoCAD e mostrar a equação da reta correspondente usando AutoCAD .NET C# APIQuantidade de visualizações: 930 vezes |
|
Em algumas situações nós queremos posicionar pontos ou outros desenhos em cima de uma linha, ou seja, em cima de uma reta. Uma das melhores formas de fazer isso é obtendo a equação reduzida da reta e usar as coordenadas x e y correspondentes. Nesta dica eu mostro como isso pode ser feito usando a AutoCAD .NET C# API. O primeiro passo é pedir para o usuário selecionar a linha na área de desenho do AutoCAD usando doc.Editor.GetEntity(). Em seguida nós obtemos as coordenadas iniciais e finais da linha usando as propriedades StartPoint e EndPoint do objeto AcadLine. Para finalizar nós calculamos a equação reduzida da reta e exibimos o resultado. Fique atento ao código que calcula o coeficiente angular e linear da reta. Considere o caso em que o coeficiente angular ou linear é igual a 0. Veja o código AutoCAD .NET API C# completo para o exemplo:
using System;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.EditorInput;
[assembly: CommandClass(typeof(PluginEstudos.Class1))]
namespace PluginEstudos {
public class Class1 {
[CommandMethod("estudos")]
public void Estudos() {
// vamos obter o documento atual
Document doc = Application.DocumentManager.MdiActiveDocument;
// vamos obter a base de dados
Database db = doc.Database;
// opções da seleção
PromptEntityOptions opcoes = new
PromptEntityOptions("\nSelecione uma linha: ");
// obtemos o resultado da seleção
PromptEntityResult resultado = doc.Editor.GetEntity(opcoes);
// a seleção foi feita com sucesso
if (resultado.Status != PromptStatus.OK) {
Application.ShowAlertDialog("Nenhum elemento selecionado.");
return;
}
// obtemos o id do objeto selecionado
ObjectId id_objeto = resultado.ObjectId;
// iniciamos uma transação
using (Transaction trans = db.TransactionManager.StartTransaction()) {
BlockTable tabela_blocos;
BlockTableRecord reg_tabela_blocos;
// obtemos a entidade selecionada
Entity ent = trans.GetObject(id_objeto, OpenMode.ForWrite) as Entity;
// a entidade selecionada é uma linha
if (ent is Line) {
Line linha = ent as Line;
// vamos obter o ponto inicial da linha
Point3d ponto_inicial = linha.StartPoint;
// vamos obter o ponto final da linha
Point3d ponto_final = linha.EndPoint;
string sinal = "+";
// vamos calcular o coeficiente angular da reta
Double m = (ponto_final.Y - ponto_inicial.Y) / (ponto_final.X - ponto_inicial.X);
// vamos calcular o coeficiente linear
double n = ponto_inicial.Y - (m * ponto_inicial.X);
// coeficiente linear menor que zero? O sinal será negativo
if (n < 0) {
sinal = "-";
n = n * -1;
}
// abre o model space para escrita
tabela_blocos = trans.GetObject(db.BlockTableId,
OpenMode.ForRead) as BlockTable;
reg_tabela_blocos = trans.GetObject(tabela_blocos[BlockTableRecord.ModelSpace],
OpenMode.ForWrite) as BlockTableRecord;
// vamos calcular as coordenadas x e y do ponto médio que
// será usado para posicionar o texto
double x = (ponto_inicial.X + ponto_final.X) / 2;
double y = (ponto_inicial.Y + ponto_final.Y) / 2;
// criamos um novo texto
DBText texto = new DBText();
texto.TextString = "y = " + m.ToString("0.00") + "x"
+ " " + sinal + " " + n.ToString("0.00");
texto.SetDatabaseDefaults();
texto.Height = 5;
texto.Position = new Point3d(x, y - texto.Height, 0);
// adicionamos o texto no desenho
reg_tabela_blocos.AppendEntity(texto);
trans.AddNewlyCreatedDBObject(texto, true);
}
else {
Application.ShowAlertDialog("Você não selecionou uma linha.");
}
// salvamos a transação
trans.Commit();
}
}
}
}
Ao executar este código AutoCAD .NET C# API e selecionar uma linha nós teremos um resultado parecido com: Selecione uma linha [Usuário seleciona a linha] [Mostra a equação reduzida da reta como um texto posicionado no ponto médio da linha] Como forma de testar ainda mais o código, defina um valor para o x e experimente plotar um ponto na área de desenho do AutoCAD. Você verá que o ponto cai exatamente em cima da linha, ou seja, da reta que a representa. |
Python ::: PyQt GUI Toolkit ::: QMainWindow |
Como centralizar uma janela QMainWindow do PyQtQuantidade de visualizações: 680 vezes |
|
Nesta dica mostrarei como podemos centralizar a janela principal de nossa aplicação PyQt. Note que esta janela principal, na maioria das vezes, é representada por uma instância da classe QMainWindow. Veja o código completo para o exemplo, já atualizado para o PyQt6:
# vamos importar os módulos necessários
import sys
from PyQt6.QtCore import *
from PyQt6.QtGui import *
from PyQt6.QtWidgets import *
# vamos criar uma classe que herda de QMainWindow
class JanelaPrincipal(QMainWindow):
# construtor da classe
def __init__(self):
super().__init__()
# definimos o título da janela
self.setWindowTitle("Cadastro de Produtos")
# vamos definir as dimensões da janela
self.resize(600, 420)
# vamos obter a geometria do frame da nossa janela
geometria_frame = self.frameGeometry()
# acessamos a geometria da monitor e obtemos seu centro
ponto_central = self.screen().availableGeometry().center()
# movemos o retângulo obtido anteriormente para o centro da tela
geometria_frame.moveCenter(ponto_central)
# e finalmente movemos nossa janela para este ponto
self.move(geometria_frame.topLeft())
if __name__== "__main__":
# cria a aplicação
app = QApplication(sys.argv)
# cria a janela principal e a coloca visível
janela_principal = JanelaPrincipal()
janela_principal.show()
# executa a aplicação
app.exec()
|
C++ ::: Dicas & Truques ::: Strings e Caracteres |
Como adicionar caracteres ao final de uma string C++ usando a função push_back()Quantidade de visualizações: 9760 vezes |
A função push_back() do C++ é útil quando precisamos adicionar caracteres individuais ao final de uma string. Veja um exemplo:
#include <string>
#include <iostream>
using namespace std;
int main(int argc, char *argv[]){
string str = "Gosto muito de PHP";
string temp;
// vamos percorrer os caracteres da primeira string
// e adicioná-los na segunda um de cada vez
for(int i = 0; i < str.length(); i++){
temp.push_back(str[i]);
}
// exibe o resultado
cout << temp << "\n\n";
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
Ao executar este código C++ nós teremos o seguinte resultado: Gosto muito de PHP Note que usamos um laço for para percorrer individualmente todos os caracteres da primeira string e adicioná-los um de cada vez na segunda string. Veja uma variação deste código, no qual exibimos o conteúdo da primeira string invertido:
#include <string>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
string str = "Gosto muito de PHP";
string temp;
// vamos percorrer os caracteres da primeira string
// e adicioná-los na segunda um de cada vez.
// desta vez vamos obter o resultado invertido
for(int i = str.length() - 1; i >= 0; i--){
temp.push_back(str[i]);
}
// exibe o resultado
cout << "String original: " << str << endl;
cout << "String invertida: " << temp << endl;;
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
Ao executar este novo código C++ nós teremos o seguinte resultado: String original: Gosto muito de PHP String invertida: PHP ed otium otsoG |
Nossas 20 dicas & truques de programação mais populares |
|
JavaScript - Validação de formulários em JavaScript - Como validar um formulário contendo usuário e senha em JavaScript Delphi - Como usar o controle TStringGrid em suas aplicações Delphi - O componente TStringGrid do Delphi |
Você também poderá gostar das dicas e truques de programação abaixo |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
|
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |



