![]() |
|
|
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 |
||
|
||
|
|
||
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: 591 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 |
JavaScript ::: Dicas & Truques ::: Matemática e Estatística |
Como calcular Fatorial em JavaScript usando recursão - Como calcular Fatorial usando recursividade - Aprenda a calcular Fatorial usando JavaScriptQuantidade de visualizações: 17748 vezes |
|
Embora existam várias formas de efetuar o cálculo de Fatorial, a forma mais comum é usando recursividade, ou seja, dividir a resolução do problema em partes menores e juntá-las no final. Neste dica eu mostro como calcular Fatorial em JavaScript usando recursividade. Veja o código completo:
<html>
<head>
<title>Estudando JavaScript</title>
<script type="text/javascript">
function fatorial(num){
if(num > 1)
return num * arguments.callee(num - 1);
else
return 1;
}
</script>
</head>
<body>
<script type="text/javascript">
document.write("O fatorial de 5 é: " + fatorial(5));
</script>
</body>
</html>
Ao executar este código nós teremos o seguinte resultado: O fatorial de 5 é: 120 |
AutoCAD Civil 3D .NET C# ::: Dicas & Truques ::: Alinhamento - Alignment |
Como pedir para o usuário selecionar um alinhamento no Civil 3D usando a função GetEntity() do AutoCAD Civil 3D .NET C# APIQuantidade de visualizações: 1259 vezes |
|
Em várias situações nós precisamos pedir para o usuário selecionar um alinhamento e, após a seleção, obter o id do alinhamento selecionado para efetuarmos alguma operação nele. Para isso nós podemos usar a função GetEntity() do objeto Editor da AutoCAD Civil 3D .NET C# API. O primeiro passo é criar um objeto PromptEntityOptions passando a mensagem para o usuário selecionar o alinhamento. Se o usuário selecionar outro objeto que não seja um alinhamento, a mensagem definida em SetRejectMessage é exibida. Note o uso de AddAllowedClass para permitir a seleção apenas de objetos da classe Alignment ou derivadas dela. Depois de solicitar a seleção, nós obtemos um objeto ObjectId, que é retornado pela função GetEntity(). Veja o código AutoCAD Civil 3D .NET C# completo para o exemplo:
using System;
using Autodesk.AutoCAD.Runtime;
using Autodesk.Civil.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.Civil.DatabaseServices;
namespace Estudos {
public class Class1 : IExtensionApplication {
[CommandMethod("Alinhamento")]
public void Alinhamento() {
// vamos obter uma referência ao documento atual do Civil 3D
CivilDocument doc = CivilApplication.ActiveDocument;
// obtemos o editor
Editor editor = Application.DocumentManager.MdiActiveDocument.Editor;
// vamos iniciar um nova transação
using (Transaction ts = Application.DocumentManager.MdiActiveDocument.
Database.TransactionManager.StartTransaction()) {
try {
// vamos pedir para o usuário selecionar o alinhamento
PromptEntityOptions opt = new PromptEntityOptions(
"\nSelecione um alinhamento");
opt.SetRejectMessage("\nO objeto precisa ser um alinhamento.\n");
opt.AddAllowedClass(typeof(Alignment), false);
// vamos obter o id do alinhamento selecionado
ObjectId id_alinhamento = editor.GetEntity(opt).ObjectId;
editor.WriteMessage("\nO id do alinhamento selecionado é: " +
id_alinhamento + '\n');
}
catch (System.Exception e) {
// vamos tratar o erro
editor.WriteMessage("Erro: {0}", e.Message);
}
}
}
public void Initialize() {
// pode deixar em branco
}
public void Terminate() {
// pode deixar em branco
}
}
}
Ao executar este código AutoCAD Civil 3D .NET C# nós teremos o seguinte resultado: O id do alinhamento selecionado é: (1455527762496) |
AutoCAD Civil 3D .NET C# ::: Dicas & Truques ::: Alinhamento - Alignment |
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 APIQuantidade de visualizações: 892 vezes |
|
Nesta dica vou mostrar como podemos obter a quantidade de estacas em um alinhamento do Civil 3D usando a função GetStationSet() da classe Alignment da AutoCAD Civil 3D .NET API. Para este exemplo eu usei um alinhamento com o nome "EIXO DA RODOVIA". O primeiro passo é obter uma referência ao documento atual do AutoCAD Civil 3D usando CivilApplication.ActiveDocument. En seguida nós pesquisamos um alinhamento usando uma função personalizada GetAlignmentByName(), que recebe o documento atual e o nome do alinhamento que queremos pesquisar. O retorno desta função é um objeto da classe Alignment. Agora que já temos o alinhamento, nós usamos a função GetStationSet() para retornar um vetor de objetos Station, que significa estaca no Civil 3D. Note que passei como parâmetro o valor StationTypes.Major e usei alinhamento.StationIndexIncrement como o intervalo entre as estacas. Uma vez que já temos o vetor de objetos Station, ou seja, um vetor contendo todas as estacas do alinhamento, só precisamos obter a quantidade de itens usando a propriedade Length. Veja o código AutoCAD Civil 3D .NET C# completo para o exemplo:
using System;
using Autodesk.AutoCAD.Runtime;
using Autodesk.Civil.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.Civil.DatabaseServices;
namespace Estudos {
public class Class1 : IExtensionApplication {
[CommandMethod("Alinhamento")]
public void Alinhamento() {
// vamos obter uma referência ao documento atual do Civil 3D
CivilDocument doc = CivilApplication.ActiveDocument;
// obtemos o editor
Editor editor = Application.DocumentManager.MdiActiveDocument.Editor;
// vamos pesquisar o alinhamento chamado "EIXO DA RODOVIA"
string nome = "EIXO DA RODOVIA";
// vamos iniciar um nova transação
using (Transaction ts = Application.DocumentManager.MdiActiveDocument.
Database.TransactionManager.StartTransaction()) {
try {
// efetuamos uma chamada ao método GetAlignmentByName() passando
// o documento atual do AutoCAD Civil 3D e o nome do alinhamento
// que queremos encontrar
Alignment alinhamento = GetAlignmentByName(doc, nome);
// ops, o alinhamento não foi encontrado
if (alinhamento == null) {
editor.WriteMessage("\nO alinhamento não foi encontrado.");
}
else {
// encontramos o alinhamento. Vamos mostrar a quantidade de estacas
// que ele possui
Station[] estacas = alinhamento.GetStationSet(StationTypes.Major,
alinhamento.StationIndexIncrement);
int quant_estacas = estacas.Length;
// e mostramos o resultado
editor.WriteMessage("\nO alinhamento possui " + quant_estacas +
" estacas.\n");
}
}
catch (System.Exception e) {
// vamos tratar o erro
editor.WriteMessage("Erro: {0}", e.Message);
}
}
}
// função C# que retorna um alinhamento por nome, ou null em
// caso de não encontrar o alinhamento desejado
public Alignment GetAlignmentByName(CivilDocument doc, string nome) {
// vamos declarar um objeto da classe Alignment
Alignment alinhamento = null;
// agora vamos obter os ids de todos os alinhamentos
ObjectIdCollection alinhamentos = doc.GetAlignmentIds();
// vamos percorrer todos os ids de alinhamentos retornados
foreach (ObjectId idAlinhamento in alinhamentos) {
alinhamento = idAlinhamento.GetObject(OpenMode.ForRead) as Alignment;
// encontramos o alinhamento
if (alinhamento.Name.Equals(nome)) {
return alinhamento;
}
}
// retorna null se o alinhamento não for encontrado
return null;
}
public void Initialize() {
// pode deixar em branco
}
public void Terminate() {
// pode deixar em branco
}
}
}
Ao executar este código AutoCAD Civil 3D C# .NET nós teremos o seguinte resultado: O alinhamento possui 152 estacas. |
PHP ::: Fundamentos da Linguagem ::: Métodos, Procedimentos e Funções |
Como usar funções e variáveis globais em PHPQuantidade de visualizações: 39157 vezes |
Por padrão, variáveis definidas a nível de página, ou seja, variáveis globais, não podem ser acessadas a partir de uma função. Veja um exemplo:
<?
// variável global
$usuario = "Osmar";
function exibir(){
echo $usuario; // acessa a variável gloal
}
// chama a função
exibir();
?>
Ao executar este exemplo teremos o seguinte resultado: Notice: Undefined variable: usuario in xxx/estudos.php on line 6 Para contornar este problema, temos que empregar a palavra-chave global seguida pelo nome da variável global que queremos acessar. Veja:
<?
// variável global
$usuario = "Osmar";
function exibir(){
// permite acesso à variável global
global $usuario;
echo $usuario; // acessa a variável gloal
}
// chama a função
exibir();
?>
Ao executarmos o código novamente, percebemos que o resultado é o esperado. Outra forma de acessar variáveis globais a partir de uma função é usando $GLOBALS. Veja:
<?
// variável global
$usuario = "Osmar";
function exibir(){
echo $GLOBALS['usuario']; // acessa a variável global
}
// chama a função
exibir();
?>
|
Desafios, Exercícios e Algoritmos Resolvidos de PHP |
Veja mais Dicas e truques de PHP |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |



