Avançar para o conteúdo principal

Mensagens

A mostrar mensagens de outubro, 2022

C# - Porque investir tempo numa linguagem de programação, como engenheiro de vias ?

C# - Porque investir tempo numa linguagem de programação, como engenheiro de vias ? Sendo a minha ocupação na área de traçado de vias, porque perco (ou invisto) o meu tempo numa linguagem de programação? https://www.linkedin.com/pulse/bim-2017-using-microsoft-net-46-framework-c-6-now-complete-honde/ Além do "Saber programar será tão importante como ler e escrever" que terá dito Zuckerberg ... e além de ser um desenvolvimento pessoal que posso usar em actividades "extra-laborais" é uma mais valia que posso oferecer à empresa. A programação permite, como já escrevi num post anterior, que a produção seja maior. Permite uma flexibilidade de trabalho e adaptação a diversas circunstancias e resolver problemas. Permite que não sejamos um agente passivo, à espera que algum software resolva os nossos problemas, e passar a criar a solução. Um funcionário pró-activo é um activo importante na empresa. Sendo a actividade de traçado, intrinsecamente ligada ao uso de softwares, e

C# - Ficheiro com coordenadas para CAD Script

C# - Ficheiro com coordenadas para CAD Script Na sequência dos desenvolvimentos anteriores, tenho agora a leitura de um ficheiro de coordenadas e passagem das coordenadas para um ficheiro CAD. Tendo um ficheiro com coordenadas, é de grande interesse conseguir que estas sejam esbatidas num ficheiro CAD. O ficheiro de coordenadas pode ter vários formatos XYZ NXYZ NXYZT ... o que se queira. Com um programa completo, serão pedidos ou identificados estes formatos. Neste exercício, usei um formato XYZ, propositadamente com alguns espaços ao inicio e entre as coordenadas etc, para validar a leitura. O resultado é: Agora com 1000 pontos, o ficheiro de entrada é: E o resultado, na parte esquerda com o zoom total e na parte da direita um detalhe: O ponto em que estou neste desenvolvimento, é o mesmo que noutras linguagens de programação, escrever um ficheiro Script que depois é carregado no CAD. Este método e ficheiro é estático, não permite acção do utilizador no CAD. Para que haja acção do uti

C# - Guardar Ficheiro

C# - Guardar Ficheiro Guardar um ficheiro com resultados, é mais uma etapa no processo de manipular informação. Guardar um resultado é essencial. Como em todas as linguagens, existem vários modos de o fazer. Aqui o resultado da leitura de um ficheiro ceje.res do ISPOL com dados da directriz, e apenas escrevi no ficheiro de output as coordenadas dos elementos da directriz: Estou a usar o Streamwriter (corrente de escrita) que vai guardando sequencialmente os dados. O que pode ocorrer de menos bom neste método é que não há um aviso de quando o sistema acabou de gravar o ficheiro, podendo em último caso, haver um método que queira usa o ficheiro antes de este estar guardado e fechado. Para isso estão os métodos Async, muito usados por exemplo na programação Javascript ( e Python) em que se aguarda que a operação de um ficheiro (leitura ou escrita) termine. Pelo que vi os projectos .net 4.5 em diante aceitam os métodos Async, que são os que constam no site da Microsoft como exemplo de esc

C# - Criar biblioteca externa

C# - Criar biblioteca externa Criar uma biblioteca é uma forma de organizar e reutilizar o código. As bibliotecas DLL (Dynamic Link library) são muito comuns nestas linguagens de programação. or exemplo temos algumas para trabalhar com o Excel, outras para o Autocad, e porque não uma DLL própria com algumas funções à medida. Para criar uma DLL há que compilar o código para um target DLL, e depois no ficheiro de trabalho referenciar esta DLL. No entanto neste exercício vi que existem alguns truques, é um pouco diferente dos módulos de Python. O esquema / imagem abaixo ilustra o modo de funcionamento perfeitamente. À esquerda o código da DLL e à direita o código do ficheiro de trabalho. O ficheiro DLL chama-se Maths.dll e o de trabalho teste.exe Aqui alguns comandos para que tudo funcione: Mesmo sem usar o pesado Visual Studio conseguem-se fazer coisas interessantes. Posso por exemplo fazer uma biblioteca para conversores de unidades angulares, ou para qualquer coisa de topografia. Ou o

