Mensagens

A mostrar mensagens com a etiqueta engenharia

Javascript - Cálculo de parâmetros e gráficos, ferrovias.

Imagem
Javascript - Cálculo de parâmetros e gráficos, ferrovias Com o recurso às "tecnologias web" estou a montar uma aplicação para ler os elementos de uma directriz e desenhar uns gráficos. Gráficos O trio de tecnologias web, JS CSS HTML permite como já referi noutros posts realizar operações sobre dados. Tal como ia permitir o Python se fosse a tecnologia escolhida. Com recurso a um serviço CDN posso ler o ficheiro Excel que contém a informação da directriz: CDN Directriz Esta formatação de directriz é típica do ISPOL. Neste PC nem sequer tenho o Excel, tenho o LibreOffice, e tudo funciona sem problemas. A opção por "web" deve-se à facilidade de por no ecrã uma tabela de dados, com uma actualização depois de algum cálculo. Abaixo ilustra-se essa actualização: Tabela (Não se tomem como certos os valores, falta rever.) A par do cálculo em tabela, interessa-me ter uns gráficos ilustrativos das variações dos valores. Gráficos Ainda faltam adicionar elementos etc, é um traba...

Python - Exemplos de uso na engenharia, estruturas

Imagem
Python - Exemplos de uso na engenharia, estruturas São muitos os casos de aplicação da programação em Python à engenharia de estruturas. Apenas 3 exemplos, que ilustram programações à medida da necessidade. Sendo o Python uma ferramenta que potencia a produtividade. Neste exemplo usa-se o Python para criar uma interface de manipulação do modelo em ALLPLAN : https://www.youtube.com/watch?v=D0gkdU2cgfU (Jose Rolo Duarte and Bruno Fernandes, Quadrante – Portugal) Neste outro exemplo, com o uso do "livro" JupiterLab , e com uma biblioteca de "desenho" das fórmulas, Handcalcs , consegue realizar os cálculos e também uma bonita apresentação, que pode ser exportada para PDF como um relatório.: https://www.youtube.com/watch?v=FtzVN3s4yRI (Connor Ferster) Neste outro exemplo é usado um ficheiro de texto do Robots , com dados dos elementos finitos, com a possibilidade de manipulação dos dados. Não usa a API do programa. https://www.youtube.com/watch?v=wKJETBztqA8&t=2013s...

Python ou Javascript - Comparação muito breve

Imagem
Python ou Javascript - Comparação muito breve. Numa comparação simplificada as duas linguagens de programação são muito semelhantes. https://www.matematica.pt/faq/como-calcular-area-circulo.php O propósito deste post é demonstrar que caso se opte por uma programação de "cálculos" ambas as linguagens são válidas. O importante é resolver o problema. Para ilustrar a comparação, cálculo a área de um círculo, com Raio = 2. Na parte esquerda da imagem temos o código para Python, na parte direita o código para Javascript. Apesar das diferenças de sintaxe próprias de cada linguagem, a semelhança é óbvia. Claro que na medida em que se aumenta a complexidade de uma solução ou programa, as diferenças vão sendo mais notórias. No caso apresentado o cálculo é simples e as semelhanças são maiores. Veja-se a necessidade ou não de importar a biblioteca de Matemática. O separador de blocos de código é o endentamento ou as chavetas. O resultado teria de ser o mesmo em ambos casos: Cada uma das ...

Python - Protótipo de leitura de pontos, coordenadas

Imagem
Python - Protótipo de leitura de pontos, coordenadas A leitura de dados desde um ficheiro, neste caso pontos coordenados pode ser um bloco de desenvolvimento a integrar num programa mais complexo. O desenvolvimento de programas por vezes recorre a pequenos incrementos na montagem de um programa. Ou seja, testa-se uma funcionalidade que mais tarde poderá ser integrada num sistema maior. O caso aqui apresentado é um exemplo, com a leitura de dados desde um ficheiro de pontos coordenados. A imagem acima é o preenchimento do espaço de desenho com uma série de pontos ao acaso apenas para testar o código. Com a leitura de um ficheiro de formato txt, separado por vírgulas, obtem-se o seguinte resultado: Tendo o ficheiro de teste apenas 4 pontos. Observa-se que dei um pequeno esquema de cores por intervalos de cotas. Um dos desafios é "corrigir" as coordenadas do sistema cartesiano, para o sistema de coordenadas do Canvas https://stackoverflow.com/questions/18137313/python-canvas-obj...

Extrair altimetria desde o Google Earth - método alternativo

Imagem
Extrair altimetria desde o Google Earth - método alternativo Desta vez, mostro como extrair altimetria desde o Google Earth, de um modo alternativo ao que pode por exemplo fazer o ISPOL "internamente". Tudo inicia pela zona escolhida ou zona de trabalho. No caso apresentado, foi a zona do vértice Geodésico de 1ª ordem, Serves, a Norte de Lisboa. Sobre a zona escolhida, traçamos um caminho, a simular por exeplo um voo de drone. Note-se que o Google Earth vai adicionando muitos pontos ao caminho. O padrão de recolha de pontos pode ser este ou outro, com maior ou menor densidade, depende de cada caso. O ficheiro armazenado no Google Earth ficará com o seguinte aspecto, em 3D: O passo seguinte é gravar um ficheiro KML com esse caminho escolhido. Se editarmos o ficheiro KML, é um ficheiro de texto em formato semelhante a XML, observamos que tem longitude e latitude mas não tem elevação. Os dados de elevação, são adicionados na transformação de KML para GPX, por exemplo no site GPS...

CSharp - Desenho de Aparelhos de Mudança de Via simples (parte 2)

Imagem
CSharp - Desenho de Aparelhos de Mudança de Via simples (parte 2) A criação de um plugin para desenhar AMVs em Autocad. Nesta segunda parte, a evolução de um plugin que desenha o AMV com formas simples, linhas e círculos para um que desenha por blocos. O prompt aceita o aparelho esquerdo: O desenho dos AMV fica orientado com os dois pontos inciais dados pelo utilizador, o primeiro insere o bloco e o segundo orienta. Abaixo observa-se um AMV esquerdo e um direito, o nome do bloco e a colocação num layer. Um extrato do código C# que faz a montagem do bloco. Com este plugin é fácil encadenar sucessivos AMVs num feixe de vias. É uma das aplicações práticas. O plugin é criado na linha de comandos com o compilador de C# CSC. No processo anexam-se os ficheiros essenciais à manipulação do CAD. Portanto não é necessária uma solução complexa com o Visual Studio. Por outro lado inibe-se a criação de plugins com interface de janelas, o que pode ser alcançado por exemplo por Javascript, que pode se...

CSharp - Desenho de Aparelhos de Mudança de Via simples (parte 1)

Imagem
CSharp - Desenho de Aparelhos de Mudança de Via simples (parte 1) A criação de um plugin para desenhar AMVs em Autocad. Uma das criações em curso é um plugin para Autocad que permita desenhar os AMVs. Isto pode ser feito em AutoLisp em alternativa ao CSharp. Alternativas como o Pyautocad não permitem uma interação com o desenho, são mais para automatismos com coordenadas fixas. O Javascript seria uma opção válida, penso eu. Para a criação desde plugin, usei o Csharp e o compilador na linha de comandos CSC, que gera um ficheiro DLL. Ao executar no CAD "netload" abrimos a localização do plugin: Ao escrever depois o comando "AMV" temos as várias opções (ainda não estão todas desenvolvidas): O desenho que se obtém é o seguinte: Como se pode ver coloca os elementos num layer adequado ao tipo de AMV. Neste momento gera entidades por separado, o próximo passo é gerar um bloco para cada AMV. O desenho seguinte é apenas uma comprovação. Há que testar o desenho em vários quad...

Da modelação CAD ao código: como as linguagens de programação estão a potenciar projectos de engenharia civil de última geração

Imagem
  Da modelação CAD ao código: como as linguagens de programação estão a potenciar projectos de engenharia civil de última geração No âmbito da engenharia civil, a transição tecnológica tem sido fulcral: o uso de ferramentas tradicionais de projecto em CAD (Computer-Aided Design) evoluiu para soluções cada vez mais integradas, suportadas por linguagens de programação que permitem automação, análise avançada e interoperabilidade entre disciplinas. Este artigo pretende explorar esse percurso — desde os arquivos DWG/DXF e superfícies 3D até ao código que alimenta simulações, BIM (Building Information Modelling) e a geração automática de relatórios — e como essa evolução está a impulsionar projectos de grande escala (os chamados “9×” ou nove vezes maiores) na engenharia civil. 1. O paradigma clássico: CAD como núcleo central Tradicionalmente, os engenheiros civis e arquitectos baseavam-se em ferramentas CAD para criar plantas, cortes e elevações, modelar vigas, pilares, lajes e fun...

JS - Obfuscator

Imagem
JS - Obfuscator O Javascript a correr numa browser based app tem o código visivel, como o proteger? Para que se proteja um pouco o código e não seja copiado (facilmente) podemos dar uma encriptação aos scripts de JS. Trata-se de uma codificação ao javascript que a torna dificil de ler. Pode incluir renomear variáveis; adicionar código desnecessário etc. Como exemplo, usando o site: https://codebeautify.org/javascript-obfuscator Podemos transformar a função que está na imagem inicial deste post em algo "diferente", mas contínua a ser legível para o Browser. É infalível? Não, podemos usar agora uma operação inversa, por exemplo no site: https://obf-io.deobfuscate.io/ Uma forma de melhorar a proteção pode ser por exemplo usar nomes de funções sem sentido aparente, ou introduzir na própria função código redundante.