Mensagens

A mostrar mensagens com a etiqueta programacao

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...

C# - ISPOL intervalos de desenho perfis longitudinais

Imagem
CSharp - ISPOL intervalos de desenho perfis longitudinais Sempre que há muita digitação há erro. Para gerar vários perfis longitudinais com intervalos irregulares criei um pequeno programa para que o ISPOL possa ler esses intervalos com a menor intervenção humana possível. Esta imagem, ilustra a área de trabalho, rectangulo verde, e até onde já se desenhavam os meus perfis longitudinais. Ora tudo o que é repetitivo merece uma pausa e ponderação se é possível ir pelo caminho da programação. Eu já tinha os intervalos (e outra informação que não interessa explicar) num Excel. Assim pensei em passar para um Excel limpo apenas a informação que me interessa que seja lida pelo programa. Nome do ficheiro corresponde a uma folha de desenho e uma para cada perfil desenhado. PK inicial e final ao intervalo que se desenhará no ISPOL. Os ficheiros gravados no menu de Longitudinais são em formato de texto. Com uma meia hora / hora de programação consegui fazer um programa que leia o Excel. E que gra...

CSharp - Dividir o código por DLL

Imagem
CSharp - Dividir o código por DLL Uma das formas de dividir e organizar o código pode ser pela criação de DLL, e estes podem ser aproveitados para vários projectos. A criação de Bibliotecas DLL (biblioteca de vínculo dinâmico  microsoft )  pode ser uma forma de dividir e organizar o código. As DLL funcionam como um módulo externo, um conjunto de código que se coloca num ficheiro diferente do principal. Com esta organização podemos também reaproveitar o código das DLL para outros projectos. Por exemplo uma biblioteca semelhante à apresentada no exemplo pode servir para vários projectos de engenharia. Existem muitos assuntos relacionados com as DLL nos quais não vamos entrar aqui, inclusive o uso de DLL programadas em linguagens diferentes. Exemplo: O caso presente envolve dois ficheiros, um como se fosse o código principal, e um secundário que contém o código para a DLL. teste_ang.cs é o ficheiro principal ConverteAngulosDLL.cs é o ficheiro que vai dar origem ao DLL (os no...

C# - Ler EDM em Autocad

Imagem
C# - Ler EDM em Autocad Este é um dos projectos que tenho em mãos, para proporcionar aos colegas da Sener um meio de abrirem e visualizarem ficheiros de ISTRAM em CAD. Com a programação em C# .NET de Autocad podemos fazer coisas desde o mais simples ao complexo. Neste momento tenho um projecto digamos de nível médio. A ideia é que à parte das licenças e utilizadores que temos na empresa do programa ISTRAM ISPOL se possa dar a possibilidade de visualizar o conteúdo de ficheiros EDM nativos de ISTRAM. A programação está feita sem recurso ao Visual Studio, um passo mais simples e retira alguma complexidade ao trabalho.  Neste momento consigo ler um EDM genérico, diferenciar por cores e colocoar alguns blocos semelhantes ao EDM. Ao surgirem casos particulares vou actualizando o plugin. E para já está com um resultado em CAD sem cota. Aqui uma comparativa das imagens obtidas em CAD e comparadas com o ISTRAM (na esquerda): A janela de abertura do ficheiro, está independente do "Windows...

Scratch Episódio 01

Imagem
 Scratch Episódio 01 Ocupação para os tempos livres. Neste episódio faço uma breve abordagem à matemática necessária para calcular o volume do cubo, e depois uma introdução muito breve aos computadores e à programação. Subscreva e divulgue para ficar a par das novidades. #scratch #cálculo #volume #cubo #matemática #programação https://youtu.be/IjxW05uq3sw

A linguagem de programação Lua

A linguagem de programação Lua  A #linguagem de #programação #Lua é uma das minhas favoritas, leve e poderosa para as operações de #cálculo e operações com ficheiros. Usei para fazer muitos pequenos programas para cálculos e transformação de ficheiros em #engenharia, inclusive para o #ISPOL. É uma linguagem interpretada, criada no #Brasil. PUC-RIO. @LuaLang Com a versão 5.3 ganhou suporte a UTF-8, ou seja caracteres acentuados em Português. Citação: Lua é uma linguagem de programação poderosa, eficiente e leve, projetada para estender aplicações. Ela permite programação procedural, programação orientada a objetos, programação funcional, programação orientada a dados e descrição de dados. Lua combina sintaxe procedural simples com poderosas construções para descrição de dados baseadas em tabelas associativas e semântica extensível. Lua é tipada dinamicamente, é executada via interpretação de bytecodes para uma máquina virtual baseada em registradores, e tem gerenciamento automático ...