C# - Ficheiro de texto para Array

C# - Ficheiro de texto para Array A operação de passar a informação de um ficheiro de texto para um Array é essencial para manipular ficheiros. Tendo uma listagem do ISPOL com elementos da directriz, o desafio é passar a listagem para um formato de matriz, que é o Array, e passar a informação que interessa para as operações posteriores. Com o formato de Array, é fácil realizar operações matemáticas, ou seleccionar informação a ser escrita num ficheiro de output. Este é o formato de listagem, ceje.res de input: Com alguns algoritmos, como o exemplificado abaixo, conseguimos seleccionar a informação. Note-se a semelhança com o Javascript excepto na declaração de tipos. Esta declaração de tipos, e indicar muito bem o que um método retorna, y que argumentos lê, é uma parte que necessita de mais atenção, pois o C# não é tão "permissivo" como o Python ou o JS. E o resultado imprimido no ecrã é este: É uma impressão do conteúdo do Array. Com isto pode-se construir alguma coisa de CA

C# - Semelhanças com Javascript e leitura de ficheiro

C# - Semelhanças com Javascript e leitura de ficheiro O C# é uma linguagem fortemente tipada, mas curiosamente tem semelhanças com Javascript onde praticamente não existem. O C# sendo fortemente tipado, e com uso de um compilador antigo sem o apoio do Visual Studio, torna por vezes a detecção de erros mais complicada. Tenho o ficheiro de texto, listagem de eixos de ISPOL, lida, e apresentada parcialmente no ecrã. O passo seguinte é filtrar outra vez, mas passando agora os valores que interessam para um array e descartando os outros. Ainda de referir que existem blocos que poderiam ser de C# como de Javascript. É o caso da imagem seguinte, que excepto as duas primeiras linhas, o restante ciclo e condições são iguais ao JS. Continua em próximos posts...

C# - Ler ficheiro

C# - Ler ficheiro Ler e modificar ficheiros de texto é uma operação recorrente para aumentar a produtividade em ISPOL. Por isso é o próximo passo, consolidar este tipo de operações. Por agora estou a testar a leitura de um ficheiro, pela linha de comandos. O ficheiro ceje, numa próxima iteração será separado por colunas, por agora apenas está numa leitura em bruto. A execução deste programa implica dar um argumento na linha de comandos que é o nome do ficheiro a ler. Aqui ainda tenho um array de strings, do programa que tomei como exemplo. E um pormenor importante, ao lidar com ficheiros que contêm texto acentuado: Vamos progredindo, o BIM é já ali à frente...

C# - Conversor de ângulos

C# - Conversor de ângulos Uma das ideias principais de quem está a aprender uma linguagem de programação, é realizar um exercício sobre uma área objectiva. Aprender sem um objectivo claro, não é motivador. Assim qualquer processo de aprendizagem deve ter um foco, no caso da área de trabalho onde me insiro posso encontrar vários. Na construção de um programa que hoje fiz, para verificar algumas coisas sobre Métodos -> Funções usei a ideia de construir um conversor de ângulos, converter entre vários sistemas angulares. Grados, Graus Centesimais, Graus Sexagesimais e Radianos. Este é um tipo de programa que já fiz em muitas linguagens, inclusive para Android... O programa está no "modo" de linha de comandos, que por agora é o suficiente até consolidar os conhecimentos na nova linguagem. Vista do programa: Parte do código: No bloco acima, não é muito notório, mas em alguns blocos o código é igual a um Javascript. Seguimos no caminho BIM CAD etc...

C# - Strings as mesmas de sempre

