![]() |
|
|
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 Ética e Legislação Profissional |
||
|
||
|
|
||
LISP ::: Dicas & Truques ::: Passos Iniciais |
O que é Lisp e como escrever seu primeiro programa nessa linguagem de programaçãoQuantidade de visualizações: 1965 vezes |
|
O que é Common Lisp? A linguagem de programação ANSI Common Lisp, ou simplesmente Common Lisp, é uma implementação específica da linguagem de programação Lisp multi-paradigma que suporta programação funcional e procedural. Sua especificação foi criada por Guy L. Steele nos anos 1980 a partir da linguagem Lisp com o intuito de combinar aspectos de diversos dialetos Lisp anteriores, incluindo Scheme. Foi proposto inicialmente o nome de "Standard Lisp" para a linguagem, mas em virtude de um dialeto Lisp já existir com este nome, se buscou um nome similar, resultando no nome "Common Lisp". Em 1994 foi publicada no padrão ANSI Information Technology - Programming Language - Common Lisp, registro X3.226-1994 (R1999). É bem maior e semanticamente mais complexa que Scheme uma vez que foi projetada para ser uma linguagem comercial e ser compatível com os diversos dialetos Lisp dos quais derivou. Como baixar, instalar e testar a Common Lisp no Windows? Embora exista uma quantidade enorme de compiladores Lisp disponíveis atualmente, minha pesquisa recaiu sobre o Steel Bank Common Lisp (SBCL), que pode ser baixado no endereço http://www.sbcl.org. No meu Windows 10 eu baixei o instalador sbcl-2.2.3-x86-64-windows-binary.msi, com o tamanho de 11.7Mb. Finalizada a instalação, vamos testar nossa distribuição do Bank Common Lisp (SBCL). Para isso, abra um janela de terminal e navegue até o diretório de instalação do SBCL: C:\Users\Osmar>cd C:\Program Files\Steel Bank Common Lisp Se você vir um arquivo sbcl.exe dentro deste diretório nós já temos a indicação de que tudo correu bem. Tudo que temos a fazer é chamar este arquivo na linha de comando: C:\Program Files\Steel Bank Common Lisp>sbcL Você verá as seguintes informações na sua tela: This is SBCL 2.2.3, an implementation of ANSI Common Lisp. More information about SBCL is available at <http://www.sbcl.org/>. SBCL is free software, provided as is, with absolutely no warranty. It is mostly in the public domain; some portions are provided under BSD-style licenses. See the CREDITS and COPYING files in the distribution for more information. * Note que o cursor já está esperando comandos, uma vez que estamos no modo interativo. Assim, digite o seguinte comando: * (+ 5 (* 2 4)) Pressione Enter. Se você vir o valor 13, então é sinal de que o SBCL está funcionando 100% e já podemos prosseguir. Para sair do modo interativo do SBCL, digite: * (quit) Como escrever um programa em Common List e carregá-lo no SBCL Agora vamos ver como podemos escrever um programa Common Lisp, salvá-lo em arquivo e carregá-lo a partir do compilador Steel Bank Common Lisp (SBCL). Para isso, abra o seu editor de códigos favorito e digite a seguinte listagem: ; Este programa talvez seja um dos mais básicos ; que podem ser escritos em Common Lisp (defun Primeiro() ; Vamos mostrar uma mensagem de boas-vindas (write-line "Bem-vindo(a) à Common Lisp") ) ; Efetua uma chamada automática ao programa (Primeiro) Para executar este programa, basta chamar o SBCL pela linha de comando, da seguinte forma: C:\Program Files\Steel Bank Common Lisp>sbcl --script C:\estudos_common_lisp\Primeiro.lsp Se o seu código estiver correto, sem nenhum erro de sintáxe, você verá o seguinte texto: Bem-vindo(a) à Common Lisp Pronto! Agora é só aproveitar as nossas dicas, truques e exercícios resolvidos de Common Lisp para aprender ainda mais. Bons estudos. |
Revit C# ::: Dicas & Truques ::: Revit C# Windows Forms |
Como criar um formulário Windows Forms a partir do Revit C#Quantidade de visualizações: 1328 vezes |
|
Nesta dica mostrarei os passos necessários para se criar uma aplicação Revit C# contendo uma formulário Windows Forms. O objetivo é demonstrar como o usuário pode interagir com os elementos do formulário para acessar e manipular objetos do Revit a partir de códigos C#. Antes de continuarmos, veja a janela Windows Forms que criamos logo abaixo: ![]() Veja que temos um formulário contendo 6 Labels e 6 TextBox contendo as coordenadas inicias e finais de uma linha geométrica usada para criar um novo eixo na área de desenho do Revit. Ao informar as coordenadas e clicar o botão Desenhar Eixo, um novo objeto da classe Grid da Revit API é criado e desenhado no documento atual. Este código é muito útil para iniciantes em programação Revit C# porque mostra como acessar o documento ativo usando ActiveUIDocument e em seguida passar este objeto para uma outra classe C#. De posse deste objeto nós podemos realizar várias tarefas, entre elas criar uma nova linha geométrica usando Line.CreateBound() e, em seguida, criar um novo Grid usando Grid.Create(). Veja o código completo para uma macro chamada Estudos do tipo Aplicativo. Se tiver dificuldades para executar, chama a gente nos contatos na parte superior do site que teremos prazer em ajudá-lo. Eis a listagem do código C#:
using System;
using Autodesk.Revit.UI;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI.Selection;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
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) {
JanelaPrincipal janela = new JanelaPrincipal();
janela.uidoc = this.ActiveUIDocument;
janela.ShowDialog();
}
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
}
// classe para representar o formulário
public class JanelaPrincipal : System.Windows.Forms.Form {
public UIDocument uidoc;
public System.Windows.Forms.TextBox txtX0;
public System.Windows.Forms.TextBox txtY0;
public System.Windows.Forms.TextBox txtZ0;
public System.Windows.Forms.TextBox txtX1;
public System.Windows.Forms.TextBox txtY1;
public System.Windows.Forms.TextBox txtZ1;
// construtor da classe
public JanelaPrincipal() {
this.Text = "Meu Formulário Revit C# Windows Forms"; // título da janela
this.Width = 390; // largura da janela
this.Height = 240; // altura da janela
// define a posição atual da janela
this.StartPosition = FormStartPosition.CenterScreen;
// vamos criar quatro labels e quatro caixas de texto
Label label1 = new Label();
label1.Text = "X Inicial:";
label1.Location = new System.Drawing.Point(20, 20);
label1.Height = 15;
label1.Width = 80;
Label label2 = new Label();
label2.Text = "Y Inicial:";
label2.Location = new System.Drawing.Point(120, 20);
label2.Height = 15;
label2.Width = 80;
Label label3 = new Label();
label3.Text = "Z Inicial:";
label3.Location = new System.Drawing.Point(220, 20);
label3.Height = 15;
label3.Width = 80;
txtX0 = new System.Windows.Forms.TextBox();
txtX0.Location = new System.Drawing.Point(20, 40);
txtX0.Width = 80;
txtX0.Height = 15;
txtY0 = new System.Windows.Forms.TextBox();
txtY0.Location = new System.Drawing.Point(120, 40);
txtY0.Width = 80;
txtY0.Height = 15;
txtZ0 = new System.Windows.Forms.TextBox();
txtZ0.Location = new System.Drawing.Point(220, 40);
txtZ0.Width = 80;
txtZ0.Height = 15;
Label label4 = new Label();
label4.Text = "X Final:";
label4.Location = new System.Drawing.Point(20, 80);
label4.Height = 15;
label4.Width = 80;
Label label5 = new Label();
label5.Text = "Y Final:";
label5.Location = new System.Drawing.Point(120, 80);
label5.Height = 15;
label5.Width = 80;
Label label6 = new Label();
label6.Text = "Z Final:";
label6.Location = new System.Drawing.Point(220, 80);
label6.Height = 15;
label6.Width = 80;
txtX1 = new System.Windows.Forms.TextBox();
txtX1.Location = new System.Drawing.Point(20, 97);
txtX1.Width = 80;
txtX1.Height = 15;
txtY1 = new System.Windows.Forms.TextBox();
txtY1.Location = new System.Drawing.Point(120, 97);
txtY1.Width = 80;
txtY1.Height = 15;
txtZ1 = new System.Windows.Forms.TextBox();
txtZ1.Location = new System.Drawing.Point(220, 97);
txtZ1.Width = 80;
txtZ1.Height = 15;
// botão que desenha o eixo nas coordenadas indicadas
Button button1 = new Button();
button1.Text = "Desenhar Eixo";
button1.Location = new System.Drawing.Point(95, 160);
button1.Width = 150;
button1.Click += new System.EventHandler(DesenharEixo);
// botão que fecha a janela
Button button2 = new Button();
button2.Text = "Fechar";
button2.Location = new System.Drawing.Point(265, 160);
button2.Width = 80;
button2.Click += new System.EventHandler(FecharJanela);
// adiciona os controles à janela
this.Controls.Add(label1);
this.Controls.Add(label2);
this.Controls.Add(label3);
this.Controls.Add(label4);
this.Controls.Add(label5);
this.Controls.Add(label6);
this.Controls.Add(txtX0);
this.Controls.Add(txtY0);
this.Controls.Add(txtZ0);
this.Controls.Add(txtX1);
this.Controls.Add(txtY1);
this.Controls.Add(txtZ1);
this.Controls.Add(button1);
this.Controls.Add(button2);
}
// função usada para desenhar um novo eixo no documento atual
private void DesenharEixo(object sender, System.EventArgs e) {
// primeiro obtemos uma referência ao documento atual
Document doc = uidoc.Document;
// criamos a linha geométrica para posicionar o eixo
XYZ inicio = new XYZ(Double.Parse(txtX0.Text), Double.Parse(txtY0.Text),
Double.Parse(txtZ0.Text));
XYZ final = new XYZ(Double.Parse(txtX1.Text), Double.Parse(txtY1.Text),
Double.Parse(txtZ1.Text));
// construímos a linha
Line linhaGeometrica = Line.CreateBound(inicio, final);
// iniciamos uma nova transação
using(Transaction t= new Transaction(doc)) {
t.Start("Criar um novo Grid");
Grid grid = Grid.Create(doc, linhaGeometrica);
t.Commit();
}
}
// função usada para fechar a janela
private void FecharJanela(object sender, System.EventArgs e) {
this.Close();
}
}
}
Não se esqueça de adicionar referências a System.Windows.Forms e System.Drawing. Basta, dentro do SharpDevelop, ir no menu Projeto -> Adicionar Referência. |
C# ::: Dicas & Truques ::: Strings e Caracteres |
Como substituir todos os espaços em uma string pelo caractere de underline em C# usando o método Replace() da classe StringQuantidade de visualizações: 8774 vezes |
|
Nesta dica de C# eu trago um trecho de código que mostra como substituir todos os espaços em uma string pelo caractere de sublinhado (underline). Para a realização desta tarefa nós vamos usar o método Replace() da classe String da linguagem C#. Veja o código completo para o exemplo:
using System;
namespace Estudos {
class Program {
static void Main(string[] args) {
string frase = "Gosto muito de C#";
Console.WriteLine("Frase original: " + frase);
// substitui os espaços por underline
frase = frase.Replace(" ", "_");
Console.WriteLine("Depois da substituição: " + frase);
Console.WriteLine("\n\nPressione uma tecla para sair...");
Console.ReadKey();
}
}
}
Ao executar este código C# nós teremos o seguinte resultado: Frase original: Gosto muito de C# Depois da substituição: Gosto_muito_de_C# |
Laravel ::: Artigos e Tutorias ::: CRUD - CREATE, READ, UPDATE, DELETE |
Como criar um CRUD completo em Laravel 8 - CRUD em Laravel usando PHP e MySQL (MariaDB) - Parte 1Quantidade de visualizações: 7591 vezes |
|
Uma das maiores dificuldades de quem está aprendendo a desenvolver aplicações em Laravel é encontrar livros e tutoriais realmente direcionados para os iniciantes. A documentação do framework Laravel é muito consistente e apurada, mas não nos oferece um caminho progressivo para desenvolver do zero uma aplicação que vai de encontro ao anseio daqueles que querem desenvolver códigos Laravel com conexão à banco de dados, principalmente com o MySQL (ou MariaDB). Nesta série de tutoriais eu mostrarei como criar um CRUD completo em Laravel e MySQL, usando o XAMPP (PHP, MySQL e Apache Web Server). CRUD é uma abreviação para CREATE, READ, UPDADE e DELETE, ou seja, as quatro operações que comumente usamos em cadastros de clientes, produtos, etc. Então, sem mais atrasos, vamos colocar a mão na massa. Comece verificando se você já tem o Laravel instalado. Caso não tenha, aqui mesmo no site você encontrará instruções para fazer a instalação. Certifique-se também de que o seu XAMPP esteja instalado e funcionando corretamente. Criando a aplicação Laravel Para começar, vamos criar a aplicação. Daremos a ela o nome de biblioteca e faremos o cadastro de alguns livros. Abra uma janela de prompt e dispare os comandos abaixo: C:\Users\Osmar>cd C:\xampp\htdocs C:\xampp\htdocs>composer create-project --prefer-dist laravel/laravel biblioteca Aguarde um pouco até que a aplicação seja criada e as dependências sejam instaladas. Vá pegar um cafezinho e, quando voltar, verifique se tudo correu bem e vamos progredir. Hora de criar a base de dados no MySQL Depois de criada a aplicação Laravel, vamos até o banco MySQL criar a nossa base de dados. Daremos a ela o nome de biblioteca. Você pode criar a base de dados usando o phpMyAdmin, a linha de comando ou sua ferramenta GUI favorita. O passo seguinte é configurar os parâmetros de conexão essa base de dados. Para isso, abra o arquivo .env na raiz do projeto e localize as linhas abaixo (caso não saiba como abrir o arquivo .env, use a opção File -> Open File do Visual Code da Microsoft): DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME=root DB_PASSWORD= Encontrou as linhas mencionadas? Agora altere-as para as definições abaixo: DB_CONNECTION=mysql DB_HOST=localhost DB_PORT=3306 DB_DATABASE=biblioteca DB_USERNAME=root DB_PASSWORD=osmar1234 É claro que os parâmetros de conexão Laravel + MySQL podem variar do meu exemplo para o seu. Vamos criar a migração (migration) - Mais café, por favor Com a base de dados MySQL já criada, vamos criar agora uma tabela chamada livros. Em uma janela de terminal, dispare os comandos abaixo: C:\xampp\htdocs>cd C:\xampp\htdocs\biblioteca C:\xampp\htdocs\biblioteca>php artisan make:migration criar_tabela_livros --create=livros Created Migration: 2021_01_29_141019_criar_tabela_livros Se tudo correu bem, abra o diretório C:\xampp\htdocs\biblioteca\database\migrations e verá um arquivo chamado 2021_01_29_141019_criar_tabela_livros.php. Abra-o e teremos o seguinte conteúdo:
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CriarTabelaLivros extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('livros', function (Blueprint $table) {
$table->id();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('livros');
}
}
?>
Note que temos uma classe chamada CriarTabelaLivros que extende Migration e, dentro dessa classe, foram criados dois métodos: up(), que permite criar a tabela livros e down(), que permite excluí-la. Vamos alterar o método up() para a seguinte versão:
public function up()
{
Schema::create('livros', function (Blueprint $table) {
$table->increments('id');
$table->string('titulo');
$table->string('autor');
$table->integer('paginas');
$table->timestamps();
});
}
Veja que nossa tabela livros será composta de quatro campos: id (chave primária auto-incremento), titulo (varchar), autor (varchar) e paginas (int). O Laravel incluirá dois outros campos: created_at e updated_at para podemos registrar data e hora da criação e alteração dos registros individuais. Vamos fazer a migração agora? Agora que já temos a base de dados MySQL criada, configuramos os parâmetros de conexão no arquivo .env e criamos o arquivo de migração, o passo seguinte é rodar a migração. Para isso abra uma janela de terminal e digite o comando a seguir: C:\xampp\htdocs\biblioteca>php artisan migrate Migrating: 2021_01_29_141019_criar_tabela_livros Migrated: 2021_01_29_141019_criar_tabela_livros (63.66ms) Se olharmos na base de dados agora, veremos que a tabela livros foi devidamente criada. Confira os campos atentamente e faça as alterações que julgar necessárias. Na parte 2 deste tutorial de CRUD usando Laravel + MySQL, veremos como criar a rota de direcionamento das ações CRUD, o controlador (controller), o model (model) e as views (visões). Até lá e bons estudos. Leia a parte 2 aqui: Como criar um CRUD completo em Laravel 8 - CRUD em Laravel usando PHP e MySQL (MariaDB) - Parte 2 |
Delphi ::: VCL - Visual Component Library ::: TListBox |
Como excluir todos os itens de uma ListBox do Delphi - Como remover todos os itens da ListBox usando a função ClearQuantidade de visualizações: 15038 vezes |
Em algumas situações nós precisamos excluir todos os itens de uma ListBox. Para tais situações podemos usar o método Clear da classe ListBox. Veja:procedure TForm1.Button2Click(Sender: TObject); begin // vamos excluir todos os itens da ListBox ListBox1.Clear; // poderíamos também usar // ListBox1.Items.Clear; end; Note que podemos também chamar o método Clear diretamente no objeto Items da ListBox, embora a chamada na ao método Clear da lista seja mais comum. É possível também excluir os itens de uma ListBox individualmente chamando a função Delete() no objeto Items. Neste caso nós usamos um laço e percorremos todos os elementos da lista e os excluímos um a um. É importante, para estes casos, lembrarmos de percorrer os itens do último para o primeiro. Caso esta regra não seja obedecida, poderá haver erros de acesso durante a exclusão. Veja o código:
procedure TForm1.Button2Click(Sender: TObject);
var
i: Integer;
begin
// vamos percorrer todos os itens da ListBox do último
// para o primeiro
for i := ListBox1.Items.Count - 1 downto 0 do
begin
// vamos excluir o item no índice correspondente
ListBox1.Items.Delete(i);
end;
end;
Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Desafios, Exercícios e Algoritmos Resolvidos de Delphi |
Veja mais Dicas e truques de Delphi |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |




