Avançar para o conteúdo principal

Mensagens

A mostrar mensagens de novembro, 2022

C# - Ler Excel e futuramente escrever ficheiro de larguras ISPOL

C# - Ler Excel e futuramente escrever ficheiro de larguras ISPOL No meu trabalho diário é importante fazer uma ligação entre dados Excel e ISPOL. Por vezes é bastante útil usar o Excel, para apresentar algumas características introduzidas no projecto de ISPOL, e também fazer uma ligação entre os dados nestes dois programas. Essa ligação não é automática exige uma intermediação por um programa, ou fazer a actualização quer no Excel quer no ISPOL manualmente... não é viável. O ponto de partida pode ser o Excel, no qual se anotam as larguras de vias e bermas. Por agora apenas estou a ler a primeira folha, que tem esta apresentação. Esta informação contida no Excel, consegue-se ler e apresentar no ecrã. O objectivo será montar a informação do Excel num ficheiro de laruras de ISPOL. Como o seguinte: Assim alterando o Excel, executa-se o programa e temos os dados actualizados no ISPOL. Isto poderia programar-se também no sentido inverso, de ter o ficheiro de larguras e montar um Excel. Aqui

C# - Autocad, Anotar Cota e Coordenadas

C# - Autocad, Anotar Cota e Coordenadas Uma operação útil é anotar a cota (e coordenadas) com uma linha de chamada de um ponto, vértice etc... Com uma pequena alteração no código podemos apenas anotar a cota e coordenadas de determinados pontos. O ISPOL faz isto juntando um número sequencial, e um quadro de implantação de pontos. Com um pouco mais de tempo pode-se fazer algo semelhante. De qualquer forma agora era para ensaiar, para fazer um quadro e demais opções, convém treinar as janelas de diálogo em Autocad para poder dar ao utilizador a escolha de opções ou configurações. Na imagem abaixo, anota-se o vértice da recta (9), mas como podemos fazer um OSNAP a qualquer local, podemos determinar por exemplo a cota em determinado ponto: Ainda tenho as janelas de alerta:

C# - Autocad, Distância inclinação e sentido

C# - Autocad, Distância inclinação e sentido Na continuidade da evolução em CSharp para Autocad, montei um plugin que rotula várias informações úteis de um segmento de recta, por exemplo o sentido de escoamento. Tendo em vista ler a informação de uma linha em 3D, podemos através da programação de um plugin, retirar muita informação. Nos exemplos mostrados mais abaixo, desenhei uma série de segmentos com cota. O plugin pede ao utilizador que pique nos pontos extremos e lê as diversas informações da informação 3D. Independentemente da ordem de leitura dos pontos, o programa determina o sentido do escoamento e colocar uma seta. Esta seta tem uma abertura proporcional à distância entre os pontos. No caso de não haver diferença de cotas coloca uma circunferência. Separa o texto e as setas por layers. Há informação que pode ser dada de forma diferente inclinação em %, ou ângulos noutro sistema. Este programa pode ser útil para hidráulica e não só. Uma amostra do código para desenhar um círcu

C# - Autocad escrever distância

C# - Autocad escrever distância No pequeno incremento de funcionalidade do plugin, está a possibilidade de escrever a distância lida. Para além de informar a distância entre dois pontos, por vezes também interessa que essa informação seja escrita, por exemplo no próprio desenho CAD. O incremento de hoje, foi ter como base o cálculo da distância já feito, escrever com um texto multilinha essa informação  num layer específico. Basicamente foi juntar ideias que experimentei há uns dias. A ideia actual ainda vai evoluir para tornar este plugin mais informativo e útil, para já este é o aspecto gráfico actual: O layer de escrita é particular, ainda com as propriedades dos exercícios anteriores, excepto o nome: Aqui uma amostra de código, para a criação do texto multilinha: Estes plugins podem ser carregados de forma automática no arranque do Autocad, ou escrevendo NETLOAD na linha de comandos: E depois neste caso escrever "distancias" para chamar o programa.