C# - Strings as mesmas de sempre A manipulação de Strings na programação é um tema muito importante. Nos programas que faço, uma grande parte do processo é manipular Strings. Ler, transformar em números, calcular e voltar a escrever. Ler ficheiros de listagens de ISPOL é uma parte do processo, já que são formatos de texto simples, que permitem grande flexibilidade. A manipulação de Strings em C# é semelhante a tantas outras linguagens de programação, com as propriedades e métodos habituais. Python; Javascript; VBasic; Lua ... Abaixo alguns dos exemplos possíveis. Com o seguinte resultado: O BIM é já ali à frente...

C# um não exclusivo Windows

C# um não exclusivo Windows A linguagem C# desenvolvida pela Microsoft, já há algum tempo que não é um exclusivo dos sistemas Windows. http://www.icthub.pk/blog/quick-guide-open-bim-software-and-components/index.html O C# permite criar aplicações desktop e servidor, e um mundo mais (Mobile Net ...) além de ser uma ferramenta para criar plugins de CAD (Autodesk e Bentley) entre outras aplicações. A linguagem C# pode, pelo menos na sua forma genérica ser executada em sistemas Linux, pela instalação do pacote mono-complete. Esta permite compilar e correr um código CSharp nos sistemas Linux. Não carrega o peso de toda a instalação DotNet ou como se chama (tem havido várias designações ao longo do tempo), permitindo fazer pequenas aplicações de consola. Pelo que li também é possível fazer aplicações gráficas multi plataforma com algumas livrarias... por agora não. Por agora interessava-me testar se funciona. O pacote Mono está disponível não só para Linux mas para os outros dois SO principa

Calculadora do Windows - Muito mais que somar

Calculadora do Windows - Muito mais que somar Conhece as potencialidades da calculadora do Windows? Para além das operações simples que todos já usámos, a calculadora do Windows (10) apresenta um rol de operações de várias áreas. Como entrada de post coloco aqui um gráfico, sim faz gráficos, este é o do Seno ( ou Coseno? fica para recordarem) mas faz mais complexos e com hatch de áreas etc. O ecrã por defeito é o mais básico: Se alargar a janela, mostra por exemplo o histórico de operações, e em todos pode optar por colocar a janela da calculadora sempre visível, no topo. Esta é uma lista das várias calculadoras que se incluem: Pode por exemplo converter unidades angulares: Converter moedas, com ligação à internet para actualização dos valores de câmbio: E o que coloquei logo ao início do post, para gráficos... e muito mais. Com vários atalhos, e outros pequenos truques... Sem dúvida merece a pena explorar. A calculadora que eu tenho instalada no Xubuntu, tem também mais do que as simp

Mão de obra barata e não qualificada, de preferência

Mão de obra barata e não qualificada, de preferência A promoção da mão de obra barata, e não qualificada, nada mais é que um incentivo à pobreza e à perda de qualidade e eficiência. Assistimos actualmente a tempos de escassez de mão-de-obra em vários sectores, desde o sazonal Turismo à Construção Civil. As empresas que precisam de preencher os seus quadros para contratar, têm duas alternativas, ou contratar gente qualificada e pagar bem, ou contratar gente a baixo preço para preencher o número. Tudo isto leva a um ciclo de baixos salários e baixo incentivo à qualificação dos futuros trabalhadores, quer no ensino superior ou centros de formação. "Salienta-se que é da responsabilidade do empregador assegurar viagens, alojamento e refeições. " Lê-se no artigo mais abaixo. IEFP promove recrutamento de mão-de-obra em Cabo Verde: http://www.jornaldaconstrucao.pt/index.php?id=43&n=8132 Quanto pretendem pagar de salário "líquido" a um armador de ferro ou a um pedreiro q

Autocad no navegador?

