Mensagens

A mostrar mensagens com a etiqueta c#

CSharp - Desta vez trago algo da NET para CLI

Imagem
CSharp - Desta vez trago algo da NET para CLI Como no CSharp faço fundamentalmente programas CLI (Command Line Interface) decidi pesquisar um pouco sobre projectos existentes e que de algum modo se pudessem relacionar com a engenharia, ou pelo menos para servirem de exemplo. Não existe muito material, já que em C# muita coisa é feita com Visual Studio (com interface gráfica) e a grande parte do material em CLI é para integrar com APIs ou até mesmo para plugins de CAD... Consultem os meus posts que têm alguma informação sobre utilidades que eu crio. Gráficos No Reddit o utilizador sumrix postou um projecto de graficos no modo ASCII. https://www.reddit.com/r/csharp/comments/1fxjvwl/i_made_a_hobby_project_consoleplot_ascii_charts/ https://github.com/Sumrix/ConsolePlot Conversor de Unidades No Code Projecto o utilizador Autonom explica um conversor de unidades, pode ser fonte de inspiração para algum cálculo. https://www.codeproject.com/Articles/22470/Complete-Unit-Conversion-Sample-in-C-N...

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 - Organizar o código

Imagem
CSharp - Organizar o código Uma das formas de organizar o código é estruturar no mesmo ficheiro por Namespaces e Classes, outra é com DLL. Exemplo saída cálculos 1)  DLL 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. Código para o DLL Compilação do DLL; referencia; execução Referencia ao Namespace do DLL Output 2)  Interna Dentro de um mesmo ficheiro de código, é possível organizar o código, por NameSpaces e/ou por Classes. No código abaixo dentro da classe Converte está o código do exercício anterior para a mesma classe, nada mudou. A variante aqui é chamar desde um Namespace ded...

C# - Viadutos Excel - ISPOL

Imagem
C# - Viadutos Excel - ISPOL Ler dados do Excel e passar a informação para o ISPOL é um ganho de produtividade e organização. Desta vez, apresento uma utilidade que lê um ficheiro Excel, e transforma os dados para o menu de estruturas do ISPOL. Partindo de um Excel organizado, por pks eixos e espessuras da estrutura etc... como o seguinte: Elaborei um programita em CSharp: Este programa funciona em modo "DOS" não tem uma interface gráfica de janelas: O programa cria os ficheiros necessários, o Excel pode estar organizado por eixos, e o programa guarda um ficheiro para cada eixo: O resultado depois de abrir o ficheiro em ISPOL é o seguinte: Com as alterações ao projecto pode-se manter um ficheiro de apresentação e controlo em Excel.

C# - Medições de Excel para CAD - ODTs

Imagem
C# - Medições de Excel para CAD A automatização de mais um processo, desta vez envolvendo Excel e Autocad. O objectivo do exercício é passar as quantidades que estão organizadas numa folha de Excel, para um desenho de CAD. No caso, são várias folhas com um 1 km de traçado, e várias folhas com 5 km de traçado. O ficheiro Excel com as quantidades está preenchido e minimamente formatado. Como posso receber outra versão (diferente) do mesmo ficheiro em Excel, optei por fazer um pré-processamento dos dados, organizando-os por grupos segundo as folhas que quero e colocando já a informação para o script de cada folha. Com esta informação organizada, posso executar o programa que abre o Excel, e grava os ficheiros Script, um para cada folha. No disco fica um script, que em cada folha de CAD aberta, é executado e assim completa o trabalho com pouca intervenção humana.

C# - Autocad Plugin Arco

Imagem
C# - Autocad Plugin Arco Este plugin permite calcular o raio que cumpre determinado desenvolvimento de um arco tangente a dois alinhamentos. Este plugin foi programado em C# para Autocad. O utilizador indica duas linhas, o desenvolvimento e a região (quadrante) e o programa realiza os cálculos necessários e desenha o arco. Tem cerca de 700 linhas de código, inclui vários conhecimentos prévios, e transporta para o futuro outros conhecimentos, é um processo contínuo e acumulativo. O utilizador, pica na primeira linha, na segunda linha, depois é-lhe perguntado qual o desenvolvimento do arco de circunferência, e finalmente a região onde se vai realizar o cálculo. A selecção da região serve para abreviar um pouco o cálculo interno. Podia ser feita de otra forma, mas por simplicidade foi escolhi que se picasse num ponto. Os desenhos são organizados por layers. O resultado final com todos os layers ligados será este:

C# - Autocad Plugins

