![]() |
|
|
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. |
||
Revit C# ::: Dicas & Truques ::: Pontos e Coordenadas |
Como pedir para o usuário selecionar um ponto na área de desenho do Revit usando a função PickPoint() do objeto Selection da Revit C# APIQuantidade de visualizações: 533 vezes |
|
Em várias situações nós precisamos que o usuário indique um ponto na área de desenho do Revit, ou seja, as coordenadas x, y e z na qual nosso código Revit C# efetuará alguma ação. Para isso nós podemos usar a função PickPoint() do objeto Selection, que retorna um objeto da classe XYZ. O primeiro passo é acessar o documento ativo UIDocument, por meio de uma chamada a this.ActiveUIDocument. Em seguida nós definimos o tipo de snap usando a enumeração ObjectSnapTypes. Para este exemplo eu usei Endpoints e Intersections, mas você pode usar outros também, tais como Midpoints, Nearest, Intersections, etc. Uma vez obtido o tipo de snap, nós o usamos para a chamada à função PickPoint(). Feito isso nós só precisamos acessar o objeto XYZ retornado e mostrar as suas coordenadas. Veja o código Revit C# completo para o exemplo:
using System;
using Autodesk.Revit.UI;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI.Selection;
using System.Collections.Generic;
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 UIDocument ativo
UIDocument uidoc = this.ActiveUIDocument;
// agora mostramos uma mensagem para o usuário selecionar um
// elemento
TaskDialog.Show("Aviso", "Selecione um ponto na área de desenho");
// vamos escolher o tipo de snap
ObjectSnapTypes tiposSnap = ObjectSnapTypes.Endpoints |
ObjectSnapTypes.Intersections;
// agora o usuário seleciona um ponto e nós o guardamos na
// variável ponto, do tipo XYZ
XYZ ponto = uidoc.Selection.PickPoint(tiposSnap,
"Selecione um ponto de extremidade ou intersecção");
// acessamos as coordenadas do ponto
string coordenadas = "X = " + ponto.X + "\nY = " + ponto.Y +
"\nZ = " + ponto.Z;
// e mostramos o resultado
TaskDialog.Show("Revit", "As coordenadas do ponto são:\n" +
coordenadas);
}
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
}
}
Ao executar este código Revit C# você terá uma mensagem TaskDialog com um resultado parecido com: As coordenadas do ponto são: X = 4.7533122 Y = 11.429872 Z = 23.3871198 |
C++ ::: Win32 API (Windows API) ::: Aplicativos e Outros |
C++ Windows API GUI - Como criar sua primeira aplicação de interface gráfica usando C++ e WinAPIQuantidade de visualizações: 48344 vezes |
|
Esta dica mostra o código completo para uma aplicação de interface gráfica usando C++ e a Win32 (WinAPI - Windows Programming Interface). Trata-se de uma janela simples, mas com todas as características presentes em todas as janelas das aplicações Windows: uma barra de títulos, o ícone e os botões de maximizar, minimizar e fechar. Antes de executar o exemplo observe que este código contém o ponto inicial para a criação de qualquer aplicação gráfica em C++/WinAPI, a saber: A função de entrada WinMain, o laço de mensagens Message Loop, a função de callback Window Procedure e as técnicas de registrar e criar a janela. Neste momento não discutimos os detalhes do código. Em outras dicas você encontrará análises mais aprofundadas de cada parte. Este código foi escrito e testado no Dev-C++, mas, deve funcionar sem problemas em outros compiladores C++ para Windows. Assim, abra o Dev-C++, vá em File -> New -> Projec. Na aba Basic, selecione Console Application, dê um nome ao projeto e deixe a opção C++ Project marcada. Salve o projeto e inclua o código abaixo no arquivo .cpp principal:
#include <windows.h>
// define o nome da classe de janela
const char nomeJanela[] = "aCodigos";
// esta é a Window Procedure
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM
wParam, LPARAM lParam){
switch(msg){
case WM_CLOSE:
DestroyWindow(hwnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, msg, wParam,
lParam);
}
return 0;
}
// função de entrada da aplicação
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE
hPrevInstance, LPSTR lpCmdLine, int nCmdShow){
WNDCLASSEX wc;
HWND hwnd;
MSG Msg;
// vamos registrar a Window Class
wc.cbSize = sizeof(WNDCLASSEX);
wc.style = 0;
wc.lpfnWndProc = WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
wc.lpszMenuName = NULL;
wc.lpszClassName = nomeJanela;
wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
if(!RegisterClassEx(&wc)){
MessageBox(NULL, "Erro ao registrar a janela!",
"Erro!", MB_ICONEXCLAMATION | MB_OK);
return 0;
}
// cria a janela
hwnd = CreateWindowEx(WS_EX_CLIENTEDGE, nomeJanela,
"Minha primeira aplicação Win32",
WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT,
350, 200, NULL, NULL, hInstance, NULL);
if(hwnd == NULL){
MessageBox(NULL, "Erro ao criar a janela!",
"Erro!", MB_ICONEXCLAMATION | MB_OK);
return 0;
}
// mostra a janela
ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);
// Este é o laço de mensagens (Message Loop)
while(GetMessage(&Msg, NULL, 0, 0) > 0){
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return Msg.wParam;
}
Pronto! Só compilar (geralmente F9 no Dev-C++), observar o resultado e estudar o código atentamente. |
JavaScript ::: Dicas & Truques ::: Rotinas de Conversão |
JavaScript para iniciantes - Como converter uma string em um valor numérico usando o método Number() do JavaScriptQuantidade de visualizações: 24086 vezes |
|
Algumas vezes nós precisamos converter um texto inserido pelo usuário em um valor numérico. Se sabemos que o valor é inteiro, podemos usar Number.parseInt(), enquanto, se soubermos que o valor inserido é um decimal, podemos usar Number.parseFlot(). No entanto, se estivermos na dúvida, pode usar somente a função Number(), pois ela tentará converter a string para um valor numérico (inteiro ou de ponto-flutuante) e, em caso de falha, retornará NaN (Not a Number, não é um número). Veja o código completo para o exemplo:
<html>
<head>
<title>Estudando JavaScript</title>
</head>
<body>
<script type="text/javascript">
var valor = "95,23";
valor = Number(valor);
document.write("O resultado da conversão é: "
+ valor);
</script>
</body>
</html>
Ao executar este código nós teremos o seguinte resultado: O resultado da conversão é: NaN Experimente trocar "95,23" por "95.23" e veja como a conversão de string para número ocorre sem problemas. |
C ::: Desafios e Lista de Exercícios Resolvidos ::: C Básico |
Exercícios Resolvidos de C - Como somar o primeiro e o último dígito de um número inteiro informado pelo usuário em CQuantidade de visualizações: 1129 vezes |
|
Pergunta/Tarefa: Escreva um programa C que pede para o usuário informar um número inteiro e mostre a soma do primeiro dígito com o último dígito. Atenção: você deve usar apenas os operadores matemáticos e a função log10(). Sua saída deverá ser parecida com: Informe um número inteiro: 48763 A soma do primeiro e do último dígito é: 7 Veja a resolução comentada deste exercício usando C:
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <math.h>
int main(int argc, char *argv[]){
setlocale(LC_ALL,""); // para acentos do português
int numero, quant, primeiro_digito, ultimo_digito, soma;
// vamos pedir para o usuário informar um número inteiro
printf("Informe um número inteiro: ");
scanf("%d", &numero);
// vamos obter a quantidade (-1) de dígitos no número informado
quant = (int)log10(numero);
primeiro_digito = (int)(numero / pow(10, quant));
ultimo_digito = numero % 10;
// soma o primeiro e o último dígito
soma = primeiro_digito + ultimo_digito;
// mostra o resultado
printf("A soma do primeiro e do último dígito é: %d", soma);
printf("\n\n");
system("PAUSE");
return 0;
}
|
Nossas 20 dicas & truques de programação mais populares |
|
AutoCAD Civil 3D .NET C# - Como retornar a quantidade de estacas de um alinhamento do Civil 3D usando a função GetStationSet() da classe Alignment da AutoCAD Civil 3D .NET API PHP - Programação Orientada a Objetos em PHP - Como passar um objeto de uma classe para uma função PHP JavaScript - Como resolver uma equação do segundo grau em JavaScript - Como calcular Bhaskara em JavaScript |
Você também poderá gostar das dicas e truques de programação abaixo |
|
C - Como comparar os primeiros n caracteres de duas strings usando a função strncmp() da linguagem C PHP - Programação Orientada a Objetos em PHP - Como passar um objeto de uma classe para uma função PHP |
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 |