Autocad no navegador? É possível correr o Autocad num navegador? Será este o futuro? Tenho acompanhado com alguma distancia o desenvolvimento de aplicações cada vez mais complexas para navegadores Web. Há noticias de "portabilidade" de alguns jogos mais complexos, e programas de edição de imagem, e desde há algum tempo a notícia do Autocad a funcionar, digamos que online sem necessidade de uma instalação local. Em teoria, com a integração no ecossistema destas grandes empresas, e à computação em nuvem, ficando apenas para o computador cliente, o do utilizador, a renderização das imagens e os comandos, o utilizador pode aceder a uma potencia computacional superior à que teria localmente. Com o desenvolvimento de velocidades cada vez maiores das conexões web, é possível. Não experimentei este CAD, penso que tem de ser por subscrição. Imagino por exemplo uma empresa concorrente disponibilizar todo o CAD online, grátis ou com alguma limitação. E uma série de programas que só imag

BIM - Por detrás da cortina

BIM - Por detrás da cortina Quem não gosta de ver uns modelos BIM com bom impacto visual? Quem não gosta de um video sobre BIM, bem feito, que demonstre as capacidades da metodologia num qualquer software? Do BIM 3D ao BIM 4D (falemos de dimensões), de uma boa modelação 3D com as classes definidas a um correr de tempo e planeamento? Mas não esquecer que por detrás da cortina, por detrás de uma apresentação está muito trabalho. Experiência acumulada, tentativa erro e sucesso, horas e horas de aprendizagem. Uso de várias ferramentas, e quem sabe uso e programação de pequenas rotinas que aqui e ali ajudam a concretizar um trabalho. Não esquecer que o BIM, como é descrito em vários gráficos, tem o seu maior volume de trabalho nas fases iniciais de um empreendimento. Curva de MacLeamy. E quanto a mim, com a dualidade de metodologias em funcionamento, BIM e "tradicional" nada impede que este sobre-trabalho inicial do BIM, não venha depois a ser mal complementado com o trabalho trad

ISTRAM - Copiar propriedades entre linhas

ISTRAM - Copiar propriedades entre linhas Este processo serve para copiar um determinado tipo de linha para outra(s) linha(s). Semelhante ao que se faz em CAD, embora o CAD tenha um ícone que resume a operação. O ISTRAM possui uma gama completa de ferramentas para edição de CAD, o CAD que é necessário para preparar um desenho de Topografia, ou de obra. Suponhamos que temos sobre o edm de exemplo desenhado o contorno de um novo edifício (Branco). Tem o tipo de linha zero. Para esta linha receber as mesmas propriedades da linha de edifício ao lado, podemos ir por vários processos, exemplifico um deles. Podemos consultar algumas propriedades da linha de edifício existente, basta deixar o cursor sobre a linha: Agora com o botão direito do rato por cima da linha, seleccionamos a opção, Selecção a tipo actual: Com esta operação, o tipo actual de linha, que aparece no fundo do ecrã passa a ser o da linha seleccionada. Agora a operação de transferir as propriedades do tipo actual para a linha

BIM - App para consulta de Uniclass 2015

BIM - App para consulta de Uniclass 2015 Aqui a ideia é ter uma app para consulta dos itens de Uniclass 2015. Embora possamos consultar a lista de classificação de objectos BIM Uniclass 2015 , em formato CSV -> Folha de Cálculo, pensei dar uma visualização mais agradável na forma de uma árvore de hierarquias. O produto não está ainda acabado, mas para lá caminha. Uma das ideias seria além da consulta, aproveitar para fazer associação aos objectos de ISTRAM ISPOL e depois gerar um ficheiro compatível com o software, de modo a ter uma conversão entre objectos BIM e ISPOL. Do conjunto Uniclass para já só tem interesse a Tabela 6, que se refere aos Sistemas (Ss) Cada elemento tem:      1 par de letras identificativas da Tabela.      4 pares de números referentes a grupos, subgrupos, secções e objectos. Exemplo:      Ss_15_10      Groundworks and earthworks systems      Ss_15_10_30      Excavating, filling and erosion control systems      Ss_15_10_30_05    Backfill systems No exempl