C# - Biblioteca conversores ângulos

C# - Biblioteca conversores ângulos Uma biblioteca tanto serve para organizar código como para montar um portefólio de funções. Montar uma biblioteca em Csharp assim como noutras linguagens serve para dar uma organização ao código, reaproveitar funções ou métodos e ir montando um conjunto de funções que se usam e estão personalizadas ao tipo de projectos que recorremtemente o programador usa. Para o programa de exemplo, um conversor de ângulos, converte ângulos para os diversos sistemas angulares, há que montar um código que faz o trabalho de fundo e um código que se encarrega do fluxo geral do programa. Por exemplo posso dizer em dada altura que quero converter alguma coisa, com esta frase: Esta é perfeitamente legível. No entanto o background que está ali é muito maior, pois recorre a um DLL onde se situam estas funções, com todo o código necessário. Um aspecto geral do DLL: A título de exemplo, veja-se os ficheiros que tenho na pasta desde exercício, onde se pode localizar o DLL e o

Autocad - Exportar / Importar atributos de blocos

Autocad - Exportar / Importar atributos de blocos Esta ferramenta é bastante útil na alteração de atributos de blocos em massa. Se trabalharmos no Autocad com blocos, e estes tiverem algum atributo que seja modificável, podemos fazê-lo de forma manual, um a um... mas sempre buscando automatismo, existe uma forma de modificar os atributos de todos os blocos de uma forma automática. Para exemplo, criei um desenho com um bloco de atributo COTA, tenho 3 destes blocos com atributos diferentes no desenho, relaciono o atributo COTA com o valor da Cota, imagino que isto seria por exemplo a cota de um piso, mas poderia ser a cota de uma caixa, ou qualquer outra coisa. Seleccionando os blocos que queremos modificar, no menu de Express, exportamos os atributos para um ficheiro de texto: Como se vê abaixo, no ficheiro de texto estão os valores dos atributos, e entre outras coisas a definição única de cada bloco no desenho de CAD. Poderíamos por exemplo criar um outro atributo, para mais facilmente

ISPOL - Modelação 3D

ISPOL - Modelação 3D O ISPOL dispõe de ferramentas para fazer uma boa modelação 3D e integrar o desenho com o CAD. Com o programa podemos realizar uma boa conjugação 3D de vários elementos de uma estrada. No exemplo uma zona de intersecção bem modelada. No exercício actual, existe um fluxo de trabalho entre o ISPOL e o Autocad, para modelar corrigir e completar e curvar um modelo 3D de uma zona urbana. Embora o ISPOL não seja à partida uma ferramenta de eleição para zonas urbanas, dá conta do recado. Outras ferramentas como o Civil 3D são mais vocacionadas para estes ambientes, mas seja qual a ferramenta escolhida nas zonas de detalhe é sempre necessário trabalho para que o modelo esteja correcto. Esta modelação do exemplo abaixo é feita no menu de "Cruzamentos" e depois de calculada exportada para 3D faces de CAD, e em Autocad é feita uma vista 3D com "Visual Styles": A exportação é realizada desde o menu de exportação para triangular superfície vista , poderia se

C# - Ler ficheiro de coordenadas e escrever pontos em CAD

C# - Ler ficheiro de coordenadas e escrever pontos em CAD Juntando alguns blocos já vistos anteriormente, consigo ler um ficheiro de coordenadas do disco e implantar os pontos em Autocad. Uma das operações correntes é ler ficheiros de pontos, e visualiza-los em algum programa de CAD. No caso consegui fazer um plugin para ler um ficheiro de pontos no disco e colocar esses pontos num desenho de CAD. O programa está feito apenas para que funcione, quero dizer que nesta fase não tem interacção com o utilizador (alem do utilizador ter de ordenar o inicio do programa), nem ter verificação de erros. Posso implementar esses códigos de seguida. Uma das ideias poderia ser, além de aceitar o ficheiro no formato XYZ poder ter o número de ponto ou um texto descritivo do ponto. Posso também separar por layers etc. Este é o ficheiro que é lido automaticamente da mesma pasta onde se inicializa o desenho de CAD. E depois de executar o programa este é o resultado geral: E um amostra do código em C#:

