Mensagens

A mostrar mensagens com a etiqueta csharp

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

Cálculo EN15273 - Ideias

Imagem
Cálculo EN15273 - Ideias Na senda do cálculo e automatização possível sobre as ETI-IFR e EN15273 vão surgindo ideias em consequência das necessidades. A EN e a ETI dão directrizes para vários cálculos, personalizados para cada país. Entre-eixos; plataformas; gabaritos etc. Já tenho o cálculo de gabaritos bastante desenvolvido (cálculo e desenho). Agora outras ideias vão avançando, com base nos elementos de traçado do eixo podem-se realizar outros cálculos. Uma directriz no formato Excel, é facilmente percebida e passível de actualização rápida. É portanto um bom input. Desde a directriz em Excel, é possível calcular qualquer ponto com base num PK , o algoritmo não é fácil (especialmente para cobrir os diversos casos posicionais de clotóides) mas já tenho alguns antecedentes. A inscrição em curva do traçado contínuo é também um ponto importante. Imagem de https://www.boe.es/boe/dias/2015/08/04/pdfs/BOE-A-2015-8765.pdf Estando à partida a organização dos dados feita com Excel, pode f...

Possível projecto - Indecisão HTML CSharp Excel

Imagem
Possível projecto - Indecisão HTML CSharp Excel Antes de avançar para algo mais denso, uma etapa importante é parar e pensar o que se pode automatizar. Tendo o conhecimento de uma ferramenta poderosa como é a programação, uma das etapas antes de trabalhar em algo, é pensar o que se pode optimizar na futura tarefa, usando a programação. Ponderar se o "custo" benefício é efectivo. Esta é uma folha de Excel. Se ficar como folha isolada de uma iteração como por exemplo necessitar de ler um eixo ou escrever um ficheiro ou algo complexo, podemos pensar noutro nível. Pode-se usar uma macro, e no caso abaixo a macro apenas remete para a execução de um programa em CSharp. As macros têm sempre a questão dos ficheiros com macros, a segurança, e num futuro poderá haver problemas quando for tudo para a nuvem. Em paralelo tenho já um projecto avançado em paralelo ao Excel. Com as tecnologias Web. Tem as limitações de não interagir directamente com o CAD, se for necessário. De outro project...

Excel - Executar programas externos

Imagem
Excel - Executar programas externos O Excel tem a linguagem de programação VBA, qual seria o propósito de executar um programa externo ao Excel desde o próprio Excel? Uma resposta interessante poderia ser proteger o código, e usufruir de todas as potencialidades por exemplo de uma linguagem e ecossistema como o CSharp. Com um uso prático em vista, posso desde o Excel criar um botão que se associa a uma macro. Esta macro não faz mais que executar o programa externo que num exemplo poderia ler o próprio ficheiro de Excel e montar ficheiros para o ISPOL ou CAD. Ficheiros como o seguinte, podem ser assim obtidos directamente desde o ambiente Excel. Com o VBA (Visual Basic for Applications) não podemos usufruir de todas as potencialidades de uma linguagem como o CSharp. Muita coisa pode ser feita em VBA, mas é mais uma linguagem variante, BASIC, dispersando o conhecimento e saber fazer.  Exemplo de macro a implementar no Excel Sub cmd_test() Dim cmd As String Dim ret As Double  cmd...

CSharp - Viadutos Excel -> ISPOL (2)

Imagem
CSharp - Viadutos Excel -> ISPOL (2) Algumas novidades na ferramenta de passar a informação de Viadutos de Excel para ISPOL. Na continuidade da melhoria da ferramenta que passa a informação contida num Excel para ficheiros de ISPOL, no caso a informação para o menu de estruturas de ISPOL. Post anterior: https://jcoimbras.blogspot.com/2024/03/c-viadutos-excel-ispol.html Este é o quadro geral da informação dos Viadutos. Adicionei mais uns valores de configuração ao Excel. Distância ao Estribo / Encontro e espessura de superestrutura. Exemplo de código usado, CSharp. Exemplo da janela de execução do programa. Depois de executado o programa o resultado é um ficheiro de texto para ser lido no menu de estruturas do ISPOL. A altura de superestrutura, dá uma folga entre a linha da rasante e a sombra que representa a estrutura. Este seria o aspecto da janela de definição de estruturas em ISPOL depois de carregado o ficheiro produzido pelo programa. Nas seguintes imagens observa-se a distânci...

HTML - Unificação de utilidades JS para projecto (possivelmente)

Imagem
HTML - Unificação de utilidades JS para projecto (possivelmente) Uma ideia para estes dias pode passar por unificar / centralizar as utilidades para projecto numa página. A ideia é juntar desde um menu inicial, uma página web, as diversas utilidades programadas para auxiliar na gestão e introdução dos dados. Sempre com a ideia de potenciar as operações por meio da programação. Mantendo ficheiros Excel com a informação transmitida ao ISPOL por meio dos ficheiros de texto que podem ser lidos em cada menu. Seria mais ou menos o esquema acima. A vantagem de usar HTML JS em relação ao CSharp é a da interface gráfica, e de alguma facilidade no código.

CSHARP - Renomear pastas com pequena ajuda do Copilot

Imagem
CSHARP - Renomear pastas com pequena ajuda do Copilot As ferramentas de IA podem ajudar na productividade, no caso em relação à construção rápida de um programa. O caso que se apresenta, é o trabalho de renomear centenas de pastas. As pastas têm como sufixo a data, e como prefixo uma letra indicativa do tramo a que dizem respeito de um determinado projecto. Por exemplo a pasta da imagem abaixo diz respeito ao tramo S com a data 20240506  . Como achei melhor organizar as pastas com Tramo_Data haveria que renomear estas centenas de pastas manualmente, movendo a palavra da data para a segunda posição. A pasta acima deveria ficar como:                              S_20240506_Perfil_Vias_vigas Deste modo a ordem em que aparece depois no explorador de ficheiros do windows já será por ordem da data. Para testar o programa coloquei algumas pastas que quero renomear numa pasta de Teste: Pastas originais Co...

CSHARP - Excel para menu de Escala / Peraltes

Imagem
CSHARP - Excel para menu de Escala / Peraltes Na continuidade de trabalhos anteriores, é relativamente fácil optimizar o fluxo de informação do ISPOL para o Excel e voltar a alimentar o ISPOL. Fluxo Aproveitando o acumular de conhecimentos anteriores, aqui a ideia é transferir informação de uma folha de análise de parâmetros do eixo para o ISPOL, a informação relevante para o caso é a escala de cada curva (ou peralte para os espanhois). O processo inicia com a criação de uma listagem da directriz no formato texto ou Excel. Listagem da directriz Essa listagem é copiada para a folha de análise dos parâmetros geométricos e dinâmicos.  Nesta folha apura-se o valor da Escala (Peralte) para cada curva. Folha Excel De seguida executa-se o programa em CSharp. Este analisa uma determinada folha do Excel, mostra os dados lidos, e calcula o necessário para montar um ficheiro de extensão prl. Código CSharp Mostra resultados leitura O ficheiro prl é então lido pelo ISPOL no menu de peraltes. Me...