Você está aqui: Cards de Engenharia Civil - Construção Civil |
||
|
||
|
|
||
Python ::: Dicas & Truques ::: Strings e Caracteres |
Como verificar se uma string contém apenas caracteres de espaços em Python usando a função isspace()Quantidade de visualizações: 12109 vezes |
Este exemplo mostra como como usar a função isspace() para verificar se uma string contém apenas caracteres de espaço. Se qualquer caractere, diferente do espaço, for encontrado, a função retorna False.
def main():
# uma frase contendo apenas espaços
frase = " "
# vamos verificar se a string contém apenas espaços
if frase.isspace():
print("A string contém apenas espaços")
else:
print("A string não contém apenas espaços")
if __name__== "__main__":
main()
Ao executar este código Python nós teremos o seguinte resultado: A string contém apenas espaços. |
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: 518 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
}
}
|
C++ ::: Fundamentos da Linguagem ::: Tipos de Dados |
Como usar true e false em C e C++Quantidade de visualizações: 15108 vezes |
|
Em praticamente todas as linguagens de programação nós encontramos expressões condicionais que definem o fluxo de execução. Expressões condicionais são aquelas que, quando avaliadas, resultam em um valor true (verdadeiro) ou false (falso). Muitas linguagens de programação possuem um tipo booleano que armazena os valores true ou false. Enquanto o C++ possui o tipo bool, o C possui uma forma bem interessante de definir true ou false. Em C, um valor true é qualquer valor diferente de 0, incluindo numeros negativos. Veja:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int pode = 1; // verdadeiro
int nao_pode = 0; // falso
if(pode)
printf("Teste resultou verdadeiro\n\n");
if(!nao_pode)
printf("Teste resultou verdadeiro\n\n");
system("PAUSE");
return 0;
}
Lembre-se então. False em C é o valor zero. Qualquer outro valor é true. Embora C++ já possua o tipo bool, é possível usar a abordagem do zero para false e qualquer outro valor para true em C++ também. Você verá muito código legado usando este artifício. Quer ver algo interessante agora? Execute o seguinte código C++:
#include <string>
#include <iostream>
using namespace std;
int main(int argc, char *argv[]){
bool pode = true;
bool nao_pode = false;
cout << pode << "\n";
cout << nao_pode << "\n\n";
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
Nos compiladores que obedecem o C++ padrão você verá os valores 1 e 0 serem impressos. |
C ::: Dicas & Truques ::: Matemática e Estatística |
Como arredondar um valor de ponto-flutuante para cima usando a função ceil() da linguagem CQuantidade de visualizações: 14997 vezes |
|
A função ceil() da linguagem C é usada quando precisamos arredondar um valor de ponto-flutuante (com casas decimais) para cima. Esta função retorna o menor valor integral maior que o valor fornecido a ela. Note que, mesmo o retorno sendo um inteiro, ele virá encapsulado em um double. Para entender o funcionamento desta função, vamos considerar o valor 4.5. Ao aplicarmos a função ceil() a este valor, o retorno será 5.0. Isso pode ser comprovado no trecho de código abaixo:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
printf("O valor 4.5 arredondado para cima e %f",
ceil(4.5));
printf("\n\n");
system("pause");
return 0;
}
Ao executarmos este código teremos o seguinte resultado: O valor 4.5 arredondado para cima é 5.000000. |
GoLang ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas |
Como calcular a equação reduzida da reta em GoLang dados dois pontos pertencentes à retaQuantidade de visualizações: 1258 vezes |
|
Nesta dica de Go veremos como calcular a equação reduzida da reta quando temos dois pontos pertencentes à esta reta. Não, nessa dica não vamos calcular a equação geral da reta, apenas a equação reduzida. Em outras dicas do site você encontra como como isso pode ser feito. Para relembrar: a equação reduzida da reta é y = mx + n, em que x e y são, respectivamente, a variável independente e a variável dependente; m é o coeficiente angular, e n é o coeficiente linear. Além disso, m e n são números reais. Com a equação reduzida da reta, é possível calcular quais são os pontos que pertencem a essa reta e quais não pertencem. Vamos começar então analisando a seguinte figura, na qual temos dois pontos que pertencem à uma reta: ![]() Note que a reta da figura passa pelos pontos A(5, 5) e B(9, 2). Então, uma vez que já temos os dois pontos, já podemos calcular a equação reduzida da reta. Veja o código GoLang completo para esta tarefa:
// pacote principal
package main
// vamos importar o módulo de formatação de
// entrada e saída
import "fmt"
// esta é a função principal do programa
func main() {
// variáveis que vamos usar na resolução do problema
var x1, y1, x2, y2, m, n float32
var sinal string
// vamos ler as coordenadas do primeiro ponto
fmt.Print("Coordenada x do primeiro ponto: ")
fmt.Scanln(&x1)
fmt.Print("Coordenada y do primeiro ponto: ")
fmt.Scanln(&y1)
// vamos ler as coordenadas do segundo ponto
fmt.Print("Coordenada x do segundo ponto: ")
fmt.Scanln(&x2)
fmt.Print("Coordenada y do segundo ponto: ")
fmt.Scanln(&y2)
sinal = "+"
// vamos calcular o coeficiente angular da reta
m = (y2 - y1) / (x2 - x1)
// vamos calcular o coeficiente linear
n = y1 - (m * x1)
// coeficiente linear menor que zero? O sinal será negativo
if n < 0 {
sinal = "-"
n = n * -1
}
// mostra a equação reduzida da reta
fmt.Printf("Equação reduzida: y = %.2fx %s %.2f",
m, sinal, n);
}
Ao executar este código GoLang nós teremos o seguinte resultado: Coordenada x do primeiro ponto: 5 Coordenada y do primeiro ponto: 5 Coordenada x do segundo ponto: 9 Coordenada y do segundo ponto: 2 Equação reduzida: y = -0,75x + 8,75 Para testarmos se nossa equação reduzida da reta está realmente correta, considere o valor 3 para o eixo x da imagem acima. Ao efetuarmos o cálculo: >> y = (-0.75 * 3) + 8.75 y = 6.5000 temos o valor 6.5 para o eixo y, o que faz com que o novo ponto caia exatamente em cima da reta considerada na imagem. |
Veja mais Dicas e truques de GoLang |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