C# - Janela em Windows

C# - Janela em Windows Com o Visual Studio é relativamente fácil criar aplicações para desktop de Windows. Já há bastante tempo que não usava algo como o Visual Studio, para criar aplicações com interface gráfica. Tenho privilegiado outras linguagens pela leveza e multi plataforma, como o Python e Javascript. Para este período de "estudo" como o objectivo final é criar plugins para CAD / BIM, mais tarde ou mais cedo tenho de passar pela criação de janelas no Visual Studio. Após a pesada instalação, obtemos um ambiente familiar (comparado com o Visual Studio Code), em que existem as ferramentas e utilidades para criar uma janela, como tenho visto desde o VB6 ao VB.NET ... O exercício de hoje foi apenas para testar a criação de uma janela, com umas labels e introdução de dados. O valor introduzido na caixa de texto é verificado para que seja um número. Depois uns cálculos simples apenas para realizar uma conversão para grados. E o código fonte: Note-se que as referencias "

C# - Autocad criar Layer

C# - Autocad criar Layer Outra das situações comuns numa programação para Autocad é manipular os layers, desenhar em determinado layer, criar e modificar. Mais um pequeno passo necessário para uma programação no ambiente Autocad é o de manipular os layers.  Tenho o código para a criação de um layer se este não existir, o código é adaptado do site da Autodesk. Falta fazer algo mais complexo com vários layers e verificações. O plugin é semelhante ao que já tinha criado para a "linha": E uma amostra do código onde defino o layer a ser criado / verificado se existe:

ISPOL - Arredondar Rasante

ISPOL - Arredondar Rasante Na sequência de publicações anteriores, de programação, sobre o cálculo de intersecção de traineis, mostro a mesma utilidade em ISPOL. O ISPOL proporciona a utilidade de arredondar os PKs e Pendentes de uma rasante para os valores definidos. Este ajuste realiza-se em toda a rasante. A ideia da programação em posts anteriores é aplicar esse ajuste apenas a um par de traineis, digamos, depois de uma necessária correcção na rasante. Estes PKs/Pendentes de valores mais ou menos inteiros são por vezes requeridos por algumas entidades. Por exemplo a Secretaria de Comunicações e Transportes do México... Como exemplo o projecto DEMO que se copia durante a instalação do ISPOL. A rasante, tem valores para pendentes e vértices de rasante não inteiros: Ao entrarmos no menu lateral de opções, podemos depois configurar o tal arredondamento: No caso acima, PKs cada 20 metros e pendentes a 1%. Basta ir introduzindo aqui valores que o programa recalcula a rasante. Depois conv

C# - Intersecções PIV México

C# - Intersecções PIV México Normalmente para projectos no México exige-se que o ponto de intersecção das tangentes verticais PIV seja num valor de pk e cota inteiro ou definido. O ISPOL já proporciona este ajuste sobre uma rasante existente, mas no caso ter um trecho em que se necessita de alteração, o ISPOL ajusta toda a rasante. A solução é ir iterativamente ajustando as tangentes até se encontrar um valor para o PK e para a COTA satisfatório. Ou usar um auxiliar. Eu já tinha programado noutras linguagens este tipo de programas. Agora em CSharp o algoritmo é semelhante. Por agora sem uma interface gráfica, e sem grandes verificações de erros, e ainda pouco "flexível". Atendendo ao esquema acima, temos um ponto inicial e um ponto final (Pk Cota) e umas inclinações mínimas e máximas bem como um incremento para essas inclinações. Podemos calcular as várias intersecções, pontos amarelos, entre cada segmento de recta, e armazenar ou listar. Mas interessa escolher os pontos de i