Imagem
C# - Autocad Plugins O código de um plugin pode tornar-se bastante complexo, caso se tenham de despistar todas as hipoteses de input do utilizador, e de cálculo. No plugin que estou a desenvolver, o cálculo teórico para o caso ideal é simples. No entanto para poder prever os casos de inputs do utilizador e as hipoteses de cálculo, adiciona-se um grau de complexidade a todo o programa. Por agora, e para não dizer muito, se quisermos desenhar um círculo ou arco tangentes a dois segmentos o caso aqui apresentado parece simples: No entanto se pensarmos que o utilizador pode dar com a geometria acima, os segmentos em sentidos diferentes, temos já um grau de complexidade. Mais o sector onde se deseja realizar o desenho, é mais um grau de complexidade. Depois nem todos os métodos proporcionados pela API no Autocad servem. Por exemplo se os segmentos não se cruzarem em desenho, alguns métodos do CAd não servem. Para ter o controlo e despistar mais este caso anteriormente referido, criei vários...

C# - Conversor de ângulos (2)

Imagem
C# - Conversor de ângulos Este é um programa que faço em várias linguagens de programação. Esta versão é semelhante a uma que fiz no final de 2022 na mesma linguagem. Uma das operações na engenharia é converter entre várias unidades angulares. Além das tradicionais entre sistema angulares de graus (0-360) e grados (0-400) já necessitei de recorrer a aplicações Web para converter coordenadas planas em geográficas, e o resultado estar num formato decimal ou sexagesimal, e ter de converter para o outro. E para isso usei um programa semelhante ao que se apresenta hoje. É um programa para consola, ou CLI, ou se quiserem em modo MS-DOS. A janela inicial é a que fica a aguardar um valor de entrada: O programa nesta fase analisa a validade dos dados, e determina se o input é feito em decimais ou sexagesimais. No caso do exemplo acima, é um ângulo em decimal, e não temos de indicar as unidades iniciais. Assim oferece as várias possibilidades, se entramos um valor em graus ou grados: outra opção...

C# - Validação de dados básica

Imagem
C# - Validação de dados básica A validação dos dados introduzidos pelo utilizador é uma operação essencial. Embora os programas que faço são maioritariamente para consumo interno, fica bem ter algum despiste inicial de erros de introdução, a validação de dados pode servir não só para aprovar o número / texto introduzido mas também para evitar alguma incoerência no cálculo. No presente projecto de CSharp li que podemos dar o ! como negação, como se faz também em Javascript: Tendo um conjunto prévio de booleanos preparados para serem True, caso um dos testes dê False temos o nosso ponto de controlo. E assim se vai construindo mais alguma coisa...

C# - Informação Geotécnica para pente

Imagem
C# - Informação Geotécnica para pente Este plugin para CAD faz uma tarefa simples mas bastante útil, substitui o texto pelo contido num ficheiro. Este plugin para Autocad, programado em CSharp, já tem algum tempo, meses, no entanto com um dos projectos actuais, continua a ser útil. É uma daquelas situações que fica "pago" rapidamente. A tarefa é aparentemente simples, ler um ficheiro de texto desde o disco, identificar palavras chave no pente desenhado e substituir pelo texto correspondente. Na preparação do ficheiro há um procedimento no ISPOL que intervala as palavras chave, e a formatação correcta do ficheiro de texto. O utilizador, não precisa de fazer um copy paste do texto, situar o mesmo no local certo, que pode ser variável com a escala e saídas diferentes. O primeiro passo prático é carregar o plugin, executar a ordem e procurar o ficheiro de texto: Este é um conteúdo de exemplo do ficheiro: O resultado final é este: O texto que aqui aparece na vertical, está situado...

C# - Ler ficheiro Excel sem ter o Excel

Imagem
C# - Ler ficheiro Excel sem ter o Excel Nesta experiência, codifiquei um leitor de dados para um ficheiro Excel, num computador com Excel e depois noutro sem o Excel. No computador do trabalho, tenho o pacote Office, e nas minhas experiências de código, entre C# e JS estava a programar algo que lesse os dados de uma folha Excel, e os transformasse depois noutro tipo de dados, para serem lidos no ISPOL. No computador com Excel, funciona bem. Fiz uma interface básica ao estilo MS-DOS, que cumpre os mínimos, já que deixámos de ter acesso ao Visual Studio. Ao escolher o ficheiro sobre o qual se vai trabalhar o programa funciona e guarda num ficheiro de texto a informação necessária: Mas ao correr o mesmo programa (compilado previamente e tendo as DLLs) este não funciona: Não é muito grave, já que o uso principal será em contexto de trabalho. Noutras experiências que fiz, com programação JS (Browser Based App) funciona sem ter o Excel, já que se recorre a uma livraria externa, online. Ainda...