Mensagens

A mostrar mensagens com a etiqueta ferrovias

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

Chat GPT e o cálculo de gabaritos

Imagem
Chat GPT e o cálculo de gabaritos O modelo LLM não é adequado a cálculos muito específicos. Os modelos LLM ou de inteligência artificial, são importantes ferramentas em alguns domínios. No caso apresentado para o cálculo de Gabarito Livre de Obstáculos, é dificil que o consigam realizar. Um dos pontos é que os modelos de IA vão procurar múltiplas fontes quando se aplicam entre milhares de fontes, regras específicas. Outro factor é a complexidade dos cálculos envolvidos e a saída gráfica. E também as traduções técnicas de outras linguagens. No presente exercício, houve sucessivos "prompts" para responder a dúvidas do modelo, mas fica a sensação de ciclo de operações que não leva a lado nenhum. Prompt Inicial: calcule o gabarito livre de obstaculos, segundo a EN15273-3, para um contorno PTb+. A curva tem um raio de 350m, uma escala de 150 mm e uma insuficiencia de 120 mm. Uma das respostas intermédias: Síntese / conclusão imediata Cálculos inequívocos que já obtive (valores ...

Neutralino - Ferrovias App

Imagem
Neutralino - Ferrovias App Revisito o framework Neutralino que permite criar aplicações desde tecnologias "Web" Tendo uma aplicação local com tecnologias Web é fácil, transformar a mesma para executáveis que podem correr em qualquer sistema operativo desktop, windows, MacOS ou Linux. A configuração é relativamente simples e a instalação do Framework com base no NodeJS não apresenta problemas de maior. O teste de hoje incidiu sobre um outro projecto de cálculos, mas coloco aqui a ilustração de um outro mais genérico. Praticamente tudo o que funciona localmente vai funcionar depois como executável. Por exemplo os botões de leitura e escrita de ficheiros (apesar do Neutralino ter os seus próprios métodos que podemos usar se necessário) e o desenho num Canvas. Portanto para o tipo de programação e projetos que realizo, este Neutralino dá conta do recado, podendo ser uma alternativa ao Python e o seu método de criar executáveis. O Neutralino usa um WebView, mantendo "internam...

OpenRailWayMap - Muito interessante

Imagem
OpenRailWayMap - Muito interessante Um mapa interactivo com base no OpenStreetMap, de caminhos de ferro. No exemplo da primeira imagem temos as diferentes bitolas na Europa. Com as opções de visualização mostradas podemos por exemplo verificar se vemos uma linha de alta velocidade ou convencional. Colocando o zoom a outro nível aparecem mais detalhes. Até com os corredores previstos para a LAV... E em Lisboa os eléctricos e metro. Com mais zoom é possível observar as vias e kms. Tem uma API mas não vi uma opção de guardar como na vesão de estradas.

Python - Excel ISPOL, complicação desnecessária.

Imagem
Python - Excel ISPOL, complicação desnecessária Por vezes tendemos a complicar muito as soluções, quando com apoio das ferramentas existentes e com mais um pouco, se pode solucionar o problema real.  Num dos posts anteriores descrevi um pouco o processo de criação de um programa em Python para automatizar um processo, que não estava muito explícito mas apontava para Gabaritos e Plataformas. A ideia é gerar dados para a implantação das bordaduras de plataformas. No entanto o grau de complexidade está a aumentar, e ao parar um pouco e reflectir... será que não se está a complicar muito o assunto? No fundo pode-se apenas criar uma ponte entre o cálculo de alguma coisa e o ISPOL. Ou seja mecanizar cálculos que o próprio ISPOL não faz, lendo um input de ISPOL e criando um output para ISPOL. A ferramenta de traçado é bastante poderosa e adaptável, por isso fornece os dados para o cálculo e lê os dados para a implantação. Abaixo uma vista do menu de larguras, que pode ser usado para desen...

Kodular - App Ferrovias (1)

Imagem
Kodular - App Ferrovias (1) Na plataforma kodular é relativamente fácil desenvolver uma app. Semelhante ao Scratch e MIT App Inventor (são da mesma casa), o Kodular é uma plataforma na qual se programa em blocos. Nas escolas ensina-se um pouco de Scratch. O Kodular muito usado em países como a Índia, permite fazer praticamente tudo. E tem a vantagem de ser online, uma plataforma online, sem a necessidade de instalações. Está num processo de mudança ainda não terminado. Para o assunto deste post, misturamos o Kodular com a criação de uma app para cálculos ferroviários. Ainda em desenvolvimento, aos poucos vamos adicionando novas funcionalidades e testando a usabilidade. Vista Principal Agora estamos a adicionar um "screen" para a ajuda. Abaixo um exemplo de blocos. Blocos O objectivo é apenas ter uma calculadora funcional e sempre disponível para a engenharia ferroviária. Aceitam-se sugestões.

ISPOL - Truncar por código

Imagem
ISPOL - Truncar por código A utilidade de truncar, ou cortar, por código pode funcionar como um substituto às linhas de fronteira, ou como complemento a estas. Em projectos, ou zonas de projecto com eixos perfeitamente paralelos, como são os casos de estações ou feixes de vias (para projectos ferrovários, ou outros casos em projectos rodoviários), podemos aplicar um corte por determinado código e distância. Truncar por código Depois do trabalho de detalhe de cortes, calculado o projecto, podemos adicionar os eixos secundários ao principal. Ao analisar o ficheiro criado no editor de perfis, podemos observar a qualidade da montagem. A medição neste caso aponta apenas para o eixo principal, com o ressalto da escavação como exemplo. Como foram criadas novas superfícies no menu de adiciona ramal, estão não são aqui medidas. No entanto a medição existe em cada eixo que faz parte do conjunto como se pode ver neste exemplo: E claro tudo em 3D como sempre.

JS - Gabaritos portabilidade

Imagem
JS - Gabaritos portabilidade A ideia é válida para qualquer aplicação local com tecnologias "WEB". A tecnologia actual permite que uma aplicação baseada no navegador web funcione da mesma maneira, seja num dos vários SO do Windows, e entre os vários navegadores web. Sendo uma aplicação simples no sentido de não usar nenhum framework ou biblioteca instalável, pode ser executada em qualquer computador. Com outras linguagens pode ser mais rápida, e não ter restrições de escrita de ficheiros "por baixo dos panos", mas vive-se bem com isso. Pode-se encarar como um "trade off" entre tecnologias, umas permitem uma coisa outras outras . Para que serve esta app? Pois para calcular gabaritos, que podem ser usados em diversas situações, plataformas, entre-eixos, túneis, obstáculos...  Um exemplo de entre-eixos variável, linha de Sintra.

Python - Ler eixo de ISPOL (3)

Imagem
Python - Ler eixo de ISPOL (3) Mais um acrescento ao aspecto gráfico. Ao que já tinha, acrescentei algumas seções para a interface gráfica. Também dei uma função ao botão de leitura do eixo, agora abre a janela de navegação para procurar ficheiros em formato Excel. O aspecto gráfico como disse antes, evoluiu um pouco. Vamos ver no que resulta...

Excel - Desenho de Gráficos

Imagem
Excel - Desenho de Gráficos Uma das infinitas capacidades do Excel é desenhar por coordenadas. O Excel é uma ferramenta muito poderosa. Os programas similares, do pacote OpenOffice ou LibreOffice ou as versões online do Google também oferecem muitas capacidades. No caso demonstrado, fiz um desenho com base nos contornos de referência PTb+ e PTc (gabaritos ferroviários). Para o desenho não necessitamos de qualquer programação, apenas saber usar algumas ferramentas. Tudo começa com o preenchimento de duas tabelas, com as coordenadas XY em milímetros dos dois contornos de referência. Seleciona-se o conjunto de dados, e introduz se um gráfico de dispersão com os pontos, como se mostra na imagem abaixo, de imediato o Excel oferece nos uma previsão do que será o gráfico. Depois adiciona-se mais um conjunto de dados para que desenhe o outro contorno de referência. Com alguma formatação do gráfico podemos obter um produto semelhante ao da imagem abaixo. A área do gráfico pode ser exportada p...

Python Javascript - Diferenças nos resultados (Gabaritos)

Imagem
Python Javascript - Diferenças nos resultados (Gabaritos) Tendo o mesmo cálculo em duas linguagens de programação era expectável ter o mesmo resultado. Ao mudar de linguagem de programação, ou de tecnologia, para realizar o mesmo cálculo é expectável obter os mesmos resultados. É também uma forma de revisão de todo o processo. No caso, um projecto "outsider" para cálculo ferroviário, que está a ser re-codificado para que tenha mais possibilidades de ampliação no futuro, embora seja um projecto para consumo interno. Na parte esquerda da imagem abaixo, o cálculo em Javascript e na parte direita em Python. Não tem exactamente o mesmo conteúdo porque se está a apresentar menos saídas em JS. Os valores semelhantes, por exemplo o -1.51 e o -1.511 chamam a atenção, deveriam ser o mesmo. Uma das formas que tenho de rever os cálculos é comparar os ficheiros de Output, onde tenho todos os cálculos parciais relevantes. Embora com separador de campos diferente, foi possível verificar q...